Rev 7171 | Rev 8759 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 7171 | Rev 8723 | ||
---|---|---|---|
Line 1... | Line 1... | ||
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 | 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" |
4 | 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" |
5 | -- LDFLAGS = LDFLAGS .. " --output-def libc.orig.def" |
6 | -- LDFLAGS = LDFLAGS .. " --output-def libc.orig.def" |
Line 6... | Line -... | ||
6 | - | ||
Line 7... | Line 7... | ||
7 | SDK_DIR = "../../.." |
7 | |
8 | 8 | ||
9 | LIBC_TOPDIR = "." |
9 | LIBC_TOPDIR = "." |
10 | LIBC_INCLUDES = "include" |
10 | LIBC_INCLUDES = "include" |
Line 18... | Line 18... | ||
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", |
Line 513... | Line 513... | ||
513 | local result = {} |
513 | local result = {} |
514 | for i,v in ipairs(list) do |
514 | for i,v in ipairs(list) do |
515 | if ALL_OBJS[v] then |
515 | if ALL_OBJS[v] then |
516 | -- already compiled |
516 | -- already compiled |
517 | elseif v:sub(-2) == ".c" or v:sub(-2) == ".S" then |
517 | elseif v:sub(-2) == ".c" or v:sub(-2) == ".S" then |
518 | ALL_OBJS[v] = tup.rule(v, "kos32-gcc $(CFLAGS) $(DEFINES) $(INCLUDES) -o %o %f", v:sub(1, -3) .. ".o") |
518 | ALL_OBJS[v] = tup.rule(v, "kos32-gcc ".. CFLAGS .. " " .. DEFINES .. " " .. INCLUDES .. " -o %o %f", v:sub(1, -3) .. ".o") |
519 | elseif v:sub(-4) == ".asm" then |
519 | elseif v:sub(-4) == ".asm" then |
520 | ALL_OBJS[v] = tup.rule(v, "fasm %f %o", v:sub(1, -5) .. ".obj") |
520 | ALL_OBJS[v] = tup.rule(v, "fasm %f %o", v:sub(1, -5) .. ".obj") |
521 | end |
521 | end |
522 | result += ALL_OBJS[v] |
522 | result += ALL_OBJS[v] |
523 | end |
523 | end |
524 | return result |
524 | return result |
525 | end |
525 | end |
Line 526... | Line 526... | ||
526 | 526 | ||
527 | LIB_OBJS = compile(LIB_SRCS) |
527 | LIB_OBJS = compile(LIB_SRCS) |
528 | LIB_OBJS += tup.rule("crt/crtdll.c", "kos32-gcc $(CFLAGS) $(DEFINES) $(INCLUDES) -fno-delete-null-pointer-checks -c %f -o %o","crt/crtdll.o") |
528 | LIB_OBJS += tup.rule("crt/crtdll.c", "kos32-gcc " .. CFLAGS .. " " .. DEFINES .. " " .. INCLUDES .. " -fno-delete-null-pointer-checks -c %f -o %o","crt/crtdll.o") |
529 | LIB_OBJS += tup.rule("pe/loader.c", "kos32-gcc $(CFLAGS) $(DEFINES) $(INCLUDES) -fno-delete-null-pointer-checks -c %f -o %o", "pe/loader.o") |
529 | LIB_OBJS += tup.rule("pe/loader.c", "kos32-gcc " .. CFLAGS .. " " .. DEFINES .. " " .. INCLUDES .. " -fno-delete-null-pointer-checks -c %f -o %o", "pe/loader.o") |
530 | LIB_OBJS += tup.rule("reent/renamer.c", "kos32-gcc $(CFLAGS) $(DEFINES) $(INCLUDES) -D_COMPILING_NEWLIB -c %f -o %o", "reent/renamer.o") |
530 | LIB_OBJS += tup.rule("reent/renamer.c", "kos32-gcc " .. CFLAGS .. " " .. DEFINES .. " " .. INCLUDES .. " -D_COMPILING_NEWLIB -c %f -o %o", "reent/renamer.o") |
Line 531... | Line 531... | ||
531 | LIB_OBJS += tup.rule("time/strftime.c", "kos32-gcc $(CFLAGS) $(DEFINES) -DMAKE_WCSFTIME $(INCLUDES) -c %f -o %o", "time/wcsftime.o") |
531 | LIB_OBJS += tup.rule("time/strftime.c", "kos32-gcc " .. CFLAGS .. " " .. DEFINES .. " -DMAKE_WCSFTIME " .. INCLUDES .. " -c %f -o %o", "time/wcsftime.o") |
Line 539... | Line 539... | ||
539 | {"-DINTEGER_ONLY", "stdio/vfiprintf.o"}, |
539 | {"-DINTEGER_ONLY", "stdio/vfiprintf.o"}, |
540 | {"-DSTRING_ONLY", "stdio/svfprintf.o"}, |
540 | {"-DSTRING_ONLY", "stdio/svfprintf.o"}, |
541 | {"-DINTEGER_ONLY -DSTRING_ONLY", "stdio/svfiprintf.o"}, |
541 | {"-DINTEGER_ONLY -DSTRING_ONLY", "stdio/svfiprintf.o"}, |
542 | } |
542 | } |
543 | for i,v in ipairs(vfprintf_extra_objs) do |
543 | for i,v in ipairs(vfprintf_extra_objs) do |
544 | LIB_OBJS += tup.rule("stdio/vfprintf.c", "kos32-gcc $(CFLAGS) $(DEFINES) $(INCLUDES) -fshort-enums " .. v[1] .. " -c %f -o %o", v[2]) |
544 | LIB_OBJS += tup.rule("stdio/vfprintf.c", "kos32-gcc " .. CFLAGS .. " " .. DEFINES .. " " .. INCLUDES .. " -fshort-enums " .. v[1] .. " -c %f -o %o", v[2]) |
545 | end |
545 | end |
Line 546... | Line 546... | ||
546 | 546 | ||
547 | vfwprintf_extra_objs = { |
547 | vfwprintf_extra_objs = { |
548 | {"", "stdio/vfwprintf.o"}, |
548 | {"", "stdio/vfwprintf.o"}, |
549 | {"-DINTEGER_ONLY", "stdio/vfiwprintf.o"}, |
549 | {"-DINTEGER_ONLY", "stdio/vfiwprintf.o"}, |
550 | {"-DSTRING_ONLY", "stdio/svfwprintf.o"}, |
550 | {"-DSTRING_ONLY", "stdio/svfwprintf.o"}, |
551 | {"-DINTEGER_ONLY -DSTRING_ONLY", "stdio/svfiwprintf.o"}, |
551 | {"-DINTEGER_ONLY -DSTRING_ONLY", "stdio/svfiwprintf.o"}, |
552 | } |
552 | } |
553 | for i,v in ipairs(vfwprintf_extra_objs) do |
553 | for i,v in ipairs(vfwprintf_extra_objs) do |
554 | LIB_OBJS += tup.rule("stdio/vfwprintf.c", "kos32-gcc $(CFLAGS) $(DEFINES) $(INCLUDES) -fshort-enums " .. v[1] .. " -c %f -o %o", v[2]) |
554 | LIB_OBJS += tup.rule("stdio/vfwprintf.c", "kos32-gcc " .. CFLAGS .. " " .. DEFINES .. " " .. INCLUDES .. " -fshort-enums " .. v[1] .. " -c %f -o %o", v[2]) |
Line 555... | Line 555... | ||
555 | end |
555 | end |
556 | 556 | ||
557 | 557 | ||
558 | vfscanf_extra_objs = { |
558 | vfscanf_extra_objs = { |
559 | {"", "stdio/vfscanf.o"}, |
559 | {"", "stdio/vfscanf.o"}, |
560 | {"-DINTEGER_ONLY", "stdio/vfiscanf.o"}, |
560 | {"-DINTEGER_ONLY", "stdio/vfiscanf.o"}, |
561 | {"-DSTRING_ONLY", "stdio/svscanf.o"}, |
561 | {"-DSTRING_ONLY", "stdio/svscanf.o"}, |
562 | {"-DINTEGER_ONLY -DSTRING_ONLY", "stdio/svfiscanf.o"}, |
562 | {"-DINTEGER_ONLY -DSTRING_ONLY", "stdio/svfiscanf.o"}, |
563 | } |
563 | } |
Line 564... | Line 564... | ||
564 | for i,v in ipairs(vfscanf_extra_objs) do |
564 | for i,v in ipairs(vfscanf_extra_objs) do |
565 | LIB_OBJS += tup.rule("stdio/vfscanf.c", "kos32-gcc $(CFLAGS) $(DEFINES) $(INCLUDES) " .. v[1] .. " -c %f -o %o", v[2]) |
565 | LIB_OBJS += tup.rule("stdio/vfscanf.c", "kos32-gcc " .. CFLAGS .. " " .. DEFINES .. " " .. INCLUDES .. " " .. v[1] .. " -c %f -o %o", v[2]) |
566 | end |
566 | end |
567 | 567 | ||
568 | vfwscanf_extra_objs = { |
568 | vfwscanf_extra_objs = { |
569 | {"-DINTEGER_ONLY", "stdio/vfiwscanf.o"}, |
569 | {"-DINTEGER_ONLY", "stdio/vfiwscanf.o"}, |
570 | {"-DSTRING_ONLY", "stdio/svfwscanf.o"}, |
570 | {"-DSTRING_ONLY", "stdio/svfwscanf.o"}, |
571 | {"-DINTEGER_ONLY -DSTRING_ONLY", "stdio/svfiwscanf.o"}, |
571 | {"-DINTEGER_ONLY -DSTRING_ONLY", "stdio/svfiwscanf.o"}, |
Line 572... | Line 572... | ||
572 | } |
572 | } |