summaryrefslogtreecommitdiff
path: root/pkg/syslinux/gen.rc
diff options
context:
space:
mode:
authorMichael Forney <mforney@mforney.org>2017-03-02 19:19:53 -0800
committerMichael Forney <mforney@mforney.org>2017-03-02 19:21:41 -0800
commit05a28a284a7a8fac805b47ad787df84a612b9e6c (patch)
tree31e8c4ff158b4f7b2d50555960cb598f3fcad4fb /pkg/syslinux/gen.rc
parent3270dbaa984ffad41caa210c59f90611e5d38cc6 (diff)
Add syslinux 6.03
For now just use the pre-compiled binaries, but build our own static extlinux.
Diffstat (limited to 'pkg/syslinux/gen.rc')
-rw-r--r--pkg/syslinux/gen.rc45
1 files changed, 45 insertions, 0 deletions
diff --git a/pkg/syslinux/gen.rc b/pkg/syslinux/gen.rc
new file mode 100644
index 00000000..becad305
--- /dev/null
+++ b/pkg/syslinux/gen.rc
@@ -0,0 +1,45 @@
+cflags\
+ -I '$dir' \
+ -I '$outdir' \
+ -I '$srcdir'/libinstaller\
+ -I '$srcdir'/com32/include/libinstaller
+# NOTE: we should only have to include $srcdir/libinstaller, but BSD pax/tar
+# transforms symlink targets as well as filenames, trashing the
+# libinstaller/advconst.h symlink.
+
+build '$outdir'/version.h awk '$srcdir'/version '|' '$dir'/version.awk ; with\
+ expr '-f $dir/version.awk -v fmt=''#define %s %s'''
+
+{
+ toolchain host
+ set srcdir '$dir'
+ exe bin2c bin2c.c
+} >tools.ninja ; subninja tools.ninja
+
+rule bin2c '$outdir/bin2c $args <$in >$out.tmp && mv $out.tmp $out'
+fn bin2c {
+ bin=$1
+ name=$2
+ shift
+ build '$outdir'/$name.c bin2c '$srcdir'/$bin '|' '$outdir'/bin2c
+ with args $"*
+}
+
+bin2c bios/core/ldlinux.bss syslinux_bootsect
+bin2c bios/core/ldlinux.sys syslinux_ldlinux 512
+bin2c bios/com32/elflink/ldlinux/ldlinux.c32 syslinux_ldlinuxc32
+
+exe bin/extlinux -d '$outdir'/version.h\
+ extlinux/^(main.c mountinfo.c)\
+ libinstaller/^(\
+ syslxmod.c\
+ syslxopt.c\
+ syslxcom.c\
+ setadv.c\
+ advio.c\
+ )\
+ '$outdir'/syslinux_^(bootsect ldlinux ldlinuxc32)^.c
+
+file lib/syslinux/bios/mbr.bin '$srcdir'/bios/mbr/mbr.bin 644
+
+fetch curl