summaryrefslogtreecommitdiff
path: root/pkg/efivar/gen.lua
diff options
context:
space:
mode:
authorMichael Forney <mforney@mforney.org>2017-09-17 00:03:34 -0700
committerMichael Forney <mforney@mforney.org>2017-09-25 19:23:06 -0700
commitba94a8513d9a0aadb3f2c834c74b64aa644c61e8 (patch)
tree48ac6c85baa7b9d960b9e1e726a906e61ca60967 /pkg/efivar/gen.lua
parentcb362b531d79708a259bbf070dee5104fd63df08 (diff)
Rewrite ninja generation scripts in Lua
Diffstat (limited to 'pkg/efivar/gen.lua')
-rw-r--r--pkg/efivar/gen.lua54
1 files changed, 54 insertions, 0 deletions
diff --git a/pkg/efivar/gen.lua b/pkg/efivar/gen.lua
new file mode 100644
index 00000000..272ecb50
--- /dev/null
+++ b/pkg/efivar/gen.lua
@@ -0,0 +1,54 @@
+cc('src/guids.S', {'$outdir/guids.bin', '$outdir/names.bin'}, {
+ cflags='$cflags -I $outdir',
+})
+
+cflags{
+ '-Wall', '-Wextra',
+ '-D _GNU_SOURCE',
+ '-include $dir/compat.h',
+ '-I $outdir/include',
+ '-I $srcdir/src/include/efivar',
+}
+
+sub('tools.ninja', function()
+ toolchain 'host'
+ cflags{
+ '-std=c99',
+ '-D EFIVAR_BUILD_ENVIRONMENT',
+ '-I $srcdir/src/include/efivar',
+ }
+ build('cc', '$outdir/host-guid.c.o', '$srcdir/src/guid.c')
+ exe('makeguids', {'src/makeguids.c', 'host-guid.c.o'}, nil, {ldlibs='-ldl'})
+end)
+
+rule('makeguids', '$outdir/makeguids $in $out')
+build('makeguids', {
+ '$outdir/guids.bin',
+ '$outdir/names.bin',
+ '$outdir/guid-symbols.c',
+ '$outdir/include/efivar-guids.h',
+}, {'$srcdir/src/guids.txt', '|', '$outdir/makeguids'})
+
+pkg.hdrs = {
+ copy('$outdir/include', '$srcdir/src/include/efivar', {
+ 'efiboot.h',
+ 'efiboot-creator.h',
+ 'efiboot-loadopt.h',
+ 'efivar.h',
+ 'efivar-dp.h',
+ }),
+ '$outdir/include/efivar-guids.h',
+}
+pkg.deps = {'$outdir/include/efivar-guids.h'}
+
+lib('libefiboot.a', 'src/(crc32.c creator.c disk.c gpt.c linux.c loadopt.c)')
+lib('libefivar.a', [[
+ src/(
+ dp.c dp-acpi.c dp-hw.c dp-media.c dp-message.c
+ efivarfs.c error.c export.c guid.c guids.S.o
+ lib.c vars.c
+ )
+ $outdir/guid-symbols.c
+]])
+
+fetch 'git'