diff --git a/Makefile b/Makefile
index 2d1c36d5fa8a6d982c3b9bb27a70bf3071dccf9d..b5f8ad86aaf8895b92ebf7f88c54adba48ab1aa9 100644
--- a/Makefile
+++ b/Makefile
@@ -98,7 +98,7 @@ config.h: .config
 	@-printf '\nWARNING: $(?F) newer than config.h, rerun configure\n\n'
 	@-tput sgr0 2>/dev/null
 
-SUBDIR_VARS := CLEANFILES DIRS EXAMPLES FFLIBS HOSTPROGS TESTPROGS TOOLS \
+SUBDIR_VARS := CLEANFILES EXAMPLES FFLIBS HOSTPROGS TESTPROGS TOOLS      \
                ARCH_HEADERS BUILT_HEADERS SKIPHEADERS                    \
                ALTIVEC-OBJS ARMV6-OBJS MMX-OBJS NEON-OBJS YASM-OBJS      \
                OBJS TESTOBJS
diff --git a/libavcodec/Makefile b/libavcodec/Makefile
index 23270544e9fa92d7a99f469bd52847df24d8d2e6..e4e5294db9ba13021c9a50e2cc31628cfe7eeabb 100644
--- a/libavcodec/Makefile
+++ b/libavcodec/Makefile
@@ -709,8 +709,6 @@ HOSTPROGS = aac_tablegen aacps_tablegen cbrt_tablegen cos_tablegen      \
             dv_tablegen motionpixels_tablegen mpegaudio_tablegen        \
             pcm_tablegen qdm2_tablegen sinewin_tablegen
 
-DIRS = alpha arm avr32 bfin mips ppc sh4 sparc x86
-
 CLEANFILES = *_tables.c *_tables.h *_tablegen$(HOSTEXESUF)
 
 $(SUBDIR)dct-test$(EXESUF): $(SUBDIR)dctref.o
diff --git a/libavfilter/Makefile b/libavfilter/Makefile
index 8af152da22755814d80b8f81c19eea7ee0892532..6ee94e9a1be0681600a20190b2b0a6660e6c64d1 100644
--- a/libavfilter/Makefile
+++ b/libavfilter/Makefile
@@ -69,6 +69,4 @@ OBJS-$(CONFIG_TESTSRC_FILTER)                += vsrc_testsrc.o
 
 OBJS-$(CONFIG_NULLSINK_FILTER)               += vsink_nullsink.o
 
-DIRS = x86
-
 TOOLS = graph2dot lavfi-showfiltfmts
diff --git a/libavutil/Makefile b/libavutil/Makefile
index 009094da878a7e253081af8ba9622c7eeee9bbe0..a73fb79d0f7d2942f2b13362773e047ec7ffa650 100644
--- a/libavutil/Makefile
+++ b/libavutil/Makefile
@@ -78,6 +78,4 @@ OBJS-$(ARCH_X86) += x86/cpu.o
 TESTPROGS = adler32 aes avstring base64 cpu crc des eval fifo lfg lls \
             md5 opt parseutils sha tree
 
-DIRS = arm avr32 bfin mips ppc sh4 tomi x86
-
 ARCH_HEADERS = bswap.h intmath.h intreadwrite.h timer.h
diff --git a/library.mak b/library.mak
index f50e8e59ee8d12a845dabdbc265b2060a7e91444..6159799c5d483830e3f0ea54b91bab05dcc2c967 100644
--- a/library.mak
+++ b/library.mak
@@ -47,12 +47,10 @@ $(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(OBJS) $(SUBDIR)lib$(NAME).ver $(DEP_LIBS)
 
 clean::
 	$(RM) $(addprefix $(SUBDIR),*-example$(EXESUF) *-test$(EXESUF) $(CLEANFILES) $(CLEANSUFFIXES) $(LIBSUFFIXES)) \
-	    $(foreach dir,$(DIRS),$(CLEANSUFFIXES:%=$(SUBDIR)$(dir)/%)) \
-	    $(HOSTOBJS) $(HOSTPROGS)
+	    $(CLEANSUFFIXES:%=$(SUBDIR)$(ARCH)/%) $(HOSTOBJS) $(HOSTPROGS)
 
 distclean:: clean
-	$(RM) $(DISTCLEANSUFFIXES:%=$(SUBDIR)%) \
-	    $(foreach dir,$(DIRS),$(DISTCLEANSUFFIXES:%=$(SUBDIR)$(dir)/%))
+	$(RM) $(DISTCLEANSUFFIXES:%=$(SUBDIR)%) $(DISTCLEANSUFFIXES:%=$(SUBDIR)$(ARCH)/%)
 
 install-lib$(NAME)-shared: $(SUBDIR)$(SLIBNAME)
 	$(Q)mkdir -p "$(SHLIBDIR)"
diff --git a/libswscale/Makefile b/libswscale/Makefile
index 04019307fd23dcaa5d5d14587eb0b8aa577eb126..7301646f4bb333792db16c53ff5dbc4c4d08e896 100644
--- a/libswscale/Makefile
+++ b/libswscale/Makefile
@@ -29,5 +29,3 @@ MMX-OBJS-$(HAVE_YASM)      +=  x86/input.o              \
 OBJS-$(CONFIG_XMM_CLOBBER_TEST) += x86/w64xmmtest.o
 
 TESTPROGS = colorspace swscale
-
-DIRS = bfin ppc sparc x86