(_hurd_sig_post): __sig_post renamed to __msg_sig_post.
[kopensolaris-gnu/glibc.git] / Make-dist
index dc16b00..0cb0146 100644 (file)
--- a/Make-dist
+++ b/Make-dist
@@ -1,4 +1,4 @@
-# Copyright (C) 1991, 1992 Free Software Foundation, Inc.
+# Copyright (C) 1991, 1992, 1993, 1994 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
@@ -31,21 +31,32 @@ foo:=$(shell echo 'foobar=$(filter %.c %.S %.s %.h,$(distribute))'>&2)
 
 ifndef sysdep_dirs
 # Find all sysdep directories.
-export sysdep_dirs := $(shell find $(..)sysdeps -type d -print)
+export sysdep_dirs := $(shell find $(..)sysdeps -type d ! -name RCS -print)
 else
 # Defined by the parent.
 sysdep_dirs := $(addprefix $(..),$(sysdep_dirs))
 endif
 
+sysdep-Subdir-files := $(wildcard $(addsuffix /Subdirs,$(sysdep_dirs)))
+ifdef sysdep-Subdir-files
+subdirs := $(sort $(subdirs) \
+                 $(shell sed -e 's/\#.*$$//' $(sysdep-Subdir-files)))
+endif
+
+
 # Makefiles can define `source_dirs' to list nonstandard directories
 # where source files might be found.
 
 ifdef  subdir
 all-headers = $(headers)
 else
-+distinfo := $(shell MAKEFLAGS= MFLAGS= $(MAKE) MAKELEVEL=0 \
-                                               -s no_deps=t echo-distinfo)
++distinfo := $(shell MAKEFLAGS= MFLAGS= $(MAKE) -s no_deps=t \
+                    inhibit_interface_rules=t inhibit_mach_syscalls=t \
+                    subdirs='$(subdirs)' echo-distinfo | grep -v '^make')
+foo:=$(shell echo>&2 '+distinfo=$(+distinfo)')
 all-headers := $(patsubst +header+%,%,$(filter +header+%,$(+distinfo)))
+# Ignore subdir headers without top-level indirections.
+all-headers := $(sort $(headers) $(wildcard $(all-headers)))
 +subdir-nodist := $(patsubst +nodist+%,%,$(filter +nodist+%,$(+distinfo)))
 +subdir-headers := $(filter-out $(headers),$(all-headers))
 endif
@@ -53,7 +64,7 @@ foo:=$(shell echo 'IS THIS WORKING??? all-headers=$(all-headers)' >&2)
 
 # Find all sysdep sources and headers.
 +maybe-sysdeps := $(sources) $(sources:.c=.s) $(sources:.c=.S) $(all-headers) \
-                 $(filter %.c %.S %.s %.h,$(distribute))
+                 $(filter %.c %.S %.s %.h %.sub,$(distribute))
 foo:=$(shell echo '+maybe-sysdeps=$(+maybe-sysdeps)'>&2)
 # Find all the files that have a stub or generic version.
 try-sysdeps := $(foreach dir,$(..)sysdeps/stub $(..)sysdeps/generic,\
@@ -61,27 +72,35 @@ try-sysdeps := $(foreach dir,$(..)sysdeps/stub $(..)sysdeps/generic,\
 foo:=$(shell echo 'try-sysdeps=$(try-sysdeps)'>&2)
 +sysdeps := $(wildcard $(try-sysdeps))
 foo:=$(shell echo 'stub/generic +sysdeps=$(+sysdeps)'>&2)
-+sysdeps := $(notdir $(+sysdeps))      # Get just the file names.
++sysdep-names := $(sort $(notdir $(+sysdeps)))
+foo:=$(shell echo '+sysdep-names=$(+sysdep-names)' >&2)
+
 # Now find all the sysdep versions of those files.
 +sysdeps := $(wildcard $(foreach dir,$(sysdep_dirs) $(source_dirs),\
-                                $(addprefix $(dir)/,$(+sysdeps))))
+                                $(addprefix $(dir)/, \
+                                            $(+sysdep-names) \
+                                            $(+sysdep-names:.c=.s) \
+                                            $(+sysdep-names:.c=.S) \
+                                 )))
+
 
 # Source and header files to go in the distribution tar file.
 
 .S.s := $(wildcard $(sources:.c=.S) $(sources:.c=.s))
 sources := $(filter-out $(addsuffix .c,$(basename $(.S.s))),$(sources)) $(.S.s)
 
