Subversion Repositories Kolibri OS

Rev

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
}