Fri Mar 17 12:58:37 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>

* sunrpc/Makefile (install-lib): Variable removed.
	(rpcsvc-objs): Variable removed.
	(extra-objs): Don't include $(rpcsvc-objs).
	(extra-libs): New variable, contains librpcsvc.
	(librpcsvc-routines): New variable.
	(librpcsvc-inhibit-o): New variable, contains .so.
	(omit-deps): Set this to $(librpcsvc-routines).
	($(objpfx)rpcgen): Don't use $(libc.a).
	(lib, $(objpfx)librpcsvc.a): Targets removed.

	* o-iterator.mk, extra-lib.mk: New files.
	* Makerules (o-iterator): New variable.
	[extra-libs]: Include extra-lib.mk to generate rules for each word
	of $(extra-libs).
	* Makefile (distribute): Add extra-lib.mk, o-iterator.mk.

	(IMPLICIT_ONE, *_MAX_10_EXP_LOG): Macros removed; no longer needed.
	* stdio/fpioconst.c, stdio/fpioconst.h: Don't use
 	LDBL_MAX_10_EXP_LOG; LAST_POW10 defines the maximal available
 	exponent.
This commit is contained in:
Roland McGrath 1995-03-17 18:42:51 +00:00
parent 68b3ef49b9
commit 693e7b964f
6 changed files with 86 additions and 24 deletions

View File

@ -1,15 +1,34 @@
Fri Mar 17 12:58:37 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* sunrpc/Makefile (install-lib): Variable removed.
(rpcsvc-objs): Variable removed.
(extra-objs): Don't include $(rpcsvc-objs).
(extra-libs): New variable, contains librpcsvc.
(librpcsvc-routines): New variable.
(librpcsvc-inhibit-o): New variable, contains .so.
(omit-deps): Set this to $(librpcsvc-routines).
($(objpfx)rpcgen): Don't use $(libc.a).
(lib, $(objpfx)librpcsvc.a): Targets removed.
* o-iterator.mk, extra-lib.mk: New files.
* Makerules (o-iterator): New variable.
[extra-libs]: Include extra-lib.mk to generate rules for each word
of $(extra-libs).
* Makefile (distribute): Add extra-lib.mk, o-iterator.mk.
Fri Mar 17 13:28:04 1995 Ulrich Drepper <drepper@ipd.info.uni-karlsruhe.de>
* sysdeps/ieee754/ldbl2mpn.c (__mpn_extract_long_double):
Handle 80-bit denormalized numbers correctly.
* stdlib/strtod.c, stdlib/strtof.c, stdlib/strtold.c:
[IMPLICIT_ONE,*_MAX_10_EXP_LOG]: not needed anymore.
(IMPLICIT_ONE, *_MAX_10_EXP_LOG): Macros removed; no longer needed.
* stdlib/strtod.c (RETURN): Add parentheses around return value.
(round_and_return): Correct handling of denormalized numbers.
* stdio/fpioconst.[ch]: [LDBL_MAX_10_EXP_LOG]: don't use it.
LAST_POW10 defines the maximal available exponent.
* stdio/fpioconst.c, stdio/fpioconst.h: Don't use
LDBL_MAX_10_EXP_LOG; LAST_POW10 defines the maximal available
exponent.
Thu Mar 16 00:04:41 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>

View File

@ -217,6 +217,7 @@ parent_echo-distinfo:
distribute := README INSTALL NOTES COPYING.LIB COPYING ChangeLog NEWS \
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 \

View File