-+sysdep-names := $(sort $(notdir $(+sysdeps)))
-foo:=$(shell echo '+sysdep-names=$(+sysdep-names)' >&2)
 +out := $(patsubst %.S,%.c,$(+sysdep-names:.s=.c)) \
        $(addsuffix .c,$(sysdep_routines)) \
        $(+subdir-nodist)
-foo:=$(shell echo '+out=$(+out)' >&2; echo foofoo >&2)
+#foo:=$(shell echo '+out=$(+out)' >&2; echo foofoo >&2)
 +tsrcs := $(filter-out $(+out) $(addprefix %/,$(+out)), \
                        $(sources) $(all-headers) $(distribute)) \
           $(+sysdeps)
 foo:=$(shell echo made +tsrcs >&2)
-+tsrcs := $(sort $(filter-out $(dont_distribute),$(+tsrcs)))
+foo:=$(shell echo generated='$(generated)' >&2)
+generated := $(sort $(generated) $(generated:.S=.c) $(generated:.s=.c))
+foo:=$(shell echo now generated='$(generated)' >&2)
++tsrcs := $(sort $(filter-out $(generated),$(+tsrcs)))
 foo:=$(shell echo '+tsrcs=$(+tsrcs)'>&2)
 foo:=$(shell echo foobie, dammit! >&2)
 
@@ -91,12 +110,18 @@ rel+vers := $(shell sed -n -e 's/^.*libc_release.*\"\([^"]*\)";$$/\1/p' \
                    < $(..)version.c)
 release := $(word 1,$(rel+vers))
 version := $(word 2,$(rel+vers))
-tardir := glibc-$(version)
+export tardir := glibc-$(version)
 endif
 
-$(..)glibc-%:
+$(..)glibc-$(version):
        ln -s . $@
 
++tsrcs := $(+tsrcs) \
+         TAGS
+.PHONY: TAGS
+TAGS: $(..)MakeTAGS
+       $(MAKE) -f $< $@ -o subdir_TAGS
+
 ifdef     subdir
 
 foo:=$(shell echo subdir foo >&2)
@@ -108,6 +133,8 @@ foo:=$(shell echo subdir foo >&2)
 +tardeps := $(strip $(+tsrcs))
 +tsrcs := $(addprefix $(tardir)/$(subdir)/,$(+tardeps))
 
+verbose = v
+
 .PHONY: dist
 dist: $(..)$(tardir) $(+tardeps)
        @cd ..; if test -f dist.tar; then c=u; else c=c; fi;    \
@@ -121,66 +148,71 @@ else      # Parent makefile.
 foo:=$(shell echo parent foobie>&2)
 +sysdep-distfiles := $(wildcard $(addsuffix /Dist,$(sysdep_dirs)))
 foo:=$(shell echo +sysdep-distfiles='$(+sysdep-distfiles)'>&2)
-sysdep-Subdir-files := $(wildcard $(addsuffix /Subdirs,$(sysdep_dirs)))
-ifdef sysdep-Subdir-files
-subdirs := $(sort $(subdirs) $(shell cat $(sysdep-Subdir-files)))
-endif
 +sysdep-dist := $(foreach file,$(+sysdep-distfiles),\
-                         $(addprefix $(dir $(file)),$(shell cat $(file)))) \
+                         $(addprefix $(dir $(file)), \
+                                     $(shell sed -e 's/\#.*$$//' $(file)))) \
                $(+sysdep-distfiles) \
                $(sysdep-Subdir-files)
 foo:=$(shell echo '+sysdep-dist=$(+sysdep-dist)' >&2)
 
 subdirs := $(filter-out crypt,$(subdirs))
 
