X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2FMakefile.am;h=6689da5b329ad7b21d9cd87bb68efa528945fd3f;hb=268eada996dead3b74bf2e99e0f8e663db8c3e81;hp=c568c3f11bc9a81ffacb864934130e84c7c8ca00;hpb=e08ea16f870eedd2317fd55bc828cae4d4add16e;p=gnulib.git diff --git a/lib/Makefile.am b/lib/Makefile.am index c568c3f11..6689da5b3 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -9,11 +9,11 @@ DEFS = -DLIBDIR=\"$(libdir)\" @DEFS@ libfetish_a_SOURCES = \ getdate.y posixtm.c addext.c argmatch.c backupfile.c basename.c \ - canon-host.c closeout.c dirname.c exclude.c filemode.c diacrit.c \ - full-write.c getopt.c getopt1.c getugroups.c hard-locale.c hash.c \ + canon-host.c closeout.c diacrit.c dirname.c exclude.c filemode.c \ + full-write.c getopt.c getopt1.c getstr.c getugroups.c hard-locale.c hash.c \ human.c idcache.c isdir.c linebuffer.c localcharset.c long-options.c \ makepath.c md5.c memcasecmp.c memcoll.c modechange.c path-concat.c \ - quotearg.c readtokens.c readutmp.c safe-read.c same.c save-cwd.c \ + quotearg.c readtokens.c safe-read.c same.c save-cwd.c \ savedir.c stripslash.c unicodeio.c userspec.c version-etc.c xgetcwd.c \ xgethostname.c xmalloc.c xstrdup.c xstrtod.c xstrtol.c xstrtoul.c \ xstrtoumax.c yesno.c @@ -24,7 +24,7 @@ libfetish_a_DEPENDENCIES = $(libfetish_a_LIBADD) noinst_HEADERS = \ argmatch.h backupfile.h bumpalloc.h closeout.h diacrit.h dirname.h error.h \ exclude.h filemode.h fnmatch.h fsusage.h getdate.h getline.h getopt.h \ - getpagesize.h group-member.h hard-locale.h hash.h human.h lchown.h \ + getstr.h getpagesize.h group-member.h hard-locale.h hash.h human.h lchown.h \ linebuffer.h long-options.h md5.h memcasecmp.h memcoll.h \ makepath.h modechange.h mountlist.h nanosleep.h obstack.h \ path-concat.h pathmax.h posixtm.h quotearg.h readtokens.h \ @@ -35,7 +35,7 @@ BUILT_SOURCES = getdate.c lstat.c stat.c MAINTAINERCLEANFILES = $(BUILT_SOURCES) DISTCLEANFILES = lstat.c stat.c -EXTRA_DIST = xstat.in config.charset +EXTRA_DIST = xstat.in config.charset ref-add.sin ref-del.sin lstat.c: xstat.in sed \ -e '/@IGNORE@/d' \ @@ -55,19 +55,50 @@ stat.c: xstat.in mv $@-t $@ -# What a mess needed in order to install a simple file in $(libdir)! +# 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 +all-local: charset.alias ref-add.sed ref-del.sed lstat.c stat.c +charset_alias = $(DESTDIR)$(libdir)/charset.alias +charset_tmp = $(DESTDIR)$(libdir)/charset.tmp install-exec-local: all-local - $(INSTALL_DATA) charset.alias $(libdir)/charset.alias - -# Probably not a good idea. Other packages need $(libdir)/charset.alias too. -#uninstall-local: -# -rm -f $(libdir)/charset.alias + $(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 + $(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 +CLEANFILES = charset.alias ref-add.sed ref-del.sed