]>
Commit | Line | Data |
---|---|---|
28f540f4 RM |
1 | # Copyright (C) 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc. |
2 | # This file is part of the GNU C Library. | |
3 | ||
4 | # The GNU C Library is free software; you can redistribute it and/or | |
5 | # modify it under the terms of the GNU Library General Public License as | |
6 | # published by the Free Software Foundation; either version 2 of the | |
7 | # License, or (at your option) any later version. | |
8 | ||
9 | # The GNU C Library is distributed in the hope that it will be useful, | |
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
12 | # Library General Public License for more details. | |
13 | ||
14 | # You should have received a copy of the GNU Library General Public | |
15 | # License along with the GNU C Library; see the file COPYING.LIB. If | |
16 | # not, write to the Free Software Foundation, Inc., 675 Mass Ave, | |
17 | # Cambridge, MA 02139, USA. | |
18 | ||
19 | # | |
20 | # Makefile for stdlib routines | |
21 | # | |
22 | subdir := stdlib | |
23 | ||
24 | headers := stdlib.h alloca.h | |
25 | ||
26 | routines := \ | |
27 | atof atoi atol \ | |
28 | abort \ | |
29 | bsearch qsort msort \ | |
30 | getenv putenv setenv \ | |
31 | exit on_exit atexit \ | |
32 | abs labs \ | |
33 | div ldiv \ | |
34 | mblen mbstowcs mbtowc wcstombs wctomb \ | |
60478656 RM |
35 | random random_r rand \ |
36 | drand48 erand48 lrand48 nrand48 mrand48 jrand48 \ | |
37 | srand48 seed48 lcong48 \ | |
38 | drand48_r erand48_r lrand48_r nrand48_r mrand48_r jrand48_r \ | |
39 | srand48_r seed48_r lcong48_r \ | |
40 | drand48-iter \ | |
28f540f4 RM |
41 | strtol strtoul strtoq strtouq \ |
42 | strtof strtod strtold \ | |
60478656 RM |
43 | system \ |
44 | a64l l64a | |
28f540f4 | 45 | |
f0bf9cb9 | 46 | distribute := exit.h grouping.h |
28f540f4 RM |
47 | tests := tst-strtol tst-strtod testmb testrand testsort testdiv |
48 | ||
3ef21326 RM |
49 | |
50 | # Several mpn functions from GNU MP are used by the strtod function. | |
51 | mpn-routines := add_1 add_n addmul_1 cmp divmod divmod_1 udiv_qrnnd \ | |
52 | lshift rshift mod_1 mul mul_1 mul_n sub_n submul_1 | |
53 | mpn-headers = longlong.h gmp.h gmp-impl.h gmp-mparam.h asm-syntax.h | |
54 | ||
55 | routines := $(strip $(routines) $(mpn-routines)) \ | |
56 | dbl2mpn ldbl2mpn \ | |
57 | mpn2flt mpn2dbl mpn2ldbl | |
58 | aux := mp_clz_tab fpioconst | |
59 | distribute := $(distribute) $(mpn-headers) gen-mpn-copy fpioconst.h | |
60 | ||
61 | ||
28f540f4 | 62 | include ../Rules |
3ef21326 RM |
63 | |
64 | ||
65 | ifdef gmp-srcdir | |
66 | ||
67 | gmp-srcdir := $(firstword $(filter-out ..//%,$(..)$(gmp-srcdir) $(gmp-srcdir))) | |
68 | ||
69 | # Copy the mpn source files we use from the GNU MP source directory. | |
70 | # `gmp-srcdir' is set by doing `configure --with-gmp=DIR'. | |
71 | # (Do not try this at home. You need an as yet unreleased version of GNU MP.) | |
72 | ||
73 | mpn-sysdep := $(addsuffix .c,$(mpn-routines)) \ | |
74 | $(addsuffix .S,$(mpn-routines)) \ | |
75 | $(addsuffix .s,$(mpn-routines)) gmp-mparam.h asm-syntax.h | |
76 | ||
77 | mpn-try := $(addprefix $(gmp-srcdir)/mpn/*/,$(mpn-sysdep)) | |
78 | mpn-found := $(wildcard $(mpn-try)) | |
3ef21326 RM |
79 | |
80 | include mpn-copy.mk | |
81 | %.mk: gen-%; sh $< > $@ | |
82 | ||
83 | mpn-copy-1 := $(patsubst $(gmp-srcdir)/mpn/%,$(sysdep_dir)/%,$(mpn-found)) | |
84 | mpn-copy-sysdep := $(mpn-copy-sysdep) $(mpn-copy-1) | |
6cab5056 RM |
85 | mpn-copy-sysdep := $(filter $(addsuffix %,\ |
86 | $(wildcard $(sort $(dir $(mpn-copy-sysdep))))), \ | |
87 | $(mpn-copy-sysdep)) | |
3ef21326 RM |
88 | $(mpn-copy-1): $(sysdep_dir)/%: $(ignore gmp2glibc.sed) $(gmp-srcdir)/mpn/% |
89 | $(gmp2glibc) | |
90 | ||
91 | mpn-stuff = $(mpn-copy-sysdep) $(mpn-copy) | |
92 | ||
93 | # chmod so I don't edit them by mistake. | |
94 | define gmp2glibc | |
95 | $(ignore sed -f $^ > $@-tmp) | |
96 | cp $< $@-tmp | |
97 | chmod a-w $@-tmp | |
98 | mv -f $@-tmp $@ | |
99 | endef | |
100 | ||
6cab5056 | 101 | mpn-copy = $(filter-out $(mpn-sysdep),$(mpn-headers))# mp_clz_tab.c) |
3ef21326 RM |
102 | $(mpn-copy): %: $(ignore gmp2glibc.sed) $(gmp-srcdir)/%; $(gmp2glibc) |
103 | ||
104 | .PHONY: copy-mpn clean-mpn | |
105 | copy-mpn: $(mpn-stuff) | |
6cab5056 | 106 | test ! -d CVS || cvs commit -m'Updated from $(gmp-srcdir)' $+ |
3ef21326 RM |
107 | clean-mpn: |
108 | rm -f $(mpn-stuff) | |
109 | ||
110 | endif |