]>
Commit | Line | Data |
---|---|---|
9c7ff11a | 1 | # Copyright (C) 1991-2002, 2003 Free Software Foundation, Inc. |
28f540f4 RM |
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 | |
41bdb6e2 AJ |
5 | # modify it under the terms of the GNU Lesser General Public |
6 | # License as published by the Free Software Foundation; either | |
7 | # version 2.1 of the License, or (at your option) any later version. | |
28f540f4 RM |
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 | |
41bdb6e2 | 12 | # Lesser General Public License for more details. |
28f540f4 | 13 | |
41bdb6e2 AJ |
14 | # You should have received a copy of the GNU Lesser General Public |
15 | # License along with the GNU C Library; if not, write to the Free | |
16 | # Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA | |
17 | # 02111-1307 USA. | |
28f540f4 RM |
18 | |
19 | # | |
20 | # Makefile for stdlib routines | |
21 | # | |
22 | subdir := stdlib | |
23 | ||
b9b49b44 | 24 | headers := stdlib.h alloca.h monetary.h fmtmsg.h ucontext.h sys/ucontext.h \ |
739d440d UD |
25 | inttypes.h stdint.h bits/wordsize.h bits/wchar.h \ |
26 | errno.h sys/errno.h bits/errno.h | |
28f540f4 RM |
27 | |
28 | routines := \ | |
7cc27f44 | 29 | atof atoi atol atoll \ |
28f540f4 RM |
30 | abort \ |
31 | bsearch qsort msort \ | |
f65fd747 | 32 | getenv putenv setenv secure-getenv \ |
c08bc50a | 33 | exit on_exit atexit cxa_atexit cxa_finalize old_atexit \ |
59dd8641 RM |
34 | abs labs llabs \ |
35 | div ldiv lldiv \ | |
28f540f4 | 36 | mblen mbstowcs mbtowc wcstombs wctomb \ |
a18f587d | 37 | random random_r rand rand_r \ |
60478656 RM |
38 | drand48 erand48 lrand48 nrand48 mrand48 jrand48 \ |
39 | srand48 seed48 lcong48 \ | |
40 | drand48_r erand48_r lrand48_r nrand48_r mrand48_r jrand48_r \ | |
41 | srand48_r seed48_r lcong48_r \ | |
42 | drand48-iter \ | |
2f6d1f1b | 43 | strtol strtoul strtoll strtoull \ |
0501d603 | 44 | strtol_l strtoul_l strtoll_l strtoull_l \ |
28f540f4 | 45 | strtof strtod strtold \ |
0501d603 | 46 | strtof_l strtod_l strtold_l \ |
fa0bc87c | 47 | system canonicalize \ |
857fa1b8 | 48 | a64l l64a \ |
b9b49b44 | 49 | rpmatch strfmon strfmon_l getsubopt xpg_basename fmtmsg \ |
af69217f UD |
50 | strtoimax strtoumax wcstoimax wcstoumax \ |
51 | getcontext setcontext makecontext swapcontext | |
9c7ff11a | 52 | aux = grouping groupingwc |
28f540f4 | 53 | |
c08bc50a UD |
54 | # These routines will be omitted from the libc shared object. |
55 | # Instead the static object files will be included in a special archive | |
56 | # linked against when the shared library will be used. | |
57 | static-only-routines = atexit | |
58 | ||
3ca97e8f | 59 | distribute := exit.h grouping.h abort-instr.h isomac.c tst-fmtmsg.sh \ |
d0883b48 | 60 | allocalim.h |
9f6c1fc4 | 61 | test-srcs := tst-fmtmsg |
3ca97e8f UD |
62 | tests := tst-strtol tst-strtod testmb testrand testsort testdiv \ |
63 | test-canon test-canon2 tst-strtoll tst-environ \ | |
64 | tst-xpg-basename tst-random tst-bsearch tst-limits \ | |
65 | tst-rand48 bug-strtod tst-setcontext test-a64l tst-qsort \ | |
66 | tst-system | |
28f540f4 | 67 | |
3ef21326 RM |
68 | |
69 | # Several mpn functions from GNU MP are used by the strtod function. | |
0e3426bb | 70 | mpn-routines := inlines add_n addmul_1 cmp divmod_1 divrem udiv_qrnnd \ |
b5a08c5a | 71 | lshift rshift mod_1 mul mul_1 mul_n sub_n submul_1 |
3ef21326 RM |
72 | mpn-headers = longlong.h gmp.h gmp-impl.h gmp-mparam.h asm-syntax.h |
73 | ||
74 | routines := $(strip $(routines) $(mpn-routines)) \ | |
75 | dbl2mpn ldbl2mpn \ | |
76 | mpn2flt mpn2dbl mpn2ldbl | |
9c7ff11a | 77 | aux += fpioconst mp_clz_tab |
3ef21326 RM |
78 | distribute := $(distribute) $(mpn-headers) gen-mpn-copy fpioconst.h |
79 | ||
1eb687d0 | 80 | generated += isomac isomac.out |
3ef21326 | 81 | |
dff14448 UD |
82 | CFLAGS-bsearch.c = $(exceptions) |
83 | CFLAGS-msort.c = $(exceptions) | |
84 | CFLAGS-qsort.c = $(exceptions) | |
7a114794 | 85 | CFLAGS-system.c = -fexceptions |
f1c30c98 | 86 | CFLAGS-fmtmsg.c = -fexceptions |
dff14448 | 87 | |
917e27b8 UD |
88 | include ../Makeconfig |
89 | ||
90 | ifneq (,$(filter %REENTRANT, $(defines))) | |
91 | CFLAGS-strfmon.c = -D_IO_MTSAFE_IO | |
92 | CFLAGS-strfmon_l.c = -D_IO_MTSAFE_IO | |
93 | endif | |
94 | ||
c08bc50a UD |
95 | ifeq (yes,$(have-protected)) |
96 | CFLAGS-atexit.c = -DHAVE_DOT_HIDDEN | |
97 | endif | |
98 | ||
28f540f4 | 99 | include ../Rules |
3ef21326 | 100 | |
e25054c4 | 101 | # Testdir has to be named stdlib and needs to be writable |
9f835f5f | 102 | test-canon-ARGS = --test-dir=${common-objpfx}stdlib |
e25054c4 | 103 | |
98d3e993 UD |
104 | tst-strtod-ENV = LOCPATH=$(common-objpfx)localedata |
105 | ||
1eb687d0 | 106 | # Run a test on the header files we use. |
c08bc50a | 107 | tests: $(objpfx)isomac.out |
2cca3867 AJ |
108 | |
109 | ifeq (no,$(cross-compiling)) | |
110 | tests: $(objpfx)tst-fmtmsg.out | |
111 | endif | |
ca41028b UD |
112 | |
113 | $(objpfx)isomac.out: $(objpfx)isomac | |
7eff7a05 AJ |
114 | $(dir $<)$(notdir $<) '$(CC)' \ |
115 | '-I../include -I.. $(+sysdep-includes) $(sysincludes)' > $<.out | |
1eb687d0 | 116 | |
e69924e3 | 117 | isomac-CFLAGS = -O |
1eb687d0 UD |
118 | $(objpfx)isomac: isomac.c |
119 | $(native-compile) | |
9f6c1fc4 UD |
120 | |
121 | $(objpfx)tst-fmtmsg.out: tst-fmtmsg.sh $(objpfx)tst-fmtmsg | |
2cca3867 | 122 | $(SHELL) -e $< $(common-objpfx) '$(run-program-prefix)' $(common-objpfx)stdlib/ |