X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2FMakefile.am;h=d17b9e0352f16de31a17aebe93269ca8a4bb8bc2;hb=488cf84c63fbbffa44143d0ebf56e5a6c26d4383;hp=843b9d315e1e57186659807bd9879201e3bb6be9;hpb=eacdc2f6c638352494527e483cbee14639d69860;p=gnulib.git diff --git a/lib/Makefile.am b/lib/Makefile.am index 843b9d315..d17b9e035 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -1,46 +1,192 @@ -## Process this file with automake to produce Makefile.in -noinst_LIBRARIES = fu +## Process this file with automake to produce Makefile.in -*-Makefile-*- -EXTRA_DIST = alloca.c basename.c error.c euidaccess.c fnmatch.c fsusage.c \ -ftruncate.c getdate.y group-member.c memcmp.c memcpy.c memset.c \ -mkdir.c mktime.c mountlist.c obstack.c posixtm.y regex.c rx.c \ -rename.c rmdir.c rpmatch.c \ -stpcpy.c strcasecmp.c strdup.c strndup.c strstr.c strtol.c strtoul.c +AUTOMAKE_OPTIONS = ../src/ansi2knr + +noinst_LIBRARIES = libfetish.a -INCLUDES = -I.. -I$(srcdir) INCLUDES = -I.. -I$(srcdir) -I../intl +DEFS = -DLIBDIR=\"$(libdir)\" @DEFS@ + +## Put relatively complex files at the beginning of the list so +## that parallel compiles finish a tiny bit sooner. I don't see +## a way to make regex.c appear earlier in the list, since it's +## added by automake, but on systems with an up to date GNU libc, +## regex.c isn't even compiled. +libfetish_a_SOURCES = \ + getdate.h getdate.y \ + posixtm.c posixtm.h \ + strftime.c \ + getopt.c getopt.h getopt1.c \ + hash.c hash.h \ + __fpending.h \ + addext.c \ + argmatch.c argmatch.h \ + backupfile.c backupfile.h \ + basename.c \ + bumpalloc.h \ + canon-host.c \ + closeout.c closeout.h \ + diacrit.c diacrit.h \ + dirname.c dirname.h \ + dup-safer.c \ + exclude.c exclude.h \ + filemode.c filemode.h \ + fnmatch.h \ + fopen-safer.c \ + fsusage.h \ + full-write.c full-write.h \ + getline.h \ + getpagesize.h \ + getstr.c getstr.h \ + getugroups.c \ + group-member.h \ + gtod.h \ + hard-locale.c hard-locale.h \ + human.c human.h \ + idcache.c \ + isdir.c \ + lchown.h \ + linebuffer.c linebuffer.h \ + localcharset.c \ + long-options.c long-options.h \ + makepath.c makepath.h \ + mbswidth.c mbswidth.h \ + md5.c md5.h \ + memcasecmp.c memcasecmp.h \ + memcoll.c memcoll.h \ + modechange.c modechange.h \ + mountlist.h \ + nanosleep.h \ + path-concat.c path-concat.h \ + pathmax.h \ + physmem.c physmem.h \ + quote.c quote.h \ + quotearg.c quotearg.h \ + readtokens.c readtokens.h \ + readutmp.h \ + regex.h \ + safe-read.c safe-read.h \ + same.c same.h \ + save-cwd.c save-cwd.h \ + savedir.c savedir.h \ + sha.c sha.h \ + stdio-safer.h \ + stripslash.c \ + strverscmp.h \ + unicodeio.c unicodeio.h \ + unistd-safer.h \ + userspec.c \ + version-etc.c version-etc.h \ + xalloc.h \ + xgetcwd.c \ + xgethostname.c \ + xmalloc.c \ + xreadlink.c xreadlink.h \ + xstrdup.c \ + xstrtod.c xstrtod.h \ + xstrtol.c xstrtol.h \ + xstrtoul.c \ + xstrtoimax.c \ + xstrtoumax.c \ + yesno.c + +libfetish_a_LIBADD = @LIBOBJS@ @ALLOCA@ +libfetish_a_DEPENDENCIES = $(libfetish_a_LIBADD) + + +BUILT_SOURCES = getdate.c lstat.c stat.c unlocked-io.h +MAINTAINERCLEANFILES = $(BUILT_SOURCES) +DISTCLEANFILES = lstat.c stat.c unlocked-io.h + +EXTRA_DIST = xstat.in config.charset ref-add.sin ref-del.sin unlocked-io.hin +lstat.c: xstat.in + sed \ + -e '/@IGNORE@/d' \ + -e 's/@xstat@/lstat/g' \ + -e '/_LSTAT_ONLY@/d' \ + -e '/@BEGIN_STAT_ONLY@/,/@END_STAT_ONLY@/d' \ + $(srcdir)/xstat.in > $@-t + mv $@-t $@ + +stat.c: xstat.in + sed \ + -e '/@IGNORE@/d' \ + -e 's/@xstat@/stat/g' \ + -e '/_STAT_ONLY@/d' \ + -e '/@BEGIN_LSTAT_ONLY@/,/@END_LSTAT_ONLY@/d' \ + $(srcdir)/xstat.in > $@-t + mv $@-t $@ + + +# The following is needed in order to install a simple file in $(libdir) +# which is shared with other installed packages. We use a list of referencing +# packages so that "make uninstall" will remove the file if and only if it +# is not used by another installed package. +# On systems with glibc-2.1 or newer, the file is redundant, therefore we +# avoid installing it. + +all-local: charset.alias ref-add.sed ref-del.sed lstat.c stat.c unlocked-io.h + +charset_alias = $(DESTDIR)$(libdir)/charset.alias +charset_tmp = $(DESTDIR)$(libdir)/charset.tmp +install-exec-local: all-local + $(mkinstalldirs) $(DESTDIR)$(libdir) + if test -f $(charset_alias); then \ + sed -f ref-add.sed $(charset_alias) > $(charset_tmp) ; \ + $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \ + rm -f $(charset_tmp) ; \ + else \ + if test @GLIBC21@ = no; then \ + sed -f ref-add.sed charset.alias > $(charset_tmp) ; \ + $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \ + rm -f $(charset_tmp) ; \ + fi ; \ + fi + +uninstall-local: all-local + if test -f $(charset_alias); then \ + sed -f ref-del.sed $(charset_alias) > $(charset_tmp); \ + if grep '^# Packages using this file: $$' $(charset_tmp) \ + > /dev/null; then \ + rm -f $(charset_alias); \ + else \ + $(INSTALL_DATA) $(charset_tmp) $(charset_alias); \ + fi; \ + rm -f $(charset_tmp); \ + fi + +charset.alias: config.charset + $(SHELL) $(srcdir)/config.charset '@host@' > t-$@ + mv t-$@ $@ + +SUFFIXES = .sed .sin +.sin.sed: + sed -e '/^#/d' -e 's/@''PACKAGE''@/@PACKAGE@/g' $< > $@-t + mv $@-t $@ + +CLEANFILES = charset.alias ref-add.sed ref-del.sed + +############################################### + +# FIXME: CAUTION this list is a duplicate of one in ../Makefile.cfg. +io_functions = \ + clearerr feof ferror fflush fgets fputc fputs \ + fread fwrite getc getchar putc putchar + +a_z=abcdefghijklmnopqrstuvwxyz +A_Z=ABCDEFGHIJKLMNOPQRSTUVWXYZ -fu_SOURCES = getdate.c getline.c getopt.c getopt1.c posixtm.c \ -argmatch.c backupfile.c \ -dirname.c fileblocks.c filemode.c \ -full-write.c getversion.c idcache.c \ -isdir.c long-options.c makepath.c modechange.c path-concat.c \ -safe-read.c save-cwd.c savedir.c stripslash.c userspec.c xgetcwd.c \ -xmalloc.c xstrdup.c xstrtol.c xstrtoul.c yesno.c - -fu_LIBADD = @LIBOBJS@ @ALLOCA@ - -noinst_HEADERS = argmatch.h backupfile.h error.h fnmatch.h fsusage.h \ -getline.h getopt.h group-member.h long-options.h makepath.h modechange.h \ -mountlist.h obstack.h path-concat.h pathmax.h regex.h rx.h \ -save-cwd.h xstrtol.h xstrtoul.h - -BUILT_SOURCES = getdate.c posixtm.c - -# Since this directory contains two parsers, we have to be careful to avoid -# running two $(YACC)s during parallel makes. See below. -getdate.c: @MAINT@getdate.y - @echo expect 10 shift/reduce conflicts - $(YACC) $(srcdir)/getdate.y - mv y.tab.c getdate.c - -# Make the rename atomic, in case sed is interrupted and later rerun. -# The artificial dependency on getdate.c keeps the two parsers from being -# built in parallel. Enforcing this little bit of sequentiality lets -# everyone (even those without bison) still run mostly parallel builds. -posixtm.c: @MAINT@posixtm.y getdate.c - $(YACC) $(srcdir)/posixtm.y - mv y.tab.c posixtm.tab.c - sed -e 's/yy/zz/g' posixtm.tab.c > tposixtm.c - mv tposixtm.c posixtm.c - rm -f posixtm.tab.c +unlocked-io.h: $(srcdir)/unlocked-io.hin Makefile.am + tmp=t$$$$; \ + for f in $(io_functions); do \ + u=`echo $$f|tr $(a_z) $(A_Z)`; \ + echo "# if HAVE_$${u}_UNLOCKED" ; \ + echo "# undef $$f" ; \ + echo "# define $$f(S) $${f}_unlocked (S)" ; \ + echo '# endif' ; \ + done > $$tmp; \ + sed '/^@replace_this@$$/r '$$tmp $(srcdir)/unlocked-io.hin \ + | sed '/^@replace_this@$$/d' \ + > $@t; \ + rm -f $$tmp; \ + mv $@t $@