diff --git a/libiberty/Makefile.in b/libiberty/Makefile.in
index f06cc69..de0c8c9 100644
--- a/libiberty/Makefile.in
+++ b/libiberty/Makefile.in
@@ -69,6 +69,22 @@ MAKEOVERRIDES =
 TARGETLIB = ./libiberty.a
 TESTLIB = ./testlib.a
 
+TARGETLIB_PIC = $(dir $(TARGETLIB))pic/$(notdir $(TARGETLIB))
+TARGETLIB_NOASAN = $(dir $(TARGETLIB))noasan/$(notdir $(TARGETLIB))
+
+TARGETLIBS := $(TARGETLIB)
+
+DEFAULT_OFILES = $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS)
+ifneq ($(strip $(PICFLAG)),)
+TARGETLIBS += $(TARGETLIB_PIC)
+PIC_OFILES = $(patsubst ./%,$(dir $(TARGETLIB_PIC))%,$(DEFAULT_OFILES))
+endif
+
+ifneq ($(strip $(NOASANFLAG)),)
+TARGETLIBS += $(TARGETLIB_NOASAN)
+NOASAN_OFILES = $(patsubst ./%,$(dir $(TARGETLIB_NOASAN))%,$(DEFAULT_OFILES))
+endif
+
 LIBOBJS = @LIBOBJS@
 
 # A configuration can specify extra .o files that should be included,
@@ -102,7 +118,7 @@ FLAGS_TO_PASS = \
 SUBDIRS = testsuite
 
 # FIXME: add @BUILD_INFO@ once we're sure it works for everyone.
-all: stamp-picdir stamp-noasandir $(TARGETLIB) required-list all-subdir
+all: $(TARGETLIBS) required-list all-subdir
 	@: $(MAKE) ; $(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=all
 
 .PHONY: check installcheck
@@ -113,7 +129,7 @@ installcheck: installcheck-subdir
 
 INCDIR=$(srcdir)/$(MULTISRCTOP)../include
 
-COMPILE.c = $(CC) -c @DEFS@ $(CFLAGS) $(CPPFLAGS) -I. -I$(INCDIR) $(HDEFINES) @ac_libiberty_warn_cflags@
+COMPILE.c = $(CC) -c @DEFS@ $(CFLAGS) $(SUB_CFLAGS) $(CPPFLAGS) -I. -I$(INCDIR) $(HDEFINES) @ac_libiberty_warn_cflags@
 
 # Just to make sure we don't use a built-in rule with VPATH
 .c.$(objext):
@@ -243,25 +259,18 @@ INSTALLED_HEADERS =                                                     \
 	$(INCDIR)/splay-tree.h \
 	$(INCDIR)/timeval-utils.h
 
-$(TARGETLIB): $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS)
-	-rm -f $(TARGETLIB) pic/$(TARGETLIB) noasan/$(TARGETLIB)
-	$(AR) $(AR_FLAGS) $(TARGETLIB) \
-	  $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS)
-	$(RANLIB) $(TARGETLIB)
-	if [ x"$(PICFLAG)" != x ]; then \
-	  cd pic; \
-	  $(AR) $(AR_FLAGS) $(TARGETLIB) \
-	    $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS); \
-	  $(RANLIB) $(TARGETLIB); \
-	  cd ..; \
-	else true; fi; \
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  cd noasan; \
-	  $(AR) $(AR_FLAGS) $(TARGETLIB) \
-	    $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS); \
-	  $(RANLIB) $(TARGETLIB); \
-	  cd ..; \
-	else true; fi
+$(TARGETLIB): $(DEFAULT_OFILES)
+
+$(TARGETLIB_PIC): $(PIC_OFILES)
+$(PIC_OFILES): SUB_CFLAGS = $(PICFLAG)
+
+$(TARGETLIB_NOASAN): $(NOASAN_OFILES)
+$(NOASAN_OFILES): SUB_CFLAGS = $(PICFLAG) $(NOASANFLAG)
+
+$(TARGETLIB) $(TARGETLIB_PIC) $(TARGETLIB_NOASAN):
+	-rm -f $@
+	$(AR) $(AR_FLAGS) $@ $^
+	$(RANLIB) $@
 
 $(TESTLIB): $(REQUIRED_OFILES) $(CONFIGURED_OFILES)
 	-rm -f $(TESTLIB)
@@ -444,7 +453,7 @@ maint-deps :
 mostlyclean: mostlyclean-subdir
 	-rm -rf *.$(objext) pic noasan core errs \#* *.E a.out
 	-rm -f errors dummy config.h stamp-*
-	-rm -f $(CONFIG_H) stamp-picdir stamp-noasandir
+	-rm -f $(CONFIG_H)
 	-rm -f libiberty.aux libiberty.cp libiberty.cps libiberty.fn libiberty.ky
 	-rm -f libiberty.log libiberty.tmp libiberty.tps libiberty.pg
 	-rm -f libiberty.pgs libiberty.toc libiberty.tp libiberty.tpl libiberty.vr
@@ -511,1200 +520,722 @@ $(CONFIGURED_OFILES): stamp-picdir stamp-noasandir
 # The dependencies in the remainder of this file are automatically
 # generated by "make maint-deps".  Manual edits will be lost.
 
-./_doprnt.$(objext): $(srcdir)/_doprnt.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/safe-ctype.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/_doprnt.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/_doprnt.c -o noasan/$@; \
-	else true; fi
+./_doprnt.$(objext) \
+    ./pic/_doprnt.$(objext) \
+    ./noasan/_doprnt.$(objext): $(srcdir)/_doprnt.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/safe-ctype.h
 	$(COMPILE.c) $(srcdir)/_doprnt.c $(OUTPUT_OPTION)
 
-./alloca.$(objext): $(srcdir)/alloca.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/alloca.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/alloca.c -o noasan/$@; \
-	else true; fi
+./alloca.$(objext) \
+    ./pic/alloca.$(objext) \
+    ./noasan/alloca.$(objext): $(srcdir)/alloca.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
 	$(COMPILE.c) $(srcdir)/alloca.c $(OUTPUT_OPTION)
 