-+sysdep-tsrcs := $(wildcard $(foreach file,Makefile Implies,\
++sysdep-tsrcs := $(wildcard $(foreach file,Makefile Implies \
+                                          configure configure.in,\
                                      $(addsuffix /$(file),$(sysdep_dirs)))) \
                 $(+sysdep-dist)
 
 +tsrcs := $(+tsrcs) $(+sysdep-tsrcs)
 
-.PHONY: dist
-# N.B.: The order in which these are done matters (so don't use -j).
-MAKEFLAGS = -j1          # I wonder if that works.
-dist: dist.tar subdir_dist de-.. dist.tar.Z \
-      $(tardir).tar.Z $(tardir)-crypt.tar.Z
+%/configure: %/configure.in
+       autoconf $(ACFLAGS) $< > $@.new
+       mv -f $@.new $@
 
-$(tardir).tar.Z: dist.tar.Z
-       ln $< $@
+.PHONY: dist
+dist: $(tardir).tar.gz $(tardir)-crypt.tar.gz
 
-$(tardir)-crypt.tar.Z: crypt/crypt.tar.Z
+$(tardir)-crypt.tar.gz: crypt/crypt.tar.gz
        ln $< $@
-crypt/%:
+crypt/%: FORCE
        $(MAKE) -C $(@D) $(@F)
+FORCE:
 
+subdir_dist: dist.tar
 dist.tar: $(tardir) $(+tsrcs)
-       tar ch$(verbose)f $@ $(addprefix $(tardir)/,$(filter-out $(tardir),$^))
+       tar chvf $@ $(addprefix $(tardir)/,$(filter-out $(tardir),$^))
 
-de-..: dist.tar
-       tar xf $< -C /tmp
-       tar cf $< -C /tmp $(tardir)
+$(tardir).tar: dist.tar subdir_dist
+       tar xfv $< -C /tmp | doschk
+       tar covf $@ -C /tmp $(tardir)
        -rm -fr /tmp/$(tardir) &
 
-README: README.template version.c
-       -rm -f $@
-       sed -e 's/RELEASE/$(release)/' -e 's/VERSION/$(version)/' < $< > $@
-# Make it unwritable so I won't change it by mistake.
-       chmod 444 $@
-
-INSTALL: manual/maint.texinfo
-       makeinfo +no-validate +no-warn +no-headers $<
-
 %.Z: %
        compress -c $< > $@
 
-foo:=$(shell echo 'subdirs=$(subdirs)' >&2)
+%.gz: %
+       gzip -9 -v -c $< > $@
+
+foo:=$(shell echo subdirs=$(subdirs) >&2)
 dist-subdirs := $(addprefix dist-,$(subdirs)) # dist-manual
 .PHONY: subdir_dist $(dist-subdirs)
 subdir_dist: $(dist-subdirs)
 $(dist-subdirs):
        $(MAKE) -C $(patsubst dist-%,%,$@) dist
 
+# This is here instead of in Makefile so it can use $(release) and $(version).
+README: README.template version.c
+       -rm -f $@
+       sed -e 's/RELEASE/$(release)/' -e 's/VERSION/$(version)/' < $< > $@
+# Make it unwritable so I won't change it by mistake.
+       chmod 444 $@
+
+
 endif  # Subdirectory vs. parent makefile
 \f
 # Get these things out of the environment because they take up lots of space.
-unexport distribute sources
+unexport distribute generated
+
+# Fnord.
+export inhibit_mach_syscalls=t
+export no_deps=t
+export inhibit_interface_rules=t