]> git.ipfire.org Git - thirdparty/glibc.git/blame - stdlib/Makefile
2006-01-14 Jakub Jelinek <jakub@redhat.com>
[thirdparty/glibc.git] / stdlib / Makefile
CommitLineData
574b268e 1# Copyright (C) 1991-2002, 2003, 2004, 2005 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#
22subdir := stdlib
23
a334319f 24headers := stdlib.h alloca.h monetary.h fmtmsg.h ucontext.h sys/ucontext.h \
42be025f 25 inttypes.h stdint.h bits/wordsize.h \
b799f91d 26 errno.h sys/errno.h bits/errno.h bits/stdlib.h
28f540f4
RM
27
28routines := \
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 52aux = 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.
57static-only-routines = atexit
58
3ca97e8f 59distribute := exit.h grouping.h abort-instr.h isomac.c tst-fmtmsg.sh \
d0883b48 60 allocalim.h
9f6c1fc4 61test-srcs := tst-fmtmsg
3ca97e8f
UD
62tests := tst-strtol tst-strtod testmb testrand testsort testdiv \
63 test-canon test-canon2 tst-strtoll tst-environ \
f17c2202
RM
64 tst-xpg-basename tst-random tst-random2 tst-bsearch \
65 tst-limits tst-rand48 bug-strtod tst-setcontext \
0c7c6d53 66 test-a64l tst-qsort tst-system testmb2 bug-strtod2
28f540f4 67
574b268e
UD
68include ../Makeconfig
69
70ifeq ($(build-shared),yes)
71tests += tst-putenv
72endif
3ef21326
RM
73
74# Several mpn functions from GNU MP are used by the strtod function.
0e3426bb 75mpn-routines := inlines add_n addmul_1 cmp divmod_1 divrem udiv_qrnnd \
b5a08c5a 76 lshift rshift mod_1 mul mul_1 mul_n sub_n submul_1
3ef21326
RM
77mpn-headers = longlong.h gmp.h gmp-impl.h gmp-mparam.h asm-syntax.h
78
79routines := $(strip $(routines) $(mpn-routines)) \
80 dbl2mpn ldbl2mpn \
81 mpn2flt mpn2dbl mpn2ldbl
9c7ff11a 82aux += fpioconst mp_clz_tab
574b268e
UD
83distribute := $(distribute) $(mpn-headers) gen-mpn-copy fpioconst.h \
84 tst-putenvmod.c
85
86tests-extras += tst-putenvmod
87extra-objs += tst-putenvmod.os
3ef21326 88
574b268e 89generated += isomac isomac.out tst-putenvmod.so
3ef21326 90
e07bb02a
UD
91CFLAGS-bsearch.c = $(uses-callbacks)
92CFLAGS-msort.c = $(uses-callbacks)
93CFLAGS-qsort.c = $(uses-callbacks)
6bbc689e
UD
94CFLAGS-system.c = -fexceptions
95CFLAGS-system.os = -fomit-frame-pointer
f1c30c98 96CFLAGS-fmtmsg.c = -fexceptions
dff14448 97
917e27b8
UD
98ifneq (,$(filter %REENTRANT, $(defines)))
99CFLAGS-strfmon.c = -D_IO_MTSAFE_IO
100CFLAGS-strfmon_l.c = -D_IO_MTSAFE_IO
101endif
102
c08bc50a
UD
103ifeq (yes,$(have-protected))
104CFLAGS-atexit.c = -DHAVE_DOT_HIDDEN
105endif
106
a4db3439 107CFLAGS-tst-bsearch.c = $(stack-align-test-flags)
06f6ca90 108CFLAGS-tst-qsort.c = $(stack-align-test-flags)
a4db3439 109
28f540f4 110include ../Rules
3ef21326 111
e25054c4 112# Testdir has to be named stdlib and needs to be writable
9f835f5f 113test-canon-ARGS = --test-dir=${common-objpfx}stdlib
e25054c4 114
98d3e993 115tst-strtod-ENV = LOCPATH=$(common-objpfx)localedata
16edf13b 116testmb2-ENV = LOCPATH=$(common-objpfx)localedata
98d3e993 117
1eb687d0 118# Run a test on the header files we use.
c08bc50a 119tests: $(objpfx)isomac.out
2cca3867
AJ
120
121ifeq (no,$(cross-compiling))
122tests: $(objpfx)tst-fmtmsg.out
123endif
ca41028b
UD
124
125$(objpfx)isomac.out: $(objpfx)isomac
7eff7a05 126 $(dir $<)$(notdir $<) '$(CC)' \
08f60b25 127 '-I../include $(+sysdep-includes) $(sysincludes) -I..' > $<.out
1eb687d0 128
e69924e3 129isomac-CFLAGS = -O
1eb687d0
UD
130$(objpfx)isomac: isomac.c
131 $(native-compile)
9f6c1fc4
UD
132
133$(objpfx)tst-fmtmsg.out: tst-fmtmsg.sh $(objpfx)tst-fmtmsg
2cca3867 134 $(SHELL) -e $< $(common-objpfx) '$(run-program-prefix)' $(common-objpfx)stdlib/
574b268e
UD
135
136$(objpfx)tst-putenv: $(objpfx)tst-putenvmod.so
137
138$(objpfx)tst-putenvmod.so: $(objpfx)tst-putenvmod.os
139 $(build-module)
140CFLAGS-tst-putenvmod.c = -DNOT_IN_libc=1