#
# Makefile
#   Copyright (C) 1990, 91-99, 2000, 2001, 2002, 2003, 2004, 2005
#   Free Software Foundation
#
# This file is part of the libiberty library.
# Libiberty is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# Libiberty is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Library General Public License for more details.
#
# You should have received a copy of the GNU Library General Public
# License along with libiberty; see the file COPYING.LIB.  If not,
# write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
# Boston, MA 02110-1301, USA.
#

# This file was written by K. Richard Pixley <rich@cygnus.com>.

#
# Makefile for libiberty directory
#

libiberty_topdir = @libiberty_topdir@
srcdir = @srcdir@

prefix = @prefix@

exec_prefix = @exec_prefix@
bindir = @bindir@
libdir = @libdir@
includedir = @includedir@
target_header_dir = @target_header_dir@

SHELL = @SHELL@

# Multilib support variables.
MULTISRCTOP =
MULTIBUILDTOP =
MULTIDIRS =
MULTISUBDIR =
MULTIDO = true
MULTICLEAN = true

INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
mkinstalldirs = $(SHELL) $(libiberty_topdir)/mkinstalldirs

# Some compilers can't handle cc -c blah.c -o foo/blah.o.
OUTPUT_OPTION = @OUTPUT_OPTION@

AR = @AR@
AR_FLAGS = rc

CC = @CC@
CFLAGS = @CFLAGS@
LIBCFLAGS = $(CFLAGS)
RANLIB = @RANLIB@
MAKEINFO = @MAKEINFO@
PERL = @PERL@

PICFLAG =

MAKEOVERRIDES =

TARGETLIB = ./libiberty.a
TESTLIB = ./testlib.a

LIBOBJS = @LIBOBJS@

# A configuration can specify extra .o files that should be included,
# even if they are in libc. (Perhaps the libc version is buggy.)
EXTRA_OFILES = 

# Flags to pass to a recursive make.
FLAGS_TO_PASS = \
	"AR=$(AR)" \
	"AR_FLAGS=$(AR_FLAGS)" \
	"CC=$(CC)" \
	"CFLAGS=$(CFLAGS)" \
	"DESTDIR=$(DESTDIR)" \
	"LIBCFLAGS=$(LIBCFLAGS)" \
	"EXTRA_OFILES=$(EXTRA_OFILES)" \
	"HDEFINES=$(HDEFINES)" \
	"INSTALL=$(INSTALL)" \
	"INSTALL_DATA=$(INSTALL_DATA)" \
	"INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
	"LDFLAGS=$(LDFLAGS)" \
	"LOADLIBES=$(LOADLIBES)" \
	"RANLIB=$(RANLIB)" \
	"SHELL=$(SHELL)" \
	"prefix=$(prefix)" \
	"exec_prefix=$(exec_prefix)" \
	"libdir=$(libdir)" \
	"libsubdir=$(libsubdir)" \
	"tooldir=$(tooldir)"

# Subdirectories to recurse into. We need to override this during cleaning
SUBDIRS = testsuite

