start service tasks separately in-case platforms need to perform additional set-up...
[AROS.git] / compiler / stdc / mmakefile.src
blob99910d255db4dcfdf591d6c00f754bb6dd7ba387
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_log2  math/e_log2f \
56     math/e_log10  math/e_log10f \
57     math/e_pow  math/e_powf \
58     math/e_rem_pio2  math/e_rem_pio2f \
59     math/e_remainder  math/e_remainderf \
60     math/e_scalb  math/e_scalbf \
61     math/e_sinh  math/e_sinhf \
62     math/e_sqrt  math/e_sqrtf \
63     math/k_cos  math/k_cosf \
64     math/k_rem_pio2  math/k_rem_pio2f \
65     math/k_sin  math/k_sinf \
66     math/k_tan  math/k_tanf \
67     math/nan \
68     math/s_asinh  math/s_asinhf \
69     math/s_atan  math/s_atanf \
70     math/s_cbrt  math/s_cbrtf \
71     math/s_ceil  math/s_ceilf  math/s_ceill \
72     math/s_cimag  math/s_cimagf  math/s_cimagl \
73     math/s_conj  math/s_conjf  math/s_conjl \
74     math/s_copysign  math/s_copysignf  math/s_copysignl \
75     math/s_cos  math/s_cosf \
76     math/s_creal  math/s_crealf  math/s_creall \
77     math/s_erf  math/s_erff \
78     math/s_exp2  math/s_exp2f \
79     math/s_expm1  math/s_expm1f \
80     math/s_fabs  math/s_fabsf  math/s_fabsl \
81     math/s_fdim \
82     math/s_floor  math/s_floorf  math/s_floorl \
83     math/s_fma  math/s_fmaf  \
84     math/s_fmax  math/s_fmaxf  math/s_fmaxl \
85     math/s_fmin  math/s_fminf  math/s_fminl \
86     math/s_frexp  math/s_frexpf  \
87     math/s_ilogb  math/s_ilogbf  math/s_ilogbl \
88     math/s_isfinite \
89     math/s_isinf  math/s_isinff \
90     math/s_isnan \
91     math/s_isnormal \
92     math/s_log1p  math/s_log1pf \
93     math/s_logb  math/s_logbf \
94     math/s_modf  math/s_modff  math/s_modfl \
95     math/s_nearbyint \
96     math/s_nextafter  math/s_nextafterf  \
97     math/s_nexttowardf \
98     math/s_remquo  math/s_remquof \
99     math/s_rint  math/s_rintf  math/s_lrint  math/s_lrintf  math/s_llrint  math/s_llrintf \
100     math/s_round  math/s_roundf  math/s_roundl  math/s_lround  math/s_lroundf  math/s_lroundl \
101         math/s_llround  math/s_llroundf  math/s_llroundl \
102     math/s_scalbln \
103     math/s_scalbn  math/s_scalbnf  \
104     math/s_signbit \
105     math/s_significand  math/s_significandf \
106     math/s_sin  math/s_sinf \
107     math/s_tan  math/s_tanf \
108     math/s_tanh  math/s_tanhf \
109     math/s_trunc  math/s_truncf  math/s_truncl \
110     math/sincos  math/sincosf  math/sincosl \
111     math/w_cabs  math/w_cabsf \
112     mblen \
113     memchr \
114     memcmp \
115     memcpy \
116     memmove \
117     memset \
118     mktime \
119     on_exit \
120     putc \
121     qsort \
122     raise \
123     rand \
124     realloc \
125     realloc_nocopy \
126     setjmp \
127     setlocale \
128     signal \
129     snprintf \
130     sprintf \
131     sscanf \
132     stccpy \
133     stcd_l \
134     stch_l \
135     stcl_d \
136     stcl_h \
137     stcl_o \
138     stco_l \
139     stcu_d \
140     stpblk \
141     stpcpy \
142     stpsym \
143     strcasecmp \
144     strcat \
145     strchr \
146     strcmp \
147     strcoll \
148     strcpy \
149     strcspn \
150     strdup \
151     strerror \
152     strftime \
153     strlcat \
154     strlcpy \
155     strlen \
156     strlwr \
157     strncasecmp \
158     strncat \
159     strncmp \
160     strncpy \
161     strndup \
162     strpbrk \
163     strrchr \
164     strrev \
165     strsep \
166     strspn \
167     strstr \
168     strtod \
169     strtold \
170     strtoimax \
171     strtok \
172     strtok_r \
173     strtol \
174     strtoll \
175     strtoul \
176     strtoull \
177     strtoumax \
178     strupr \
179     strxfrm \
180     time \
181     vsnprintf \
182     vsprintf \
183     vsscanf
185 # If long double != double use these; otherwise, we alias the double versions
186 # These are architectures that have LDBL_MANT_DIG == 53 in float.h
187 # XXX use configure to determine this
188 ifneq ($(AROS_TARGET_CPU), ppc)
189 ifneq ($(AROS_TARGET_CPU), arm)
190 STDC += math/s_fmal math/s_frexpl math/s_nextafterl math/s_nexttoward math/s_scalbnl
191 endif
192 endif
194 STDC_LINKLIB := \
195     __ctype_linklib \
196     strcasestr
198 # The common files will be put both in the shared and in the static link lib
199 STDC_COMMON := \
200     __stdc_geterrnoptr \
201     __stdc_getsigngamptr \
202     __stdc_mb_cur_max \
203     math/infinity
205 STDCIO := \
206     __stdcio_assert \
207     __stdcio_init \
208     __stdio \
209     clearerr \
210     fclose \
211     feof \
212     ferror \
213     fflush \
214     fgetc \
215     fgetpos \
216     fgets \
217     fopen \
218     fprintf \
219     fputc \
220     fputs \
221     fread \
222     freopen \
223     fscanf \
224     fseek \
225     fsetpos \
226     ftell \
227     fwrite \
228     getchar \
229     getenv \
230     gets \
231     printf \
232     putchar \
233     puts \
234     remove \
235     rename \
236     rewind \
237     scanf \
238     setbuf \
239     setvbuf \
240     system \
241     tmpfile \
242     tmpnam \
243     ungetc \
244     vfprintf \
245     vfscanf \
246     vprintf \
247     vscanf
249 # The common files will be put both in the shared and in the static link lib
250 STDCIO_COMMON := \
251     __stdcio_stdstreams
253 #MM- core-linklibs : linklibs-stdc linklibs-stdcio linklibs-libm
255 STDC_LINKOBJS := $(addsuffix .o,$(addprefix $(GENDIR)/$(CURDIR)/,$(notdir $(STDC_COMMON))))
257 USER_CFLAGS := -noposixc -Dlint '-D__FBSDID(x)='
258 USER_LDFLAGS := -nostdc -noposixc
260 # Ugh. These are for the math routines, which have a number of
261 # lint issues.
262 USER_CFLAGS += -Wno-unused-variable -Wno-parentheses -Wno-uninitialized
264 %build_module mmake=compiler-stdc \
265     modname=stdc modtype=library \
266     files="$(STDC) $(STDC_COMMON)" \
267     linklibfiles=$(STDC_LINKLIB) linklibobjs=$(STDC_LINKOBJS)
269 STDCIO_LINKOBJS := $(addsuffix .o,$(addprefix $(GENDIR)/$(CURDIR)/,$(notdir $(STDCIO_COMMON))))
271 %build_module mmake=compiler-stdcio \
272     modname=stdcio modtype=library \
273     files="$(STDCIO) $(STDCIO_COMMON)" \
274     linklibobjs=$(STDCIO_LINKOBJS) \
275     uselibs="stdc_rel"
277 STDC_STATIC := \
278     __ctype \
279     __vcformat \
280     __vcscan \
281     atoi \
282     atol \
283     bsearch \
284     math/s_copysign  math/s_copysignf  math/s_copysignl \
285     math/e_log  math/e_logf \
286     math/e_log2  math/e_log2f \
287     math/e_log10  math/e_log10f \
288     math/e_pow  math/e_powf \
289     math/s_scalbn  math/s_scalbnf  \
290     math/e_sqrt \
291     memchr \
292     memcmp \
293     memcpy \
294     memmove \
295     memset \
296     qsort \
297     snprintf \
298     sprintf \
299     sscanf \
300     stccpy \
301     stpblk \
302     strcasecmp \
303     strcasestr \
304     strcat \
305     stcd_l \
306     stch_l \
307     stcl_d \
308     stcl_h \
309     stcl_o \
310     stco_l \
311     stcu_d \
312     stpcpy \
313     strchr \
314     strcmp \
315     strcpy \
316     strcspn \
317     strlcat \
318     strlcpy \
319     strlen \
320     strncasecmp \
321     strncat \
322     strncpy \
323     strncmp \
324     strpbrk \
325     strrchr \
326     strstr \
327     strtol \
328     strtoul \
329     vsnprintf \
330     vsprintf \
331     vsscanf
333 USER_CFLAGS := -DSTDC_STATIC
335 # Ugh. These are for the math routines, which have a number of
336 # lint issues, that should be fixed.
337 USER_CFLAGS += -Wno-unused-variable -Wno-parentheses -Wno-uninitialized
339 #MM- core-linklibs : linklibs-stdc-static
340 %build_linklib mmake=linklibs-stdc-static libname=stdc.static \
341     files="$(STDC_STATIC)" objdir=$(GENDIR)/$(CURDIR)/static
343 #MM- linklibs-romhack : compiler-stdc
344 # FIXME: The next romhack linklib is a temporary hack and has to be
345 # excommunicated in the future !
346 # setjmp()/longjmp() is used in dos.library so make it available.
347 # Plan to put stdc.library also in aros-base rom so this is not needed anymore
348 %build_linklib mmake=linklibs-romhack \
349     libname=romhack files="setjmp longjmp"
351 # x86_64 needs a 32bit version stdc.static
352 %build_linklib mmake=linklibs-stdc-static32 \
353     libname=stdc.static files="$(STDC_STATIC)" objs=$(ROM_COMMON_OBJ32) \
354     cflags="-m32 $(CFLAGS) -DSTDC_LIB32 -DSTDC_STATIC" \
355     objdir=$(GENDIR)/$(CURDIR)/32bit libdir=$(GENDIR)/lib32
357 # A dummy libm.a is provided so that -lm link option does not produce an error
358 # objdir is provided to avoid that arch specific files end up in libm.a
359 %build_linklib mmake=linklibs-libm \
360     libname=m files=empty objdir=$(GENDIR)/$(CURDIR)/libm