summaryrefslogtreecommitdiff
path: root/pkg/efivar
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/efivar')
-rw-r--r--pkg/efivar/gen.lua54
-rw-r--r--pkg/efivar/gen.rc41
2 files changed, 54 insertions, 41 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'
diff --git a/pkg/efivar/gen.rc b/pkg/efivar/gen.rc
deleted file mode 100644
index e0f4a38f..00000000
--- a/pkg/efivar/gen.rc
+++ /dev/null
@@ -1,41 +0,0 @@
-cc src/guids.S '||' '$outdir'/^(guids.bin names.bin) ; with\
- cflags '$cflags -I $outdir'
-
-cflags\
- -Wall -Wextra\
- -D _GNU_SOURCE\
- -include '$dir'/compat.h\
- -I '$outdir'/include\
- -I '$srcdir'/src/include/efivar
-
-{
- toolchain host
- cflags\
- '-std=c99' \
- -D EFIVAR_BUILD_ENVIRONMENT\
- -I '$srcdir'/src/include/efivar
- build '$outdir'/host-guid.c.o cc '$srcdir'/src/guid.c
- exe makeguids src/makeguids.c host-guid.c.o ; with\
- ldlibs '-ldl'
-} >tools.ninja ; subninja tools.ninja
-
-rule makeguids '$outdir/makeguids $in $out'
-outs='$outdir'/^(guids.bin names.bin guid-symbols.c include/efivar-guids.h)\
- build $"outs makeguids '$srcdir'/src/guids.txt '|' '$outdir'/makeguids
-
-hdrs=(efiboot.h efiboot-creator.h efiboot-loadopt.h efivar.h efivar-dp.h)
-for(hdr in $hdrs) {
- build '$outdir'/include/$hdr copy '$srcdir'/src/include/efivar/$hdr
-}
-phony headers '$outdir'/include/^($hdrs efivar-guids.h)
-
-lib libefiboot.a -d '$outdir'/include/efivar-guids.h src/^(\
- crc32.c creator.c disk.c gpt.c linux.c loadopt.c\
-)
-lib libefivar.a -d '$outdir'/include/efivar-guids.h 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