# FIXME: add @BUILD_INFO@ once we're sure it works for everyone.
all: stamp-picdir $(TARGETLIB) needed-list required-list all-subdir
	@: $(MAKE) ; exec $(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=all

.PHONY: check installcheck
check: check-subdir
installcheck: installcheck-subdir

@host_makefile_frag@

INCDIR=$(srcdir)/$(MULTISRCTOP)../include

COMPILE.c = $(CC) -c @DEFS@ $(LIBCFLAGS) -I. -I$(INCDIR) $(HDEFINES) @ac_libiberty_warn_cflags@

# Just to make sure we don't use a built-in rule with VPATH
.c.o:
	false

# NOTE: If you add new files to the library, add them to this list
# (alphabetical), and add them to REQUIRED_OFILES, or
# CONFIGURED_OFILES and funcs in configure.ac.  Also run "make maint-deps"
# to build the new rules.
CFILES = alloca.c argv.c asprintf.c atexit.c				\
	basename.c bcmp.c bcopy.c bsearch.c bzero.c			\
	calloc.c choose-temp.c clock.c concat.c cp-demangle.c		\
	 cp-demint.c cplus-dem.c					\
	dyn-string.c							\
	fdmatch.c ffs.c fibheap.c floatformat.c fnmatch.c		\
	 fopen_unlocked.c						\
	getcwd.c getopt.c getopt1.c getpagesize.c getpwd.c getruntime.c	\
         gettimeofday.c                                                 \
	hashtab.c hex.c							\
	index.c insque.c						\
	lbasename.c							\
	lrealpath.c							\
	make-relative-prefix.c						\
	make-temp-file.c md5.c memchr.c memcmp.c memcpy.c memmove.c	\
	 mempcpy.c memset.c mkstemps.c					\
	objalloc.c obstack.c						\
	partition.c pexecute.c						\
	 pex-common.c pex-djgpp.c pex-msdos.c pex-one.c			\
	 pex-unix.c pex-win32.c						\
         physmem.c putenv.c						\
	random.c regex.c rename.c rindex.c				\
	safe-ctype.c setenv.c sigsetmask.c snprintf.c sort.c spaces.c	\
	 splay-tree.c stpcpy.c stpncpy.c strcasecmp.c strchr.c strdup.c	\
	 strerror.c strncasecmp.c strncmp.c strrchr.c strsignal.c	\
	 strstr.c strtod.c strtol.c strtoul.c strndup.c	strverscmp.c	\
	ternary.c tmpnam.c						\
	unlink-if-ordinary.c						\
	vasprintf.c vfork.c vfprintf.c vprintf.c vsnprintf.c vsprintf.c	\
	waitpid.c							\
	xatexit.c xexit.c xmalloc.c xmemdup.c xstrdup.c xstrerror.c	\
	 xstrndup.c

# These are always included in the library.  The first four are listed
# first and by compile time to optimize parallel builds.
REQUIRED_OFILES = ./regex.o ./cplus-dem.o ./cp-demangle.o ./md5.o	\
	./alloca.o ./argv.o						\
	./choose-temp.o ./concat.o ./cp-demint.o			\
	./dyn-string.o							\
	./fdmatch.o ./fibheap.o ./floatformat.o ./fnmatch.o		\
	 ./fopen_unlocked.o						\
	./getopt.o ./getopt1.o ./getpwd.o ./getruntime.o		\
	./hashtab.o ./hex.o						\
	./lbasename.o ./lrealpath.o					\
	./make-relative-prefix.o ./make-temp-file.o			\
	./objalloc.o ./obstack.o					\
	./partition.o ./pexecute.o ./physmem.o				\
	./pex-common.o ./pex-one.o @pexecute@				\
	./safe-ctype.o ./sort.o ./spaces.o ./splay-tree.o ./strerror.o	\
	 ./strsignal.o							\
	./ternary.o							\
	./unlink-if-ordinary.o						\
	./xatexit.o ./xexit.o ./xmalloc.o ./xmemdup.o ./xstrdup.o	\
	 ./xstrerror.o ./xstrndup.o

# These are all the objects that configure may add to the library via
# $funcs or EXTRA_OFILES.  This list exists here only for "make
# maint-missing" and "make check".
CONFIGURED_OFILES = ./asprintf.o ./atexit.o				\
	./basename.o ./bcmp.o ./bcopy.o ./bsearch.o ./bzero.o		\
	./calloc.o ./clock.o ./copysign.o				\
	./_doprnt.o							\
	./ffs.o								\
	./getcwd.o ./getpagesize.o ./gettimeofday.o			\
	./index.o ./insque.o						\
	./memchr.o ./memcmp.o ./memcpy.o ./memmove.o ./mempcpy.o	\
	 ./memset.o ./mkstemps.o					\
	./pex-djgpp.o ./pex-msdos.o					\
	 ./pex-unix.o ./pex-win32.o					\
	 ./putenv.o							\
	./random.o ./rename.o ./rindex.o				\
	./setenv.o ./sigsetmask.o ./snprintf.o ./stpcpy.o ./stpncpy.o	\
	 ./strcasecmp.o ./strchr.o ./strdup.o ./strncasecmp.o		\
	 ./strncmp.o ./strndup.o ./strrchr.o ./strstr.o			\
	 ./strtod.o ./strtol.o ./strtoul.o ./strverscmp.o		\
	./tmpnam.o							\
	./vasprintf.o ./vfork.o ./vfprintf.o ./vprintf.o ./vsnprintf.o	\
	 ./vsprintf.o							\
	./waitpid.o

# These files are installed if the library has been configured to do so.
INSTALLED_HEADERS =                                                     \
	$(INCDIR)/ansidecl.h                                            \
	$(INCDIR)/demangle.h                                            \
	$(INCDIR)/dyn-string.h                                          \
	$(INCDIR)/fibheap.h                                             \
	$(INCDIR)/floatformat.h                                         \
	$(INCDIR)/hashtab.h                                             \
	$(INCDIR)/libiberty.h                                           \
	$(INCDIR)/objalloc.h                                            \
	$(INCDIR)/partition.h                                           \
	$(INCDIR)/safe-ctype.h                                          \
	$(INCDIR)/sort.h                                                \
	$(INCDIR)/splay-tree.h                                          \
	$(INCDIR)/ternary.h

$(TARGETLIB): $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS)
	-rm -f $(TARGETLIB) pic/$(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

$(TESTLIB): $(REQUIRED_OFILES) $(CONFIGURED_OFILES)
	-rm -f $(TESTLIB)
	$(AR) $(AR_FLAGS) $(TESTLIB) \
	  $(REQUIRED_OFILES) $(CONFIGURED_OFILES)
	$(RANLIB) $(TESTLIB)

info: libiberty.info info-subdir
install-info: install-info-subdir
clean-info: clean-info-subdir
dvi: libiberty.dvi dvi-subdir
html: libiberty.html

TEXISRC = \
	$(srcdir)/libiberty.texi \
	$(srcdir)/copying-lib.texi \
	$(srcdir)/obstacks.texi \
	$(srcdir)/functions.texi

# Additional files that have texi snippets that need to be collected
# and sorted.  Some are here because the sources are imported from
# elsewhere.  Others represent headers in ../include.
TEXIFILES = fnmatch.txh pexecute.txh

libiberty.info : $(srcdir)/libiberty.texi $(TEXISRC)
	$(MAKEINFO) -I$(srcdir) $(srcdir)/libiberty.texi

libiberty.dvi : $(srcdir)/libiberty.texi $(TEXISRC)
	texi2dvi $(srcdir)/libiberty.texi

libiberty.html : $(srcdir)/libiberty.texi $(TEXISRC)
	$(MAKEINFO) --no-split --html -I$(srcdir) -o $@ $<

@MAINT@$(srcdir)/functions.texi : stamp-functions
@MAINT@	@true

@MAINT@stamp-functions : $(CFILES:%=$(srcdir)/%) $(TEXIFILES:%=$(srcdir)/%) $(srcdir)/gather-docs Makefile
@MAINT@@HAVE_PERL@	$(PERL) $(srcdir)/gather-docs $(srcdir) $(srcdir)/functions.texi $(CFILES) $(TEXIFILES)
@MAINT@	echo stamp > stamp-functions

INSTALL_DEST = @INSTALL_DEST@
install: install_to_$(INSTALL_DEST) install-subdir

install_to_libdir: all
	${mkinstalldirs} $(DESTDIR)$(libdir)$(MULTISUBDIR)
	$(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(libdir)$(MULTISUBDIR)/$(TARGETLIB)n
	( cd $(DESTDIR)$(libdir)$(MULTISUBDIR) ; chmod 644 $(TARGETLIB)n ;$(RANLIB) $(TARGETLIB)n )
	mv -f $(DESTDIR)$(libdir)$(MULTISUBDIR)/$(TARGETLIB)n $(DESTDIR)$(libdir)$(MULTISUBDIR)/$(TARGETLIB)
	if test -n "${target_header_dir}"; then \
	  case "${target_header_dir}" in \
	    /*)    thd=${target_header_dir};; \
	    *)     thd=${includedir}${MULTISUBDIR}/${target_header_dir};; \
	  esac; \
	  ${mkinstalldirs} $(DESTDIR)$${thd}; \
	  for h in ${INSTALLED_HEADERS}; do \
	    ${INSTALL_DATA} $$h $(DESTDIR)$${thd}; \
	  done; \
	fi
	@$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=install

# This is tricky.  Even though CC in the Makefile contains
# multilib-specific flags, it's overridden by FLAGS_TO_PASS from the
# default multilib, so we have to take LIBCFLAGS into account as well,
# since it will be passed the multilib flags.
MULTIOSDIR = `$(CC) $(LIBCFLAGS) -print-multi-os-directory`
install_to_tooldir: all
	${mkinstalldirs} $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR)
	$(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR)/$(TARGETLIB)n
	( cd $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR) ; chmod 644 $(TARGETLIB)n; $(RANLIB) $(TARGETLIB)n )
	mv -f $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR)/$(TARGETLIB)n $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR)/$(TARGETLIB)
	@$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=install

# needed-list is used by libstdc++.  NEEDED is the list of functions
# to include there.  Do not add anything LGPL to this list; libstdc++
# can't use anything encumbering.
NEEDED = atexit calloc memchr memcmp memcpy memmove memset rename strchr \
	 strerror strncmp strrchr strstr strtol strtoul tmpnam vfprintf vprintf \
	 vfork waitpid bcmp bcopy bzero
needed-list: Makefile
	rm -f needed-list; touch needed-list; \
	for f in $(NEEDED); do \
	  for g in $(LIBOBJS) $(EXTRA_OFILES); do \
	    case "$$g" in \
	      *$$f*) echo $$g >> needed-list ;; \
	    esac; \
	  done; \
	done

# required-list was used when building a shared bfd/opcodes/libiberty
# library.  I don't know if it used by anything currently.
required-list: Makefile
	echo $(REQUIRED_OFILES) > required-list

stamp-picdir:
	if [ x"$(PICFLAG)" != x ] && [ ! -d pic ]; then \
	  mkdir pic; \
	else true; fi
	touch stamp-picdir

.PHONY: all etags tags ls clean stage1 stage2

etags tags: TAGS etags-subdir

TAGS: $(CFILES)
	etags `for i in $(CFILES); do echo $(srcdir)/$$i ; done`

# The standalone demangler (c++filt) has been moved to binutils.
demangle:
	@echo "The standalone demangler, now named c++filt, is now"
	@echo "a part of binutils."
	@false

ls:
	@echo Makefile $(CFILES)

# Various targets for maintainers.

maint-missing :
	@$(PERL) $(srcdir)/maint-tool -s $(srcdir) missing $(CFILES) $(REQUIRED_OFILES) $(CONFIGURED_OFILES)

maint-buildall : $(REQUIRED_OFILES) $(CONFIGURED_OFILES)
	@true

maint-undoc : $(srcdir)/functions.texi
	@$(PERL) $(srcdir)/maint-tool -s $(srcdir) undoc

maint-deps :
	@$(PERL) $(srcdir)/maint-tool -s $(srcdir) deps $(INCDIR)

# Need to deal with profiled libraries, too.

# Cleaning has to be done carefully to ensure that we don't clean our SUBDIRS
# multiple times, hence our explicit recursion with an empty SUBDIRS.
mostlyclean: mostlyclean-subdir
	-rm -rf *.o pic core errs \#* *.E a.out
	-rm -f needed.awk needed2.awk errors dummy needed-list config.h stamp-*
	-rm -f $(CONFIG_H) $(NEEDED_LIST) stamp-picdir
	-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
	-rm -f libtexi.stamp
	@$(MULTICLEAN) multi-clean DO=mostlyclean
clean: clean-subdir
	$(MAKE) SUBDIRS="" mostlyclean
	-rm -f *.a required-list tmpmulti.out
	-rm -f libiberty.dvi libiberty.info* libiberty.html
	@$(MULTICLEAN) multi-clean DO=clean
distclean: distclean-subdir
	$(MAKE) SUBDIRS="" clean
	@$(MULTICLEAN) multi-clean DO=distclean
	-rm -f *~ Makefile config.cache config.status xhost-mkfrag TAGS multilib.out
	-rm -f config.log
	-rmdir testsuite 2>/dev/null
maintainer-clean realclean: maintainer-clean-subdir
	$(MAKE) SUBDIRS="" distclean

force:

Makefile: $(srcdir)/Makefile.in config.status
	CONFIG_FILES=Makefile CONFIG_HEADERS= $(SHELL) ./config.status

# Depending on Makefile makes sure that config.status has been re-run
# if needed.  This prevents problems with parallel builds.
config.h: stamp-h ; @true
stamp-h: $(srcdir)/config.in config.status Makefile
	CONFIG_FILES= CONFIG_HEADERS=config.h:$(srcdir)/config.in $(SHELL) ./config.status

config.status: $(srcdir)/configure
	$(SHELL) ./config.status --recheck

# Depending on config.h makes sure that config.status has been re-run
# if needed.  This prevents problems with parallel builds, in case
# subdirectories need to run config.status also.
all-subdir check-subdir installcheck-subdir info-subdir	\
install-info-subdir clean-info-subdir dvi-subdir install-subdir	\
etags-subdir mostlyclean-subdir clean-subdir distclean-subdir \
maintainer-clean-subdir: config.h
	@subdirs='$(SUBDIRS)'; \
	target=`echo $@ | sed -e 's/-subdir//'`; \
	for dir in $$subdirs ; do \
	  cd $$dir && $(MAKE) $(FLAGS_TO_PASS) $$target; \
	done

$(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS): stamp-picdir
$(CONFIGURED_OFILES): stamp-picdir

# Don't export variables to the environment, in order to not confuse
# configure.
.NOEXPORT:

# The dependencies in the remainder of this file are automatically
# generated by "make maint-deps".  Manual edits will be lost.

./_doprnt.o: $(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
	$(COMPILE.c) $(srcdir)/_doprnt.c $(OUTPUT_OPTION)

./alloca.o: $(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
	$(COMPILE.c) $(srcdir)/alloca.c $(OUTPUT_OPTION)

./argv.o: $(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
	$(COMPILE.c) $(srcdir)/argv.c $(OUTPUT_OPTION)

./asprintf.o: $(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
	$(COMPILE.c) $(srcdir)/asprintf.c $(OUTPUT_OPTION)

./atexit.o: $(srcdir)/atexit.c config.h
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/atexit.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/atexit.c $(OUTPUT_OPTION)

./basename.o: $(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
	$(COMPILE.c) $(srcdir)/basename.c $(OUTPUT_OPTION)

./bcmp.o: $(srcdir)/bcmp.c
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/bcmp.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/bcmp.c $(OUTPUT_OPTION)

./bcopy.o: $(srcdir)/bcopy.c
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/bcopy.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/bcopy.c $(OUTPUT_OPTION)

./bsearch.o: $(srcdir)/bsearch.c config.h $(INCDIR)/ansidecl.h
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/bsearch.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/bsearch.c $(OUTPUT_OPTION)

./bzero.o: $(srcdir)/bzero.c
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/bzero.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/bzero.c $(OUTPUT_OPTION)

./calloc.o: $(srcdir)/calloc.c $(INCDIR)/ansidecl.h
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/calloc.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/calloc.c $(OUTPUT_OPTION)

./choose-temp.o: $(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
	$(COMPILE.c) $(srcdir)/choose-temp.c $(OUTPUT_OPTION)

./clock.o: $(srcdir)/clock.c config.h
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/clock.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/clock.c $(OUTPUT_OPTION)

./concat.o: $(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
	$(COMPILE.c) $(srcdir)/concat.c $(OUTPUT_OPTION)

./copysign.o: $(srcdir)/copysign.c $(INCDIR)/ansidecl.h
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/copysign.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/copysign.c $(OUTPUT_OPTION)

./cp-demangle.o: $(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
	$(COMPILE.c) $(srcdir)/cp-demangle.c $(OUTPUT_OPTION)

./cp-demint.o: $(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
	$(COMPILE.c) $(srcdir)/cp-demint.c $(OUTPUT_OPTION)

./cplus-dem.o: $(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
	$(COMPILE.c) $(srcdir)/cplus-dem.c $(OUTPUT_OPTION)

./dyn-string.o: $(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
	$(COMPILE.c) $(srcdir)/dyn-string.c $(OUTPUT_OPTION)

./fdmatch.o: $(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
	$(COMPILE.c) $(srcdir)/fdmatch.c $(OUTPUT_OPTION)

./ffs.o: $(srcdir)/ffs.c
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/ffs.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/ffs.c $(OUTPUT_OPTION)

./fibheap.o: $(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
	$(COMPILE.c) $(srcdir)/fibheap.c $(OUTPUT_OPTION)

./floatformat.o: $(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
	$(COMPILE.c) $(srcdir)/floatformat.c $(OUTPUT_OPTION)

./fnmatch.o: $(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
	$(COMPILE.c) $(srcdir)/fnmatch.c $(OUTPUT_OPTION)

./fopen_unlocked.o: $(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
	$(COMPILE.c) $(srcdir)/fopen_unlocked.c $(OUTPUT_OPTION)

./getcwd.o: $(srcdir)/getcwd.c config.h
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/getcwd.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/getcwd.c $(OUTPUT_OPTION)

./getopt.o: $(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
	$(COMPILE.c) $(srcdir)/getopt.c $(OUTPUT_OPTION)

./getopt1.o: $(srcdir)/getopt1.c config.h $(INCDIR)/getopt.h
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/getopt1.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/getopt1.c $(OUTPUT_OPTION)

./getpagesize.o: $(srcdir)/getpagesize.c config.h
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/getpagesize.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/getpagesize.c $(OUTPUT_OPTION)

./getpwd.o: $(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
	$(COMPILE.c) $(srcdir)/getpwd.c $(OUTPUT_OPTION)

./getruntime.o: $(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
	$(COMPILE.c) $(srcdir)/getruntime.c $(OUTPUT_OPTION)

./gettimeofday.o: $(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
	$(COMPILE.c) $(srcdir)/gettimeofday.c $(OUTPUT_OPTION)

./hashtab.o: $(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
	$(COMPILE.c) $(srcdir)/hashtab.c $(OUTPUT_OPTION)

./hex.o: $(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
	$(COMPILE.c) $(srcdir)/hex.c $(OUTPUT_OPTION)

./index.o: $(srcdir)/index.c
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/index.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/index.c $(OUTPUT_OPTION)

./insque.o: $(srcdir)/insque.c
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/insque.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/insque.c $(OUTPUT_OPTION)

./lbasename.o: $(srcdir)/lbasename.c config.h $(INCDIR)/ansidecl.h \
	$(INCDIR)/filenames.h $(INCDIR)/libiberty.h \
	$(INCDIR)/safe-ctype.h
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/lbasename.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/lbasename.c $(OUTPUT_OPTION)

./lrealpath.o: $(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
	$(COMPILE.c) $(srcdir)/lrealpath.c $(OUTPUT_OPTION)

./make-relative-prefix.o: $(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
	$(COMPILE.c) $(srcdir)/make-relative-prefix.c $(OUTPUT_OPTION)

./make-temp-file.o: $(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
	$(COMPILE.c) $(srcdir)/make-temp-file.c $(OUTPUT_OPTION)

./md5.o: $(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
	$(COMPILE.c) $(srcdir)/md5.c $(OUTPUT_OPTION)

./memchr.o: $(srcdir)/memchr.c $(INCDIR)/ansidecl.h
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/memchr.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/memchr.c $(OUTPUT_OPTION)

./memcmp.o: $(srcdir)/memcmp.c $(INCDIR)/ansidecl.h
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/memcmp.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/memcmp.c $(OUTPUT_OPTION)

./memcpy.o: $(srcdir)/memcpy.c $(INCDIR)/ansidecl.h
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/memcpy.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/memcpy.c $(OUTPUT_OPTION)

./memmove.o: $(srcdir)/memmove.c $(INCDIR)/ansidecl.h
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/memmove.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/memmove.c $(OUTPUT_OPTION)

./mempcpy.o: $(srcdir)/mempcpy.c $(INCDIR)/ansidecl.h
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/mempcpy.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/mempcpy.c $(OUTPUT_OPTION)

./memset.o: $(srcdir)/memset.c $(INCDIR)/ansidecl.h
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/memset.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/memset.c $(OUTPUT_OPTION)

./mkstemps.o: $(srcdir)/mkstemps.c config.h $(INCDIR)/ansidecl.h
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/mkstemps.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/mkstemps.c $(OUTPUT_OPTION)

./msdos.o: $(srcdir)/msdos.c
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/msdos.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/msdos.c $(OUTPUT_OPTION)

./objalloc.o: $(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
	$(COMPILE.c) $(srcdir)/objalloc.c $(OUTPUT_OPTION)

./obstack.o: $(srcdir)/obstack.c config.h $(INCDIR)/obstack.h
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/obstack.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/obstack.c $(OUTPUT_OPTION)

./partition.o: $(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
	$(COMPILE.c) $(srcdir)/partition.c $(OUTPUT_OPTION)

./pex-common.o: $(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
	$(COMPILE.c) $(srcdir)/pex-common.c $(OUTPUT_OPTION)

./pex-djgpp.o: $(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
	$(COMPILE.c) $(srcdir)/pex-djgpp.c $(OUTPUT_OPTION)

./pex-msdos.o: $(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
	$(COMPILE.c) $(srcdir)/pex-msdos.c $(OUTPUT_OPTION)

./pex-one.o: $(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
	$(COMPILE.c) $(srcdir)/pex-one.c $(OUTPUT_OPTION)

./pex-unix.o: $(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
	$(COMPILE.c) $(srcdir)/pex-unix.c $(OUTPUT_OPTION)

./pex-win32.o: $(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
	$(COMPILE.c) $(srcdir)/pex-win32.c $(OUTPUT_OPTION)

./pexecute.o: $(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
	$(COMPILE.c) $(srcdir)/pexecute.c $(OUTPUT_OPTION)

./physmem.o: $(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
	$(COMPILE.c) $(srcdir)/physmem.c $(OUTPUT_OPTION)

./putenv.o: $(srcdir)/putenv.c config.h $(INCDIR)/ansidecl.h
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/putenv.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/putenv.c $(OUTPUT_OPTION)

./random.o: $(srcdir)/random.c $(INCDIR)/ansidecl.h
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/random.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/random.c $(OUTPUT_OPTION)

./regex.o: $(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
	$(COMPILE.c) $(srcdir)/regex.c $(OUTPUT_OPTION)

./rename.o: $(srcdir)/rename.c config.h $(INCDIR)/ansidecl.h
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/rename.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/rename.c $(OUTPUT_OPTION)

./rindex.o: $(srcdir)/rindex.c
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/rindex.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/rindex.c $(OUTPUT_OPTION)

./safe-ctype.o: $(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
	$(COMPILE.c) $(srcdir)/safe-ctype.c $(OUTPUT_OPTION)

./setenv.o: $(srcdir)/setenv.c config.h $(INCDIR)/ansidecl.h
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/setenv.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/setenv.c $(OUTPUT_OPTION)

./sigsetmask.o: $(srcdir)/sigsetmask.c $(INCDIR)/ansidecl.h
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/sigsetmask.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/sigsetmask.c $(OUTPUT_OPTION)

./snprintf.o: $(srcdir)/snprintf.c $(INCDIR)/ansidecl.h
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/snprintf.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/snprintf.c $(OUTPUT_OPTION)

./sort.o: $(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
	$(COMPILE.c) $(srcdir)/sort.c $(OUTPUT_OPTION)

./spaces.o: $(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
	$(COMPILE.c) $(srcdir)/spaces.c $(OUTPUT_OPTION)

./splay-tree.o: $(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
	$(COMPILE.c) $(srcdir)/splay-tree.c $(OUTPUT_OPTION)

./stpcpy.o: $(srcdir)/stpcpy.c $(INCDIR)/ansidecl.h
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/stpcpy.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/stpcpy.c $(OUTPUT_OPTION)

./stpncpy.o: $(srcdir)/stpncpy.c $(INCDIR)/ansidecl.h
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/stpncpy.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/stpncpy.c $(OUTPUT_OPTION)

./strcasecmp.o: $(srcdir)/strcasecmp.c $(INCDIR)/ansidecl.h
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strcasecmp.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/strcasecmp.c $(OUTPUT_OPTION)

./strchr.o: $(srcdir)/strchr.c $(INCDIR)/ansidecl.h
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strchr.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/strchr.c $(OUTPUT_OPTION)

./strdup.o: $(srcdir)/strdup.c $(INCDIR)/ansidecl.h
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strdup.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/strdup.c $(OUTPUT_OPTION)

./strerror.o: $(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
	$(COMPILE.c) $(srcdir)/strerror.c $(OUTPUT_OPTION)

./strncasecmp.o: $(srcdir)/strncasecmp.c $(INCDIR)/ansidecl.h
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strncasecmp.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/strncasecmp.c $(OUTPUT_OPTION)

./strncmp.o: $(srcdir)/strncmp.c $(INCDIR)/ansidecl.h
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strncmp.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/strncmp.c $(OUTPUT_OPTION)

./strndup.o: $(srcdir)/strndup.c $(INCDIR)/ansidecl.h
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strndup.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/strndup.c $(OUTPUT_OPTION)

./strrchr.o: $(srcdir)/strrchr.c $(INCDIR)/ansidecl.h
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strrchr.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/strrchr.c $(OUTPUT_OPTION)

./strsignal.o: $(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
	$(COMPILE.c) $(srcdir)/strsignal.c $(OUTPUT_OPTION)

./strstr.o: $(srcdir)/strstr.c
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strstr.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/strstr.c $(OUTPUT_OPTION)

./strtod.o: $(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
	$(COMPILE.c) $(srcdir)/strtod.c $(OUTPUT_OPTION)

./strtol.o: $(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
	$(COMPILE.c) $(srcdir)/strtol.c $(OUTPUT_OPTION)

./strtoul.o: $(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
	$(COMPILE.c) $(srcdir)/strtoul.c $(OUTPUT_OPTION)

./strverscmp.o: $(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
	$(COMPILE.c) $(srcdir)/strverscmp.c $(OUTPUT_OPTION)

./ternary.o: $(srcdir)/ternary.c config.h $(INCDIR)/ansidecl.h \
	$(INCDIR)/libiberty.h $(INCDIR)/ternary.h
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/ternary.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/ternary.c $(OUTPUT_OPTION)

./tmpnam.o: $(srcdir)/tmpnam.c
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/tmpnam.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/tmpnam.c $(OUTPUT_OPTION)

./unlink-if-ordinary.o: $(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
	$(COMPILE.c) $(srcdir)/unlink-if-ordinary.c $(OUTPUT_OPTION)

./vasprintf.o: $(srcdir)/vasprintf.c config.h $(INCDIR)/ansidecl.h \
	$(INCDIR)/libiberty.h
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/vasprintf.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/vasprintf.c $(OUTPUT_OPTION)

./vfork.o: $(srcdir)/vfork.c $(INCDIR)/ansidecl.h
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/vfork.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/vfork.c $(OUTPUT_OPTION)

./vfprintf.o: $(srcdir)/vfprintf.c $(INCDIR)/ansidecl.h
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/vfprintf.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/vfprintf.c $(OUTPUT_OPTION)

./vprintf.o: $(srcdir)/vprintf.c $(INCDIR)/ansidecl.h
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/vprintf.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/vprintf.c $(OUTPUT_OPTION)

./vsnprintf.o: $(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
	$(COMPILE.c) $(srcdir)/vsnprintf.c $(OUTPUT_OPTION)

./vsprintf.o: $(srcdir)/vsprintf.c $(INCDIR)/ansidecl.h
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/vsprintf.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/vsprintf.c $(OUTPUT_OPTION)

./waitpid.o: $(srcdir)/waitpid.c config.h $(INCDIR)/ansidecl.h
	if [ x"$(PICFLAG)" != x ]; then \
	  $(COMPILE.c) $(PICFLAG) $(srcdir)/waitpid.c -o pic/$@; \
	else true; fi
	$(COMPILE.c) $(srcdir)/waitpid.c $(OUTPUT_OPTION)

./xatexit.o: $(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
	$(COMPILE.c) $(srcdir)/xatexit.c $(OUTPUT_OPTION)

./xexit.o: $(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
	$(COMPILE.c) $(srcdir)/xexit.c $(OUTPUT_OPTION)

./xmalloc.o: $(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
	$(COMPILE.c) $(srcdir)/xmalloc.c $(OUTPUT_OPTION)

./xmemdup.o: $(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
	$(COMPILE.c) $(srcdir)/xmemdup.c $(OUTPUT_OPTION)

./xstrdup.o: $(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
	$(COMPILE.c) $(srcdir)/xstrdup.c $(OUTPUT_OPTION)

./xstrerror.o: $(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
	$(COMPILE.c) $(srcdir)/xstrerror.c $(OUTPUT_OPTION)

./xstrndup.o: $(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
	$(COMPILE.c) $(srcdir)/xstrndup.c $(OUTPUT_OPTION)