-./argv.$(objext): $(srcdir)/argv.c config.h $(INCDIR)/ansidecl.h \
+./argv.$(objext) \
+    ./pic/argv.$(objext) \
+    ./noasan/argv.$(objext): $(srcdir)/argv.c config.h $(INCDIR)/ansidecl.h \
 	$(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/argv.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/argv.c -o noasan/$@; \
-	else true; fi
 	$(COMPILE.c) $(srcdir)/argv.c $(OUTPUT_OPTION)
 
-./asprintf.$(objext): $(srcdir)/asprintf.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/asprintf.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/asprintf.c -o noasan/$@; \
-	else true; fi
+./asprintf.$(objext) \
+    ./pic/asprintf.$(objext) \
+    ./noasan/asprintf.$(objext): $(srcdir)/asprintf.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
 	$(COMPILE.c) $(srcdir)/asprintf.c $(OUTPUT_OPTION)
 
-./atexit.$(objext): $(srcdir)/atexit.c config.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/atexit.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/atexit.c -o noasan/$@; \
-	else true; fi
+./atexit.$(objext) \
+    ./pic/atexit.$(objext) \
+    ./noasan/atexit.$(objext): $(srcdir)/atexit.c config.h
 	$(COMPILE.c) $(srcdir)/atexit.c $(OUTPUT_OPTION)
 
-./basename.$(objext): $(srcdir)/basename.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/basename.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/basename.c -o noasan/$@; \
-	else true; fi
+./basename.$(objext) \
+    ./pic/basename.$(objext) \
+    ./noasan/basename.$(objext): $(srcdir)/basename.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h
 	$(COMPILE.c) $(srcdir)/basename.c $(OUTPUT_OPTION)
 
-./bcmp.$(objext): $(srcdir)/bcmp.c
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/bcmp.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/bcmp.c -o noasan/$@; \
-	else true; fi
+./bcmp.$(objext) \
+    ./pic/bcmp.$(objext) \
+    ./noasan/bcmp.$(objext): $(srcdir)/bcmp.c
 	$(COMPILE.c) $(srcdir)/bcmp.c $(OUTPUT_OPTION)
 
-./bcopy.$(objext): $(srcdir)/bcopy.c
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/bcopy.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/bcopy.c -o noasan/$@; \
-	else true; fi
+./bcopy.$(objext) \
+    ./pic/bcopy.$(objext) \
+    ./noasan/bcopy.$(objext): $(srcdir)/bcopy.c
 	$(COMPILE.c) $(srcdir)/bcopy.c $(OUTPUT_OPTION)
 
-./bsearch.$(objext): $(srcdir)/bsearch.c config.h $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/bsearch.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/bsearch.c -o noasan/$@; \
-	else true; fi
+./bsearch.$(objext) \
+    ./pic/bsearch.$(objext) \
+    ./noasan/bsearch.$(objext): $(srcdir)/bsearch.c config.h \
+	$(INCDIR)/ansidecl.h
 	$(COMPILE.c) $(srcdir)/bsearch.c $(OUTPUT_OPTION)
 
-./bzero.$(objext): $(srcdir)/bzero.c
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/bzero.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/bzero.c -o noasan/$@; \
-	else true; fi
+./bzero.$(objext) \
+    ./pic/bzero.$(objext) \
+    ./noasan/bzero.$(objext): $(srcdir)/bzero.c
 	$(COMPILE.c) $(srcdir)/bzero.c $(OUTPUT_OPTION)
 
-./calloc.$(objext): $(srcdir)/calloc.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/calloc.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/calloc.c -o noasan/$@; \
-	else true; fi
+./calloc.$(objext) \
+    ./pic/calloc.$(objext) \
+    ./noasan/calloc.$(objext): $(srcdir)/calloc.c $(INCDIR)/ansidecl.h
 	$(COMPILE.c) $(srcdir)/calloc.c $(OUTPUT_OPTION)
 
-./choose-temp.$(objext): $(srcdir)/choose-temp.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/choose-temp.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/choose-temp.c -o noasan/$@; \
-	else true; fi
+./choose-temp.$(objext) \
+    ./pic/choose-temp.$(objext) \
+    ./noasan/choose-temp.$(objext): $(srcdir)/choose-temp.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
 	$(COMPILE.c) $(srcdir)/choose-temp.c $(OUTPUT_OPTION)
 
-./clock.$(objext): $(srcdir)/clock.c config.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/clock.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/clock.c -o noasan/$@; \
-	else true; fi
+./clock.$(objext) \
+    ./pic/clock.$(objext) \
+    ./noasan/clock.$(objext): $(srcdir)/clock.c config.h
 	$(COMPILE.c) $(srcdir)/clock.c $(OUTPUT_OPTION)
 
-./concat.$(objext): $(srcdir)/concat.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/concat.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/concat.c -o noasan/$@; \
-	else true; fi
+./concat.$(objext) \
+    ./pic/concat.$(objext) \
+    ./noasan/concat.$(objext): $(srcdir)/concat.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
 	$(COMPILE.c) $(srcdir)/concat.c $(OUTPUT_OPTION)
 
-./copysign.$(objext): $(srcdir)/copysign.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/copysign.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/copysign.c -o noasan/$@; \
-	else true; fi
+./copysign.$(objext) \
+    ./pic/copysign.$(objext) \
+    ./noasan/copysign.$(objext): $(srcdir)/copysign.c $(INCDIR)/ansidecl.h
 	$(COMPILE.c) $(srcdir)/copysign.c $(OUTPUT_OPTION)
 
-./cp-demangle.$(objext): $(srcdir)/cp-demangle.c config.h $(INCDIR)/ansidecl.h \
-	$(srcdir)/cp-demangle.h $(INCDIR)/demangle.h \
+./cp-demangle.$(objext) \
+    ./pic/cp-demangle.$(objext) \
+    ./noasan/cp-demangle.$(objext): $(srcdir)/cp-demangle.c config.h \
+	$(INCDIR)/ansidecl.h $(srcdir)/cp-demangle.h $(INCDIR)/demangle.h \
 	$(INCDIR)/dyn-string.h $(INCDIR)/getopt.h $(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/cp-demangle.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/cp-demangle.c -o noasan/$@; \
-	else true; fi
 	$(COMPILE.c) $(srcdir)/cp-demangle.c $(OUTPUT_OPTION)
 
-./cp-demint.$(objext): $(srcdir)/cp-demint.c config.h $(INCDIR)/ansidecl.h \
-	$(srcdir)/cp-demangle.h $(INCDIR)/demangle.h \
+./cp-demint.$(objext) \
+    ./pic/cp-demint.$(objext) \
+    ./noasan/cp-demint.$(objext): $(srcdir)/cp-demint.c config.h \
+	$(INCDIR)/ansidecl.h $(srcdir)/cp-demangle.h $(INCDIR)/demangle.h \
 	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/cp-demint.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/cp-demint.c -o noasan/$@; \
-	else true; fi
 	$(COMPILE.c) $(srcdir)/cp-demint.c $(OUTPUT_OPTION)
 
-./cplus-dem.$(objext): $(srcdir)/cplus-dem.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/demangle.h $(INCDIR)/libiberty.h \
+./cplus-dem.$(objext) \
+    ./pic/cplus-dem.$(objext) \
+    ./noasan/cplus-dem.$(objext): $(srcdir)/cplus-dem.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/demangle.h $(INCDIR)/libiberty.h \
 	$(INCDIR)/safe-ctype.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/cplus-dem.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/cplus-dem.c -o noasan/$@; \
-	else true; fi
 	$(COMPILE.c) $(srcdir)/cplus-dem.c $(OUTPUT_OPTION)
 
-./crc32.$(objext): $(srcdir)/crc32.c config.h $(INCDIR)/ansidecl.h \
+./crc32.$(objext) \
+    ./pic/crc32.$(objext) \
+    ./noasan/crc32.$(objext): $(srcdir)/crc32.c config.h $(INCDIR)/ansidecl.h \
 	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/crc32.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/crc32.c -o noasan/$@; \
-	else true; fi
 	$(COMPILE.c) $(srcdir)/crc32.c $(OUTPUT_OPTION)
 
-./d-demangle.$(objext): $(srcdir)/d-demangle.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/demangle.h $(INCDIR)/libiberty.h \
+./d-demangle.$(objext) \
+    ./pic/d-demangle.$(objext) \
+    ./noasan/d-demangle.$(objext): $(srcdir)/d-demangle.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/demangle.h $(INCDIR)/libiberty.h \
 	$(INCDIR)/safe-ctype.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/d-demangle.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/d-demangle.c -o noasan/$@; \
-	else true; fi
 	$(COMPILE.c) $(srcdir)/d-demangle.c $(OUTPUT_OPTION)
 
-./dwarfnames.$(objext): $(srcdir)/dwarfnames.c $(INCDIR)/dwarf2.def \
+./dwarfnames.$(objext) \
+    ./pic/dwarfnames.$(objext) \
+    ./noasan/dwarfnames.$(objext): $(srcdir)/dwarfnames.c $(INCDIR)/dwarf2.def \
 	$(INCDIR)/dwarf2.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/dwarfnames.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/dwarfnames.c -o noasan/$@; \
-	else true; fi
 	$(COMPILE.c) $(srcdir)/dwarfnames.c $(OUTPUT_OPTION)
 
-./dyn-string.$(objext): $(srcdir)/dyn-string.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/dyn-string.h $(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/dyn-string.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/dyn-string.c -o noasan/$@; \
-	else true; fi
+./dyn-string.$(objext) \
+    ./pic/dyn-string.$(objext) \
+    ./noasan/dyn-string.$(objext): $(srcdir)/dyn-string.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/dyn-string.h $(INCDIR)/libiberty.h
 	$(COMPILE.c) $(srcdir)/dyn-string.c $(OUTPUT_OPTION)
 
-./fdmatch.$(objext): $(srcdir)/fdmatch.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/fdmatch.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/fdmatch.c -o noasan/$@; \
-	else true; fi
+./fdmatch.$(objext) \
+    ./pic/fdmatch.$(objext) \
+    ./noasan/fdmatch.$(objext): $(srcdir)/fdmatch.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
 	$(COMPILE.c) $(srcdir)/fdmatch.c $(OUTPUT_OPTION)
 
-./ffs.$(objext): $(srcdir)/ffs.c
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/ffs.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/ffs.c -o noasan/$@; \
-	else true; fi
+./ffs.$(objext) \
+    ./pic/ffs.$(objext) \
+    ./noasan/ffs.$(objext): $(srcdir)/ffs.c
 	$(COMPILE.c) $(srcdir)/ffs.c $(OUTPUT_OPTION)
 
-./fibheap.$(objext): $(srcdir)/fibheap.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/fibheap.h $(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/fibheap.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/fibheap.c -o noasan/$@; \
-	else true; fi
+./fibheap.$(objext) \
+    ./pic/fibheap.$(objext) \
+    ./noasan/fibheap.$(objext): $(srcdir)/fibheap.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/fibheap.h $(INCDIR)/libiberty.h
 	$(COMPILE.c) $(srcdir)/fibheap.c $(OUTPUT_OPTION)
 
-./filename_cmp.$(objext): $(srcdir)/filename_cmp.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/filenames.h $(INCDIR)/hashtab.h \
-	$(INCDIR)/safe-ctype.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/filename_cmp.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/filename_cmp.c -o noasan/$@; \
-	else true; fi
+./filename_cmp.$(objext) \
+    ./pic/filename_cmp.$(objext) \
+    ./noasan/filename_cmp.$(objext): $(srcdir)/filename_cmp.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/filenames.h $(INCDIR)/hashtab.h \
+	$(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h
 	$(COMPILE.c) $(srcdir)/filename_cmp.c $(OUTPUT_OPTION)
 
-./floatformat.$(objext): $(srcdir)/floatformat.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/floatformat.h $(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/floatformat.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/floatformat.c -o noasan/$@; \
-	else true; fi
+./floatformat.$(objext) \
+    ./pic/floatformat.$(objext) \
+    ./noasan/floatformat.$(objext): $(srcdir)/floatformat.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/floatformat.h $(INCDIR)/libiberty.h
 	$(COMPILE.c) $(srcdir)/floatformat.c $(OUTPUT_OPTION)
 
-./fnmatch.$(objext): $(srcdir)/fnmatch.c config.h $(INCDIR)/fnmatch.h \
-	$(INCDIR)/safe-ctype.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/fnmatch.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/fnmatch.c -o noasan/$@; \
-	else true; fi
+./fnmatch.$(objext) \
+    ./pic/fnmatch.$(objext) \
+    ./noasan/fnmatch.$(objext): $(srcdir)/fnmatch.c config.h \
+	$(INCDIR)/fnmatch.h $(INCDIR)/safe-ctype.h
 	$(COMPILE.c) $(srcdir)/fnmatch.c $(OUTPUT_OPTION)
 
-./fopen_unlocked.$(objext): $(srcdir)/fopen_unlocked.c config.h \
+./fopen_unlocked.$(objext) \
+    ./pic/fopen_unlocked.$(objext) \
+    ./noasan/fopen_unlocked.$(objext): $(srcdir)/fopen_unlocked.c config.h \
 	$(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/fopen_unlocked.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/fopen_unlocked.c -o noasan/$@; \
-	else true; fi
 	$(COMPILE.c) $(srcdir)/fopen_unlocked.c $(OUTPUT_OPTION)
 
-./getcwd.$(objext): $(srcdir)/getcwd.c config.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/getcwd.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/getcwd.c -o noasan/$@; \
-	else true; fi
+./getcwd.$(objext) \
+    ./pic/getcwd.$(objext) \
+    ./noasan/getcwd.$(objext): $(srcdir)/getcwd.c config.h
 	$(COMPILE.c) $(srcdir)/getcwd.c $(OUTPUT_OPTION)
 
-./getopt.$(objext): $(srcdir)/getopt.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/getopt.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/getopt.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/getopt.c -o noasan/$@; \
-	else true; fi
+./getopt.$(objext) \
+    ./pic/getopt.$(objext) \
+    ./noasan/getopt.$(objext): $(srcdir)/getopt.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/getopt.h
 	$(COMPILE.c) $(srcdir)/getopt.c $(OUTPUT_OPTION)
 
-./getopt1.$(objext): $(srcdir)/getopt1.c config.h $(INCDIR)/getopt.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/getopt1.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/getopt1.c -o noasan/$@; \
-	else true; fi
+./getopt1.$(objext) \
+    ./pic/getopt1.$(objext) \
+    ./noasan/getopt1.$(objext): $(srcdir)/getopt1.c config.h \
+	$(INCDIR)/getopt.h
 	$(COMPILE.c) $(srcdir)/getopt1.c $(OUTPUT_OPTION)
 
-./getpagesize.$(objext): $(srcdir)/getpagesize.c config.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/getpagesize.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/getpagesize.c -o noasan/$@; \
-	else true; fi
+./getpagesize.$(objext) \
+    ./pic/getpagesize.$(objext) \
+    ./noasan/getpagesize.$(objext): $(srcdir)/getpagesize.c config.h
 	$(COMPILE.c) $(srcdir)/getpagesize.c $(OUTPUT_OPTION)
 
-./getpwd.$(objext): $(srcdir)/getpwd.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/getpwd.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/getpwd.c -o noasan/$@; \
-	else true; fi
+./getpwd.$(objext) \
+    ./pic/getpwd.$(objext) \
+    ./noasan/getpwd.$(objext): $(srcdir)/getpwd.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
 	$(COMPILE.c) $(srcdir)/getpwd.c $(OUTPUT_OPTION)
 
-./getruntime.$(objext): $(srcdir)/getruntime.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/getruntime.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/getruntime.c -o noasan/$@; \
-	else true; fi
+./getruntime.$(objext) \
+    ./pic/getruntime.$(objext) \
+    ./noasan/getruntime.$(objext): $(srcdir)/getruntime.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
 	$(COMPILE.c) $(srcdir)/getruntime.c $(OUTPUT_OPTION)
 
-./gettimeofday.$(objext): $(srcdir)/gettimeofday.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/gettimeofday.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/gettimeofday.c -o noasan/$@; \
-	else true; fi
+./gettimeofday.$(objext) \
+    ./pic/gettimeofday.$(objext) \
+    ./noasan/gettimeofday.$(objext): $(srcdir)/gettimeofday.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
 	$(COMPILE.c) $(srcdir)/gettimeofday.c $(OUTPUT_OPTION)
 
-./hashtab.$(objext): $(srcdir)/hashtab.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/hashtab.h $(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/hashtab.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/hashtab.c -o noasan/$@; \
-	else true; fi
+./hashtab.$(objext) \
+    ./pic/hashtab.$(objext) \
+    ./noasan/hashtab.$(objext): $(srcdir)/hashtab.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/hashtab.h $(INCDIR)/libiberty.h
 	$(COMPILE.c) $(srcdir)/hashtab.c $(OUTPUT_OPTION)
 
-./hex.$(objext): $(srcdir)/hex.c config.h $(INCDIR)/ansidecl.h \
+./hex.$(objext) \
+    ./pic/hex.$(objext) \
+    ./noasan/hex.$(objext): $(srcdir)/hex.c config.h $(INCDIR)/ansidecl.h \
 	$(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/hex.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/hex.c -o noasan/$@; \
-	else true; fi
 	$(COMPILE.c) $(srcdir)/hex.c $(OUTPUT_OPTION)
 
-./index.$(objext): $(srcdir)/index.c
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/index.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/index.c -o noasan/$@; \
-	else true; fi
+./index.$(objext) \
+    ./pic/index.$(objext) \
+    ./noasan/index.$(objext): $(srcdir)/index.c
 	$(COMPILE.c) $(srcdir)/index.c $(OUTPUT_OPTION)
 
-./insque.$(objext): $(srcdir)/insque.c
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/insque.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/insque.c -o noasan/$@; \
-	else true; fi
+./insque.$(objext) \
+    ./pic/insque.$(objext) \
+    ./noasan/insque.$(objext): $(srcdir)/insque.c
 	$(COMPILE.c) $(srcdir)/insque.c $(OUTPUT_OPTION)
 
-./lbasename.$(objext): $(srcdir)/lbasename.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/filenames.h $(INCDIR)/hashtab.h $(INCDIR)/libiberty.h \
-	$(INCDIR)/safe-ctype.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/lbasename.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/lbasename.c -o noasan/$@; \
-	else true; fi
+./lbasename.$(objext) \
+    ./pic/lbasename.$(objext) \
+    ./noasan/lbasename.$(objext): $(srcdir)/lbasename.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/filenames.h $(INCDIR)/hashtab.h \
+	$(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h
 	$(COMPILE.c) $(srcdir)/lbasename.c $(OUTPUT_OPTION)
 
-./lrealpath.$(objext): $(srcdir)/lrealpath.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/lrealpath.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/lrealpath.c -o noasan/$@; \
-	else true; fi
+./lrealpath.$(objext) \
+    ./pic/lrealpath.$(objext) \
+    ./noasan/lrealpath.$(objext): $(srcdir)/lrealpath.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
 	$(COMPILE.c) $(srcdir)/lrealpath.c $(OUTPUT_OPTION)
 
-./make-relative-prefix.$(objext): $(srcdir)/make-relative-prefix.c config.h \
-	$(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/make-relative-prefix.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/make-relative-prefix.c -o noasan/$@; \
-	else true; fi
+./make-relative-prefix.$(objext) \
+    ./pic/make-relative-prefix.$(objext) \
+    ./noasan/make-relative-prefix.$(objext): $(srcdir)/make-relative-prefix.c \
+	config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
 	$(COMPILE.c) $(srcdir)/make-relative-prefix.c $(OUTPUT_OPTION)
 
-./make-temp-file.$(objext): $(srcdir)/make-temp-file.c config.h \
+./make-temp-file.$(objext) \
+    ./pic/make-temp-file.$(objext) \
+    ./noasan/make-temp-file.$(objext): $(srcdir)/make-temp-file.c config.h \
 	$(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/make-temp-file.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/make-temp-file.c -o noasan/$@; \
-	else true; fi
 	$(COMPILE.c) $(srcdir)/make-temp-file.c $(OUTPUT_OPTION)
 
-./md5.$(objext): $(srcdir)/md5.c config.h $(INCDIR)/ansidecl.h $(INCDIR)/md5.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/md5.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/md5.c -o noasan/$@; \
-	else true; fi
+./md5.$(objext) \
+    ./pic/md5.$(objext) \
+    ./noasan/md5.$(objext): $(srcdir)/md5.c config.h $(INCDIR)/ansidecl.h \
+	$(INCDIR)/md5.h
 	$(COMPILE.c) $(srcdir)/md5.c $(OUTPUT_OPTION)
 
-./memchr.$(objext): $(srcdir)/memchr.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/memchr.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/memchr.c -o noasan/$@; \
-	else true; fi
+./memchr.$(objext) \
+    ./pic/memchr.$(objext) \
+    ./noasan/memchr.$(objext): $(srcdir)/memchr.c $(INCDIR)/ansidecl.h
 	$(COMPILE.c) $(srcdir)/memchr.c $(OUTPUT_OPTION)
 
-./memcmp.$(objext): $(srcdir)/memcmp.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/memcmp.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/memcmp.c -o noasan/$@; \
-	else true; fi
+./memcmp.$(objext) \
+    ./pic/memcmp.$(objext) \
+    ./noasan/memcmp.$(objext): $(srcdir)/memcmp.c $(INCDIR)/ansidecl.h
 	$(COMPILE.c) $(srcdir)/memcmp.c $(OUTPUT_OPTION)
 
-./memcpy.$(objext): $(srcdir)/memcpy.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/memcpy.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/memcpy.c -o noasan/$@; \
-	else true; fi
+./memcpy.$(objext) \
+    ./pic/memcpy.$(objext) \
+    ./noasan/memcpy.$(objext): $(srcdir)/memcpy.c $(INCDIR)/ansidecl.h
 	$(COMPILE.c) $(srcdir)/memcpy.c $(OUTPUT_OPTION)
 
-./memmem.$(objext): $(srcdir)/memmem.c config.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/memmem.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/memmem.c -o noasan/$@; \
-	else true; fi
+./memmem.$(objext) \
+    ./pic/memmem.$(objext) \
+    ./noasan/memmem.$(objext): $(srcdir)/memmem.c config.h
 	$(COMPILE.c) $(srcdir)/memmem.c $(OUTPUT_OPTION)
 
-./memmove.$(objext): $(srcdir)/memmove.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/memmove.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/memmove.c -o noasan/$@; \
-	else true; fi
+./memmove.$(objext) \
+    ./pic/memmove.$(objext) \
+    ./noasan/memmove.$(objext): $(srcdir)/memmove.c $(INCDIR)/ansidecl.h
 	$(COMPILE.c) $(srcdir)/memmove.c $(OUTPUT_OPTION)
 
-./mempcpy.$(objext): $(srcdir)/mempcpy.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/mempcpy.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/mempcpy.c -o noasan/$@; \
-	else true; fi
+./mempcpy.$(objext) \
+    ./pic/mempcpy.$(objext) \
+    ./noasan/mempcpy.$(objext): $(srcdir)/mempcpy.c $(INCDIR)/ansidecl.h
 	$(COMPILE.c) $(srcdir)/mempcpy.c $(OUTPUT_OPTION)
 
-./memset.$(objext): $(srcdir)/memset.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/memset.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/memset.c -o noasan/$@; \
-	else true; fi
+./memset.$(objext) \
+    ./pic/memset.$(objext) \
+    ./noasan/memset.$(objext): $(srcdir)/memset.c $(INCDIR)/ansidecl.h
 	$(COMPILE.c) $(srcdir)/memset.c $(OUTPUT_OPTION)
 
-./mkstemps.$(objext): $(srcdir)/mkstemps.c config.h $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/mkstemps.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/mkstemps.c -o noasan/$@; \
-	else true; fi
+./mkstemps.$(objext) \
+    ./pic/mkstemps.$(objext) \
+    ./noasan/mkstemps.$(objext): $(srcdir)/mkstemps.c config.h \
+	$(INCDIR)/ansidecl.h
 	$(COMPILE.c) $(srcdir)/mkstemps.c $(OUTPUT_OPTION)
 
-./msdos.$(objext): $(srcdir)/msdos.c
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/msdos.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/msdos.c -o noasan/$@; \
-	else true; fi
+./msdos.$(objext) \
+    ./pic/msdos.$(objext) \
+    ./noasan/msdos.$(objext): $(srcdir)/msdos.c
 	$(COMPILE.c) $(srcdir)/msdos.c $(OUTPUT_OPTION)
 
-./objalloc.$(objext): $(srcdir)/objalloc.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/objalloc.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/objalloc.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/objalloc.c -o noasan/$@; \
-	else true; fi
+./objalloc.$(objext) \
+    ./pic/objalloc.$(objext) \
+    ./noasan/objalloc.$(objext): $(srcdir)/objalloc.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/objalloc.h
 	$(COMPILE.c) $(srcdir)/objalloc.c $(OUTPUT_OPTION)
 
-./obstack.$(objext): $(srcdir)/obstack.c config.h $(INCDIR)/obstack.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/obstack.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/obstack.c -o noasan/$@; \
-	else true; fi
+./obstack.$(objext) \
+    ./pic/obstack.$(objext) \
+    ./noasan/obstack.$(objext): $(srcdir)/obstack.c config.h \
+	$(INCDIR)/obstack.h
 	$(COMPILE.c) $(srcdir)/obstack.c $(OUTPUT_OPTION)
 
-./partition.$(objext): $(srcdir)/partition.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h $(INCDIR)/partition.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/partition.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/partition.c -o noasan/$@; \
-	else true; fi
+./partition.$(objext) \
+    ./pic/partition.$(objext) \
+    ./noasan/partition.$(objext): $(srcdir)/partition.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h $(INCDIR)/partition.h
 	$(COMPILE.c) $(srcdir)/partition.c $(OUTPUT_OPTION)
 
-./pex-common.$(objext): $(srcdir)/pex-common.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h $(srcdir)/pex-common.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/pex-common.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/pex-common.c -o noasan/$@; \
-	else true; fi
+./pex-common.$(objext) \
+    ./pic/pex-common.$(objext) \
+    ./noasan/pex-common.$(objext): $(srcdir)/pex-common.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h $(srcdir)/pex-common.h
 	$(COMPILE.c) $(srcdir)/pex-common.c $(OUTPUT_OPTION)
 
-./pex-djgpp.$(objext): $(srcdir)/pex-djgpp.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h $(srcdir)/pex-common.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/pex-djgpp.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/pex-djgpp.c -o noasan/$@; \
-	else true; fi
+./pex-djgpp.$(objext) \
+    ./pic/pex-djgpp.$(objext) \
+    ./noasan/pex-djgpp.$(objext): $(srcdir)/pex-djgpp.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h $(srcdir)/pex-common.h
 	$(COMPILE.c) $(srcdir)/pex-djgpp.c $(OUTPUT_OPTION)
 
-./pex-msdos.$(objext): $(srcdir)/pex-msdos.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h $(srcdir)/pex-common.h \
+./pex-msdos.$(objext) \
+    ./pic/pex-msdos.$(objext) \
+    ./noasan/pex-msdos.$(objext): $(srcdir)/pex-msdos.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h $(srcdir)/pex-common.h \
 	$(INCDIR)/safe-ctype.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/pex-msdos.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/pex-msdos.c -o noasan/$@; \
-	else true; fi
 	$(COMPILE.c) $(srcdir)/pex-msdos.c $(OUTPUT_OPTION)
 
-./pex-one.$(objext): $(srcdir)/pex-one.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/pex-one.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/pex-one.c -o noasan/$@; \
-	else true; fi
+./pex-one.$(objext) \
+    ./pic/pex-one.$(objext) \
+    ./noasan/pex-one.$(objext): $(srcdir)/pex-one.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
 	$(COMPILE.c) $(srcdir)/pex-one.c $(OUTPUT_OPTION)
 
-./pex-unix.$(objext): $(srcdir)/pex-unix.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h $(srcdir)/pex-common.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/pex-unix.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/pex-unix.c -o noasan/$@; \
-	else true; fi
+./pex-unix.$(objext) \
+    ./pic/pex-unix.$(objext) \
+    ./noasan/pex-unix.$(objext): $(srcdir)/pex-unix.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h $(srcdir)/pex-common.h
 	$(COMPILE.c) $(srcdir)/pex-unix.c $(OUTPUT_OPTION)
 
-./pex-win32.$(objext): $(srcdir)/pex-win32.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h $(srcdir)/pex-common.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/pex-win32.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/pex-win32.c -o noasan/$@; \
-	else true; fi
+./pex-win32.$(objext) \
+    ./pic/pex-win32.$(objext) \
+    ./noasan/pex-win32.$(objext): $(srcdir)/pex-win32.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h $(srcdir)/pex-common.h
 	$(COMPILE.c) $(srcdir)/pex-win32.c $(OUTPUT_OPTION)
 
-./pexecute.$(objext): $(srcdir)/pexecute.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/pexecute.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/pexecute.c -o noasan/$@; \
-	else true; fi
+./pexecute.$(objext) \
+    ./pic/pexecute.$(objext) \
+    ./noasan/pexecute.$(objext): $(srcdir)/pexecute.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
 	$(COMPILE.c) $(srcdir)/pexecute.c $(OUTPUT_OPTION)
 
-./physmem.$(objext): $(srcdir)/physmem.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/physmem.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/physmem.c -o noasan/$@; \
-	else true; fi
+./physmem.$(objext) \
+    ./pic/physmem.$(objext) \
+    ./noasan/physmem.$(objext): $(srcdir)/physmem.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
 	$(COMPILE.c) $(srcdir)/physmem.c $(OUTPUT_OPTION)
 
-./putenv.$(objext): $(srcdir)/putenv.c config.h $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/putenv.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/putenv.c -o noasan/$@; \
-	else true; fi
+./putenv.$(objext) \
+    ./pic/putenv.$(objext) \
+    ./noasan/putenv.$(objext): $(srcdir)/putenv.c config.h \
+	$(INCDIR)/ansidecl.h
 	$(COMPILE.c) $(srcdir)/putenv.c $(OUTPUT_OPTION)
 
-./random.$(objext): $(srcdir)/random.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/random.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/random.c -o noasan/$@; \
-	else true; fi
+./random.$(objext) \
+    ./pic/random.$(objext) \
+    ./noasan/random.$(objext): $(srcdir)/random.c $(INCDIR)/ansidecl.h
 	$(COMPILE.c) $(srcdir)/random.c $(OUTPUT_OPTION)
 
-./regex.$(objext): $(srcdir)/regex.c config.h $(INCDIR)/ansidecl.h \
+./regex.$(objext) \
+    ./pic/regex.$(objext) \
+    ./noasan/regex.$(objext): $(srcdir)/regex.c config.h $(INCDIR)/ansidecl.h \
 	$(INCDIR)/xregex.h $(INCDIR)/xregex2.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/regex.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/regex.c -o noasan/$@; \
-	else true; fi
 	$(COMPILE.c) $(srcdir)/regex.c $(OUTPUT_OPTION)
 
-./rename.$(objext): $(srcdir)/rename.c config.h $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/rename.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/rename.c -o noasan/$@; \
-	else true; fi
+./rename.$(objext) \
+    ./pic/rename.$(objext) \
+    ./noasan/rename.$(objext): $(srcdir)/rename.c config.h \
+	$(INCDIR)/ansidecl.h
 	$(COMPILE.c) $(srcdir)/rename.c $(OUTPUT_OPTION)
 
-./rindex.$(objext): $(srcdir)/rindex.c
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/rindex.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/rindex.c -o noasan/$@; \
-	else true; fi
+./rindex.$(objext) \
+    ./pic/rindex.$(objext) \
+    ./noasan/rindex.$(objext): $(srcdir)/rindex.c
 	$(COMPILE.c) $(srcdir)/rindex.c $(OUTPUT_OPTION)
 
-./safe-ctype.$(objext): $(srcdir)/safe-ctype.c $(INCDIR)/ansidecl.h \
+./safe-ctype.$(objext) \
+    ./pic/safe-ctype.$(objext) \
+    ./noasan/safe-ctype.$(objext): $(srcdir)/safe-ctype.c $(INCDIR)/ansidecl.h \
 	$(INCDIR)/safe-ctype.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/safe-ctype.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/safe-ctype.c -o noasan/$@; \
-	else true; fi
 	$(COMPILE.c) $(srcdir)/safe-ctype.c $(OUTPUT_OPTION)
 
-./setenv.$(objext): $(srcdir)/setenv.c config.h $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/setenv.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/setenv.c -o noasan/$@; \
-	else true; fi
+./setenv.$(objext) \
+    ./pic/setenv.$(objext) \
+    ./noasan/setenv.$(objext): $(srcdir)/setenv.c config.h \
+	$(INCDIR)/ansidecl.h
 	$(COMPILE.c) $(srcdir)/setenv.c $(OUTPUT_OPTION)
 
-./setproctitle.$(objext): $(srcdir)/setproctitle.c config.h $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/setproctitle.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/setproctitle.c -o noasan/$@; \
-	else true; fi
+./setproctitle.$(objext) \
+    ./pic/setproctitle.$(objext) \
+    ./noasan/setproctitle.$(objext): $(srcdir)/setproctitle.c config.h \
+	$(INCDIR)/ansidecl.h
 	$(COMPILE.c) $(srcdir)/setproctitle.c $(OUTPUT_OPTION)
 
-./sha1.$(objext): $(srcdir)/sha1.c config.h $(INCDIR)/ansidecl.h $(INCDIR)/sha1.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/sha1.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/sha1.c -o noasan/$@; \
-	else true; fi
+./sha1.$(objext) \
+    ./pic/sha1.$(objext) \
+    ./noasan/sha1.$(objext): $(srcdir)/sha1.c config.h $(INCDIR)/ansidecl.h \
+	$(INCDIR)/sha1.h
 	$(COMPILE.c) $(srcdir)/sha1.c $(OUTPUT_OPTION)
 
-./sigsetmask.$(objext): $(srcdir)/sigsetmask.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/sigsetmask.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/sigsetmask.c -o noasan/$@; \
-	else true; fi
+./sigsetmask.$(objext) \
+    ./pic/sigsetmask.$(objext) \
+    ./noasan/sigsetmask.$(objext): $(srcdir)/sigsetmask.c $(INCDIR)/ansidecl.h
 	$(COMPILE.c) $(srcdir)/sigsetmask.c $(OUTPUT_OPTION)
 
-./simple-object-coff.$(objext): $(srcdir)/simple-object-coff.c config.h \
-	$(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h \
+./simple-object-coff.$(objext) \
+    ./pic/simple-object-coff.$(objext) \
+    ./noasan/simple-object-coff.$(objext): $(srcdir)/simple-object-coff.c \
+	config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h \
 	$(srcdir)/simple-object-common.h $(INCDIR)/simple-object.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/simple-object-coff.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/simple-object-coff.c -o noasan/$@; \
-	else true; fi
 	$(COMPILE.c) $(srcdir)/simple-object-coff.c $(OUTPUT_OPTION)
 
-./simple-object-elf.$(objext): $(srcdir)/simple-object-elf.c config.h \
-	$(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h \
+./simple-object-elf.$(objext) \
+    ./pic/simple-object-elf.$(objext) \
+    ./noasan/simple-object-elf.$(objext): $(srcdir)/simple-object-elf.c \
+	config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h \
 	$(srcdir)/simple-object-common.h $(INCDIR)/simple-object.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/simple-object-elf.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/simple-object-elf.c -o noasan/$@; \
-	else true; fi
 	$(COMPILE.c) $(srcdir)/simple-object-elf.c $(OUTPUT_OPTION)
 
-./simple-object-mach-o.$(objext): $(srcdir)/simple-object-mach-o.c config.h \
-	$(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h \
+./simple-object-mach-o.$(objext) \
+    ./pic/simple-object-mach-o.$(objext) \
+    ./noasan/simple-object-mach-o.$(objext): $(srcdir)/simple-object-mach-o.c \
+	config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h \
 	$(srcdir)/simple-object-common.h $(INCDIR)/simple-object.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/simple-object-mach-o.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/simple-object-mach-o.c -o noasan/$@; \
-	else true; fi
 	$(COMPILE.c) $(srcdir)/simple-object-mach-o.c $(OUTPUT_OPTION)
 
-./simple-object-xcoff.$(objext): $(srcdir)/simple-object-xcoff.c config.h \
-	$(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h \
+./simple-object-xcoff.$(objext) \
+    ./pic/simple-object-xcoff.$(objext) \
+    ./noasan/simple-object-xcoff.$(objext): $(srcdir)/simple-object-xcoff.c \
+	config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h \
 	$(srcdir)/simple-object-common.h $(INCDIR)/simple-object.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/simple-object-xcoff.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/simple-object-xcoff.c -o noasan/$@; \
-	else true; fi
 	$(COMPILE.c) $(srcdir)/simple-object-xcoff.c $(OUTPUT_OPTION)
 
-./simple-object.$(objext): $(srcdir)/simple-object.c config.h \
+./simple-object.$(objext) \
+    ./pic/simple-object.$(objext) \
+    ./noasan/simple-object.$(objext): $(srcdir)/simple-object.c config.h \
 	$(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h \
 	$(srcdir)/simple-object-common.h $(INCDIR)/simple-object.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/simple-object.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/simple-object.c -o noasan/$@; \
-	else true; fi
 	$(COMPILE.c) $(srcdir)/simple-object.c $(OUTPUT_OPTION)
 
-./snprintf.$(objext): $(srcdir)/snprintf.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/snprintf.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/snprintf.c -o noasan/$@; \
-	else true; fi
+./snprintf.$(objext) \
+    ./pic/snprintf.$(objext) \
+    ./noasan/snprintf.$(objext): $(srcdir)/snprintf.c $(INCDIR)/ansidecl.h
 	$(COMPILE.c) $(srcdir)/snprintf.c $(OUTPUT_OPTION)
 
-./sort.$(objext): $(srcdir)/sort.c config.h $(INCDIR)/ansidecl.h \
+./sort.$(objext) \
+    ./pic/sort.$(objext) \
+    ./noasan/sort.$(objext): $(srcdir)/sort.c config.h $(INCDIR)/ansidecl.h \
 	$(INCDIR)/libiberty.h $(INCDIR)/sort.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/sort.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/sort.c -o noasan/$@; \
-	else true; fi
 	$(COMPILE.c) $(srcdir)/sort.c $(OUTPUT_OPTION)
 
-./spaces.$(objext): $(srcdir)/spaces.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/spaces.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/spaces.c -o noasan/$@; \
-	else true; fi
+./spaces.$(objext) \
+    ./pic/spaces.$(objext) \
+    ./noasan/spaces.$(objext): $(srcdir)/spaces.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
 	$(COMPILE.c) $(srcdir)/spaces.c $(OUTPUT_OPTION)
 
-./splay-tree.$(objext): $(srcdir)/splay-tree.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h $(INCDIR)/splay-tree.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/splay-tree.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/splay-tree.c -o noasan/$@; \
-	else true; fi
+./splay-tree.$(objext) \
+    ./pic/splay-tree.$(objext) \
+    ./noasan/splay-tree.$(objext): $(srcdir)/splay-tree.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h $(INCDIR)/splay-tree.h
 	$(COMPILE.c) $(srcdir)/splay-tree.c $(OUTPUT_OPTION)
 
-./stack-limit.$(objext): $(srcdir)/stack-limit.c config.h $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/stack-limit.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/stack-limit.c -o noasan/$@; \
-	else true; fi
+./stack-limit.$(objext) \
+    ./pic/stack-limit.$(objext) \
+    ./noasan/stack-limit.$(objext): $(srcdir)/stack-limit.c config.h \
+	$(INCDIR)/ansidecl.h
 	$(COMPILE.c) $(srcdir)/stack-limit.c $(OUTPUT_OPTION)
 
-./stpcpy.$(objext): $(srcdir)/stpcpy.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/stpcpy.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/stpcpy.c -o noasan/$@; \
-	else true; fi
+./stpcpy.$(objext) \
+    ./pic/stpcpy.$(objext) \
+    ./noasan/stpcpy.$(objext): $(srcdir)/stpcpy.c $(INCDIR)/ansidecl.h
 	$(COMPILE.c) $(srcdir)/stpcpy.c $(OUTPUT_OPTION)
 
-./stpncpy.$(objext): $(srcdir)/stpncpy.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/stpncpy.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/stpncpy.c -o noasan/$@; \
-	else true; fi
+./stpncpy.$(objext) \
+    ./pic/stpncpy.$(objext) \
+    ./noasan/stpncpy.$(objext): $(srcdir)/stpncpy.c $(INCDIR)/ansidecl.h
 	$(COMPILE.c) $(srcdir)/stpncpy.c $(OUTPUT_OPTION)
 
-./strcasecmp.$(objext): $(srcdir)/strcasecmp.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strcasecmp.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/strcasecmp.c -o noasan/$@; \
-	else true; fi
+./strcasecmp.$(objext) \
+    ./pic/strcasecmp.$(objext) \
+    ./noasan/strcasecmp.$(objext): $(srcdir)/strcasecmp.c $(INCDIR)/ansidecl.h
 	$(COMPILE.c) $(srcdir)/strcasecmp.c $(OUTPUT_OPTION)
 
-./strchr.$(objext): $(srcdir)/strchr.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strchr.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/strchr.c -o noasan/$@; \
-	else true; fi
+./strchr.$(objext) \
+    ./pic/strchr.$(objext) \
+    ./noasan/strchr.$(objext): $(srcdir)/strchr.c $(INCDIR)/ansidecl.h
 	$(COMPILE.c) $(srcdir)/strchr.c $(OUTPUT_OPTION)
 
-./strdup.$(objext): $(srcdir)/strdup.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strdup.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/strdup.c -o noasan/$@; \
-	else true; fi
+./strdup.$(objext) \
+    ./pic/strdup.$(objext) \
+    ./noasan/strdup.$(objext): $(srcdir)/strdup.c $(INCDIR)/ansidecl.h
 	$(COMPILE.c) $(srcdir)/strdup.c $(OUTPUT_OPTION)
 
-./strerror.$(objext): $(srcdir)/strerror.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strerror.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/strerror.c -o noasan/$@; \
-	else true; fi
+./strerror.$(objext) \
+    ./pic/strerror.$(objext) \
+    ./noasan/strerror.$(objext): $(srcdir)/strerror.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
 	$(COMPILE.c) $(srcdir)/strerror.c $(OUTPUT_OPTION)
 
-./strncasecmp.$(objext): $(srcdir)/strncasecmp.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strncasecmp.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/strncasecmp.c -o noasan/$@; \
-	else true; fi
+./strncasecmp.$(objext) \
+    ./pic/strncasecmp.$(objext) \
+    ./noasan/strncasecmp.$(objext): $(srcdir)/strncasecmp.c \
+	$(INCDIR)/ansidecl.h
 	$(COMPILE.c) $(srcdir)/strncasecmp.c $(OUTPUT_OPTION)
 
-./strncmp.$(objext): $(srcdir)/strncmp.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strncmp.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/strncmp.c -o noasan/$@; \
-	else true; fi
+./strncmp.$(objext) \
+    ./pic/strncmp.$(objext) \
+    ./noasan/strncmp.$(objext): $(srcdir)/strncmp.c $(INCDIR)/ansidecl.h
 	$(COMPILE.c) $(srcdir)/strncmp.c $(OUTPUT_OPTION)
 
-./strndup.$(objext): $(srcdir)/strndup.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strndup.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/strndup.c -o noasan/$@; \
-	else true; fi
+./strndup.$(objext) \
+    ./pic/strndup.$(objext) \
+    ./noasan/strndup.$(objext): $(srcdir)/strndup.c $(INCDIR)/ansidecl.h
 	$(COMPILE.c) $(srcdir)/strndup.c $(OUTPUT_OPTION)
 
-./strnlen.$(objext): $(srcdir)/strnlen.c config.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strnlen.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/strnlen.c -o noasan/$@; \
-	else true; fi
+./strnlen.$(objext) \
+    ./pic/strnlen.$(objext) \
+    ./noasan/strnlen.$(objext): $(srcdir)/strnlen.c config.h
 	$(COMPILE.c) $(srcdir)/strnlen.c $(OUTPUT_OPTION)
 
-./strrchr.$(objext): $(srcdir)/strrchr.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strrchr.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/strrchr.c -o noasan/$@; \
-	else true; fi
+./strrchr.$(objext) \
+    ./pic/strrchr.$(objext) \
+    ./noasan/strrchr.$(objext): $(srcdir)/strrchr.c $(INCDIR)/ansidecl.h
 	$(COMPILE.c) $(srcdir)/strrchr.c $(OUTPUT_OPTION)
 
-./strsignal.$(objext): $(srcdir)/strsignal.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strsignal.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/strsignal.c -o noasan/$@; \
-	else true; fi
+./strsignal.$(objext) \
+    ./pic/strsignal.$(objext) \
+    ./noasan/strsignal.$(objext): $(srcdir)/strsignal.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
 	$(COMPILE.c) $(srcdir)/strsignal.c $(OUTPUT_OPTION)
 
-./strstr.$(objext): $(srcdir)/strstr.c
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strstr.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/strstr.c -o noasan/$@; \
-	else true; fi
+./strstr.$(objext) \
+    ./pic/strstr.$(objext) \
+    ./noasan/strstr.$(objext): $(srcdir)/strstr.c
 	$(COMPILE.c) $(srcdir)/strstr.c $(OUTPUT_OPTION)
 
-./strtod.$(objext): $(srcdir)/strtod.c $(INCDIR)/ansidecl.h \
+./strtod.$(objext) \
+    ./pic/strtod.$(objext) \
+    ./noasan/strtod.$(objext): $(srcdir)/strtod.c $(INCDIR)/ansidecl.h \
 	$(INCDIR)/safe-ctype.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strtod.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/strtod.c -o noasan/$@; \
-	else true; fi
 	$(COMPILE.c) $(srcdir)/strtod.c $(OUTPUT_OPTION)
 
-./strtol.$(objext): $(srcdir)/strtol.c config.h $(INCDIR)/safe-ctype.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strtol.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/strtol.c -o noasan/$@; \
-	else true; fi
+./strtol.$(objext) \
+    ./pic/strtol.$(objext) \
+    ./noasan/strtol.$(objext): $(srcdir)/strtol.c config.h \
+	$(INCDIR)/safe-ctype.h
 	$(COMPILE.c) $(srcdir)/strtol.c $(OUTPUT_OPTION)
 
-./strtoll.$(objext): $(srcdir)/strtoll.c config.h $(INCDIR)/safe-ctype.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strtoll.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/strtoll.c -o noasan/$@; \
-	else true; fi
+./strtoll.$(objext) \
+    ./pic/strtoll.$(objext) \
+    ./noasan/strtoll.$(objext): $(srcdir)/strtoll.c config.h \
+	$(INCDIR)/safe-ctype.h
 	$(COMPILE.c) $(srcdir)/strtoll.c $(OUTPUT_OPTION)
 
-./strtoul.$(objext): $(srcdir)/strtoul.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/safe-ctype.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strtoul.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/strtoul.c -o noasan/$@; \
-	else true; fi
+./strtoul.$(objext) \
+    ./pic/strtoul.$(objext) \
+    ./noasan/strtoul.$(objext): $(srcdir)/strtoul.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/safe-ctype.h
 	$(COMPILE.c) $(srcdir)/strtoul.c $(OUTPUT_OPTION)
 
-./strtoull.$(objext): $(srcdir)/strtoull.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/safe-ctype.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strtoull.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/strtoull.c -o noasan/$@; \
-	else true; fi
+./strtoull.$(objext) \
+    ./pic/strtoull.$(objext) \
+    ./noasan/strtoull.$(objext): $(srcdir)/strtoull.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/safe-ctype.h
 	$(COMPILE.c) $(srcdir)/strtoull.c $(OUTPUT_OPTION)
 
-./strverscmp.$(objext): $(srcdir)/strverscmp.c $(INCDIR)/ansidecl.h \
+./strverscmp.$(objext) \
+    ./pic/strverscmp.$(objext) \
+    ./noasan/strverscmp.$(objext): $(srcdir)/strverscmp.c $(INCDIR)/ansidecl.h \
 	$(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strverscmp.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/strverscmp.c -o noasan/$@; \
-	else true; fi
 	$(COMPILE.c) $(srcdir)/strverscmp.c $(OUTPUT_OPTION)
 
-./timeval-utils.$(objext): $(srcdir)/timeval-utils.c config.h \
+./timeval-utils.$(objext) \
+    ./pic/timeval-utils.$(objext) \
+    ./noasan/timeval-utils.$(objext): $(srcdir)/timeval-utils.c config.h \
 	$(INCDIR)/timeval-utils.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/timeval-utils.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/timeval-utils.c -o noasan/$@; \
-	else true; fi
 	$(COMPILE.c) $(srcdir)/timeval-utils.c $(OUTPUT_OPTION)
 
-./tmpnam.$(objext): $(srcdir)/tmpnam.c
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/tmpnam.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/tmpnam.c -o noasan/$@; \
-	else true; fi
+./tmpnam.$(objext) \
+    ./pic/tmpnam.$(objext) \
+    ./noasan/tmpnam.$(objext): $(srcdir)/tmpnam.c
 	$(COMPILE.c) $(srcdir)/tmpnam.c $(OUTPUT_OPTION)
 
-./unlink-if-ordinary.$(objext): $(srcdir)/unlink-if-ordinary.c config.h \
-	$(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/unlink-if-ordinary.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/unlink-if-ordinary.c -o noasan/$@; \
-	else true; fi
+./unlink-if-ordinary.$(objext) \
+    ./pic/unlink-if-ordinary.$(objext) \
+    ./noasan/unlink-if-ordinary.$(objext): $(srcdir)/unlink-if-ordinary.c \
+	config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
 	$(COMPILE.c) $(srcdir)/unlink-if-ordinary.c $(OUTPUT_OPTION)
 
-./vasprintf.$(objext): $(srcdir)/vasprintf.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h $(srcdir)/vprintf-support.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/vasprintf.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/vasprintf.c -o noasan/$@; \
-	else true; fi
+./vasprintf.$(objext) \
+    ./pic/vasprintf.$(objext) \
+    ./noasan/vasprintf.$(objext): $(srcdir)/vasprintf.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h \
+	$(srcdir)/vprintf-support.h
 	$(COMPILE.c) $(srcdir)/vasprintf.c $(OUTPUT_OPTION)
 
-./vfork.$(objext): $(srcdir)/vfork.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/vfork.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/vfork.c -o noasan/$@; \
-	else true; fi
+./vfork.$(objext) \
+    ./pic/vfork.$(objext) \
+    ./noasan/vfork.$(objext): $(srcdir)/vfork.c $(INCDIR)/ansidecl.h
 	$(COMPILE.c) $(srcdir)/vfork.c $(OUTPUT_OPTION)
 
-./vfprintf.$(objext): $(srcdir)/vfprintf.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/vfprintf.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/vfprintf.c -o noasan/$@; \
-	else true; fi
+./vfprintf.$(objext) \
+    ./pic/vfprintf.$(objext) \
+    ./noasan/vfprintf.$(objext): $(srcdir)/vfprintf.c $(INCDIR)/ansidecl.h
 	$(COMPILE.c) $(srcdir)/vfprintf.c $(OUTPUT_OPTION)
 
-./vprintf-support.$(objext): $(srcdir)/vprintf-support.c config.h \
+./vprintf-support.$(objext) \
+    ./pic/vprintf-support.$(objext) \
+    ./noasan/vprintf-support.$(objext): $(srcdir)/vprintf-support.c config.h \
 	$(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/vprintf-support.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/vprintf-support.c -o noasan/$@; \
-	else true; fi
 	$(COMPILE.c) $(srcdir)/vprintf-support.c $(OUTPUT_OPTION)
 
-./vprintf.$(objext): $(srcdir)/vprintf.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/vprintf.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/vprintf.c -o noasan/$@; \
-	else true; fi
+./vprintf.$(objext) \
+    ./pic/vprintf.$(objext) \
+    ./noasan/vprintf.$(objext): $(srcdir)/vprintf.c $(INCDIR)/ansidecl.h
 	$(COMPILE.c) $(srcdir)/vprintf.c $(OUTPUT_OPTION)
 
-./vsnprintf.$(objext): $(srcdir)/vsnprintf.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/vsnprintf.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/vsnprintf.c -o noasan/$@; \
-	else true; fi
+./vsnprintf.$(objext) \
+    ./pic/vsnprintf.$(objext) \
+    ./noasan/vsnprintf.$(objext): $(srcdir)/vsnprintf.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
 	$(COMPILE.c) $(srcdir)/vsnprintf.c $(OUTPUT_OPTION)
 
-./vsprintf.$(objext): $(srcdir)/vsprintf.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/vsprintf.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/vsprintf.c -o noasan/$@; \
-	else true; fi
+./vsprintf.$(objext) \
+    ./pic/vsprintf.$(objext) \
+    ./noasan/vsprintf.$(objext): $(srcdir)/vsprintf.c $(INCDIR)/ansidecl.h
 	$(COMPILE.c) $(srcdir)/vsprintf.c $(OUTPUT_OPTION)
 
-./waitpid.$(objext): $(srcdir)/waitpid.c config.h $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/waitpid.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/waitpid.c -o noasan/$@; \
-	else true; fi
+./waitpid.$(objext) \
+    ./pic/waitpid.$(objext) \
+    ./noasan/waitpid.$(objext): $(srcdir)/waitpid.c config.h \
+	$(INCDIR)/ansidecl.h
 	$(COMPILE.c) $(srcdir)/waitpid.c $(OUTPUT_OPTION)
 
-./xasprintf.$(objext): $(srcdir)/xasprintf.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/xasprintf.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/xasprintf.c -o noasan/$@; \
-	else true; fi
+./xasprintf.$(objext) \
+    ./pic/xasprintf.$(objext) \
+    ./noasan/xasprintf.$(objext): $(srcdir)/xasprintf.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
 	$(COMPILE.c) $(srcdir)/xasprintf.c $(OUTPUT_OPTION)
 
-./xatexit.$(objext): $(srcdir)/xatexit.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/xatexit.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/xatexit.c -o noasan/$@; \
-	else true; fi
+./xatexit.$(objext) \
+    ./pic/xatexit.$(objext) \
+    ./noasan/xatexit.$(objext): $(srcdir)/xatexit.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
 	$(COMPILE.c) $(srcdir)/xatexit.c $(OUTPUT_OPTION)
 
-./xexit.$(objext): $(srcdir)/xexit.c config.h $(INCDIR)/ansidecl.h \
+./xexit.$(objext) \
+    ./pic/xexit.$(objext) \
+    ./noasan/xexit.$(objext): $(srcdir)/xexit.c config.h $(INCDIR)/ansidecl.h \
 	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/xexit.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/xexit.c -o noasan/$@; \
-	else true; fi
 	$(COMPILE.c) $(srcdir)/xexit.c $(OUTPUT_OPTION)
 
-./xmalloc.$(objext): $(srcdir)/xmalloc.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/xmalloc.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/xmalloc.c -o noasan/$@; \
-	else true; fi
+./xmalloc.$(objext) \
+    ./pic/xmalloc.$(objext) \
+    ./noasan/xmalloc.$(objext): $(srcdir)/xmalloc.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
 	$(COMPILE.c) $(srcdir)/xmalloc.c $(OUTPUT_OPTION)
 
-./xmemdup.$(objext): $(srcdir)/xmemdup.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/xmemdup.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/xmemdup.c -o noasan/$@; \
-	else true; fi
+./xmemdup.$(objext) \
+    ./pic/xmemdup.$(objext) \
+    ./noasan/xmemdup.$(objext): $(srcdir)/xmemdup.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
 	$(COMPILE.c) $(srcdir)/xmemdup.c $(OUTPUT_OPTION)
 
-./xstrdup.$(objext): $(srcdir)/xstrdup.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/xstrdup.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/xstrdup.c -o noasan/$@; \
-	else true; fi
+./xstrdup.$(objext) \
+    ./pic/xstrdup.$(objext) \
+    ./noasan/xstrdup.$(objext): $(srcdir)/xstrdup.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
 	$(COMPILE.c) $(srcdir)/xstrdup.c $(OUTPUT_OPTION)
 
-./xstrerror.$(objext): $(srcdir)/xstrerror.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/xstrerror.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/xstrerror.c -o noasan/$@; \
-	else true; fi
+./xstrerror.$(objext) \
+    ./pic/xstrerror.$(objext) \
+    ./noasan/xstrerror.$(objext): $(srcdir)/xstrerror.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
 	$(COMPILE.c) $(srcdir)/xstrerror.c $(OUTPUT_OPTION)
 
-./xstrndup.$(objext): $(srcdir)/xstrndup.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/xstrndup.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/xstrndup.c -o noasan/$@; \
-	else true; fi
+./xstrndup.$(objext) \
+    ./pic/xstrndup.$(objext) \
+    ./noasan/xstrndup.$(objext): $(srcdir)/xstrndup.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
 	$(COMPILE.c) $(srcdir)/xstrndup.c $(OUTPUT_OPTION)
 
-./xvasprintf.$(objext): $(srcdir)/xvasprintf.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h $(srcdir)/vprintf-support.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/xvasprintf.c -o pic/$@; \
-	else true; fi
-	if [ x"$(NOASANFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/xvasprintf.c -o noasan/$@; \
-	else true; fi
+./xvasprintf.$(objext) \
+    ./pic/xvasprintf.$(objext) \
+    ./noasan/xvasprintf.$(objext): $(srcdir)/xvasprintf.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h \
+	$(srcdir)/vprintf-support.h
 	$(COMPILE.c) $(srcdir)/xvasprintf.c $(OUTPUT_OPTION)
+
diff --git a/libiberty/maint-tool b/libiberty/maint-tool
index 1c94cdc..30e4bee 100644
--- a/libiberty/maint-tool
+++ b/libiberty/maint-tool
@@ -212,13 +212,7 @@ sub locals_first {
 
 sub deps {
 
-    $crule  = "\tif [ x\"\$(PICFLAG)\" != x ]; then \\\n";
-    $crule .= "\t  \$(COMPILE.c) \$(PICFLAG) \$< -o pic/\$@; \\\n";
-    $crule .= "\telse true; fi\n";
-    $crule .= "\tif [ x\"\$(NOASANFLAG)\" != x ]; then \\\n";
-    $crule .= "\t  \$(COMPILE.c) \$(PICFLAG) \$(NOASANFLAG) \$< -o noasan/\$@; \\\n";
-    $crule .= "\telse true; fi\n";
-    $crule .= "\t\$(COMPILE.c) \$< \$(OUTPUT_OPTION)\n";
+    $crule  = "\t\$(COMPILE.c) \$< \$(OUTPUT_OPTION)\n";
     $crule .= "\n";
 
     $incdir = shift @ARGV;
@@ -268,13 +262,14 @@ sub deps {
 	    @deps = sort { &locals_first($a,$b) } keys %scanned;
 	    $obj = $f;
 	    $obj =~ s/\.c$/.\$(objext)/;
-	    $obj = "./$obj:";
+	    $obj = "./$obj \\\n    ./pic/$obj \\\n    ./noasan/$obj:";
 	    if ($#deps >= 0) {
 		print OUT "$obj \$(srcdir)/$f";
-		$len = length("$obj $f");
+                $len = length((split(/\n/, $obj))[-1])
+		       + length("\$(srcdir)/$f");
 		for $dt (@deps) {
 		    $d = $mine{$dt};
-		    if ($len + length($d) > 70) {
+		    if ($len + length($d) > 76) {
 			printf OUT " \\\n\t$d";
 			$len = 8 + length($d);
 		    } else {
