-# Copyright (C) 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
+# Copyright (C) 1991, 92, 93, 94, 95, 96 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
all: lib others
\f
define autoconf-it
+@-rm -f $@.new
autoconf $(ACFLAGS) $< > $@.new
+chmod a-w,a+x $@.new
mv -f $@.new $@
-test -d CVS && cvs commit -m'Regenerated: autoconf $(ACFLAGS) $<' $@
+test ! -d CVS || cvs commit -m'Regenerated: autoconf $(ACFLAGS) $<' $@
endef
-configure: configure.in; $(autoconf-it)
-%/configure: %/configure.in; $(autoconf-it)
+configure: configure.in aclocal.m4; $(autoconf-it)
+%/configure: %/configure.in aclocal.m4; $(autoconf-it)
include Makeconfig
ifndef avoid-generated
-include $(objpfx)sysd-dirs
+-include $(objpfx)sysd-dirs
define \n
endif
# These are the subdirectories containing the library source.
-+ansi_dirs := assert ctype locale math setjmp \
- signal stdio stdlib malloc string time
-+posix_dirs := dirent grp pwd posix io termios
-+other_dirs := resource socket misc gnulib $(wildcard crypt) manual csu
-subdirs := $(strip $(+ansi_dirs) $(+posix_dirs) $(+other_dirs) \
- $(sysdep-subdirs))
+subdirs = csu assert ctype db locale intl catgets math setjmp signal stdlib \
+ stdio-common $(stdio) malloc string wcsmbs time dirent grp pwd\
+ posix io termios resource misc login socket sysvipc gmon gnulib \
+ wctype $(wildcard crypt) manual $(sysdep-subdirs) elf po
export subdirs := $(subdirs) # Benign, useless in GNU make before 3.63.
# The mach and hurd subdirectories have many generated header files which
-# the much of rest of the library depends on, so it is best to build them
+# much of the rest of the library depends on, so it is best to build them
# first (and mach before hurd, at that). The before-compile additions in
# sysdeps/{mach,hurd}/Makefile should make it reliably work for these files
# not to exist when making in other directories, but it will be slower that
no-libc.a bin lib \
data headers others)
\f
-headers := features.h errno.h sys/errno.h errnos.h limits.h $(stddef.h)
+headers := errno.h sys/errno.h errnos.h limits.h values.h \
+ features.h gnu-versions.h
aux = sysdep $(libc-init) version
echo-headers: subdir_echo-headers
# Install from subdirectories too.
install: subdir_install
-lib-noranlib $(libc.a)(__.SYMDEF): subdir_lib
+# Build subdirectory lib objects.
+lib-noranlib: subdir_lib
+ifeq (yes,$(build-shared))
+# Build the shared object from the PIC object library.
+lib: $(common-objpfx)libc.so
+endif
$(objpfx)sysd-dirs: $(+sysdir_pfx)config.make
(echo define sysdep-subdirs; \
echo ' in the C library which is a stub, meaning it will fail';\
echo ' every time called, usually setting errno to ENOSYS. */';\
sort $(subdir-stubs)) > $(objpfx)stubs.h
- $(INSTALL_DATA) $(objpfx)stubs.h $@
+ if test -r $@ && cmp -s $(objpfx)stubs.h $@; \
+ then echo stubs.h unchanged ; \
+ else $(INSTALL_DATA) $(objpfx)stubs.h $@; fi
rm -f $(objpfx)stubs.h
\f
# This makes the Info or DVI file of the documentation from the Texinfo source.
# Subroutines of all cleaning targets.
parent-mostlyclean: common-mostlyclean # common-mostlyclean is in Makerules.
- -rm -f $(libc.a) $(addprefix $(objpfx),$(install-lib))
+ -rm -f $(foreach o,$(object-suffixes),\
+ $(common-objpfx)$(patsubst %,$(libtype$o),c)) \
+ $(addprefix $(objpfx),$(install-lib))
parent-clean: parent-mostlyclean common-clean
-rm -f $(addprefix $(common-objpfx),$(common-generated))
- -rm -f $(addprefix $(+sysdir_pfx),sysd-Makefile sysd-dirs sysd-rules)
+ -rm -f $(addprefix $(objpfx),sysd-Makefile sysd-dirs sysd-rules)
clean: parent-clean
# This is done this way rather than having `subdir_clean' be a
# Subroutine of distclean and realclean.
distclean-1: subdir_$(distclean-1)
-rm -f $(config-generated)
- -rm -f $(addprefix $(objpfx),config.status cache.cache)
- -rm -f $(addprefix $(objpfx),config.make config-name.h)
+ -rm -f $(addprefix $(objpfx),config.status config.cache config.log)
+ -rm -f $(addprefix $(objpfx),config.make config-name.h config.h)
ifdef objdir
-rm -f $(objpfx)Makefile
endif
\f
# Make the distribution tarfile.
-distribute := README INSTALL NOTES COPYING.LIB COPYING ChangeLog NEWS \
+distribute := README INSTALL FAQ NOTES COPYING.LIB COPYING NEWS \
+ ChangeLog ChangeLog.[0-9] \
Makefile Makeconfig Makerules Rules Make-dist MakeTAGS \
+ extra-lib.mk o-iterator.mk \
ansidecl.h mkinstalldirs move-if-change install-sh \
configure configure.in aclocal.m4 config.sub config.guess\
- config.make.in config-name.in Makefile.in \
+ config.make.in config-name.in Makefile.in \
munch-tmpl.c munch.awk sysdep.h set-hooks.h libc-symbols.h
distribute := $(strip $(distribute))