X-Git-Url: http://git.csclub.uwaterloo.ca/?p=kopensolaris-gnu%2Fglibc.git;a=blobdiff_plain;f=stdlib%2FMakefile;h=54a95fda0553dd2d2341f0387c04a71253b83eaa;hp=84b6a81a7e33fa65971f8ecd279603ad7305e823;hb=bc170bfb521cda1fd54f329ef161fd3818d83f18;hpb=a2f031c0ea01f6802e55233f421ace6222aa7830;ds=sidebyside diff --git a/stdlib/Makefile b/stdlib/Makefile index 84b6a81a7e..54a95fda05 100644 --- a/stdlib/Makefile +++ b/stdlib/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1991, 1992 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 @@ -32,11 +32,82 @@ routines := \ abs labs \ div ldiv \ mblen mbstowcs mbtowc wcstombs wctomb \ - __random random rand srand \ - strtod strtol strtoul \ - system + random random_r rand \ + drand48 erand48 lrand48 nrand48 mrand48 jrand48 \ + srand48 seed48 lcong48 \ + drand48_r erand48_r lrand48_r nrand48_r mrand48_r jrand48_r \ + srand48_r seed48_r lcong48_r \ + drand48-iter \ + strtol strtoul strtoq strtouq \ + strtof strtod strtold \ + system \ + a64l l64a \ + rpmatch + +distribute := exit.h grouping.h +tests := tst-strtol tst-strtod testmb testrand testsort testdiv + + +# Several mpn functions from GNU MP are used by the strtod function. +mpn-routines := add_1 add_n addmul_1 cmp divmod divmod_1 udiv_qrnnd \ + lshift rshift mod_1 mul mul_1 mul_n sub_n submul_1 +mpn-headers = longlong.h gmp.h gmp-impl.h gmp-mparam.h asm-syntax.h + +routines := $(strip $(routines) $(mpn-routines)) \ + dbl2mpn ldbl2mpn \ + mpn2flt mpn2dbl mpn2ldbl +aux := mp_clz_tab fpioconst +distribute := $(distribute) $(mpn-headers) gen-mpn-copy fpioconst.h -distribute := exit.h -tests := tst-strtol tst-strtod testmb testrand testsort include ../Rules + + +ifdef gmp-srcdir + +gmp-srcdir := $(firstword $(filter-out ..//%,$(..)$(gmp-srcdir) $(gmp-srcdir))) + +# Copy the mpn source files we use from the GNU MP source directory. +# `gmp-srcdir' is set by doing `configure --with-gmp=DIR'. +# (Do not try this at home. You need an as yet unreleased version of GNU MP.) + +mpn-sysdep := $(addsuffix .c,$(mpn-routines)) \ + $(addsuffix .S,$(mpn-routines)) \ + $(addsuffix .s,$(mpn-routines)) gmp-mparam.h asm-syntax.h + +mpn-try := $(addprefix $(gmp-srcdir)/mpn/*/,$(mpn-sysdep)) \ + $(addprefix $(gmp-srcdir)/mpn/*/*/,$(mpn-sysdep)) +mpn-found = $(wildcard $(mpn-try)) + +include mpn-copy.mk +%.mk: gen-%; sh $< > $@ + +mpn-copy-1 := $(patsubst $(gmp-srcdir)/mpn/%,$(sysdep_dir)/%,$(mpn-found)) +mpn-copy-sysdep := $(mpn-copy-sysdep) $(mpn-copy-1) +mpn-copy-sysdep := $(filter $(addsuffix %,\ + $(wildcard $(sort $(dir $(mpn-copy-sysdep))))), \ + $(mpn-copy-sysdep)) +$(mpn-copy-1): $(sysdep_dir)/%: $(ignore gmp2glibc.sed) $(gmp-srcdir)/mpn/% + $(gmp2glibc) + +mpn-stuff = $(mpn-copy-sysdep) $(mpn-copy) + +# chmod so I don't edit them by mistake. +define gmp2glibc +$(ignore sed -f $^ > $@-tmp) +cp $< $@-tmp +chmod a-w $@-tmp +mv -f $@-tmp $@ +endef + +mpn-copy = $(filter-out $(mpn-sysdep),$(mpn-headers))# mp_clz_tab.c) +$(mpn-copy): %: $(ignore gmp2glibc.sed) $(gmp-srcdir)/%; $(gmp2glibc) + +.PHONY: copy-mpn clean-mpn mpn-stuff +mpn-stuff: $(mpn-stuff) +copy-mpn: $(mpn-stuff) + test ! -d CVS || cvs commit -m'Updated from $(gmp-srcdir)' $+ +clean-mpn: + rm -f $(mpn-stuff) + +endif