# Makefile for library files used by GNU fileutils.
-# Do not use this makefile directly, but only from `../Makefile'.
-# Copyright (C) 1990, 1991, 1992 Free Software Foundation, Inc.
+# Copyright (C) 1990, 1991, 1992, 1993 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
srcdir = @srcdir@
VPATH = @srcdir@
-SOURCES = argmatch.c backupfile.c basename.c dirname.c eaccess.c \
+CC = @CC@
+AR = ar
+RANLIB = @RANLIB@
+DEFS = -DCONFIG_BROKETS @DEFS@
+CFLAGS = @CFLAGS@
+YACC = @YACC@
+
+prefix = /usr/local
+exec_prefix = $(prefix)
+libdir = $(exec_prefix)/lib
+
+SOURCES = getdate.y posixtm.y \
+argmatch.c backupfile.c basename.c dirname.c eaccess.c \
error.c filemode.c fsusage.c getopt.c getopt1.c \
getversion.c idcache.c isdir.c makepath.c \
modechange.c mountlist.c savedir.c \
stripslash.c xgetcwd.c xmalloc.c xstrdup.c userspec.c yesno.c \
-getdate.y posixtm.y \
fileblocks.c fnmatch.c ftruncate.c mkdir.c mktime.c rename.c stpcpy.c \
strdup.c strstr.c alloca.c
-OBJECTS = argmatch.o backupfile.o basename.o dirname.o eaccess.o \
+OBJECTS = getdate.o posixtm.o \
+argmatch.o backupfile.o basename.o dirname.o eaccess.o \
error.o filemode.o getopt.o getopt1.o \
getversion.o idcache.o isdir.o makepath.o \
modechange.o savedir.o \
stripslash.o xgetcwd.o xmalloc.o xstrdup.o userspec.o yesno.o \
-getdate.o posixtm.o @LIBOBJS@ @ALLOCA@
+@LIBOBJS@ @ALLOCA@
DISTFILES = Makefile.in backupfile.h getopt.h modechange.h \
fnmatch.h fsusage.h mountlist.h pathmax.h system.h $(SOURCES)
all: libfu.a
.c.o:
- $(CC) -c $(CFLAGS) $(CPPFLAGS) $(DEFS) -I$(srcdir) $<
+ $(CC) -c $(CPPFLAGS) $(DEFS) -I.. -I$(srcdir) $(CFLAGS) $<
install: all
TAGS: $(SOURCES)
etags $(SOURCES)
+check:
+
clean:
rm -f *.a *.o
realclean: distclean
rm -f TAGS
-dist:
- ln $(DISTFILES) ../`cat ../.fname`/lib
+dist: $(DISTFILES)
+ for file in $(DISTFILES); do \
+ ln $$file ../`cat ../.fname`/lib \
+ || cp -p $$file ../`cat ../.fname`/lib; \
+ done
libfu.a: $(OBJECTS)
rm -f $@
$(AR) cr $@ $(OBJECTS)
-$(RANLIB) $@
-# Since this directory contains two parsers, using bison without -y
-# is the only way to reliably do a parallel make.
+# Since this directory contains two parsers, we have to be careful to avoid
+# running two $(YACC)s during parallel makes. See below.
getdate.c: getdate.y
@echo expect 9 shift/reduce conflicts
- -bison -o getdate.c $(srcdir)/getdate.y || yacc $(srcdir)/getdate.y
- test ! -f y.tab.c || mv y.tab.c getdate.c
+ $(YACC) $(srcdir)/getdate.y
+ mv y.tab.c getdate.c
# Make the rename atomic, in case sed is interrupted and later rerun.
-posixtm.c: posixtm.y
- -bison -o posixtm.tab.c $(srcdir)/posixtm.y || yacc $(srcdir)/posixtm.y
- test ! -f y.tab.c || mv y.tab.c posixtm.tab.c
+# 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: 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
+rename.o: rename.c
+ $(CC) -c $(CPPFLAGS) -DMVDIR="\"$(libdir)/mvdir\"" $(DEFS) \
+ -I.. -I$(srcdir) $(CFLAGS) $(srcdir)/rename.c
+
+$(OBJECTS): ../config.h
+
backupfile.o getversion.o: backupfile.h
fnmatch.o: fnmatch.h
fsusage.o: fsusage.h
mountlist.o: mountlist.h
xgetcwd.o: pathmax.h
-# Prevent GNU make v3 from overflowing arg limit on SysV.
+# Tell versions [3.59,3.63) of GNU make not to export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT: