Rev 6547 | Rev 6621 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
5132 | clevermous | 1 | if tup.getconfig("NO_GCC") ~= "" or tup.getconfig("NO_FASM") ~= "" then return end |
2 | tup.include("../../../../../programs/use_gcc.lua") |
||
6539 | serge | 3 | CFLAGS = "-c -O2 -fno-builtin -fno-ident -fomit-frame-pointer -DMISSING_SYSCALL_NAMES" |
5132 | clevermous | 4 | LDFLAGS = "-shared -s -T libcdll.lds --out-implib $(SDK_DIR)/lib/libc.dll.a --image-base 0" |
5 | -- LDFLAGS = LDFLAGS .. " --output-def libc.orig.def" |
||
6 | |||
7 | SDK_DIR = "../../.." |
||
8 | |||
9 | LIBC_TOPDIR = "." |
||
10 | LIBC_INCLUDES = "include" |
||
11 | NAME = "libc" |
||
6540 | serge | 12 | DEFINES = "-U__WIN32__ -U_Win32 -U_WIN32 -U__MINGW32__ -U_MSC_VER-D_IEEE_LIBM -DHAVE_RENAME -DBUILD_LIBC" |
5132 | clevermous | 13 | INCLUDES = "-Iinclude" |
14 | |||
15 | TOOLCHAIN_LIBPATH = tup.getconfig("TOOLCHAIN_LIBPATH") |
||
16 | -- if not given explicitly in config, try to guess |
||
17 | if TOOLCHAIN_LIBPATH == "" then |
||
18 | if tup.getconfig("TUP_PLATFORM") == "win32" |
||
19 | then TOOLCHAIN_LIBPATH="C:\\MinGW\\msys\\1.0\\home\\autobuild\\tools\\win32\\mingw32\\lib" |
||
20 | else TOOLCHAIN_LIBPATH="/home/autobuild/tools/win32/mingw32/lib" |
||
21 | end |
||
22 | end |
||
6547 | serge | 23 | LIBPATH = "-L$(SDK_DIR)/lib" |
6536 | serge | 24 | STATIC_SRCS = {"crt/start.S", "crt/crt1.c", "crt/crt2.c", "crt/exit.S"} |
25 | LIBDLL_SRCS = {"crt/dllstart.c", "crt/exit.S", "crt/pseudo-reloc.c", "crt/setjmp.S"} |
||
6542 | serge | 26 | LIBCDLL_SRCS = {"crt/crt2.c", "crt/pseudo-reloc.c", "crt/exit.S", "crt/setjmp.S"} |
5132 | clevermous | 27 | CORE_SRCS = { |
28 | "argz/buf_findstr.c", "argz/envz_get.c", |
||
6546 | serge | 29 | "crt/console.asm", "crt/thread.S", "crt/cpu_features.c", "crt/tls.c", |
5132 | clevermous | 30 | "ctype/ctype_.c", "ctype/isascii.c", "ctype/isblank.c", "ctype/isalnum.c", |
31 | "ctype/isalpha.c", "ctype/iscntrl.c", "ctype/isdigit.c", "ctype/islower.c", |
||
32 | "ctype/isupper.c", "ctype/isprint.c", "ctype/ispunct.c", "ctype/isspace.c", |
||
33 | "ctype/iswctype.c", "ctype/iswalnum.c", "ctype/iswalpha.c", "ctype/iswblank.c", |
||
34 | "ctype/iswcntrl.c", "ctype/iswdigit.c", "ctype/iswgraph.c", "ctype/iswlower.c", |
||
35 | "ctype/iswprint.c", "ctype/iswpunct.c", "ctype/iswspace.c", "ctype/iswupper.c", |
||
36 | "ctype/iswxdigit.c", "ctype/isxdigit.c", "ctype/toascii.c", "ctype/tolower.c", |
||
37 | "ctype/toupper.c", "ctype/towctrans.c", "ctype/towlower.c", "ctype/towupper.c", |
||
38 | "ctype/wctrans.c", "ctype/wctype.c", |
||
39 | "errno/errno.c", |
||
40 | "locale/locale.c", "locale/lctype.c", "locale/ldpart.c", |
||
5216 | serge | 41 | |
42 | "reent/closer.c", "reent/fstatr.c", "reent/getreent.c", "reent/gettimeofdayr.c", |
||
43 | "reent/impure.c", "reent/init_reent.c", "reent/isattyr.c", "reent/linkr.c", |
||
44 | "reent/lseekr.c", "reent/mutex.c", "reent/openr.c", "reent/readr.c", |
||
6536 | serge | 45 | "reent/statr.c", "reent/timesr.c", "reent/unlinkr.c", |
5216 | serge | 46 | "reent/writer.c", |
5132 | clevermous | 47 | "search/qsort.c", "search/bsearch.c", |
48 | "signal/signal.c", |
||
6109 | serge | 49 | "sys/access.c", "sys/clock_gettime.c", "sys/close.c", "sys/conio.c", "sys/create.c", |
50 | "sys/errno.c", "sys/finfo.c", "sys/fsize.c", "sys/fstat.c", "sys/gettod.c", "sys/io.c", |
||
51 | "sys/ioread.c", "sys/iowrite.c", "sys/isatty.c", "sys/lseek.c", "sys/open.c", |
||
52 | "sys/read.c", "sys/_rename.c", "sys/stat.c", "sys/unlink.c", "sys/write.c", |
||
53 | "sys/io_alloc.S", "time/asctime.c", "time/asctime_r.c", "time/clock.c", "time/ctime.c", |
||
5132 | clevermous | 54 | "time/ctime_r.c", "time/difftime.c", "time/gettzinfo.c", "time/gmtime.c", |
6099 | serge | 55 | "time/gmtime_r.c", "time/mktime.c", "time/month_lengths.c", "time/lcltime.c", |
56 | "time/lcltime_r.c", "time/strftime.c", "time/time.c", "time/tzcalc_limits.c", |
||
57 | "time/timelocal.c", "time/tzlock.c", "time/tzset.c", "time/tzset_r.c", "time/tzvars.c" |
||
5132 | clevermous | 58 | } |
59 | STDLIB_SRCS = { |
||
6536 | serge | 60 | "__atexit.c", |
61 | "__call_atexit.c", |
||
62 | "abort.c", |
||
63 | "abs.c", |
||
64 | "assert.c", |
||
65 | "atexit.c", |
||
66 | "atof.c", |
||
67 | "atoi.c", |
||
68 | "atol.c", |
||
69 | "cxa_atexit.c", |
||
70 | "cxa_finalize.c", |
||
71 | "div.c", |
||
72 | "dtoa.c", |
||
73 | "dtoastub.c", |
||
74 | "efgcvt.c", |
||
75 | "ecvtbuf.c", |
||
76 | "eprintf.c", |
||
77 | "erand48.c", |
||
78 | "exit.c", |
||
79 | "gdtoa-gethex.c", |
||
80 | "gdtoa-hexnan.c", |
||
81 | "getenv.c", |
||
82 | "getenv_r.c", |
||
83 | "itoa.c", |
||
6537 | serge | 84 | "labs.c", |
6536 | serge | 85 | "mprec.c", |
86 | "mbtowc.c", |
||
87 | "mbtowc_r.c", |
||
88 | "mbrtowc.c", |
||
89 | "mlock.c", |
||
90 | "calloc.c", |
||
91 | "malloc.c", |
||
92 | "mallocr.c", |
||
93 | "rand.c", |
||
94 | "rand_r.c", |
||
95 | "rand48.c", |
||
96 | "realloc.c", |
||
97 | "seed48.c", |
||
98 | "srand48.c", |
||
99 | "strtod.c", |
||
100 | "strtodg.c", |
||
101 | "strtol.c", |
||
102 | "strtold.c", |
||
103 | "strtoll.c", |
||
104 | "strtoll_r.c", |
||
105 | "strtorx.c", |
||
106 | "strtoul.c", |
||
107 | "strtoull.c", |
||
108 | "strtoull_r.c", |
||
109 | "system.c", |
||
110 | "utoa.c", |
||
111 | "wcrtomb.c", |
||
6099 | serge | 112 | "wctomb_r.c" |
5132 | clevermous | 113 | } |
114 | STRING_SRCS = { |
||
6557 | serge | 115 | "bcmp.c", |
116 | "bcopy.c", |
||
117 | |||
118 | "bzero.c", |
||
119 | "explicit_bzero.c", |
||
120 | "gnu_basename.c", |
||
121 | "index.c", |
||
122 | "memccpy.c", |
||
123 | "memchr.c", |
||
124 | "memcmp.c", |
||
6536 | serge | 125 | "memcpy.c", |
6557 | serge | 126 | "memmem.c", |
6536 | serge | 127 | "memmove.c", |
6557 | serge | 128 | "mempcpy.c", |
129 | "memrchr.c", |
||
6536 | serge | 130 | "memset.c", |
6557 | serge | 131 | "rawmemchr.c", |
132 | "rindex.c", |
||
6536 | serge | 133 | "stpcpy.c", |
134 | "stpncpy.c", |
||
6557 | serge | 135 | "strcasecmp.c", |
136 | "strcasestr.c", |
||
6536 | serge | 137 | "strcat.c", |
138 | "strchr.c", |
||
6557 | serge | 139 | "strchrnul.c", |
6536 | serge | 140 | "strcmp.c", |
141 | "strcoll.c", |
||
6557 | serge | 142 | "strcpy.c", |
143 | "strcspn.c", |
||
144 | "strdup.c", |
||
145 | "strdup_r.c", |
||
146 | "strerror.c", |
||
147 | "strerror_r.c", |
||
148 | "strlcat.c", |
||
149 | "strlcpy.c", |
||
150 | "strlen.c", |
||
151 | "strlwr.c", |
||
6536 | serge | 152 | "strncasecmp.c", |
153 | "strncat.c", |
||
154 | "strncmp.c", |
||
155 | "strncpy.c", |
||
156 | "strndup.c", |
||
157 | "strndup_r.c", |
||
158 | "strnlen.c", |
||
6557 | serge | 159 | "strpbrk.c", |
6536 | serge | 160 | "strrchr.c", |
161 | "strsep.c", |
||
6557 | serge | 162 | "strspn.c", |
6536 | serge | 163 | "strstr.c", |
164 | "strtok.c", |
||
165 | "strtok_r.c", |
||
166 | "strupr.c", |
||
167 | "strxfrm.c", |
||
6557 | serge | 168 | "swab.c", |
169 | "u_strerr.c", |
||
170 | "wcpcpy.c", |
||
171 | "wcpncpy.c", |
||
172 | "wcscasecmp.c", |
||
173 | "wcscat.c", |
||
174 | "wcschr.c", |
||
175 | "wcscmp.c", |
||
176 | "wcscoll.c", |
||
177 | "wcscpy.c", |
||
178 | "wcscspn.c", |
||
179 | "wcsdup.c", |
||
180 | "wcslcat.c", |
||
181 | "wcslcpy.c", |
||
182 | "wcslen.c", |
||
183 | "wcsncasecmp.c", |
||
184 | "wcsncat.c", |
||
185 | "wcsncmp.c", |
||
186 | "wcsncpy.c", |
||
187 | "wcsnlen.c", |
||
188 | "wcspbrk.c", |
||
189 | "wcsrchr.c", |
||
190 | "wcsspn.c", |
||
191 | "wcsstr.c", |
||
192 | "wcstok.c", |
||
193 | "wcswidth.c", |
||
194 | "wcsxfrm.c", |
||
195 | "wcwidth.c", |
||
196 | "wmemchr.c", |
||
197 | "wmemcmp.c", |
||
198 | "wmemcpy.c", |
||
199 | "wmemmove.c", |
||
200 | "wmemset.c" |
||
5132 | clevermous | 201 | } |
202 | |||
203 | STDIO_SRCS = { |
||
6536 | serge | 204 | "asiprintf.c", |
205 | "asniprintf.c", |
||
206 | "asnprintf.c", |
||
207 | "asprintf.c", |
||
208 | "clearerr.c", |
||
209 | "diprintf.c", |
||
210 | "dprintf.c", |
||
211 | "fclose.c", |
||
212 | "fcloseall.c", |
||
213 | "fdopen.c", |
||
214 | "feof.c", |
||
215 | "feof_u.c", |
||
216 | "ferror.c", |
||
217 | "ferror_u.c", |
||
218 | "fflush.c", |
||
219 | "fflush_u.c", |
||
220 | "fgetc.c", |
||
221 | "fgetc_u.c", |
||
222 | "fgetpos.c", |
||
223 | "fgets.c", |
||
224 | "fgets_u.c", |
||
225 | "fileno.c", |
||
226 | "fileno_u.c", |
||
227 | "findfp.c", |
||
228 | "fiprintf.c", |
||
229 | "fiscanf.c", |
||
230 | "flags.c", |
||
231 | "fmemopen.c", |
||
232 | "fopen.c", |
||
233 | "fopencookie.c", |
||
234 | "fprintf.c", |
||
235 | "fpurge.c", |
||
236 | "fputc.c", |
||
237 | "fputc_u.c", |
||
238 | "fputs.c", |
||
239 | "fputs_u.c", |
||
240 | "fputwc.c", |
||
241 | "fsetpos.c", |
||
242 | "fread.c", |
||
243 | "fread_u.c", |
||
244 | "freopen.c", |
||
245 | "fscanf.c", |
||
246 | "fseek.c", |
||
247 | "fseeko.c", |
||
248 | "fsetlocking.c", |
||
249 | "ftell.c", |
||
250 | "ftello.c", |
||
251 | "fvwrite.c", |
||
252 | "fwalk.c", |
||
253 | "fwide.c", |
||
254 | "fwrite.c", |
||
255 | "fwrite_u.c", |
||
256 | "getc.c", |
||
257 | "getc_u.c", |
||
258 | "getchar.c", |
||
259 | "getchar_u.c", |
||
260 | "getdelim.c", |
||
261 | "getline.c", |
||
262 | "gets.c", |
||
263 | "iprintf.c", |
||
264 | "iscanf.c", |
||
265 | "makebuf.c", |
||
266 | "mbstowcs.c", |
||
267 | "mktemp.c", |
||
268 | "open_memstream.c", |
||
269 | "perror.c", |
||
270 | "printf.c", |
||
271 | "putc.c", |
||
272 | "putc_u.c", |
||
273 | "putchar.c", |
||
274 | "putchar_u.c", |
||
275 | "puts.c", |
||
276 | "refill.c", |
||
277 | "remove.c", |
||
278 | "rename.c", |
||
279 | "rewind.c", |
||
280 | "rget.c", |
||
281 | "scanf.c", |
||
282 | "sccl.c", |
||
283 | "setbuf.c", |
||
284 | "setbuffer.c", |
||
285 | "setlinebuf.c", |
||
286 | "setvbuf.c", |
||
287 | "siprintf.c", |
||
288 | "siscanf.c", |
||
289 | "sniprintf.c", |
||
290 | "snprintf.c", |
||
291 | "sprintf.c", |
||
292 | "sscanf.c", |
||
293 | "stdio.c", |
||
294 | "stdio_ext.c", |
||
295 | "tmpfile.c", |
||
296 | "tmpnam.c", |
||
297 | "ungetc.c", |
||
298 | "vasiprintf.c", |
||
299 | "vasniprintf.c", |
||
300 | "vasnprintf.c", |
||
301 | "vasprintf.c", |
||
302 | "vdiprintf.c", |
||
303 | "vdprintf.c", |
||
304 | "viprintf.c", |
||
305 | "viscanf.c", |
||
306 | "vprintf.c", |
||
307 | "vscanf.c", |
||
308 | "vsiprintf.c", |
||
309 | "vsiscanf.c", |
||
310 | "vsprintf.c", |
||
311 | "vsniprintf.c", |
||
312 | "vsnprintf.c", |
||
313 | "vsscanf.c", |
||
314 | "wsetup.c", |
||
315 | "wbuf.c" |
||
6537 | serge | 316 | } |
6099 | serge | 317 | |
5132 | clevermous | 318 | |
319 | MATH_SRCS = { |
||
320 | "e_acos.c", "e_acosh.c", "e_asin.c", "e_atan2.c", "e_atanh.c", "e_cosh.c", "e_exp.c", "e_fmod.c", |
||
321 | "e_hypot.c", "e_j0.c", "e_j1.c", "e_jn.c", "e_log.c", "e_log10.c", "e_pow.c", "e_rem_pio2.c", |
||
322 | "e_remainder.c", "e_scalb.c", "e_sinh.c", "e_sqrt.c", "ef_acos.c", "ef_acosh.c", "ef_asin.c", |
||
323 | "ef_atan2.c", "ef_atanh.c", "ef_cosh.c", "ef_exp.c", "ef_fmod.c", "ef_hypot.c", "ef_j0.c", "ef_j1.c", |
||
324 | "ef_jn.c", "ef_log.c", "ef_log10.c", "ef_pow.c", "ef_rem_pio2.c", "ef_remainder.c", "ef_scalb.c", |
||
325 | "ef_sinh.c", "ef_sqrt.c", "er_gamma.c", "er_lgamma.c", "erf_gamma.c", "erf_lgamma.c", "f_exp.c", |
||
326 | "f_expf.c", "f_llrint.c", "f_llrintf.c", "f_llrintl.c", "f_lrint.c", "f_lrintf.c", "f_lrintl.c", |
||
5141 | serge | 327 | "f_pow.c", "f_powf.c", "f_rint.c", "f_rintf.c", "f_rintl.c", "feclearexcept.c", "fetestexcept.c", |
328 | "k_cos.c", "k_rem_pio2.c", "k_sin.c", "k_standard.c", "k_tan.c", "kf_cos.c", "kf_rem_pio2.c", "kf_sin.c", |
||
329 | "kf_tan.c", "s_asinh.c", "s_atan.c", "s_cbrt.c", "s_ceil.c", "s_copysign.c", "s_cos.c", "s_erf.c", "s_exp10.c", "s_expm1.c", |
||
5132 | clevermous | 330 | "s_fabs.c", "s_fdim.c", "s_finite.c", "s_floor.c", "s_fma.c", "s_fmax.c", "s_fmin.c", "s_fpclassify.c", |
331 | "s_frexp.c", "s_ilogb.c", "s_infconst.c", "s_infinity.c", "s_isinf.c", "s_isinfd.c", "s_isnan.c", |
||
332 | "s_isnand.c", "s_ldexp.c", "s_lib_ver.c", "s_llrint.c", "s_llround.c", "s_log1p.c", "s_log2.c", |
||
333 | "s_logb.c", "s_lrint.c", "s_lround.c", "s_matherr.c", "s_modf.c", "s_nan.c", "s_nearbyint.c", |
||
334 | "s_nextafter.c", "s_pow10.c", "s_remquo.c", "s_rint.c", "s_round.c", "s_scalbln.c", "s_scalbn.c", |
||
335 | "s_signbit.c", "s_signif.c", "s_sin.c", "s_tan.c", "s_tanh.c", "s_trunc.c", "scalblnl.c", "scalbnl.c", |
||
336 | "sf_asinh.c", "sf_atan.c", "sf_cbrt.c", "sf_ceil.c", "sf_copysign.c", "sf_cos.c", "sf_erf.c", |
||
337 | "sf_exp10.c", "sf_expm1.c", "sf_fabs.c", "sf_fdim.c", "sf_finite.c", "sf_floor.c", "sf_fma.c", |
||
338 | "sf_fmax.c", "sf_fmin.c", "sf_fpclassify.c", "sf_frexp.c", "sf_ilogb.c", "sf_infinity.c", |
||
339 | "sf_isinf.c", "sf_isinff.c", "sf_isnan.c", "sf_isnanf.c", "sf_ldexp.c", "sf_llrint.c", |
||
340 | "sf_llround.c", "sf_log1p.c", "sf_log2.c", "sf_logb.c", "sf_lrint.c", "sf_lround.c", "sf_modf.c", |
||
341 | "sf_nan.c", "sf_nearbyint.c", "sf_nextafter.c", "sf_pow10.c", "sf_remquo.c", "sf_rint.c", |
||
342 | "sf_round.c", "sf_scalbln.c", "sf_scalbn.c", "sf_signif.c", "sf_sin.c", "sf_tan.c", "sf_tanh.c", |
||
343 | "sf_trunc.c", "w_acos.c", "w_acosh.c", "w_asin.c", "w_atan2.c", "w_atanh.c", "w_cosh.c", "w_drem.c", |
||
344 | "w_exp.c", "w_exp2.c", "w_fmod.c", "w_gamma.c", "w_hypot.c", "w_j0.c", "w_j1.c", "w_jn.c", "w_lgamma.c", |
||
345 | "w_log.c", "w_log10.c", "w_pow.c", "w_remainder.c", "w_scalb.c", "w_sincos.c", "w_sinh.c", "w_sqrt.c", |
||
346 | "w_tgamma.c", "wf_acos.c", "wf_acosh.c", "wf_asin.c", "wf_atan2.c", "wf_atanh.c", "wf_cosh.c", |
||
347 | "wf_drem.c", "wf_exp.c", "wf_exp2.c", "wf_fmod.c", "wf_gamma.c", "wf_hypot.c", "wf_j0.c", "wf_j1.c", |
||
348 | "wf_jn.c", "wf_lgamma.c", "wf_log.c", "wf_log10.c", "wf_pow.c", "wf_remainder.c", "wf_scalb.c", |
||
349 | "wf_sincos.c", "wf_sinh.c", "wf_sqrt.c", "wf_tgamma.c", "wr_gamma.c", "wr_lgamma.c", "wrf_gamma.c", |
||
350 | "wrf_lgamma.c", |
||
351 | "f_atan2.S", "f_atan2f.S", "f_frexp.S", "f_frexpf.S", "f_ldexp.S", "f_ldexpf.S", "f_log.S", |
||
352 | "f_log10.S", "f_log10f.S", "f_logf.S", "f_tan.S", "f_tanf.S" |
||
353 | } |
||
354 | |||
355 | function prepend(what, to) |
||
356 | local result = {} |
||
357 | for i,v in ipairs(to) do |
||
358 | table.insert(result, what .. v) |
||
359 | end |
||
360 | return result |
||
361 | end |
||
362 | |||
363 | -- make shared |
||
364 | LIB_SRCS = LIBCDLL_SRCS |
||
365 | |||
366 | LIB_SRCS += CORE_SRCS |
||
367 | LIB_SRCS += prepend("stdio/", STDIO_SRCS) |
||
368 | LIB_SRCS += prepend("string/", STRING_SRCS) |
||
369 | LIB_SRCS += prepend("stdlib/", STDLIB_SRCS) |
||
370 | LIB_SRCS += prepend("math/", MATH_SRCS) |
||
371 | |||
372 | ALL_OBJS = {} |
||
373 | function compile(list) |
||
374 | local result = {} |
||
375 | for i,v in ipairs(list) do |
||
376 | if ALL_OBJS[v] then |
||
377 | -- already compiled |
||
378 | elseif v:sub(-2) == ".c" or v:sub(-2) == ".S" then |
||
379 | ALL_OBJS[v] = tup.rule(v, "kos32-gcc $(CFLAGS) $(DEFINES) $(INCLUDES) -o %o %f", v:sub(1, -3) .. ".o") |
||
380 | elseif v:sub(-4) == ".asm" then |
||
381 | ALL_OBJS[v] = tup.rule(v, "fasm %f %o", v:sub(1, -5) .. ".obj") |
||
382 | end |
||
383 | result += ALL_OBJS[v] |
||
384 | end |
||
385 | return result |
||
386 | end |
||
387 | |||
388 | LIB_OBJS = compile(LIB_SRCS) |
||
6537 | serge | 389 | LIB_OBJS += tup.rule("crt/crtdll.c", "kos32-gcc $(CFLAGS) $(DEFINES) $(INCLUDES) -fno-delete-null-pointer-checks -c %f -o %o","crt/crtdll.o") |
390 | LIB_OBJS += tup.rule("pe/loader.c", "kos32-gcc $(CFLAGS) $(DEFINES) $(INCLUDES) -fno-delete-null-pointer-checks -c %f -o %o", "pe/loader.o") |
||
391 | LIB_OBJS += tup.rule("reent/renamer.c", "kos32-gcc $(CFLAGS) $(DEFINES) $(INCLUDES) -D_COMPILING_NEWLIB -c %f -o %o", "reent/renamer.o") |
||
6536 | serge | 392 | |
5132 | clevermous | 393 | LIBDLL_OBJS = compile(LIBDLL_SRCS) |
394 | |||
6536 | serge | 395 | |
5132 | clevermous | 396 | vfprintf_extra_objs = { |
6536 | serge | 397 | {"", "stdio/vfprintf.o"}, |
5132 | clevermous | 398 | {"-DINTEGER_ONLY", "stdio/vfiprintf.o"}, |
399 | {"-DSTRING_ONLY", "stdio/svfprintf.o"}, |
||
400 | {"-DINTEGER_ONLY -DSTRING_ONLY", "stdio/svfiprintf.o"}, |
||
401 | } |
||
402 | for i,v in ipairs(vfprintf_extra_objs) do |
||
403 | LIB_OBJS += tup.rule("stdio/vfprintf.c", "kos32-gcc $(CFLAGS) $(DEFINES) $(INCLUDES) -fshort-enums " .. v[1] .. " -c %f -o %o", v[2]) |
||
404 | end |
||
405 | |||
406 | vfscanf_extra_objs = { |
||
407 | {"", "stdio/vfscanf.o"}, |
||
408 | {"-DINTEGER_ONLY", "stdio/vfiscanf.o"}, |
||
409 | {"-DSTRING_ONLY", "stdio/svscanf.o"}, |
||
410 | {"-DINTEGER_ONLY -DSTRING_ONLY", "stdio/svfiscanf.o"}, |
||
411 | } |
||
412 | for i,v in ipairs(vfscanf_extra_objs) do |
||
6536 | serge | 413 | LIB_OBJS += tup.rule("stdio/vfscanf.c", "kos32-gcc $(CFLAGS) $(DEFINES) $(INCLUDES) " .. v[1] .. " -c %f -o %o", v[2]) |
5132 | clevermous | 414 | end |
415 | |||
416 | tup.rule(LIB_OBJS, "kos32-ld " .. LDFLAGS .. " " .. LIBPATH .. " -o %o %f -lgcc --version-script libc.ver " .. tup.getconfig("KPACK_CMD"), |
||
417 | {SDK_DIR .. "/bin/libc.dll", extra_outputs = {SDK_DIR .. "/lib/libc.dll.a", SDK_DIR .. "/lib/ |
||
418 | tup.rule(LIBDLL_OBJS, "kos32-ar rcs %o %f", {SDK_DIR .. "/lib/libdll.a", extra_outputs = {SDK_DIR .. "/lib/ |