Include output of runtime tests in build log, and delete archive if
[AROS.git] / compiler / stdc / mmakefile.src
blob2fea3399addddf5f8371fed83b8a8861f1d13de2
1 include $(TOP)/config/make.cfg
3 #MM- AROS : compiler-stdc compiler-stdcio
5 STDC := \
6     __ctype \
7     __exitfunc \
8     __optionallibs \
9     __signal \
10     __stdc_assert \
11     __stdc_gmtoffset \
12     __stdc_ioerr2errno \
13     __stdc_startup \
14     __vcformat \
15     __vcscan \
16     _exit \
17     abort \
18     abs labs llabs \
19     asctime asctime_r \
20     atexit \
21     atof \
22     atoi \
23     atol \
24     bsearch \
25     calloc \
26     clock \
27     ctime ctime_r \
28     difftime \
29     div ldiv lldiv \
30     exit \
31     fenv _fenv \
32     free \
33     getc \
34     gmtime gmtime_r \
35     localeconv \
36     localtime localtime_r \
37     longjmp \
38     malloc \
39     malloc_align \
40     math/e_acos  math/e_acosf \
41     math/e_acosh  math/e_acoshf \
42     math/e_asin  math/e_asinf \
43     math/e_atan2  math/e_atan2f \
44     math/e_atanh  math/e_atanhf \
45     math/e_cosh  math/e_coshf \
46     math/e_exp  math/e_expf \
47     math/e_fmod  math/e_fmodf \
48     math/e_gamma  math/e_gammaf  math/e_gamma_r  math/e_gammaf_r \
49     math/e_hypot  math/e_hypotf \
50     math/e_j0  math/e_j0f \
51     math/e_j1  math/e_j1f \
52     math/e_jn  math/e_jnf \
53     math/e_lgamma  math/e_lgammaf  math/e_lgamma_r  math/e_lgammaf_r \
54     math/e_log  math/e_logf \
55     math/e_log10  math/e_log10f \
56     math/e_pow  math/e_powf \
57     math/e_rem_pio2  math/e_rem_pio2f \
58     math/e_remainder  math/e_remainderf \
59     math/e_scalb  math/e_scalbf \
60     math/e_sinh  math/e_sinhf \
61     math/e_sqrt  math/e_sqrtf \
62     math/k_cos  math/k_cosf \
63     math/k_rem_pio2  math/k_rem_pio2f \
64     math/k_sin  math/k_sinf \
65     math/k_tan  math/k_tanf \
66     math/nan \
67     math/s_asinh  math/s_asinhf \
68     math/s_atan  math/s_atanf \
69     math/s_cbrt  math/s_cbrtf \
70     math/s_ceil  math/s_ceilf  math/s_ceill \
71     math/s_cimag  math/s_cimagf  math/s_cimagl \
72     math/s_conj  math/s_conjf  math/s_conjl \
73     math/s_copysign  math/s_copysignf  math/s_copysignl \
74     math/s_cos  math/s_cosf \
75     math/s_creal  math/s_crealf  math/s_creall \
76     math/s_erf  math/s_erff \
77     math/s_exp2  math/s_exp2f \
78     math/s_expm1  math/s_expm1f \
79     math/s_fabs  math/s_fabsf  math/s_fabsl \
80     math/s_fdim \
81     math/s_floor  math/s_floorf  math/s_floorl \
82     math/s_fma  math/s_fmaf  \
83     math/s_fmax  math/s_fmaxf  math/s_fmaxl \
84     math/s_fmin  math/s_fminf  math/s_fminl \
85     math/s_frexp  math/s_frexpf  \
86     math/s_ilogb  math/s_ilogbf  math/s_ilogbl \
87     math/s_isfinite \
88     math/s_isinf  math/s_isinff \
89     math/s_isnan \
90     math/s_isnormal \
91     math/s_log1p  math/s_log1pf \
92     math/s_logb  math/s_logbf \
93     math/s_modf  math/s_modff  math/s_modfl \
94     math/s_nearbyint \
95     math/s_nextafter  math/s_nextafterf  \
96     math/s_nexttowardf \
97     math/s_remquo  math/s_remquof \
98     math/s_rint  math/s_rintf  math/s_lrint  math/s_lrintf  math/s_llrint  math/s_llrintf \
99     math/s_round  math/s_roundf  math/s_roundl  math/s_lround  math/s_lroundf  math/s_lroundl \
100         math/s_llround  math/s_llroundf  math/s_llroundl \
101     math/s_scalbln \
102     math/s_scalbn  math/s_scalbnf  \
103     math/s_signbit \
104     math/s_significand  math/s_significandf \
105     math/s_sin  math/s_sinf \
106     math/s_tan  math/s_tanf \
107     math/s_tanh  math/s_tanhf \
108     math/s_trunc  math/s_truncf  math/s_truncl \
109     math/sincos  math/sincosf  math/sincosl \
110     math/w_cabs  math/w_cabsf \
111     mblen \
112     memchr \
113     memcmp \
114     memcpy \
115     memmove \
116     memset \
117     mktime \
118     on_exit \
119     putc \
120     qsort \
121     raise \
122     rand \
123     realloc \
124     realloc_nocopy \
125     setjmp \
126     setlocale \
127     signal \
128     snprintf \
129     sprintf \
130     sscanf \
131     stccpy \
132     stcd_l \
133     stch_l \
134     stcl_d \
135     stcl_h \
136     stcl_o \
137     stco_l \
138     stcu_d \
139     stpblk \
140     stpcpy \
141     stpsym \
142     strcasecmp \
143     strcat \
144     strchr \
145     strcmp \
146     strcoll \
147     strcpy \
148     strcspn \
149     strdup \
150     strerror \
151     strftime \
152     strlcat \
153     strlcpy \
154     strlen \
155     strlwr \
156     strncasecmp \
157     strncat \
158     strncmp \
159     strncpy \
160     strndup \
161     strpbrk \
162     strrchr \
163     strrev \
164     strsep \
165     strspn \
166     strstr \
167     strtod \
168     strtold \
169     strtoimax \
170     strtok \
171     strtok_r \
172     strtol \
173     strtoll \
174     strtoul \
175     strtoull \
176     strtoumax \
177     strupr \
178     strxfrm \
179     time \
180     vsnprintf \
181     vsprintf \
182     vsscanf
184 # If long double != double use these; otherwise, we alias the double versions
185 # These are architectures that have LDBL_MANT_DIG == 53 in float.h
186 # XXX use configure to determine this
187 ifneq ($(AROS_TARGET_CPU), ppc)
188 ifneq ($(AROS_TARGET_CPU), arm)
189 STDC += math/s_fmal math/s_frexpl math/s_nextafterl math/s_nexttoward math/s_scalbnl
190 endif
191 endif
193 STDC_LINKLIB := \
194     __ctype_linklib \
195     strcasestr
197 # The common files will be put both in the shared and in the static link lib
198 STDC_COMMON := \
199     __stdc_geterrnoptr \
200     __stdc_getsigngamptr \
201     __stdc_mb_cur_max \
202     math/infinity
204 STDCIO := \
205     __stdcio_assert \
206     __stdcio_init \
207     __stdio \
208     clearerr \
209     fclose \
210     feof \
211     ferror \
212     fflush \
213     fgetc \
214     fgetpos \
215     fgets \
216     fopen \
217     fprintf \
218     fputc \
219     fputs \
220     fread \
221     freopen \
222     fscanf \
223     fseek \
224     fsetpos \
225     ftell \
226     fwrite \
227     getchar \
228     getenv \
229     gets \
230     printf \
231     putchar \
232     puts \
233     remove \
234     rename \
235     rewind \
236     scanf \
237     setbuf \
238     setvbuf \
239     system \
240     tmpfile \
241     tmpnam \
242     ungetc \
243     vfprintf \
244     vfscanf \
245     vprintf \
246     vscanf
248 # The common files will be put both in the shared and in the static link lib
249 STDCIO_COMMON := \
250     __stdcio_stdstreams
252 #MM- core-linklibs : linklibs-stdc linklibs-stdcio linklibs-libm
254 STDC_LINKOBJS := $(addsuffix .o,$(addprefix $(GENDIR)/$(CURDIR)/,$(notdir $(STDC_COMMON))))
256 USER_CFLAGS := -noposixc -Dlint '-D__FBSDID(x)='
257 USER_LDFLAGS := -nostdc -noposixc
259 # Ugh. These are for the math routines, which have a number of
260 # lint issues.
261 USER_CFLAGS += -Wno-unused-variable -Wno-parentheses -Wno-uninitialized
263 %build_module mmake=compiler-stdc \
264     modname=stdc modtype=library \
265     files="$(STDC) $(STDC_COMMON)" \
266     linklibfiles=$(STDC_LINKLIB) linklibobjs=$(STDC_LINKOBJS)
268 STDCIO_LINKOBJS := $(addsuffix .o,$(addprefix $(GENDIR)/$(CURDIR)/,$(notdir $(STDCIO_COMMON))))
270 %build_module mmake=compiler-stdcio \
271     modname=stdcio modtype=library \
272     files="$(STDCIO) $(STDCIO_COMMON)" \
273     linklibobjs=$(STDCIO_LINKOBJS) \
274     uselibs="stdc_rel"
276 STDC_STATIC := \
277     __ctype \
278     __vcformat \
279     __vcscan \
280     atoi \
281     atol \
282     bsearch \
283     math/s_copysign  math/s_copysignf  math/s_copysignl \
284     math/e_log  math/e_logf \
285     math/e_log10  math/e_log10f \
286     math/e_pow  math/e_powf \
287     math/s_scalbn  math/s_scalbnf  \
288     math/e_sqrt \
289     memchr \
290     memcmp \
291     memcpy \
292     memmove \
293     memset \
294     qsort \
295     snprintf \
296     sprintf \
297     sscanf \
298     stccpy \
299     stpblk \
300     strcasecmp \
301     strcasestr \
302     strcat \
303     stcd_l \
304     stch_l \
305     stcl_d \
306     stcl_h \
307     stcl_o \
308     stco_l \
309     stcu_d \
310     stpcpy \
311     strchr \
312     strcmp \
313     strcpy \
314     strcspn \
315     strlcat \
316     strlcpy \
317     strlen \
318     strncasecmp \
319     strncat \
320     strncpy \
321     strncmp \
322     strpbrk \
323     strrchr \
324     strstr \
325     strtol \
326     strtoul \
327     vsnprintf \
328     vsprintf \
329     vsscanf
331 USER_CFLAGS := -DSTDC_STATIC
333 # Ugh. These are for the math routines, which have a number of
334 # lint issues, that should be fixed.
335 USER_CFLAGS += -Wno-unused-variable -Wno-parentheses -Wno-uninitialized
337 #MM- core-linklibs : linklibs-stdc-static
338 %build_linklib mmake=linklibs-stdc-static libname=stdc.static \
339     files="$(STDC_STATIC)" objdir=$(GENDIR)/$(CURDIR)/static
341 #MM- linklibs-romhack : compiler-stdc
342 # FIXME: The next romhack linklib is a temporary hack and has to be
343 # excommunicated in the future !
344 # setjmp()/longjmp() is used in dos.library so make it available.
345 # Plan to put stdc.library also in aros-base rom so this is not needed anymore
346 %build_linklib mmake=linklibs-romhack \
347     libname=romhack files="setjmp longjmp"
349 # x86_64 needs a 32bit version stdc.static
350 %build_linklib mmake=linklibs-stdc-static32 \
351     libname=stdc.static files="$(STDC_STATIC)" objs=$(ROM_COMMON_OBJ32) \
352     cflags="-m32 $(CFLAGS) -DSTDC_LIB32 -DSTDC_STATIC" \
353     objdir=$(GENDIR)/$(CURDIR)/32bit libdir=$(GENDIR)/lib32
355 # A dummy libm.a is provided so that -lm link option does not produce an error
356 # objdir is provided to avoid that arch specific files end up in libm.a
357 %build_linklib mmake=linklibs-libm \
358     libname=m files=empty objdir=$(GENDIR)/$(CURDIR)/libm