summaryrefslogtreecommitdiff
path: root/pkg/musl/gen.lua
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/musl/gen.lua')
-rw-r--r--pkg/musl/gen.lua45
1 files changed, 35 insertions, 10 deletions
diff --git a/pkg/musl/gen.lua b/pkg/musl/gen.lua
index 074ef01d..793fc877 100644
--- a/pkg/musl/gen.lua
+++ b/pkg/musl/gen.lua
@@ -7,10 +7,34 @@ cflags{
'-I $outdir',
'-I $srcdir/src/include',
'-I $srcdir/src/internal',
- '-I $srcdir/include',
'-I $outdir/include',
}
+local basefiles = load('base.lua')
+local archfiles = load(arch..'.lua')
+
+local bits = {}
+for _, hdr in ipairs(archfiles.bits) do
+ archfiles.bits[hdr] = true
+end
+for _, hdr in ipairs(basefiles.bits) do
+ if not archfiles.bits[hdr] then
+ table.insert(bits, hdr)
+ end
+end
+
+pkg.hdrs = {
+ copy('$outdir/include', '$srcdir/include', basefiles.hdrs),
+ copy('$outdir/include/bits', '$srcdir/arch/'..arch..'/bits', archfiles.bits),
+ copy('$outdir/include/bits', '$srcdir/arch/generic/bits', bits),
+ '$outdir/include/bits/alltypes.h',
+ '$outdir/include/bits/syscall.h',
+}
+pkg.deps = {
+ '$dir/headers',
+ '$outdir/version.h',
+}
+
build('sed', '$outdir/include/bits/alltypes.h', {
'$srcdir/arch/'..arch..'/bits/alltypes.h.in',
'$srcdir/include/alltypes.h.in',
@@ -23,15 +47,6 @@ build('sed', '$outdir/include/bits/syscall.h', {'$srcdir/arch/'..arch..'/bits/sy
build('awk', '$outdir/version.h', '$dir/ver', {expr=[['{printf "#define VERSION \"%s\"\n", $$1}']]})
-pkg.deps = {
- '$outdir/include/bits/alltypes.h',
- '$outdir/include/bits/syscall.h',
- '$outdir/version.h',
-}
-
-local basefiles = load('base.lua')
-local archfiles = load(arch..'.lua')
-
local srcmap, srcs = {}, {}
for src in iterstrings{basefiles.srcs, archfiles.srcs} do
srcmap[src:match('(.*)%.'):gsub('/'..arch..'/', '/', 1)] = src
@@ -42,6 +57,16 @@ end
lib('libc.a', srcs)
build('cc', '$outdir/crt1.o', '$srcdir/crt/crt1.c')
+build('cc', '$outdir/crti.o', '$srcdir/crt/crti.c')
+build('cc', '$outdir/crtn.o', '$srcdir/crt/crtn.c')
build('cc', '$outdir/rcrt1.o', '$srcdir/crt/rcrt1.c', {cflags='$cflags -fPIC'})
+phony('startfiles', {
+ '$outdir/libc.a',
+ '$outdir/crt1.o',
+ '$outdir/crti.o',
+ '$outdir/crtn.o',
+ '$outdir/rcrt1.o',
+})
+
fetch 'git'