@ -262,6 +262,23 @@ sysdep_routines := $(sysdep_routines)
# This is the list of all object files, gotten by
# replacing every ".c" in `sources' with a ".o".
override objects := $(addprefix $(objpfx),$(sources:.c=.o))
# This variable is used in ``include $(o-iterator)'' after defining
# $(o-iterator-doit) to produce some desired rule using $o for the object
# suffix, and setting $(object-suffixes-left) to $(object-suffixes); a copy
# is produced for each object suffix in use.
o-iterator = $(patsubst %,$(..)o-iterator.mk,$(object-suffixes))
# The makefile may define $(extra-libs) with `libfoo libbar'
# to build libfoo.a et al from the modules listed in $(libfoo-routines).
ifdef extra-libs
# extra-lib.mk is included once for each extra lib to define rules
# to build it, and to add its objects to the various variables.
# During its evaluation, $(lib) is set to the name of the library.
extra-libs-left := $(extra-libs)
include $(patsubst %,$(..)extra-lib.mk,$(extra-libs))
endif
+depfiles := $(strip $(sources:.c=.d) \
$(patsubst %.o,%.d,$(filter %.o,$(extra-objs))) \

29
extra-lib.mk Normal file
View File

@ -0,0 +1,29 @@
# This file is included several times in a row, once
# for each element of $(extra-libs). $(extra-libs-left)
# is initialized first to $(extra-libs) so that with each
# inclusion, we advance $(lib) to the next library name (e.g. libfoo).
# The variable $($(lib)-routines) defines the list of modules
# to be included in that library.
lib := $(firstword $(extra-libs-left))
extra-libs-left := $(filter-out $(lib),$(extra-libs-left))
# Add each flavor of library to the lists of things to build and install.
install-lib += $(foreach o,$(object-suffixes),$(lib:lib%=$(libtype$o)))
extra-objs += $(foreach o,$(object-suffixes),$($(lib)-routines:=$o))
alltypes-$(lib) = $(foreach o,$(object-suffixes),\
$(objpfx)$(patsubst %,$(libtype$o),\
$(lib:lib%=%)))
ifeq (yes,$(build-shared))
alltypes-$(lib) += $(objpfx)$(lib).so
endif
lib-noranlib: $(alltypes-$(lib))
# Use o-iterator.mk to generate a rule for each flavor of library.
define o-iterator-doit
$(objpfx)$(patsubst %,$(libtype$o),$(lib:lib%=%)): \
$($(lib)-routines:%=$(objpfx)%$o); $$(build-extra-lib)
endef
object-suffixes-left := $(filter-out $($(lib)-inhibit-o),$(object-suffixes))
include $(o-iterator)

9
o-iterator.mk Normal file
View File

@ -0,0 +1,9 @@
# This file is included several times in a row, once
# for each element of $(object-suffixes). $(object-suffixes-left)
# is initialized first to $(object-suffixes) so that with each
# inclusion, we advance $o to the next suffix.
o := $(firstword $(object-suffixes-left))
object-suffixes-left := $(filter-out $o,$(object-suffixes-left))
$(o-iterator-doit)

View File

@ -64,25 +64,27 @@ routines := auth_none auth_unix authuxprot bindrsvprt \
svc_tcp svc_udp xdr xdr_array xdr_float xdr_mem \
xdr_rec xdr_ref xdr_stdio
install-lib := librpcsvc.a
others := portmap rpcinfo
install-bin := rpcgen
install-sbin := rpcinfo portmap
rpcsvc-objs = $(rpcsvc:%.x=x%.o)
rpcgen-objs = rpc_main.o rpc_hout.o rpc_cout.o rpc_parse.o \
rpc_scan.o rpc_util.o rpc_svcout.o rpc_clntout.o
extra-objs = $(rpcgen-objs) $(rpcsvc-objs)
omit-deps = $(basename $(rpcsvc-objs))
# These headers are part of rpcgen.
distribute := rpc_util.h rpc_parse.h rpc_scan.h $(rpcgen-objs:.o=.c) etc.rpc
extra-objs = $(rpcgen-objs)
extra-libs := librpcsvc
librpcsvc-routines = $(rpcsvc:%.x=x%)
librpcsvc-inhibit-o = .so # Build no shared rpcsvc library.
omit-deps = $(librpcsvc-routines)
others := portmap rpcinfo
# Sun's code is not too clean.
override +gccwarn := -w
include ../Rules
$(objpfx)rpcgen: $(addprefix $(objpfx),$(rpcgen-objs)) $(libc.a)
$(objpfx)rpcgen: $(addprefix $(objpfx),$(rpcgen-objs)) $(common-objpfx)libc.a
$(+link)
rpcgen-cmd = $(dir $(word 2,$^))$(notdir $(word 2,$^))
@ -100,21 +102,6 @@ $(sysconfdir)/rpc: etc.rpc
defines := $(defines) -D_PATH_RPC='"$(sysconfdir)/rpc"'
# Build the `rpcsvc' library of XDR functions.
lib: $(objpfx)librpcsvc.a
$(objpfx)librpcsvc.a: $(addprefix $(objpfx),$(rpcsvc-objs))
# This library is small enough that it's simplest to recreate the archive
# from scratch each time.
rm -f $@
ifdef objdir
cd $(objdir); $(AR) cq$(verbose) $@ $(^:$(objpfx)%=%)
else
$(AR) cq$(verbose) $@ $^
endif
$(RANLIB) $@
# Generate the rpcsvc headers with rpcgen.
$(objpfx)rpcsvc/%.h: rpcsvc/%.x $(objpfx)rpcgen
$(make-target-directory)