diff options
-rw-r--r-- | ChangeLog | 18 | ||||
-rw-r--r-- | Make-dist | 266 | ||||
-rw-r--r-- | Makefile | 71 | ||||
-rw-r--r-- | Rules | 13 | ||||
-rw-r--r-- | rpm/Makefile | 102 | ||||
-rw-r--r-- | rpm/rpmrc | 3 | ||||
-rw-r--r-- | rpm/template | 41 |
7 files changed, 47 insertions, 467 deletions
diff --git a/ChangeLog b/ChangeLog index b4b3447185..e018e8fca7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -8,6 +8,24 @@ 2004-06-18 Roland McGrath <roland@frob.com> + * Makerules (compile-mkdep-flags): Add -MT $@. + + * Makefile (dist, tag-for-dist): New targets. + (files-for-dist, tag-of-stem): New variables. + (glibc-%.tar glibc-linuxthreads-%.tar): New pattern rule. + Make tar files using cvs export. + (%.bz2, %.gz, tag-%): New pattern rules. + (distribute): Variable removed. + (+subdir_targets): Remove distinfo targets. + (echo_subdirs, echo-distinfo, parent_echo-distinfo): Targets removed. + (rpm/%): Pattern rule removed. + * rpm/Makefile, rpm/rpmrc, rpm/template: Ancient cruft files removed. + * Rules (subdir_echo-headers, subdir_echo-distinfo, subdir_dist): + Targets removed. + * Makerules (dist, subdir_distinfo): Targets removed. + ($(objpfx)distinfo): Depend on $(distribute). + * Make-dist: File removed. + * NEWS: Fix a typo. Update bug-reporting instructions. 2004-06-17 Thorsten Kukuk <kukuk@suse.de> diff --git a/Make-dist b/Make-dist deleted file mode 100644 index a5f4ddb54f..0000000000 --- a/Make-dist +++ /dev/null @@ -1,266 +0,0 @@ -# Copyright (C) 1991-2001, 2002, 2003 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 -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. - -# The GNU C Library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. - -# You should have received a copy of the GNU Lesser General Public -# License along with the GNU C Library; if not, write to the Free -# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -# 02111-1307 USA. - -dist: - -# Make the value empty so ifdef fails if it's $(-subdir). -subdir := $(subdir) -ifdef subdir -.. := ../ -else -.. := -endif - -include $(..)Makeconfig - -foo:=$(shell echo 'distribute=$(distribute)'>&2) -foo:=$(shell echo 'dont_distribute=$(dont_distribute)'>&2) -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 ! -name bits \ - ! -name CVS ! -name RCS \ - ! -name SCCS -print) -else -# Defined by the parent. -sysdep_dirs := $(addprefix $(..),$(sysdep_dirs)) -endif - -# Don't distribute add-on subdirs. -subdirs := $(filter-out $(add-ons),$(subdirs)) - -# Make sure both aout and elf get in, whichever is in use. -subdirs += aout elf - -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 = $(filter-out $(sysdep_headers),$(headers)) -else -+distinfo := $(shell MAKEFLAGS= MFLAGS= $(MAKE) -s no_deps=t \ - inhibit_interface_rules=t inhibit_mach_syscalls=t \ - inhibit_timezone_rules=t generating=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) \ - $(patsubst include/%,%,\ - $(wildcard $(addprefix include/,\ - $(all-headers))))) -# Filter out names like ../conf/portability.h that would point outside -# the source directory. -all-headers := $(filter-out ../%,$(all-headers)) -+subdir-nodist := $(patsubst +nodist+%,%,$(filter +nodist+%,$(+distinfo))) -endif -foo:=$(shell echo 'IS THIS WORKING??? all-headers=$(all-headers)' >&2) - -sources += $(addsuffix .c,$(elided-routines) \ - $(foreach l,$(extra-libs),$($l-routines))) - -sources += $(addsuffix .c, $(filter-out $(elided-routines), \ - $(tests) $(xtests))) - -# Find all sysdep sources and headers. -+maybe-sysdeps := $(sources) $(sources:.c=.s) $(sources:.c=.S) $(all-headers) \ - $(filter %.c %.S %.s %.h %.sub,$(distribute)) -foo:=$(shell echo '+maybe-sysdeps=$(+maybe-sysdeps)'>&2) -# Find all the files that have a generic version. -generic-dirs = $(..)sysdeps/generic $(..)sysdeps/ieee754 \ - $(..)sysdeps/ieee754/flt-32 $(..)sysdeps/ieee754/dbl-64 \ - $(..)sysdeps/ieee754/ldbl-96 $(..)sysdeps/ieee754/ldbl-128 -try-sysdeps := $(foreach dir,$(generic-dirs),\ - $(addprefix $(dir)/,$(+maybe-sysdeps))) -foo:=$(shell echo 'try-sysdeps=$(try-sysdeps)'>&2) -+sysdeps := $(wildcard $(try-sysdeps)) -foo:=$(shell echo 'generic +sysdeps=$(+sysdeps)'>&2) -+sysdep-names := $(sort $(foreach dir, $(generic-dirs),\ - $(patsubst $(dir)/%,%,\ - $(filter $(dir)/%,$(+sysdeps))))) -foo:=$(shell echo '+sysdep-names=$(+sysdep-names)' >&2) - -ifdef subdir-dirs -vpath % $(subdir-dirs) -endif - -# Now find all the sysdep versions of those files. -+sysdeps := $(foreach dir,$(sysdep_dirs) $(source_dirs),\ - $(wildcard $(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) - -+out := $(patsubst %.S,%.c,$(+sysdep-names:.s=.c)) \ - $(addsuffix .c,$(sysdep_routines)) \ - $(+subdir-nodist) $(dont_distribute) -foo:=$(shell echo '+out=$(+out)' >&2; echo foofoo >&2) -+tsrcs := $(filter-out $(+out), $(sources) $(all-headers)) $(+sysdeps) -foo:=$(shell echo 'made +tsrcs=$(+tsrcs)'>&2) -foo:=$(shell echo generated='$(generated)' >&2) -#generated := $(sort $(generated) $(generated:.S=.c) $(generated:.s=.c)) -#foo:=$(shell echo now generated='$(generated)' >&2) -+tsrcs := $(filter-out $(generated),$(+tsrcs)) -+tsrcs := $(sort $(filter-out $(+out),$(+tsrcs) $(distribute))) -foo:=$(shell echo '+tsrcs=$(+tsrcs)'>&2) -foo:=$(shell echo foobie, dammit! >&2) - -ifndef tardir -export tardir := glibc-$(version) -endif - -$(..)glibc-$(version): - ln -s . $@ - -#+tsrcs := $(+tsrcs) \ -# TAGS -.PHONY: TAGS -TAGS: $(..)MakeTAGS - $(MAKE) -f $< $@ -o subdir_TAGS - -ifdef subdir - -foo:=$(shell echo subdir foo >&2) - -+tsrcs := Makefile $(wildcard Versions) $(wildcard Depend) $(+tsrcs) \ - $(addsuffix .c,$(others) $(test-srcs)) \ - $(wildcard $(addsuffix .input,$(tests) $(xtests) $(test-srcs))) -+tardeps := $(strip $(+tsrcs)) - -verbose = v - -.PHONY: dist -dist: $(..)$(tardir) $(+tardeps) - @cd ..; if test -f dist.tar; then c=u; else c=c; fi; \ - $(+cmdecho) "cd ..; tar $${c}h$(verbose)f dist.tar ..."; \ - tar $${c}h$(verbose)f dist.tar \ - $(addprefix $(tardir)/$(subdir)/,$(filter-out $< ../%,$^)) \ - $(addprefix $(tardir)/,\ - $(patsubst ../%,%,$(filter-out $<,$(filter ../%,$^)))) - -else # Parent makefile. - -# Find what other things sysdep directories want to distribute. - -foo:=$(shell echo parent foobie>&2) -+sysdep-distfiles := $(wildcard $(addsuffix /Dist,$(sysdep_dirs))) -foo:=$(shell echo +sysdep-distfiles='$(+sysdep-distfiles)'>&2) -+sysdep-dist := $(foreach file,$(+sysdep-distfiles),\ - $(addprefix $(dir $(file)), \ - $(shell sed -e 's/\#.*$$//' $(file)))) \ - $(+sysdep-distfiles) \ - $(sysdep-Subdir-files) -foo:=$(shell echo '+sysdep-dist=$(+sysdep-dist)' >&2) - -+sysdep-tsrcs := $(wildcard $(foreach file,Makefile Makeconfig Implies \ - configure configure.in Versions\ - syscalls.list libm-test-ulps,\ - $(addsuffix /$(file),$(sysdep_dirs)))) \ - $(+sysdep-dist) - -+tsrcs := $(+tsrcs) $(+sysdep-tsrcs) $(wildcard $(+sysdep-names:%=include/%)) - -ifneq ($(AUTOCONF),no) - -ifeq ($(with-cvs),yes) -define autoconf-it-cvs -test ! -d CVS || cvs $(CVSOPTS) commit -m'Regenerated: autoconf $(ACFLAGS) $<' $@ -endef -else -autoconf-it-cvs = -endif - -define autoconf-it -@-rm -f $@.new -$(AUTOCONF) $(ACFLAGS) $< > $@.new -chmod a-w,a+x $@.new -mv -f $@.new $@ -$(autoconf-it-cvs) -endef - -configure: configure.in aclocal.m4; $(autoconf-it) -%/configure: %/configure.in aclocal.m4; $(autoconf-it) - -endif # $(AUTOCONF) = no - - -dist: $(tardir).tar.bz2 - rm $(tardir).tar - -subdir_dist: dist.tar -dist.tar: README $(tardir) $(+tsrcs) - tar chvf $@ $(addprefix $(tardir)/,$(filter-out $(tardir),$^)) - -$(tardir).tar: dist.tar subdir_dist - tar xf $< -C $${TMPDIR-/tmp} - tar covf $@ -C $${TMPDIR-/tmp} $(tardir) - -rm -fr $${TMPDIR-/tmp}/$(tardir) dist.tar & - rm $(tardir) - -%.Z: % - compress -c $< > $@ - -%.gz: % - gzip -9 -v -c $< > $@ - -%.bz2: % - bzip2 -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.h - -rm -f $@ - sed -e 's/RELEASE/$(release)/' -e 's/VERSION/$(version)/' < $< > $@ -# Make it unwritable so I won't change it by mistake. - chmod 444 $@ -ifeq ($(with-cvs),yes) - test ! -d CVS || cvs $(CVSOPTS) commit -m'Remade for $(release)-$(version)' $@ -endif - - -endif # Subdirectory vs. parent makefile - -# Get these things out of the environment because they take up lots of space. -unexport distribute generated - -# Fnord. -export inhibit_mach_syscalls=t -export no_deps=t -export inhibit_interface_rules=t -export generating=t diff --git a/Makefile b/Makefile index a422ffd22b..da743e4f51 100644 --- a/Makefile +++ b/Makefile @@ -61,8 +61,8 @@ endif # $(AUTOCONF) = no +subdir_targets := subdir_lib objects objs others subdir_mostlyclean \ subdir_clean subdir_distclean subdir_realclean \ tests xtests subdir_lint.out \ - subdir_update-abi subdir_check-abi subdir_distinfo \ - subdir_echo-headers subdir_echo-distinfo \ + subdir_update-abi subdir_check-abi \ + subdir_echo-headers \ subdir_install \ subdir_testclean \ $(addprefix install-, no-libc.a bin lib data headers others) @@ -259,47 +259,9 @@ ifdef objdir endif -rm -f $(sysdep-$(distclean-1)) -.PHONY: echo_subdirs -echo_subdirs:;@echo '$(subdirs)' - -.PHONY: echo-distinfo parent_echo-distinfo -echo-distinfo: parent_echo-distinfo subdir_echo-distinfo -parent_echo-distinfo: - @echo $(addprefix +header+,$(headers)) \ - $(addprefix +nodist+,$(generated)) - - # Make the distribution tarfile. +.PHONY: dist tag-for-dist -distribute := README README.libm INSTALL FAQ FAQ.in NOTES NEWS BUGS \ - PROJECTS COPYING.LIB COPYING ChangeLog ChangeLog.[0-9] \ - ChangeLog.1[0-9] Makefile Makeconfig Makerules Rules \ - Make-dist MakeTAGS extra-lib.mk o-iterator.mk configure \ - extra-modules.mk \ - configure.in aclocal.m4 config.h.in config.make.in \ - config-name.in Makefile.in sysdep.h set-hooks.h \ - libc-symbols.h version.h shlib-versions rpm/Makefile \ - rpm/template rpm/rpmrc abi-tags stub-tag.h \ - test-skeleton.c include/des.h include/libc-internal.h \ - include/shlib-compat.h include/pthread.h Versions.def \ - cppflags-iterator.mk tls.make.c include/caller.h \ - include/stubs-prologue.h include/gnu/stubs.h \ - include/atomic.h bits/atomic.h symbol-hacks.h \ - INTERFACE CONFORMANCE NAMESPACE LICENSES \ - $(addprefix scripts/, \ - rellns-sh config.sub config.guess \ - mkinstalldirs move-if-change install-sh \ - test-installation.pl gen-FAQ.pl versions.awk\ - gen-sorted.awk abi-versions.awk abilist.awk \ - firstversions.awk documented.sh cpp \ - output-format.sed gen-as-const.awk \ - merge-abilist.awk extract-abilist.awk \ - rpm2dynsym.sh \ - ) \ - $(wildcard scripts/data/*.data) \ - $(wildcard abilist/*.abilist) - -distribute := $(strip $(distribute)) generated := $(generated) stubs.h README: README.template version.h @@ -311,6 +273,30 @@ ifeq ($(with-cvs),yes) test ! -d CVS || cvs $(CVSOPTS) commit -m'Remade for $(release)-$(version)' $@ endif +files-for-dist := README FAQ INSTALL NOTES configure + +tag-of-stem = glibc-$(subst .,_,$*) + +glibc-%.tar glibc-linuxthreads-%.tar: $(files-for-dist) + @rm -fr glibc-$* + cvs $(CVSOPTS) -Q export -d glibc-$* -r $(tag-of-stem) libc + tar cf glibc-linuxthreads-$*.tar -C glibc-$* \ + linuxthreads linuxthreads_db + rm -rf $(addprefix glibc-$*/,linuxthreads linuxthreads_db) + tar cf glibc-$*.tar glibc-$* + rm -fr glibc-$* + +%.bz2: %; bzip2 -9vk $< +%.gz: %; gzip -9vnc $< > $@.new && mv -f $@.new $@ + +dist: $(foreach Z,.bz2 .gz,glibc-$(version).tar$Z \ + glibc-linuxthreads-$(version).tar$Z) + md5sum $^ + +tag-for-dist: tag-$(version) +tag-%: $(files-for-dist) + cvs $(CVSOPTS) -Q tag -c $(tag-of-stem) + define format-me @rm -f $@ makeinfo --no-validate --no-warn --no-headers $< -o $@ @@ -327,9 +313,6 @@ ifeq ($(with-cvs),yes) endif FORCE: -rpm/%: subdir_distinfo - $(MAKE) $(PARALLELMFLAGS) -C $(@D) $(@F) - iconvdata/% localedata/% po/% manual/%: $(MAKE) $(PARALLELMFLAGS) -C $(@D) $(@F) diff --git a/Rules b/Rules index da21ac6544..64179ad64d 100644 --- a/Rules +++ b/Rules @@ -1,4 +1,4 @@ -# Copyright (C) 1991-2000,2002,2003 Free Software Foundation, Inc. +# Copyright (C) 1991-2000,2002,2003, 2004 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 @@ -159,23 +159,14 @@ subdir_testclean: do-tests-clean realclean: distclean distclean: clean -.PHONY: subdir_echo-headers -subdir_echo-headers: echo-headers - -.PHONY: subdir_echo-distinfo -subdir_echo-distinfo: - @echo $(addprefix +header+,$(headers) $(filter %.h,$(distribute))) \ - $(addprefix +nodist+,$(generated) $(common-generated) $(dont_distribute)) - # We want to install everything except the library itself, but update all # our portions of the library because the parent make will install it later # (likewise the stubs file). .PHONY: subdir_install subdir_install: install-no-libc.a lib-noranlib stubs -.PHONY: subdir_TAGS subdir_dist +.PHONY: subdir_TAGS subdir_TAGS: TAGS -subdir_dist: dist # Target required by the Hurd to ensure that all the MiG-generated # headers are in place before building a subdirectory. diff --git a/rpm/Makefile b/rpm/Makefile deleted file mode 100644 index 8c5a1a35f6..0000000000 --- a/rpm/Makefile +++ /dev/null @@ -1,102 +0,0 @@ -# A start at automated rpm-making for GNU libc. -# Generates an rpm spec file in `CPU-VENDOR-OS' from the list of installed -# files and the `template' file. - -all: - -subdir := rpm -include ../Makeconfig -include $(common-objpfx)soversions.mk - -distinfo := $(common-objpfx)distinfo \ - $(wildcard $(subdirs:%=$(common-objpfx)%/distinfo)) --include $(distinfo) - -config = $(config-machine)-$(config-vendor)-$(config-os) - -headers := $(-headers) $(foreach d,$(subdirs),$($d-headers)) -install-lib := $(-install-lib) $(foreach d,$(subdirs),$($d-install-lib)) -install-lib.so := $(-install-lib.so) \ - $(foreach d,$(subdirs),$(filter-out $($d-versioned),\ - $($d-install-lib.so))) -versioned := $(-versioned) $(foreach d,$(subdirs),$($d-versioned)) -install-bin := $(-install-bin) $(foreach d,$(subdirs),$($d-install-bin)) -install-sbin := $(-install-sbin) $(foreach d,$(subdirs),$($d-install-sbin)) -install-data := $(-install-data) $(foreach d,$(subdirs),$($d-install-data)) -install-others := $(-install-others) \ - $(foreach d,$(subdirs),$($d-install-others)) - -# Notice things to be installed in /etc. They get specially marked as -# possibly user-modified config files. -install-sysconf := $(filter $(sysconfdir)/%,$(install-others)) -install-others := $(filter-out $(sysconfdir)/%,$(install-others)) - -# Add the unversioned lib*.so's. -install-slib = $(install-lib.so) - -# For each versioned lib*.so, add two files: -# lib*-VERSION.so and lib*.so.MAJOR -install-slib += $(foreach lib,$(versioned),\ - $(patsubst %.so,%-$(version).so,$(lib)) \ - $(lib)$($(lib)-version)) -install-lib += $(versioned) - -# Add libc.a and libc_p.a. -install-lib += $(foreach o,$(filter-out .os,$(object-suffixes-for-libc)),\ - $(patsubst %,$(libtype$o),c)) - -ifeq (yes,$(build-shared)) -# Add libc.so itself, which is a special case in Makerules. -ifndef libc.so-version -install-slib += libc.so -else -install-lib += libc.so -install-slib += libc-$(version).so libc.so$(libc.so-version) -endif -endif - - -all: glibc-$(version).$(config).rpm - -instvars = include lib slib bin sbin data others - -# Generate the rpm spec file for this configuration. -$(config): template $(distinfo) Makefile - rm -f $@.new - (sed -e 's%@VERSION@%$(version)%g' \ - -e 's%@prefix@%$(prefix)%g' \ - $<; \ - ($(foreach var,$(instvars),\ - list='$(install-$(var))'; \ - for f in $$list; do \ - echo $(filter-out /,$($(var)dir)/)$$f; \ - done;\ - )) | sort; \ - (list='$(install-sysconf)'; \ - for f in $$list; do \ - echo %config $$f; \ - done) | sort) > $@.new - mv -f $@.new $@ - -install-include = $(headers) - -instfiles := $(sort $(foreach x,$(instvars),\ - $(addprefix $(filter-out /,$($xdir)/),\ - $(install-$x)))) - -# Build the binary rpm for this configuration. -glibc-$(version).$(config).rpm: $(config) rpmrc $(instfiles) -# rpm is really lame. You cannot tell it the name of the output file, -# and you can only guess at what the name will turn out to be! - arch=`uname -m | sed -e 's/i.86/i386/' -e 's/alpha/axp/'`; \ - rm -f $$arch; ln -s . $$arch; \ - rpm --rcfile rpmrc -bb $<; \ - rm -f $$arch; \ - mv -f glibc-$(version)-1.$${arch}.rpm $@ - -# Avoid time-consuming implicit rule search. -$(instfiles) : ; - -.PHONY: clean -clean: - rm -f $(config) glibc-$(version).$(config).rpm diff --git a/rpm/rpmrc b/rpm/rpmrc deleted file mode 100644 index 5579659a82..0000000000 --- a/rpm/rpmrc +++ /dev/null @@ -1,3 +0,0 @@ -rpmdir: . -srcrpmdir: . -specdir: . diff --git a/rpm/template b/rpm/template deleted file mode 100644 index bc7972bf76..0000000000 --- a/rpm/template +++ /dev/null @@ -1,41 +0,0 @@ -Name: glibc -Summary: GNU libc -Group: Development/Libraries/Libc -Version: @VERSION@ -Release: 1 -Copyright: LGPL, GPL -Source: glibc-@VERSION@.tar.gz -BuildRoot: /tmp/libc - -%description -The C language provides no built-in facilities for performing such -common operations as input/output, memory management, string -manipulation, and the like. Instead, these facilities are defined in -a standard library, which you compile and link with your programs. The -GNU C library (this package) defines all of the library functions that -are specified by the ISO C standard, as well as additional features -specific to POSIX and other derivatives of the Unix operating system, -and extensions specific to the GNU system. - -%prep -%setup - -rm -rf $RPM_BUILD_ROOT -mkdir $RPM_BUILD_ROOT - -%build -configure --prefix=@prefix@ -cat >configparms <<EOF -CFLAGS=$RPM_OPT_FLAGS -install_root=$RPM_BUILD_ROOT -EOF -make - -%clean -rm -rf $RPM_BUILD_ROOT - -%install -make install - -%files -%doc BUGS FAQ NEWS NOTES README INSTALL |