commit: 08cca5431f4183d54505ce89f2cac4815fdce7b5
parent f0f72311369f081643a6cab775b168f1f8222345
Author: Michael Forney <mforney@mforney.org>
Date: Wed, 29 Jan 2020 16:37:52 -0800
Move toolchain config into config.lua
Diffstat:
20 files changed, 27 insertions(+), 48 deletions(-)
diff --git a/config.def.lua b/config.def.lua
@@ -14,7 +14,7 @@ return {
-- target toolchain and flags
target={
- toolchain='x86_64-linux-musl',
+ platform='x86_64-linux-musl',
cflags='-O2 -pipe -fpie',
ldflags='-s -static -pie',
pie=true
@@ -22,7 +22,6 @@ return {
-- host toolchain and flags
host={
- toolchain='default',
cflags='-pipe',
ldflags='',
},
diff --git a/gen.lua b/gen.lua
@@ -5,14 +5,6 @@ set('builddir', config.builddir)
set('dir', '$basedir')
set('outdir', '$builddir')
-set('target_toolchain', config.target.toolchain)
-set('target_cflags', config.target.cflags)
-set('target_ldflags', config.target.ldflags)
-
-set('host_toolchain', config.host.toolchain)
-set('host_cflags', config.host.cflags)
-set('host_ldflags', config.host.ldflags)
-
set('repo', config.repo.path)
set('repo_flags', config.repo.flags)
set('repo_tag', config.repo.tag)
@@ -20,7 +12,7 @@ set('repo_branch', config.repo.branch)
include '$basedir/rules.ninja'
-toolchain 'target'
+toolchain(config.target)
subgen 'probe'
subgen 'pkg'
diff --git a/ninja.lua b/ninja.lua
@@ -228,10 +228,16 @@ function sub(name, fn)
subninja(name)
end
-function toolchain(name)
- set('cflags', '$'..name..'_cflags')
- set('ldflags', '$'..name..'_ldflags')
- include('$basedir/toolchain/$'..name..'_toolchain.ninja')
+function toolchain(tc)
+ set('ar', tc.ar or (tc.platform and tc.platform..'-ar') or 'ar')
+ set('as', tc.as or (tc.platform and tc.platform..'-as') or 'as')
+ set('cc', tc.cc or (tc.platform and tc.platform..'-cc') or 'cc')
+ set('ld', tc.ld or (tc.platform and tc.platform..'-ld') or 'ld')
+ set('objcopy', tc.objcopy or (tc.platform and tc.platform..'-objcopy') or 'objcopy')
+ set('mc', tc.mc or 'false')
+
+ set('cflags', tc.cflags)
+ set('ldflags', tc.ldflags)
end
function phony(name, inputs)
diff --git a/pkg/awk/gen.lua b/pkg/awk/gen.lua
@@ -11,7 +11,7 @@ build('copy', '$outdir/ytab.h', '$outdir/gram.tab.h')
pkg.deps = {'$outdir/ytab.h'}
sub('tools.ninja', function()
- toolchain 'host'
+ toolchain(config.host)
cflags{'-I $outdir'}
exe('maketab', {'maketab.c'})
end)
diff --git a/pkg/e2fsprogs/gen.lua b/pkg/e2fsprogs/gen.lua
@@ -58,7 +58,7 @@ build('copy', '$outdir/include/ext2fs/ext2_types.h', '$dir/ext2_types.h')
build('copy', '$outdir/internal/blkid/blkid_types.h', '$dir/blkid_types.h')
sub('tools.ninja', function()
- toolchain 'host'
+ toolchain(config.host)
exe('gen_crc32ctable', {'lib/ext2fs/gen_crc32ctable.c'})
end)
rule('gen_crc32ctable', '$outdir/gen_crc32ctable >$out')
diff --git a/pkg/efivar/gen.lua b/pkg/efivar/gen.lua
@@ -11,7 +11,7 @@ cflags{
}
sub('tools.ninja', function()
- toolchain 'host'
+ toolchain(config.host)
cflags{
'-std=c99',
'-D _GNU_SOURCE',
diff --git a/pkg/fribidi/gen.lua b/pkg/fribidi/gen.lua
@@ -7,7 +7,7 @@ cflags{
}
sub('tools.ninja', function()
- toolchain 'host'
+ toolchain(config.host)
cflags{
'-D HAVE_STRINGIZE',
'-D DONT_HAVE_FRIBIDI_CONFIG_H',
diff --git a/pkg/mpv/gen.lua b/pkg/mpv/gen.lua
@@ -3,7 +3,7 @@ build('awk', '$outdir/version.h', {'$srcdir/VERSION', '|', '$dir/version.awk'},
})
sub('tools.ninja', function()
- toolchain 'host'
+ toolchain(config.host)
set('srcdir', '$dir')
exe('file2string', {'file2string.c'})
end)
diff --git a/pkg/mupdf/gen.lua b/pkg/mupdf/gen.lua
@@ -24,7 +24,7 @@ cflags{
}
sub('tools.ninja', function()
- toolchain 'host'
+ toolchain(config.host)
cflags{'-Wall'}
exe('hexdump', {'scripts/hexdump.c'})
end)
diff --git a/pkg/ncurses/gen.lua b/pkg/ncurses/gen.lua
@@ -10,7 +10,7 @@ set('common_cflags', {
cflags{'$common_cflags'}
sub('tools.ninja', function()
- toolchain 'host'
+ toolchain(config.host)
cflags{'$common_cflags', '-D USE_BUILD_CC'}
exe('make_keys', {'ncurses/tinfo/make_keys.c'}, {'$gendir/headers', '$outdir/names.c'})
exe('make_hash', {'ncurses/tinfo/make_hash.c'}, {'$gendir/headers', '$outdir/hashsize.h'})
diff --git a/pkg/netsurf/gen.lua b/pkg/netsurf/gen.lua
@@ -11,7 +11,7 @@ subgen 'libsvgtiny'
subgen 'libwapcaplet'
sub('tools.ninja', function()
- toolchain 'host'
+ toolchain(config.host)
exe('convert_image', {'frontends/framebuffer/convert_image.c'}, {'pkg/libpng/headers'}, {
ldlibs='-lpng -lz',
})
diff --git a/pkg/netsurf/libcss/gen.lua b/pkg/netsurf/libcss/gen.lua
@@ -7,7 +7,7 @@ cflags{
}
sub('tools.ninja', function()
- toolchain 'host'
+ toolchain(config.host)
exe('gen_prop_parser', {'src/parse/properties/css_property_parser_gen.c'})
end)
diff --git a/pkg/openssh/gen.lua b/pkg/openssh/gen.lua
@@ -1,4 +1,4 @@
-local arch = config.target.toolchain:match('[^-]*')
+local arch = config.target.platform:match('[^-]*')
local archflags = {
x86_64='-D SANDBOX_SECCOMP_FILTER=1 -D SECCOMP_AUDIT_ARCH=AUDIT_ARCH_X86_64',
aarch64='-D SANDBOX_SECCOMP_FILTER=1 -D SECCOMP_AUDIT_ARCH=AUDIT_ARCH_AARCH64',
@@ -6,7 +6,7 @@ local archflags = {
cflags{
'-D _XOPEN_SOURCE=600',
'-D _DEFAULT_SOURCE',
- archflags[config.target.toolchain:match('[^-]*')] or '-D SANDBOX_RLIMIT=1',
+ archflags[arch] or '-D SANDBOX_RLIMIT=1',
'-I $dir',
'-I $srcdir',
'-I $basedir/pkg/openbsd/include',
diff --git a/pkg/perp/gen.lua b/pkg/perp/gen.lua
@@ -4,7 +4,7 @@ cflags{
}
sub('tools.ninja', function()
- toolchain 'host'
+ toolchain(config.host)
exe('mk_outvec', {'lasagna/outvec/mk_outvec.c'})
exe('mk_rlimit', {'lasagna/rlimit/mk_rlimit.c'})
exe('mksysstr', {'lasagna/sysstr/mksysstr.c'})
diff --git a/pkg/strace/gen.lua b/pkg/strace/gen.lua
@@ -18,7 +18,7 @@ build('sed', '$outdir/ioctl_iocdef.h', '$outdir/ioctl_iocdef.i', {
})
sub('tools.ninja', function()
- toolchain 'host'
+ toolchain(config.host)
cflags{
'-D X86_64=1',
'-I $srcdir/linux/x86_64',
diff --git a/pkg/swc/gen.lua b/pkg/swc/gen.lua
@@ -39,7 +39,7 @@ pkg.hdrs = {
copy('$outdir', '$builddir/pkg/wld/protocol', {'wayland-drm-server-protocol.h'})
sub('tools.ninja', function()
- toolchain 'host'
+ toolchain(config.host)
cflags{'-std=c99', '-D _POSIX_C_SOURCE=200809L'}
exe('convert_font', {'cursor/convert_font.c'})
end)
diff --git a/pkg/syslinux/gen.lua b/pkg/syslinux/gen.lua
@@ -14,7 +14,7 @@ build('awk', '$outdir/version.h', {'$srcdir/version', '|', '$dir/version.awk'},
})
sub('tools.ninja', function()
- toolchain 'host'
+ toolchain(config.host)
cflags{'-std=c99', '-pedantic', '-Wall', '-Wextra'}
set('srcdir', '$dir')
exe('bin2c', {'bin2c.c'})
diff --git a/toolchain/aarch64-linux-musl.ninja b/toolchain/aarch64-linux-musl.ninja
@@ -1,6 +0,0 @@
-ar = aarch64-linux-musl-ar
-as = aarch64-linux-musl-as
-cc = aarch64-linux-musl-cc
-ld = aarch64-linux-musl-ld
-mc = false
-objcopy = aarch64-linux-musl-objcopy
diff --git a/toolchain/default.ninja b/toolchain/default.ninja
@@ -1,6 +0,0 @@
-ar = ar
-as = as
-cc = cc
-ld = ld
-mc = 6m
-objcopy = objcopy
diff --git a/toolchain/x86_64-linux-musl.ninja b/toolchain/x86_64-linux-musl.ninja
@@ -1,6 +0,0 @@
-ar = x86_64-linux-musl-ar
-as = x86_64-linux-musl-as
-cc = x86_64-linux-musl-cc
-ld = x86_64-linux-musl-ld
-mc = 6m
-objcopy = x86_64-linux-musl-objcopy