1996-06-16 06:52:32 +00:00
|
|
|
|
# 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
|
|
|
|
|
include $(common-objpfx)version.mk
|
|
|
|
|
|
1996-06-18 22:23:37 +00:00
|
|
|
|
distinfo := $(common-objpfx)distinfo- \
|
|
|
|
|
$(wildcard $(subdirs:%=$(common-objpfx)distinfo-%))
|
1996-06-16 06:52:32 +00:00
|
|
|
|
-include $(distinfo)
|
|
|
|
|
|
|
|
|
|
config = $(config-machine)-$(config-vendor)-$(config-os)
|
|
|
|
|
|
1996-06-28 11:42:05 +00:00
|
|
|
|
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),\
|
1996-06-16 06:52:32 +00:00
|
|
|
|
$($d-install-lib.so)))
|
1996-06-28 11:42:05 +00:00
|
|
|
|
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))
|
1996-06-16 06:52:32 +00:00
|
|
|
|
|
|
|
|
|
# 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 to install-lib.
|
|
|
|
|
install-lib += $(install-lib.so)
|
|
|
|
|
|
|
|
|
|
# For each versioned lib*.so, add three files:
|
|
|
|
|
# lib*-VERSION.so, lib*.so.MAJOR, and lib*.so
|
|
|
|
|
install-lib += $(foreach lib,$(versioned),\
|
|
|
|
|
$(patsubst %.so,%-$(version).so,$(lib)) \
|
|
|
|
|
$(lib)$($(lib)-version) $(lib))
|
|
|
|
|
|
1996-06-16 09:31:23 +00:00
|
|
|
|
# Add libc.a and libc_p.a.
|
|
|
|
|
install-lib += $(foreach o,$(filter-out .so,$(object-suffixes)),\
|
|
|
|
|
$(patsubst %,$(libtype$o),c))
|
|
|
|
|
|
|
|
|
|
ifeq (yes,$(build-shared))
|
1996-06-16 06:52:32 +00:00
|
|
|
|
# Add libc.so itself, which is a special case in Makerules.
|
1996-06-16 08:46:47 +00:00
|
|
|
|
ifndef libc.so-version
|
1996-06-16 06:52:32 +00:00
|
|
|
|
install-others += $(slibdir)/libc.so
|
1996-06-16 08:46:47 +00:00
|
|
|
|
else
|
|
|
|
|
install-others += $(libdir)/libc.so \
|
|
|
|
|
$(slibdir)/libc-$(version).so \
|
1996-06-16 06:52:32 +00:00
|
|
|
|
$(slibdir)/libc.so$(libc.so-version)
|
|
|
|
|
endif
|
1996-06-16 09:31:23 +00:00
|
|
|
|
endif
|
1996-06-16 06:52:32 +00:00
|
|
|
|
|
|
|
|
|
|
1996-06-16 08:46:47 +00:00
|
|
|
|
all: glibc-$(version).$(config).rpm
|
1996-06-16 06:52:32 +00:00
|
|
|
|
|
1996-06-16 08:46:47 +00:00
|
|
|
|
instvars = include lib bin sbin data others
|
1996-06-16 06:52:32 +00:00
|
|
|
|
|
1996-06-16 08:46:47 +00:00
|
|
|
|
# Generate the rpm spec file for this configuration.
|
1996-06-16 06:52:32 +00:00
|
|
|
|
$(config): template $(distinfo) Makefile
|
|
|
|
|
rm -f $@.new
|
1996-07-02 21:57:31 +00:00
|
|
|
|
(sed -e 's%@VERSION@%$(version)%g' \
|
|
|
|
|
-e 's%@prefix@%$(prefix)%g' \
|
|
|
|
|
$<; \
|
1996-06-16 08:46:47 +00:00
|
|
|
|
($(foreach var,$(instvars),\
|
Tue Jun 25 02:59:11 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* malloc/malloc.h: Declare malloc_object_allocated_size, malloc_walk.
* malloc/Makefile (dist-routines): Add malloc-size, malloc-walk.
* malloc/malloc-size.c: New file.
* malloc/malloc-walk.c: New file.
* malloc/malloc-find.c (malloc_find_object_address): Return null if
PTR is outside the heap.
* elf/dl-load.c (_dl_map_object): If the requested name matches the
soname of a loaded object, use that object.
Mon Jun 24 19:57:01 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* Makefile (subdirs): Add nss.
* inet/Makefile (routines): Add getrpcent, getrpcbyname,
getrpcbynumber, getrpcent_r, getrpcbyname_r, getrpcbynumber_r.
* inet/getrpcbynumber_r.c: New file.
* inet/getrpcbynumber.c: New file.
* inet/getrpcbyname.c: New file.
* inet/getrpcbyname_r.c: New file.
* inet/getrpcent_r.c: New file.
* inet/getrpcent.c: New file.
* nss/rpc-lookup.c: New file.
* nss/nss_files/files-rpc.c: New file.
* nss/Makefile (routines): Add rpc-lookup.
(libnss_files-routines): Add files-rpc.
* sunrpc/Makefile (routines): Remove getrpcent.
* sunrpc/getrpcent.c: File removed.
* nss/getXXent_r.c (REENTRANT_GETNAME): Clear NO_MORE when NIP is
non-null on entry.
* Makeconfig (rpath-link): Add $(nssobjdir).
(nssobjdir): New variable.
* Makerules: Move shared library building before objects rules, so
versions are known before extra-lib.mk gets included.
* extra-lib.mk (lib-noranlib): Depend on the shared object too.
* pwd/getpwuid.c: Rewritten using nss.
* pwd/getpwnam.c: Likewise.
* pwd/getpwent.c: Likewise.
* grp/getgrnam.c: Likewise.
* grp/getgrgid.c: Likewise.
* grp/getgrent.c: Likewise.
* pwd/Makefile (routines): Add getpwent_r, getpwnam_r, getpwuid_r.
* pwd/getpwent_r.c: New file.
* pwd/getpwnam_r.c: New file.
* pwd/getpwuid_r.c: New file.
* grp/Makefile (routines): Add getgrent_r, getgrgid_r, getgrnam_r.
* grp/getgrnam_r.c: New file.
* grp/getgrgid_r.c: New file.
* grp/getgrent_r.c: New file.
* grp/Makefile (routines): Remove grpopen, grpread.
* pwd/Makefile (routines): Remove pwdopen, pwdread.
* grp/grpopen.c, grp/grpread.c, pwd/pwdopen.c, pwd/pwdread.c: Removed.
* pwd/fgetpwent.c: Rewritten using files-parse.c.
* grp/fgetgrent.c: Likewise.
* nss/Makefile (routines): Add grp-lookup and pwd-lookup.
* nss/pwd-lookup.c, nss/grp-lookup.c: New files.
* nss/nss_files/files-grp.c: New file.
* nss/nss_files/files-pwd.c: New file.
* nss/Makefile (subdir-dirs): New variable; use it in vpath.
* nss/nss_files/files-parse.c: New file.
* nss/nss_files/files-XXX.c: New file.
* nss/nss_files/files-hosts.c, nss/nss_files/files-proto.c,
nss/nss_files/files-service.c, nss/nss_files/files-network.c:
Rewritten using them.
* nss/Makefile (libnss_files-routines): Remove files-host.
Add files-hosts, files-grp, files-pwd.
* nss/nss_dns/dns-network.c: Don't include <pthread.h>.
Mon Jun 24 22:39:12 1996 Richard Henderson <rth@tamu.edu>
* sysdeps/alpha/dl-machine.h (ELF_MACHINE_RUNTIME_TRAMPOLINE):
A .plt entry now loads the .rela.plt offset directly rather
than making us calculate it.
Sun Jun 23 15:24:05 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* time/Makefile ($(installed-localtime-file) rule): Do
$(make-target-directory) first.
* resolv.h: Fix wrapper for resolv/resolv.h.
* configure.in (ld --no-whole-archive check): Use AC_TRY_COMMAND.
Compile dummy file and pass -nostdlib -nostartfiles so as not to
require installed libraries.
* shlib-versions (*-*-*): Set libresolv=2, libnss_files=1,
libnss_dns=1.
Sun Jun 23 19:42:05 1996 Ulrich Drepper <drepper@cygnus.com>
* resolv/netdb.h (_PATH_NSSWITCH_CONF): New macro.
* inet/herrno.c: New file.
* resolv/res_init.c: Remove res_hconf calls.
* nss/Makefile, nss/XXX-lookup.c, nss/file-lookup.c,
nss/getXXbyYY.c, nss/getXXbyYY_r.c, nss/getXXent.c,
nss/getXXent_r.c, nss/host-lookup.c, nss/network-lookup.c,
nss/nsswitch.c, nss/nsswitch.h, nss/proto-lookup.c,
nss/service-lookup.c: New files. Implementation of name
service switch, following the approach in Solaris.
Interface specification and general structure inspired by Peter
Eriksson <pen@lysator.liu.se>.
* nss/nss_files/files-host.c, nss/nss_files/files-network.c,
nss/nss_files/files-proto.c, nss/nss_files/files-service.c:
Implementation of libnss_files.so module for file based databases
in NSS service.
* nss/nss_dns/dns-host.c, nss/nss_dns/dns-network.c: Implementation
if libnss_dns.so module for DNS name lookup in NSS service.
* inet/getproto.c, inet/getprtent.c, inet/getprtname.c,
inet/getservent.c, inet/getsrvbynm.c, inet/getsrvbypt.c:
Changed to serve as interface to NSS.
* inet/gethstbyad.c, inet/gethstbyad_r.c, inet/gethstbynm.c,
inet/gethstbynm2.c, inet/gethstbynm2_r.c, inet/gethstbynm_r.c,
inet/gethstent.c, inet/gethstent_r.c, inet/getnetbynm.c,
inet/getnetbynm_r.c, inet/getnetbypt.c, inet/getnetbypt_r.c,
inet/getnetent.c, inet/getnetent_r.c, inet/getproto_r.c,
inet/getprtent_r.c, inet/getprtname_r.c, inet/getservent_r.c,
inet/getsrvbynm_r.c, inet/getsrvbypt_r.c: New files. Implement
interfaces to NSS, including reentrant functions.
* resolv/getnetbyaddr.c, resolv/getnetbyname.c, resolv/getnetent.c,
resolv/sethostent.c: Removed: Obsoleted by NSS.
* resolv/mapv4v6addr.h, resolv/mapv4v6hostent.h: Extracted from
gethnamaddr.c. These private functions are now used in more
than one file.
* resolv/inet_pton.c, resolv/gethnamaddr.c: Updated to bind-4.9.4-T5B.
Sat Jun 22 16:49:47 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* rpm/Makefile ($(config)): Make sure the word list in the for
loop is syntactically non-empty.
1996-06-25 08:56:57 +00:00
|
|
|
|
list='$(install-$(var))'; \
|
|
|
|
|
for f in $$list; do \
|
1996-06-16 06:52:32 +00:00
|
|
|
|
echo $(filter-out /,$($(var)dir)/)$$f; \
|
|
|
|
|
done;\
|
|
|
|
|
)) | sort; \
|
Tue Jun 25 02:59:11 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* malloc/malloc.h: Declare malloc_object_allocated_size, malloc_walk.
* malloc/Makefile (dist-routines): Add malloc-size, malloc-walk.
* malloc/malloc-size.c: New file.
* malloc/malloc-walk.c: New file.
* malloc/malloc-find.c (malloc_find_object_address): Return null if
PTR is outside the heap.
* elf/dl-load.c (_dl_map_object): If the requested name matches the
soname of a loaded object, use that object.
Mon Jun 24 19:57:01 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* Makefile (subdirs): Add nss.
* inet/Makefile (routines): Add getrpcent, getrpcbyname,
getrpcbynumber, getrpcent_r, getrpcbyname_r, getrpcbynumber_r.
* inet/getrpcbynumber_r.c: New file.
* inet/getrpcbynumber.c: New file.
* inet/getrpcbyname.c: New file.
* inet/getrpcbyname_r.c: New file.
* inet/getrpcent_r.c: New file.
* inet/getrpcent.c: New file.
* nss/rpc-lookup.c: New file.
* nss/nss_files/files-rpc.c: New file.
* nss/Makefile (routines): Add rpc-lookup.
(libnss_files-routines): Add files-rpc.
* sunrpc/Makefile (routines): Remove getrpcent.
* sunrpc/getrpcent.c: File removed.
* nss/getXXent_r.c (REENTRANT_GETNAME): Clear NO_MORE when NIP is
non-null on entry.
* Makeconfig (rpath-link): Add $(nssobjdir).
(nssobjdir): New variable.
* Makerules: Move shared library building before objects rules, so
versions are known before extra-lib.mk gets included.
* extra-lib.mk (lib-noranlib): Depend on the shared object too.
* pwd/getpwuid.c: Rewritten using nss.
* pwd/getpwnam.c: Likewise.
* pwd/getpwent.c: Likewise.
* grp/getgrnam.c: Likewise.
* grp/getgrgid.c: Likewise.
* grp/getgrent.c: Likewise.
* pwd/Makefile (routines): Add getpwent_r, getpwnam_r, getpwuid_r.
* pwd/getpwent_r.c: New file.
* pwd/getpwnam_r.c: New file.
* pwd/getpwuid_r.c: New file.
* grp/Makefile (routines): Add getgrent_r, getgrgid_r, getgrnam_r.
* grp/getgrnam_r.c: New file.
* grp/getgrgid_r.c: New file.
* grp/getgrent_r.c: New file.
* grp/Makefile (routines): Remove grpopen, grpread.
* pwd/Makefile (routines): Remove pwdopen, pwdread.
* grp/grpopen.c, grp/grpread.c, pwd/pwdopen.c, pwd/pwdread.c: Removed.
* pwd/fgetpwent.c: Rewritten using files-parse.c.
* grp/fgetgrent.c: Likewise.
* nss/Makefile (routines): Add grp-lookup and pwd-lookup.
* nss/pwd-lookup.c, nss/grp-lookup.c: New files.
* nss/nss_files/files-grp.c: New file.
* nss/nss_files/files-pwd.c: New file.
* nss/Makefile (subdir-dirs): New variable; use it in vpath.
* nss/nss_files/files-parse.c: New file.
* nss/nss_files/files-XXX.c: New file.
* nss/nss_files/files-hosts.c, nss/nss_files/files-proto.c,
nss/nss_files/files-service.c, nss/nss_files/files-network.c:
Rewritten using them.
* nss/Makefile (libnss_files-routines): Remove files-host.
Add files-hosts, files-grp, files-pwd.
* nss/nss_dns/dns-network.c: Don't include <pthread.h>.
Mon Jun 24 22:39:12 1996 Richard Henderson <rth@tamu.edu>
* sysdeps/alpha/dl-machine.h (ELF_MACHINE_RUNTIME_TRAMPOLINE):
A .plt entry now loads the .rela.plt offset directly rather
than making us calculate it.
Sun Jun 23 15:24:05 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* time/Makefile ($(installed-localtime-file) rule): Do
$(make-target-directory) first.
* resolv.h: Fix wrapper for resolv/resolv.h.
* configure.in (ld --no-whole-archive check): Use AC_TRY_COMMAND.
Compile dummy file and pass -nostdlib -nostartfiles so as not to
require installed libraries.
* shlib-versions (*-*-*): Set libresolv=2, libnss_files=1,
libnss_dns=1.
Sun Jun 23 19:42:05 1996 Ulrich Drepper <drepper@cygnus.com>
* resolv/netdb.h (_PATH_NSSWITCH_CONF): New macro.
* inet/herrno.c: New file.
* resolv/res_init.c: Remove res_hconf calls.
* nss/Makefile, nss/XXX-lookup.c, nss/file-lookup.c,
nss/getXXbyYY.c, nss/getXXbyYY_r.c, nss/getXXent.c,
nss/getXXent_r.c, nss/host-lookup.c, nss/network-lookup.c,
nss/nsswitch.c, nss/nsswitch.h, nss/proto-lookup.c,
nss/service-lookup.c: New files. Implementation of name
service switch, following the approach in Solaris.
Interface specification and general structure inspired by Peter
Eriksson <pen@lysator.liu.se>.
* nss/nss_files/files-host.c, nss/nss_files/files-network.c,
nss/nss_files/files-proto.c, nss/nss_files/files-service.c:
Implementation of libnss_files.so module for file based databases
in NSS service.
* nss/nss_dns/dns-host.c, nss/nss_dns/dns-network.c: Implementation
if libnss_dns.so module for DNS name lookup in NSS service.
* inet/getproto.c, inet/getprtent.c, inet/getprtname.c,
inet/getservent.c, inet/getsrvbynm.c, inet/getsrvbypt.c:
Changed to serve as interface to NSS.
* inet/gethstbyad.c, inet/gethstbyad_r.c, inet/gethstbynm.c,
inet/gethstbynm2.c, inet/gethstbynm2_r.c, inet/gethstbynm_r.c,
inet/gethstent.c, inet/gethstent_r.c, inet/getnetbynm.c,
inet/getnetbynm_r.c, inet/getnetbypt.c, inet/getnetbypt_r.c,
inet/getnetent.c, inet/getnetent_r.c, inet/getproto_r.c,
inet/getprtent_r.c, inet/getprtname_r.c, inet/getservent_r.c,
inet/getsrvbynm_r.c, inet/getsrvbypt_r.c: New files. Implement
interfaces to NSS, including reentrant functions.
* resolv/getnetbyaddr.c, resolv/getnetbyname.c, resolv/getnetent.c,
resolv/sethostent.c: Removed: Obsoleted by NSS.
* resolv/mapv4v6addr.h, resolv/mapv4v6hostent.h: Extracted from
gethnamaddr.c. These private functions are now used in more
than one file.
* resolv/inet_pton.c, resolv/gethnamaddr.c: Updated to bind-4.9.4-T5B.
Sat Jun 22 16:49:47 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* rpm/Makefile ($(config)): Make sure the word list in the for
loop is syntactically non-empty.
1996-06-25 08:56:57 +00:00
|
|
|
|
(list='$(install-sysconf)'; \
|
|
|
|
|
for f in $$list; do \
|
1996-06-16 06:52:32 +00:00
|
|
|
|
echo %config $$f; \
|
|
|
|
|
done) | sort) > $@.new
|
|
|
|
|
mv -f $@.new $@
|
|
|
|
|
|
|
|
|
|
install-include = $(headers)
|
|
|
|
|
|
1996-06-16 08:46:47 +00:00
|
|
|
|
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) : ;
|
1996-06-18 22:01:43 +00:00
|
|
|
|
|
|
|
|
|
.PHONY: clean
|
|
|
|
|
clean:
|
|
|
|
|
rm -f $(config) glibc-$(version).$(config).rpm
|