Rev 9959 | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 9959 | Rev 9989 | ||
---|---|---|---|
1 | if tup.getconfig("NO_GCC") ~= "" or tup.getconfig("NO_FASM") ~= "" then return end |
1 | if tup.getconfig("NO_GCC") ~= "" or tup.getconfig("NO_FASM") ~= "" then return end |
2 | tup.include("../../../../../programs/use_gcc.lua") |
2 | tup.include("../../../../../programs/use_gcc.lua") |
3 | SDK_DIR = "../../.." |
3 | SDK_DIR = "../../.." |
4 | CFLAGS = "-c -O2 -fno-builtin -fno-ident -fomit-frame-pointer -DMISSING_SYSCALL_NAMES" |
4 | CFLAGS = "-c -O2 -fno-builtin -fno-ident -fomit-frame-pointer -DMISSING_SYSCALL_NAMES" |
5 | LDFLAGS = "-shared -s -T libcdll.lds --out-implib " .. SDK_DIR .. "/lib/libc.dll.a --image-base 0" |
5 | LDFLAGS = "-shared -s -T libcdll.lds --out-implib " .. SDK_DIR .. "/lib/libc.dll.a --image-base 0" |
6 | -- LDFLAGS = LDFLAGS .. " --output-def libc.orig.def" |
6 | -- LDFLAGS = LDFLAGS .. " --output-def libc.orig.def" |
7 | 7 | ||
8 | 8 | ||
9 | LIBC_TOPDIR = "." |
9 | LIBC_TOPDIR = "." |
10 | LIBC_INCLUDES = "include" |
10 | LIBC_INCLUDES = "include" |
11 | NAME = "libc" |
11 | NAME = "libc" |
12 | DEFINES = "-U__WIN32__ -U_Win32 -U_WIN32 -U__MINGW32__ -U_MSC_VER -D_MB_EXTENDED_CHARSETS_WINDOWS=1 -D_IEEE_LIBM -DHAVE_RENAME -DBUILD_LIBC" |
12 | DEFINES = "-U__WIN32__ -U_Win32 -U_WIN32 -U__MINGW32__ -U_MSC_VER -D_MB_EXTENDED_CHARSETS_WINDOWS=1 -D_IEEE_LIBM -DHAVE_RENAME -DBUILD_LIBC" |
13 | INCLUDES = "-Iinclude" |
13 | INCLUDES = "-Iinclude" |
14 | 14 | ||
15 | TOOLCHAIN_LIBPATH = tup.getconfig("TOOLCHAIN_LIBPATH") |
15 | TOOLCHAIN_LIBPATH = tup.getconfig("TOOLCHAIN_LIBPATH") |
16 | -- if not given explicitly in config, try to guess |
16 | -- if not given explicitly in config, try to guess |
17 | if TOOLCHAIN_LIBPATH == "" then |
17 | if TOOLCHAIN_LIBPATH == "" then |
18 | if tup.getconfig("TUP_PLATFORM") == "win32" |
18 | if tup.getconfig("TUP_PLATFORM") == "win32" |
19 | then TOOLCHAIN_LIBPATH="C:\\MinGW\\msys\\1.0\\home\\autobuild\\tools\\win32\\mingw32\\lib" |
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" |
20 | else TOOLCHAIN_LIBPATH="/home/autobuild/tools/win32/mingw32/lib" |
21 | end |
21 | end |
22 | end |
22 | end |
23 | LIBPATH = "-L" .. SDK_DIR .. "/lib" |
23 | LIBPATH = "-L" .. SDK_DIR .. "/lib" |
24 | STATIC_SRCS = {"crt/start.S", "crt/crt2.c", "crt/exit.S"} |
24 | STATIC_SRCS = {"crt/start.S", "crt/crt2.c", "crt/exit.S"} |
25 | LIBDLL_SRCS = {"crt/dllstart.c", "crt/exit.S", "crt/pseudo-reloc.c", "crt/setjmp.S"} |
25 | LIBDLL_SRCS = {"crt/dllstart.c", "crt/exit.S", "crt/pseudo-reloc.c", "crt/setjmp.S"} |
26 | LIBCDLL_SRCS = { |
26 | LIBCDLL_SRCS = { |
27 | "crt/crt2.c", |
27 | "crt/crt2.c", |
28 | "crt/pseudo-reloc.c", |
28 | "crt/pseudo-reloc.c", |
29 | "crt/exit.S" |
29 | "crt/exit.S" |
30 | } |
30 | } |
31 | CORE_SRCS = { |
31 | CORE_SRCS = { |
32 | "argz/buf_findstr.c", |
32 | "argz/buf_findstr.c", |
33 | "argz/envz_get.c", |
33 | "argz/envz_get.c", |
34 | "crt/console.asm", |
34 | "crt/console.asm", |
35 | "crt/gthr-kos32.c", |
35 | "crt/gthr-kos32.c", |
36 | "crt/thread.S", |
36 | "crt/thread.S", |
37 | "crt/setjmp.S", |
37 | "crt/setjmp.S", |
38 | "crt/cpu_features.c", |
38 | "crt/cpu_features.c", |
39 | "crt/tls.c", |
39 | "crt/tls.c", |
40 | "ctype/ctype_.c", |
40 | "ctype/ctype_.c", |
41 | "ctype/isascii.c", |
41 | "ctype/isascii.c", |
42 | "ctype/isblank.c", |
42 | "ctype/isblank.c", |
43 | "ctype/isalnum.c", |
43 | "ctype/isalnum.c", |
44 | "ctype/isalpha.c", |
44 | "ctype/isalpha.c", |
45 | "ctype/iscntrl.c", |
45 | "ctype/iscntrl.c", |
46 | "ctype/isdigit.c", |
46 | "ctype/isdigit.c", |
47 | "ctype/islower.c", |
47 | "ctype/islower.c", |
48 | "ctype/isupper.c", |
48 | "ctype/isupper.c", |
49 | "ctype/isprint.c", |
49 | "ctype/isprint.c", |
50 | "ctype/ispunct.c", |
50 | "ctype/ispunct.c", |
51 | "ctype/isspace.c", |
51 | "ctype/isspace.c", |
52 | "ctype/iswctype.c", |
52 | "ctype/iswctype.c", |
53 | "ctype/iswalnum.c", |
53 | "ctype/iswalnum.c", |
54 | "ctype/iswalpha.c", |
54 | "ctype/iswalpha.c", |
55 | "ctype/iswblank.c", |
55 | "ctype/iswblank.c", |
56 | "ctype/iswcntrl.c", |
56 | "ctype/iswcntrl.c", |
57 | "ctype/iswdigit.c", |
57 | "ctype/iswdigit.c", |
58 | "ctype/iswgraph.c", |
58 | "ctype/iswgraph.c", |
59 | "ctype/iswlower.c", |
59 | "ctype/iswlower.c", |
60 | "ctype/iswprint.c", |
60 | "ctype/iswprint.c", |
61 | "ctype/iswpunct.c", |
61 | "ctype/iswpunct.c", |
62 | "ctype/iswspace.c", |
62 | "ctype/iswspace.c", |
63 | "ctype/iswupper.c", |
63 | "ctype/iswupper.c", |
64 | "ctype/iswxdigit.c", |
64 | "ctype/iswxdigit.c", |
65 | "ctype/isxdigit.c", |
65 | "ctype/isxdigit.c", |
66 | "ctype/jp2uc.c", |
66 | "ctype/jp2uc.c", |
67 | "ctype/toascii.c", |
67 | "ctype/toascii.c", |
68 | "ctype/tolower.c", |
68 | "ctype/tolower.c", |
69 | "ctype/toupper.c", |
69 | "ctype/toupper.c", |
70 | "ctype/towctrans.c", |
70 | "ctype/towctrans.c", |
71 | "ctype/towlower.c", |
71 | "ctype/towlower.c", |
72 | "ctype/towupper.c", |
72 | "ctype/towupper.c", |
73 | "ctype/wctrans.c", |
73 | "ctype/wctrans.c", |
74 | "ctype/wctype.c", |
74 | "ctype/wctype.c", |
75 | "errno/errno.c", |
75 | "errno/errno.c", |
76 | "locale/locale.c", |
76 | "locale/locale.c", |
77 | "locale/lctype.c", |
77 | "locale/lctype.c", |
78 | "locale/ldpart.c", |
78 | "locale/ldpart.c", |
79 | "reent/closer.c", |
79 | "reent/closer.c", |
80 | "reent/fstatr.c", |
80 | "reent/fstatr.c", |
81 | "reent/getreent.c", |
81 | "reent/getreent.c", |
82 | "reent/gettimeofdayr.c", |
82 | "reent/gettimeofdayr.c", |
83 | "reent/impure.c", |
83 | "reent/impure.c", |
84 | "reent/init_reent.c", |
84 | "reent/init_reent.c", |
85 | "reent/isattyr.c", |
85 | "reent/isattyr.c", |
86 | "reent/linkr.c", |
86 | "reent/linkr.c", |
87 | "reent/lseekr.c", |
87 | "reent/lseekr.c", |
88 | "reent/mutex.c", |
88 | "reent/mutex.c", |
89 | "reent/openr.c", |
89 | "reent/openr.c", |
90 | "reent/readr.c", |
90 | "reent/readr.c", |
91 | "reent/statr.c", |
91 | "reent/statr.c", |
92 | "reent/timesr.c", |
92 | "reent/timesr.c", |
93 | "reent/unlinkr.c", |
93 | "reent/unlinkr.c", |
94 | "reent/writer.c", |
94 | "reent/writer.c", |
95 | "search/qsort.c", |
95 | "search/qsort.c", |
96 | "search/bsearch.c", |
96 | "search/bsearch.c", |
97 | "signal/signal.c", |
97 | "signal/signal.c", |
98 | "sys/access.c", |
98 | "sys/access.c", |
99 | "sys/clock_gettime.c", |
99 | "sys/clock_gettime.c", |
100 | "sys/close.c", |
100 | "sys/close.c", |
101 | "sys/conio.c", |
101 | "sys/conio.c", |
102 | "sys/chdir.c", |
102 | "sys/chdir.c", |
103 | "sys/getcwd.c", |
- | |
104 | "sys/errno.c", |
103 | "sys/errno.c", |
105 | "sys/fstat.c", |
104 | "sys/fstat.c", |
106 | "sys/gettod.c", |
105 | "sys/gettod.c", |
107 | "sys/io.c", |
106 | "sys/io.c", |
108 | "sys/ioread.c", |
107 | "sys/ioread.c", |
109 | "sys/iowrite.c", |
108 | "sys/iowrite.c", |
110 | "sys/isatty.c", |
109 | "sys/isatty.c", |
111 | "sys/lseek.c", |
110 | "sys/lseek.c", |
112 | "sys/open.c", |
111 | "sys/open.c", |
113 | "sys/read.c", |
112 | "sys/read.c", |
114 | "sys/_rename.c", |
113 | "sys/_rename.c", |
115 | "sys/stat.c", |
114 | "sys/stat.c", |
116 | "sys/unlink.c", |
115 | "sys/unlink.c", |
117 | "sys/write.c", |
116 | "sys/write.c", |
118 | "sys/io_alloc.S", |
117 | "sys/io_alloc.S", |
119 | "sys/ftruncate.c", |
118 | "sys/ftruncate.c", |
120 | "time/asctime.c", |
119 | "time/asctime.c", |
121 | "time/asctime_r.c", |
120 | "time/asctime_r.c", |
122 | "time/clock.c", |
121 | "time/clock.c", |
123 | "time/ctime.c", |
122 | "time/ctime.c", |
124 | "time/ctime_r.c", |
123 | "time/ctime_r.c", |
125 | "time/difftime.c", |
124 | "time/difftime.c", |
126 | "time/gettzinfo.c", |
125 | "time/gettzinfo.c", |
127 | "time/gmtime.c", |
126 | "time/gmtime.c", |
128 | "time/gmtime_r.c", |
127 | "time/gmtime_r.c", |
129 | "time/mktime.c", |
128 | "time/mktime.c", |
130 | "time/month_lengths.c", |
129 | "time/month_lengths.c", |
131 | "time/lcltime.c", |
130 | "time/lcltime.c", |
132 | "time/lcltime_r.c", |
131 | "time/lcltime_r.c", |
133 | "time/strftime.c", |
132 | "time/strftime.c", |
134 | "time/time.c", |
133 | "time/time.c", |
135 | "time/tzcalc_limits.c", |
134 | "time/tzcalc_limits.c", |
136 | "time/timelocal.c", |
135 | "time/timelocal.c", |
137 | "time/tzlock.c", |
136 | "time/tzlock.c", |
138 | "time/tzset.c", |
137 | "time/tzset.c", |
139 | "time/tzset_r.c", |
138 | "time/tzset_r.c", |
140 | "time/tzvars.c" |
139 | "time/tzvars.c" |
141 | } |
140 | } |
142 | STDLIB_SRCS = { |
141 | STDLIB_SRCS = { |
143 | "__atexit.c", |
142 | "__atexit.c", |
144 | "__call_atexit.c", |
143 | "__call_atexit.c", |
145 | "abort.c", |
144 | "abort.c", |
146 | "abs.c", |
145 | "abs.c", |
147 | "assert.c", |
146 | "assert.c", |
148 | "atexit.c", |
147 | "atexit.c", |
149 | "atof.c", |
148 | "atof.c", |
150 | "atoi.c", |
149 | "atoi.c", |
151 | "atol.c", |
150 | "atol.c", |
152 | "btowc.c", |
151 | "btowc.c", |
153 | "calloc.c", |
152 | "calloc.c", |
154 | "cxa_atexit.c", |
153 | "cxa_atexit.c", |
155 | "cxa_finalize.c", |
154 | "cxa_finalize.c", |
156 | "div.c", |
155 | "div.c", |
157 | "dtoa.c", |
156 | "dtoa.c", |
158 | "dtoastub.c", |
157 | "dtoastub.c", |
159 | "efgcvt.c", |
158 | "efgcvt.c", |
160 | "ecvtbuf.c", |
159 | "ecvtbuf.c", |
161 | "eprintf.c", |
160 | "eprintf.c", |
162 | "erand48.c", |
161 | "erand48.c", |
163 | "exit.c", |
162 | "exit.c", |
164 | "gdtoa-gethex.c", |
163 | "gdtoa-gethex.c", |
165 | "gdtoa-hexnan.c", |
164 | "gdtoa-hexnan.c", |
166 | "getenv.c", |
165 | "getenv.c", |
167 | "getenv_r.c", |
166 | "getenv_r.c", |
168 | "envlock.c", |
167 | "envlock.c", |
169 | "itoa.c", |
168 | "itoa.c", |
170 | "ldiv.c", |
169 | "ldiv.c", |
171 | "labs.c", |
170 | "labs.c", |
172 | "ldtoa.c", |
171 | "ldtoa.c", |
173 | "malloc.c", |
172 | "malloc.c", |
174 | "mallocr.c", |
173 | "mallocr.c", |
175 | "mblen.c", |
174 | "mblen.c", |
176 | "mblen_r.c", |
175 | "mblen_r.c", |
177 | "mbrlen.c", |
176 | "mbrlen.c", |
178 | "mbrtowc.c", |
177 | "mbrtowc.c", |
179 | "mbsinit.c", |
178 | "mbsinit.c", |
180 | "mbsnrtowcs.c", |
179 | "mbsnrtowcs.c", |
181 | "mbsrtowcs.c", |
180 | "mbsrtowcs.c", |
182 | "mbstowcs.c", |
181 | "mbstowcs.c", |
183 | "mbstowcs_r.c", |
182 | "mbstowcs_r.c", |
184 | "mbtowc.c", |
183 | "mbtowc.c", |
185 | "mbtowc_r.c", |
184 | "mbtowc_r.c", |
186 | "mlock.c", |
185 | "mlock.c", |
187 | "mprec.c", |
186 | "mprec.c", |
188 | "rand.c", |
187 | "rand.c", |
189 | "rand_r.c", |
188 | "rand_r.c", |
190 | "rand48.c", |
189 | "rand48.c", |
191 | "random.c", |
190 | "random.c", |
192 | "realloc.c", |
191 | "realloc.c", |
193 | "sb_charsets.c", |
192 | "sb_charsets.c", |
194 | "seed48.c", |
193 | "seed48.c", |
195 | "srand48.c", |
194 | "srand48.c", |
196 | "strtod.c", |
195 | "strtod.c", |
197 | "strtodg.c", |
196 | "strtodg.c", |
198 | "strtol.c", |
197 | "strtol.c", |
199 | "strtold.c", |
198 | "strtold.c", |
200 | "strtoll.c", |
199 | "strtoll.c", |
201 | "strtoll_r.c", |
200 | "strtoll_r.c", |
202 | "strtorx.c", |
201 | "strtorx.c", |
203 | "strtoul.c", |
202 | "strtoul.c", |
204 | "strtoull.c", |
203 | "strtoull.c", |
205 | "strtoull_r.c", |
204 | "strtoull_r.c", |
206 | "system.c", |
205 | "system.c", |
207 | "utoa.c", |
206 | "utoa.c", |
208 | "wcrtomb.c", |
207 | "wcrtomb.c", |
209 | "wcsnrtombs.c", |
208 | "wcsnrtombs.c", |
210 | "wcsrtombs.c", |
209 | "wcsrtombs.c", |
211 | "wcstod.c", |
210 | "wcstod.c", |
212 | "wcstol.c", |
211 | "wcstol.c", |
213 | "wcstold.c", |
212 | "wcstold.c", |
214 | "wcstoll.c", |
213 | "wcstoll.c", |
215 | "wcstoll_r.c", |
214 | "wcstoll_r.c", |
216 | "wcstombs.c", |
215 | "wcstombs.c", |
217 | "wcstombs_r.c", |
216 | "wcstombs_r.c", |
218 | "wcstoul.c", |
217 | "wcstoul.c", |
219 | "wcstoull.c", |
218 | "wcstoull.c", |
220 | "wcstoull_r.c", |
219 | "wcstoull_r.c", |
221 | "wctob.c", |
220 | "wctob.c", |
222 | "wctomb.c", |
221 | "wctomb.c", |
223 | "wctomb_r.c" |
222 | "wctomb_r.c" |
224 | } |
223 | } |
225 | STRING_SRCS = { |
224 | STRING_SRCS = { |
226 | "bcmp.c", |
225 | "bcmp.c", |
227 | "bcopy.c", |
226 | "bcopy.c", |
228 | "bzero.c", |
227 | "bzero.c", |
229 | "explicit_bzero.c", |
228 | "explicit_bzero.c", |
230 | "gnu_basename.c", |
229 | "gnu_basename.c", |
231 | "index.c", |
230 | "index.c", |
232 | "memccpy.c", |
231 | "memccpy.c", |
233 | "memchr.c", |
232 | "memchr.c", |
234 | "memcmp.c", |
233 | "memcmp.c", |
235 | "memcpy.c", |
234 | "memcpy.c", |
236 | "memmem.c", |
235 | "memmem.c", |
237 | "memmove.c", |
236 | "memmove.c", |
238 | "mempcpy.c", |
237 | "mempcpy.c", |
239 | "memrchr.c", |
238 | "memrchr.c", |
240 | "memset.c", |
239 | "memset.c", |
241 | "rawmemchr.c", |
240 | "rawmemchr.c", |
242 | "rindex.c", |
241 | "rindex.c", |
243 | "stpcpy.c", |
242 | "stpcpy.c", |
244 | "stpncpy.c", |
243 | "stpncpy.c", |
245 | "strcasecmp.c", |
244 | "strcasecmp.c", |
246 | "strcasestr.c", |
245 | "strcasestr.c", |
247 | "strcat.c", |
246 | "strcat.c", |
248 | "strchr.c", |
247 | "strchr.c", |
249 | "strchrnul.c", |
248 | "strchrnul.c", |
250 | "strcmp.c", |
249 | "strcmp.c", |
251 | "strcoll.c", |
250 | "strcoll.c", |
252 | "strcpy.c", |
251 | "strcpy.c", |
253 | "strcspn.c", |
252 | "strcspn.c", |
254 | "strdup.c", |
253 | "strdup.c", |
255 | "strdup_r.c", |
254 | "strdup_r.c", |
256 | "strerror.c", |
255 | "strerror.c", |
257 | "strerror_r.c", |
256 | "strerror_r.c", |
258 | "strlcat.c", |
257 | "strlcat.c", |
259 | "strlcpy.c", |
258 | "strlcpy.c", |
260 | "strlen.c", |
259 | "strlen.c", |
261 | "strlwr.c", |
260 | "strlwr.c", |
262 | "strncasecmp.c", |
261 | "strncasecmp.c", |
263 | "strncat.c", |
262 | "strncat.c", |
264 | "strncmp.c", |
263 | "strncmp.c", |
265 | "strncpy.c", |
264 | "strncpy.c", |
266 | "strndup.c", |
265 | "strndup.c", |
267 | "strndup_r.c", |
266 | "strndup_r.c", |
268 | "strnlen.c", |
267 | "strnlen.c", |
269 | "strpbrk.c", |
268 | "strpbrk.c", |
270 | "strrchr.c", |
269 | "strrchr.c", |
271 | "strsep.c", |
270 | "strsep.c", |
272 | "strspn.c", |
271 | "strspn.c", |
273 | "strstr.c", |
272 | "strstr.c", |
274 | "strtok.c", |
273 | "strtok.c", |
275 | "strtok_r.c", |
274 | "strtok_r.c", |
276 | "strupr.c", |
275 | "strupr.c", |
277 | "strxfrm.c", |
276 | "strxfrm.c", |
278 | "swab.c", |
277 | "swab.c", |
279 | "u_strerr.c", |
278 | "u_strerr.c", |
280 | "wcpcpy.c", |
279 | "wcpcpy.c", |
281 | "wcpncpy.c", |
280 | "wcpncpy.c", |
282 | "wcscasecmp.c", |
281 | "wcscasecmp.c", |
283 | "wcscat.c", |
282 | "wcscat.c", |
284 | "wcschr.c", |
283 | "wcschr.c", |
285 | "wcscmp.c", |
284 | "wcscmp.c", |
286 | "wcscoll.c", |
285 | "wcscoll.c", |
287 | "wcscpy.c", |
286 | "wcscpy.c", |
288 | "wcscspn.c", |
287 | "wcscspn.c", |
289 | "wcsdup.c", |
288 | "wcsdup.c", |
290 | "wcslcat.c", |
289 | "wcslcat.c", |
291 | "wcslcpy.c", |
290 | "wcslcpy.c", |
292 | "wcslen.c", |
291 | "wcslen.c", |
293 | "wcsncasecmp.c", |
292 | "wcsncasecmp.c", |
294 | "wcsncat.c", |
293 | "wcsncat.c", |
295 | "wcsncmp.c", |
294 | "wcsncmp.c", |
296 | "wcsncpy.c", |
295 | "wcsncpy.c", |
297 | "wcsnlen.c", |
296 | "wcsnlen.c", |
298 | "wcspbrk.c", |
297 | "wcspbrk.c", |
299 | "wcsrchr.c", |
298 | "wcsrchr.c", |
300 | "wcsspn.c", |
299 | "wcsspn.c", |
301 | "wcsstr.c", |
300 | "wcsstr.c", |
302 | "wcstok.c", |
301 | "wcstok.c", |
303 | "wcswidth.c", |
302 | "wcswidth.c", |
304 | "wcsxfrm.c", |
303 | "wcsxfrm.c", |
305 | "wcwidth.c", |
304 | "wcwidth.c", |
306 | "wmemchr.c", |
305 | "wmemchr.c", |
307 | "wmemcmp.c", |
306 | "wmemcmp.c", |
308 | "wmemcpy.c", |
307 | "wmemcpy.c", |
309 | "wmemmove.c", |
308 | "wmemmove.c", |
310 | "wmemset.c", |
309 | "wmemset.c" |
311 | "dirname.c" |
- | |
312 | } |
310 | } |
313 | 311 | ||
314 | STDIO_SRCS = { |
312 | STDIO_SRCS = { |
315 | "asiprintf.c", |
313 | "asiprintf.c", |
316 | "asniprintf.c", |
314 | "asniprintf.c", |
317 | "asnprintf.c", |
315 | "asnprintf.c", |
318 | "asprintf.c", |
316 | "asprintf.c", |
319 | "clearerr.c", |
317 | "clearerr.c", |
320 | "clearerr_u.c", |
318 | "clearerr_u.c", |
321 | "diprintf.c", |
319 | "diprintf.c", |
322 | "dprintf.c", |
320 | "dprintf.c", |
323 | "fclose.c", |
321 | "fclose.c", |
324 | "fcloseall.c", |
322 | "fcloseall.c", |
325 | "fdopen.c", |
323 | "fdopen.c", |
326 | "feof.c", |
324 | "feof.c", |
327 | "feof_u.c", |
325 | "feof_u.c", |
328 | "ferror.c", |
326 | "ferror.c", |
329 | "ferror_u.c", |
327 | "ferror_u.c", |
330 | "fflush.c", |
328 | "fflush.c", |
331 | "fflush_u.c", |
329 | "fflush_u.c", |
332 | "fgetc.c", |
330 | "fgetc.c", |
333 | "fgetc_u.c", |
331 | "fgetc_u.c", |
334 | "fgetpos.c", |
332 | "fgetpos.c", |
335 | "fgets.c", |
333 | "fgets.c", |
336 | "fgets_u.c", |
334 | "fgets_u.c", |
337 | "fgetwc.c", |
335 | "fgetwc.c", |
338 | "fgetwc_u.c", |
336 | "fgetwc_u.c", |
339 | "fgetws.c", |
337 | "fgetws.c", |
340 | "fgetws_u.c", |
338 | "fgetws_u.c", |
341 | "fileno.c", |
339 | "fileno.c", |
342 | "fileno_u.c", |
340 | "fileno_u.c", |
343 | "findfp.c", |
341 | "findfp.c", |
344 | "fiprintf.c", |
342 | "fiprintf.c", |
345 | "fiscanf.c", |
343 | "fiscanf.c", |
346 | "flags.c", |
344 | "flags.c", |
347 | "fmemopen.c", |
345 | "fmemopen.c", |
348 | "fopen.c", |
346 | "fopen.c", |
349 | "fopencookie.c", |
347 | "fopencookie.c", |
350 | "fprintf.c", |
348 | "fprintf.c", |
351 | "fpurge.c", |
349 | "fpurge.c", |
352 | "fputc.c", |
350 | "fputc.c", |
353 | "fputc_u.c", |
351 | "fputc_u.c", |
354 | "fputs.c", |
352 | "fputs.c", |
355 | "fputs_u.c", |
353 | "fputs_u.c", |
356 | "fputwc.c", |
354 | "fputwc.c", |
357 | "fputwc_u.c", |
355 | "fputwc_u.c", |
358 | "fputws.c", |
356 | "fputws.c", |
359 | "fputws_u.c", |
357 | "fputws_u.c", |
360 | "fsetpos.c", |
358 | "fsetpos.c", |
361 | "funopen.c", |
359 | "funopen.c", |
362 | "fread.c", |
360 | "fread.c", |
363 | "fread_u.c", |
361 | "fread_u.c", |
364 | "freopen.c", |
362 | "freopen.c", |
365 | "fscanf.c", |
363 | "fscanf.c", |
366 | "fseek.c", |
364 | "fseek.c", |
367 | "fseeko.c", |
365 | "fseeko.c", |
368 | "fsetlocking.c", |
366 | "fsetlocking.c", |
369 | "ftell.c", |
367 | "ftell.c", |
370 | "ftello.c", |
368 | "ftello.c", |
371 | "fvwrite.c", |
369 | "fvwrite.c", |
372 | "fwalk.c", |
370 | "fwalk.c", |
373 | "fwide.c", |
371 | "fwide.c", |
374 | "fwprintf.c", |
372 | "fwprintf.c", |
375 | "fwrite.c", |
373 | "fwrite.c", |
376 | "fwrite_u.c", |
374 | "fwrite_u.c", |
377 | "fwscanf.c", |
375 | "fwscanf.c", |
378 | "getc.c", |
376 | "getc.c", |
379 | "getc_u.c", |
377 | "getc_u.c", |
380 | "getchar.c", |
378 | "getchar.c", |
381 | "getchar_u.c", |
379 | "getchar_u.c", |
382 | "getdelim.c", |
380 | "getdelim.c", |
383 | "getline.c", |
381 | "getline.c", |
384 | "gets.c", |
382 | "gets.c", |
385 | "getw.c", |
383 | "getw.c", |
386 | "getwc.c", |
384 | "getwc.c", |
387 | "getwc_u.c", |
385 | "getwc_u.c", |
388 | "getwchar.c", |
386 | "getwchar.c", |
389 | "getwchar_u.c", |
387 | "getwchar_u.c", |
390 | "iprintf.c", |
388 | "iprintf.c", |
391 | "iscanf.c", |
389 | "iscanf.c", |
392 | "makebuf.c", |
390 | "makebuf.c", |
393 | "mktemp.c", |
391 | "mktemp.c", |
394 | "open_memstream.c", |
392 | "open_memstream.c", |
395 | "perror.c", |
393 | "perror.c", |
396 | "printf.c", |
394 | "printf.c", |
397 | "putc.c", |
395 | "putc.c", |
398 | "putc_u.c", |
396 | "putc_u.c", |
399 | "putchar.c", |
397 | "putchar.c", |
400 | "putchar_u.c", |
398 | "putchar_u.c", |
401 | "puts.c", |
399 | "puts.c", |
402 | "putw.c", |
400 | "putw.c", |
403 | "putwc.c", |
401 | "putwc.c", |
404 | "putwc_u.c", |
402 | "putwc_u.c", |
405 | "putwchar.c", |
403 | "putwchar.c", |
406 | "putwchar_u.c", |
404 | "putwchar_u.c", |
407 | "refill.c", |
405 | "refill.c", |
408 | "remove.c", |
406 | "remove.c", |
409 | "rename.c", |
407 | "rename.c", |
410 | "rewind.c", |
408 | "rewind.c", |
411 | "rget.c", |
409 | "rget.c", |
412 | "scanf.c", |
410 | "scanf.c", |
413 | "sccl.c", |
411 | "sccl.c", |
414 | "setbuf.c", |
412 | "setbuf.c", |
415 | "setbuffer.c", |
413 | "setbuffer.c", |
416 | "setlinebuf.c", |
414 | "setlinebuf.c", |
417 | "setvbuf.c", |
415 | "setvbuf.c", |
418 | "siprintf.c", |
416 | "siprintf.c", |
419 | "siscanf.c", |
417 | "siscanf.c", |
420 | "sniprintf.c", |
418 | "sniprintf.c", |
421 | "snprintf.c", |
419 | "snprintf.c", |
422 | "sprintf.c", |
420 | "sprintf.c", |
423 | "sscanf.c", |
421 | "sscanf.c", |
424 | "stdio.c", |
422 | "stdio.c", |
425 | "stdio_ext.c", |
423 | "stdio_ext.c", |
426 | "swprintf.c", |
424 | "swprintf.c", |
427 | "swscanf.c", |
425 | "swscanf.c", |
428 | "tmpfile.c", |
426 | "tmpfile.c", |
429 | "tmpnam.c", |
427 | "tmpnam.c", |
430 | "ungetc.c", |
428 | "ungetc.c", |
431 | "ungetwc.c", |
429 | "ungetwc.c", |
432 | "vasiprintf.c", |
430 | "vasiprintf.c", |
433 | "vasniprintf.c", |
431 | "vasniprintf.c", |
434 | "vasnprintf.c", |
432 | "vasnprintf.c", |
435 | "vasprintf.c", |
433 | "vasprintf.c", |
436 | "vdiprintf.c", |
434 | "vdiprintf.c", |
437 | "vdprintf.c", |
435 | "vdprintf.c", |
438 | "vfwscanf.c", |
436 | "vfwscanf.c", |
439 | "viprintf.c", |
437 | "viprintf.c", |
440 | "viscanf.c", |
438 | "viscanf.c", |
441 | "vprintf.c", |
439 | "vprintf.c", |
442 | "vscanf.c", |
440 | "vscanf.c", |
443 | "vsiprintf.c", |
441 | "vsiprintf.c", |
444 | "vsiscanf.c", |
442 | "vsiscanf.c", |
445 | "vsprintf.c", |
443 | "vsprintf.c", |
446 | "vsniprintf.c", |
444 | "vsniprintf.c", |
447 | "vsnprintf.c", |
445 | "vsnprintf.c", |
448 | "vsscanf.c", |
446 | "vsscanf.c", |
449 | "vswprintf.c", |
447 | "vswprintf.c", |
450 | "vswscanf.c", |
448 | "vswscanf.c", |
451 | "vwprintf.c", |
449 | "vwprintf.c", |
452 | "vwscanf.c", |
450 | "vwscanf.c", |
453 | "wbuf.c", |
451 | "wbuf.c", |
454 | "wprintf.c", |
452 | "wprintf.c", |
455 | "wscanf.c", |
453 | "wscanf.c", |
456 | "wsetup.c" |
454 | "wsetup.c" |
457 | } |
455 | } |
- | 456 | ||
458 | POSIX_SRCS = { |
457 | POSIX_SRCS = { |
459 | "opendir.c", |
458 | "opendir.c", |
460 | "closedir.c", |
459 | "closedir.c", |
461 | "readdir.c", |
460 | "readdir.c", |
462 | "seekdir.c", |
461 | "seekdir.c", |
463 | "telldir.c", |
462 | "telldir.c", |
464 | "rewinddir.c" |
463 | "rewinddir.c" |
465 | } |
464 | } |
- | 465 | ||
- | 466 | UNIX_SRCS = { |
|
- | 467 | "getcwd.c", |
|
- | 468 | "dirname.c", |
|
- | 469 | "basename.c" |
|
- | 470 | } |
|
466 | 471 | ||
467 | MATH_SRCS = { |
472 | MATH_SRCS = { |
468 | "e_acos.c", "e_acosh.c", "e_asin.c", "e_atan2.c", "e_atanh.c", "e_cosh.c", "e_exp.c", "e_fmod.c", |
473 | "e_acos.c", "e_acosh.c", "e_asin.c", "e_atan2.c", "e_atanh.c", "e_cosh.c", "e_exp.c", "e_fmod.c", |
469 | "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", |
474 | "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", |
470 | "e_remainder.c", "e_scalb.c", "e_sinh.c", "e_sqrt.c", "ef_acos.c", "ef_acosh.c", "ef_asin.c", |
475 | "e_remainder.c", "e_scalb.c", "e_sinh.c", "e_sqrt.c", "ef_acos.c", "ef_acosh.c", "ef_asin.c", |
471 | "ef_atan2.c", "ef_atanh.c", "ef_cosh.c", "ef_exp.c", "ef_fmod.c", "ef_hypot.c", "ef_j0.c", "ef_j1.c", |
476 | "ef_atan2.c", "ef_atanh.c", "ef_cosh.c", "ef_exp.c", "ef_fmod.c", "ef_hypot.c", "ef_j0.c", "ef_j1.c", |
472 | "ef_jn.c", "ef_log.c", "ef_log10.c", "ef_pow.c", "ef_rem_pio2.c", "ef_remainder.c", "ef_scalb.c", |
477 | "ef_jn.c", "ef_log.c", "ef_log10.c", "ef_pow.c", "ef_rem_pio2.c", "ef_remainder.c", "ef_scalb.c", |
473 | "ef_sinh.c", "ef_sqrt.c", "er_gamma.c", "er_lgamma.c", "erf_gamma.c", "erf_lgamma.c", "f_exp.c", |
478 | "ef_sinh.c", "ef_sqrt.c", "er_gamma.c", "er_lgamma.c", "erf_gamma.c", "erf_lgamma.c", "f_exp.c", |
474 | "f_expf.c", "f_llrint.c", "f_llrintf.c", "f_llrintl.c", "f_lrint.c", "f_lrintf.c", "f_lrintl.c", |
479 | "f_expf.c", "f_llrint.c", "f_llrintf.c", "f_llrintl.c", "f_lrint.c", "f_lrintf.c", "f_lrintl.c", |
475 | "f_pow.c", "f_powf.c", "f_rint.c", "f_rintf.c", "f_rintl.c", "feclearexcept.c", "fetestexcept.c", |
480 | "f_pow.c", "f_powf.c", "f_rint.c", "f_rintf.c", "f_rintl.c", "feclearexcept.c", "fetestexcept.c", |
476 | "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", |
481 | "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", |
477 | "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", |
482 | "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", |
478 | "s_fabs.c", "s_fdim.c", "s_finite.c", "s_floor.c", "s_fma.c", "s_fmax.c", "s_fmin.c", "s_fpclassify.c", |
483 | "s_fabs.c", "s_fdim.c", "s_finite.c", "s_floor.c", "s_fma.c", "s_fmax.c", "s_fmin.c", "s_fpclassify.c", |
479 | "s_frexp.c", "s_ilogb.c", "s_infconst.c", "s_infinity.c", "s_isinf.c", "s_isinfd.c", "s_isnan.c", |
484 | "s_frexp.c", "s_ilogb.c", "s_infconst.c", "s_infinity.c", "s_isinf.c", "s_isinfd.c", "s_isnan.c", |
480 | "s_isnand.c", "s_ldexp.c", "s_lib_ver.c", "s_llrint.c", "s_llround.c", "s_log1p.c", "s_log2.c", |
485 | "s_isnand.c", "s_ldexp.c", "s_lib_ver.c", "s_llrint.c", "s_llround.c", "s_log1p.c", "s_log2.c", |
481 | "s_logb.c", "s_lrint.c", "s_lround.c", "s_matherr.c", "s_modf.c", "s_nan.c", "s_nearbyint.c", |
486 | "s_logb.c", "s_lrint.c", "s_lround.c", "s_matherr.c", "s_modf.c", "s_nan.c", "s_nearbyint.c", |
482 | "s_nextafter.c", "s_pow10.c", "s_remquo.c", "s_rint.c", "s_round.c", "s_scalbln.c", "s_scalbn.c", |
487 | "s_nextafter.c", "s_pow10.c", "s_remquo.c", "s_rint.c", "s_round.c", "s_scalbln.c", "s_scalbn.c", |
483 | "s_signbit.c", "s_signif.c", "s_sin.c", "s_tan.c", "s_tanh.c", "s_trunc.c", "scalblnl.c", "scalbnl.c", |
488 | "s_signbit.c", "s_signif.c", "s_sin.c", "s_tan.c", "s_tanh.c", "s_trunc.c", "scalblnl.c", "scalbnl.c", |
484 | "sf_asinh.c", "sf_atan.c", "sf_cbrt.c", "sf_ceil.c", "sf_copysign.c", "sf_cos.c", "sf_erf.c", |
489 | "sf_asinh.c", "sf_atan.c", "sf_cbrt.c", "sf_ceil.c", "sf_copysign.c", "sf_cos.c", "sf_erf.c", |
485 | "sf_exp10.c", "sf_expm1.c", "sf_fabs.c", "sf_fdim.c", "sf_finite.c", "sf_floor.c", "sf_fma.c", |
490 | "sf_exp10.c", "sf_expm1.c", "sf_fabs.c", "sf_fdim.c", "sf_finite.c", "sf_floor.c", "sf_fma.c", |
486 | "sf_fmax.c", "sf_fmin.c", "sf_fpclassify.c", "sf_frexp.c", "sf_ilogb.c", "sf_infinity.c", |
491 | "sf_fmax.c", "sf_fmin.c", "sf_fpclassify.c", "sf_frexp.c", "sf_ilogb.c", "sf_infinity.c", |
487 | "sf_isinf.c", "sf_isinff.c", "sf_isnan.c", "sf_isnanf.c", "sf_ldexp.c", "sf_llrint.c", |
492 | "sf_isinf.c", "sf_isinff.c", "sf_isnan.c", "sf_isnanf.c", "sf_ldexp.c", "sf_llrint.c", |
488 | "sf_llround.c", "sf_log1p.c", "sf_log2.c", "sf_logb.c", "sf_lrint.c", "sf_lround.c", "sf_modf.c", |
493 | "sf_llround.c", "sf_log1p.c", "sf_log2.c", "sf_logb.c", "sf_lrint.c", "sf_lround.c", "sf_modf.c", |
489 | "sf_nan.c", "sf_nearbyint.c", "sf_nextafter.c", "sf_pow10.c", "sf_remquo.c", "sf_rint.c", |
494 | "sf_nan.c", "sf_nearbyint.c", "sf_nextafter.c", "sf_pow10.c", "sf_remquo.c", "sf_rint.c", |
490 | "sf_round.c", "sf_scalbln.c", "sf_scalbn.c", "sf_signif.c", "sf_sin.c", "sf_tan.c", "sf_tanh.c", |
495 | "sf_round.c", "sf_scalbln.c", "sf_scalbn.c", "sf_signif.c", "sf_sin.c", "sf_tan.c", "sf_tanh.c", |
491 | "sf_trunc.c", "w_acos.c", "w_acosh.c", "w_asin.c", "w_atan2.c", "w_atanh.c", "w_cosh.c", "w_drem.c", |
496 | "sf_trunc.c", "w_acos.c", "w_acosh.c", "w_asin.c", "w_atan2.c", "w_atanh.c", "w_cosh.c", "w_drem.c", |
492 | "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", |
497 | "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", |
493 | "w_log.c", "w_log10.c", "w_pow.c", "w_remainder.c", "w_scalb.c", "w_sincos.c", "w_sinh.c", "w_sqrt.c", |
498 | "w_log.c", "w_log10.c", "w_pow.c", "w_remainder.c", "w_scalb.c", "w_sincos.c", "w_sinh.c", "w_sqrt.c", |
494 | "w_tgamma.c", "wf_acos.c", "wf_acosh.c", "wf_asin.c", "wf_atan2.c", "wf_atanh.c", "wf_cosh.c", |
499 | "w_tgamma.c", "wf_acos.c", "wf_acosh.c", "wf_asin.c", "wf_atan2.c", "wf_atanh.c", "wf_cosh.c", |
495 | "wf_drem.c", "wf_exp.c", "wf_exp2.c", "wf_fmod.c", "wf_gamma.c", "wf_hypot.c", "wf_j0.c", "wf_j1.c", |
500 | "wf_drem.c", "wf_exp.c", "wf_exp2.c", "wf_fmod.c", "wf_gamma.c", "wf_hypot.c", "wf_j0.c", "wf_j1.c", |
496 | "wf_jn.c", "wf_lgamma.c", "wf_log.c", "wf_log10.c", "wf_pow.c", "wf_remainder.c", "wf_scalb.c", |
501 | "wf_jn.c", "wf_lgamma.c", "wf_log.c", "wf_log10.c", "wf_pow.c", "wf_remainder.c", "wf_scalb.c", |
497 | "wf_sincos.c", "wf_sinh.c", "wf_sqrt.c", "wf_tgamma.c", "wr_gamma.c", "wr_lgamma.c", "wrf_gamma.c", |
502 | "wf_sincos.c", "wf_sinh.c", "wf_sqrt.c", "wf_tgamma.c", "wr_gamma.c", "wr_lgamma.c", "wrf_gamma.c", |
498 | "wrf_lgamma.c", |
503 | "wrf_lgamma.c", |
499 | "f_atan2.S", "f_atan2f.S", "f_frexp.S", "f_frexpf.S", "f_ldexp.S", "f_ldexpf.S", "f_log.S", |
504 | "f_atan2.S", "f_atan2f.S", "f_frexp.S", "f_frexpf.S", "f_ldexp.S", "f_ldexpf.S", "f_log.S", |
500 | "f_log10.S", "f_log10f.S", "f_logf.S", "f_tan.S", "f_tanf.S" |
505 | "f_log10.S", "f_log10f.S", "f_logf.S", "f_tan.S", "f_tanf.S" |
501 | } |
506 | } |
502 | 507 | ||
503 | function prepend(what, to) |
508 | function prepend(what, to) |
504 | local result = {} |
509 | local result = {} |
505 | for i,v in ipairs(to) do |
510 | for i,v in ipairs(to) do |
506 | table.insert(result, what .. v) |
511 | table.insert(result, what .. v) |
507 | end |
512 | end |
508 | return result |
513 | return result |
509 | end |
514 | end |
510 | 515 | ||
511 | -- make shared |
516 | -- make shared |
512 | LIB_SRCS = LIBCDLL_SRCS |
517 | LIB_SRCS = LIBCDLL_SRCS |
513 | 518 | ||
514 | LIB_SRCS += CORE_SRCS |
519 | LIB_SRCS += CORE_SRCS |
515 | LIB_SRCS += prepend("stdio/", STDIO_SRCS) |
520 | LIB_SRCS += prepend("stdio/", STDIO_SRCS) |
516 | LIB_SRCS += prepend("string/", STRING_SRCS) |
521 | LIB_SRCS += prepend("string/", STRING_SRCS) |
517 | LIB_SRCS += prepend("stdlib/", STDLIB_SRCS) |
522 | LIB_SRCS += prepend("stdlib/", STDLIB_SRCS) |
518 | LIB_SRCS += prepend("posix/", POSIX_SRCS) |
523 | LIB_SRCS += prepend("posix/", POSIX_SRCS) |
- | 524 | LIB_SRCS += prepend("unix/", UNIX_SRCS) |
|
519 | LIB_SRCS += prepend("math/", MATH_SRCS) |
525 | LIB_SRCS += prepend("math/", MATH_SRCS) |
520 | 526 | ||
521 | ALL_OBJS = {} |
527 | ALL_OBJS = {} |
522 | function compile(list) |
528 | function compile(list) |
523 | local result = {} |
529 | local result = {} |
524 | for i,v in ipairs(list) do |
530 | for i,v in ipairs(list) do |
525 | if ALL_OBJS[v] then |
531 | if ALL_OBJS[v] then |
526 | -- already compiled |
532 | -- already compiled |
527 | elseif v:sub(-2) == ".c" or v:sub(-2) == ".S" then |
533 | elseif v:sub(-2) == ".c" or v:sub(-2) == ".S" then |
528 | ALL_OBJS[v] = tup.rule(v, "kos32-gcc ".. CFLAGS .. " " .. DEFINES .. " " .. INCLUDES .. " -o %o %f", v:sub(1, -3) .. ".o") |
534 | ALL_OBJS[v] = tup.rule(v, "kos32-gcc ".. CFLAGS .. " " .. DEFINES .. " " .. INCLUDES .. " -o %o %f", v:sub(1, -3) .. ".o") |
529 | elseif v:sub(-4) == ".asm" then |
535 | elseif v:sub(-4) == ".asm" then |
530 | ALL_OBJS[v] = tup.rule(v, "fasm %f %o", v:sub(1, -5) .. ".obj") |
536 | ALL_OBJS[v] = tup.rule(v, "fasm %f %o", v:sub(1, -5) .. ".obj") |
531 | end |
537 | end |
532 | result += ALL_OBJS[v] |
538 | result += ALL_OBJS[v] |
533 | end |
539 | end |
534 | return result |
540 | return result |
535 | end |
541 | end |
536 | 542 | ||
537 | LIB_OBJS = compile(LIB_SRCS) |
543 | LIB_OBJS = compile(LIB_SRCS) |
538 | LIB_OBJS += tup.rule("crt/crtdll.c", "kos32-gcc " .. CFLAGS .. " " .. DEFINES .. " " .. INCLUDES .. " -fno-delete-null-pointer-checks -c %f -o %o","crt/crtdll.o") |
544 | LIB_OBJS += tup.rule("crt/crtdll.c", "kos32-gcc " .. CFLAGS .. " " .. DEFINES .. " " .. INCLUDES .. " -fno-delete-null-pointer-checks -c %f -o %o","crt/crtdll.o") |
539 | LIB_OBJS += tup.rule("pe/loader.c", "kos32-gcc " .. CFLAGS .. " " .. DEFINES .. " " .. INCLUDES .. " -fno-delete-null-pointer-checks -c %f -o %o", "pe/loader.o") |
545 | LIB_OBJS += tup.rule("pe/loader.c", "kos32-gcc " .. CFLAGS .. " " .. DEFINES .. " " .. INCLUDES .. " -fno-delete-null-pointer-checks -c %f -o %o", "pe/loader.o") |
540 | LIB_OBJS += tup.rule("reent/renamer.c", "kos32-gcc " .. CFLAGS .. " " .. DEFINES .. " " .. INCLUDES .. " -D_COMPILING_NEWLIB -c %f -o %o", "reent/renamer.o") |
546 | LIB_OBJS += tup.rule("reent/renamer.c", "kos32-gcc " .. CFLAGS .. " " .. DEFINES .. " " .. INCLUDES .. " -D_COMPILING_NEWLIB -c %f -o %o", "reent/renamer.o") |
541 | LIB_OBJS += tup.rule("time/strftime.c", "kos32-gcc " .. CFLAGS .. " " .. DEFINES .. " -DMAKE_WCSFTIME " .. INCLUDES .. " -c %f -o %o", "time/wcsftime.o") |
547 | LIB_OBJS += tup.rule("time/strftime.c", "kos32-gcc " .. CFLAGS .. " " .. DEFINES .. " -DMAKE_WCSFTIME " .. INCLUDES .. " -c %f -o %o", "time/wcsftime.o") |
542 | 548 | ||
543 | 549 | ||
544 | LIBDLL_OBJS = compile(LIBDLL_SRCS) |
550 | LIBDLL_OBJS = compile(LIBDLL_SRCS) |
545 | 551 | ||
546 | 552 | ||
547 | vfprintf_extra_objs = { |
553 | vfprintf_extra_objs = { |
548 | {"", "stdio/vfprintf.o"}, |
554 | {"", "stdio/vfprintf.o"}, |
549 | {"-DINTEGER_ONLY", "stdio/vfiprintf.o"}, |
555 | {"-DINTEGER_ONLY", "stdio/vfiprintf.o"}, |
550 | {"-DSTRING_ONLY", "stdio/svfprintf.o"}, |
556 | {"-DSTRING_ONLY", "stdio/svfprintf.o"}, |
551 | {"-DINTEGER_ONLY -DSTRING_ONLY", "stdio/svfiprintf.o"}, |
557 | {"-DINTEGER_ONLY -DSTRING_ONLY", "stdio/svfiprintf.o"}, |
552 | } |
558 | } |
553 | for i,v in ipairs(vfprintf_extra_objs) do |
559 | for i,v in ipairs(vfprintf_extra_objs) do |
554 | LIB_OBJS += tup.rule("stdio/vfprintf.c", "kos32-gcc " .. CFLAGS .. " " .. DEFINES .. " " .. INCLUDES .. " -fshort-enums " .. v[1] .. " -c %f -o %o", v[2]) |
560 | LIB_OBJS += tup.rule("stdio/vfprintf.c", "kos32-gcc " .. CFLAGS .. " " .. DEFINES .. " " .. INCLUDES .. " -fshort-enums " .. v[1] .. " -c %f -o %o", v[2]) |
555 | end |
561 | end |
556 | 562 | ||
557 | vfwprintf_extra_objs = { |
563 | vfwprintf_extra_objs = { |
558 | {"", "stdio/vfwprintf.o"}, |
564 | {"", "stdio/vfwprintf.o"}, |
559 | {"-DINTEGER_ONLY", "stdio/vfiwprintf.o"}, |
565 | {"-DINTEGER_ONLY", "stdio/vfiwprintf.o"}, |
560 | {"-DSTRING_ONLY", "stdio/svfwprintf.o"}, |
566 | {"-DSTRING_ONLY", "stdio/svfwprintf.o"}, |
561 | {"-DINTEGER_ONLY -DSTRING_ONLY", "stdio/svfiwprintf.o"}, |
567 | {"-DINTEGER_ONLY -DSTRING_ONLY", "stdio/svfiwprintf.o"}, |
562 | } |
568 | } |
563 | for i,v in ipairs(vfwprintf_extra_objs) do |
569 | for i,v in ipairs(vfwprintf_extra_objs) do |
564 | LIB_OBJS += tup.rule("stdio/vfwprintf.c", "kos32-gcc " .. CFLAGS .. " " .. DEFINES .. " " .. INCLUDES .. " -fshort-enums " .. v[1] .. " -c %f -o %o", v[2]) |
570 | LIB_OBJS += tup.rule("stdio/vfwprintf.c", "kos32-gcc " .. CFLAGS .. " " .. DEFINES .. " " .. INCLUDES .. " -fshort-enums " .. v[1] .. " -c %f -o %o", v[2]) |
565 | end |
571 | end |
566 | 572 | ||
567 | 573 | ||
568 | vfscanf_extra_objs = { |
574 | vfscanf_extra_objs = { |
569 | {"", "stdio/vfscanf.o"}, |
575 | {"", "stdio/vfscanf.o"}, |
570 | {"-DINTEGER_ONLY", "stdio/vfiscanf.o"}, |
576 | {"-DINTEGER_ONLY", "stdio/vfiscanf.o"}, |
571 | {"-DSTRING_ONLY", "stdio/svscanf.o"}, |
577 | {"-DSTRING_ONLY", "stdio/svscanf.o"}, |
572 | {"-DINTEGER_ONLY -DSTRING_ONLY", "stdio/svfiscanf.o"}, |
578 | {"-DINTEGER_ONLY -DSTRING_ONLY", "stdio/svfiscanf.o"}, |
573 | } |
579 | } |
574 | for i,v in ipairs(vfscanf_extra_objs) do |
580 | for i,v in ipairs(vfscanf_extra_objs) do |
575 | LIB_OBJS += tup.rule("stdio/vfscanf.c", "kos32-gcc " .. CFLAGS .. " " .. DEFINES .. " " .. INCLUDES .. " " .. v[1] .. " -c %f -o %o", v[2]) |
581 | LIB_OBJS += tup.rule("stdio/vfscanf.c", "kos32-gcc " .. CFLAGS .. " " .. DEFINES .. " " .. INCLUDES .. " " .. v[1] .. " -c %f -o %o", v[2]) |
576 | end |
582 | end |
577 | 583 | ||
578 | vfwscanf_extra_objs = { |
584 | vfwscanf_extra_objs = { |
579 | {"-DINTEGER_ONLY", "stdio/vfiwscanf.o"}, |
585 | {"-DINTEGER_ONLY", "stdio/vfiwscanf.o"}, |
580 | {"-DSTRING_ONLY", "stdio/svfwscanf.o"}, |
586 | {"-DSTRING_ONLY", "stdio/svfwscanf.o"}, |
581 | {"-DINTEGER_ONLY -DSTRING_ONLY", "stdio/svfiwscanf.o"}, |
587 | {"-DINTEGER_ONLY -DSTRING_ONLY", "stdio/svfiwscanf.o"}, |
582 | } |
588 | } |
583 | for i,v in ipairs(vfwscanf_extra_objs) do |
589 | for i,v in ipairs(vfwscanf_extra_objs) do |
584 | LIB_OBJS += tup.rule("stdio/vfwscanf.c", "kos32-gcc " .. CFLAGS .. " " .. DEFINES .. " " .. INCLUDES .. " " .. v[1] .. " -c %f -o %o", v[2]) |
590 | LIB_OBJS += tup.rule("stdio/vfwscanf.c", "kos32-gcc " .. CFLAGS .. " " .. DEFINES .. " " .. INCLUDES .. " " .. v[1] .. " -c %f -o %o", v[2]) |
585 | end |
591 | end |
586 | 592 | ||
587 | 593 | ||
588 | 594 | ||
589 | tup.rule(LIB_OBJS, "kos32-ld " .. LDFLAGS .. " " .. LIBPATH .. " -o %o %f -lgcc --version-script libc.ver " .. tup.getconfig("KPACK_CMD"), |
595 | tup.rule(LIB_OBJS, "kos32-ld " .. LDFLAGS .. " " .. LIBPATH .. " -o %o %f -lgcc --version-script libc.ver " .. tup.getconfig("KPACK_CMD"), |
590 | {SDK_DIR .. "/bin/libc.dll", extra_outputs = {SDK_DIR .. "/lib/libc.dll.a", SDK_DIR .. "/lib/ |
596 | {SDK_DIR .. "/bin/libc.dll", extra_outputs = {SDK_DIR .. "/lib/libc.dll.a", SDK_DIR .. "/lib/ |
591 | tup.rule(LIBDLL_OBJS, "kos32-ar rcs %o %f", {SDK_DIR .. "/lib/libdll.a", extra_outputs = {SDK_DIR .. "/lib/ |
597 | tup.rule(LIBDLL_OBJS, "kos32-ar rcs %o %f", {SDK_DIR .. "/lib/libdll.a", extra_outputs = {SDK_DIR .. "/lib/ |