summaryrefslogtreecommitdiff
path: root/pkg/openbsd/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/openbsd/gen.lua
parentcb362b531d79708a259bbf070dee5104fd63df08 (diff)
Rewrite ninja generation scripts in Lua
Diffstat (limited to 'pkg/openbsd/gen.lua')
-rw-r--r--pkg/openbsd/gen.lua99
1 files changed, 99 insertions, 0 deletions
diff --git a/pkg/openbsd/gen.lua b/pkg/openbsd/gen.lua
new file mode 100644
index 00000000..68ad276c
--- /dev/null
+++ b/pkg/openbsd/gen.lua
@@ -0,0 +1,99 @@
+cflags{
+ [[-D 'DEF_WEAK(n)=']],
+ '-I $dir/include',
+ '-I $builddir/pkg/libressl/include',
+ '-idirafter $srcdir/include',
+ '-idirafter $srcdir/sys',
+}
+local libs
+
+if not config.tls or config.tls == 'libressl' then
+ cflags{'-D USE_OPENSSL', '-I $builddir/pkg/libressl/include'}
+ libs = {'$builddir/pkg/libressl/libcrypto.a'}
+elseif config.tls == 'bearssl' then
+ cflags{'-D USE_BEARSSL', '-I pkg/bearssl/src/inc'}
+ libs = {'$builddir/pkg/bearssl/libbearssl.a'}
+else
+ error('unknown config.tls: '..config.tls)
+end
+
+-- Link arc4random.c to '$outdir' so that it doesn't include the local
+-- arc4random.h
+build('copy', '$outdir/lib/libc/crypt/arc4random.c', '$srcdir/lib/libc/crypt/arc4random.c')
+build('copy', '$outdir/lib/libc/crypt/arc4random.h', '$srcdir/lib/libcrypto/arc4random/arc4random_linux.h')
+build('copy', '$outdir/lib/libc/crypt/chacha_private.h', '$srcdir/lib/libc/crypt/chacha_private.h')
+cc('$outdir/lib/libc/crypt/arc4random.c', {
+ '$outdir/lib/libc/crypt/arc4random.h',
+ '$outdir/lib/libc/crypt/chacha_private.h',
+})
+
+lib('libbsd.a', {paths[[
+ lib/libc/(
+ crypt/(arc4random.c.o arc4random_uniform.c)
+ gen/(fts.c getprogname.c pwcache.c readpassphrase.c setprogname.c vis.c warnc.c vwarnc.c)
+ net/base64.c
+ stdlib/(reallocarray.c recallocarray.c strtonum.c)
+ string/(explicit_bzero.c strmode.c timingsafe_memcmp.c)
+ )
+ lib/libcrypto/arc4random/getentropy_linux.c
+]], libs}, {'pkg/libressl/headers'})
+
+-- diff
+exe('diff', 'usr.bin/diff/(diff.c diffdir.c diffreg.c xmalloc.c) libbsd.a')
+file('bin/diff', '755', '$outdir/diff')
+man{'usr.bin/diff/diff.1'}
+
+-- doas
+yacc('parse', 'usr.bin/doas/parse.y')
+cc('$outdir/parse.tab.c', nil, {cflags='$cflags -I $srcdir/usr.bin/doas'})
+cc('usr.bin/doas/doas.c', nil, {cflags='$cflags -D _GNU_SOURCE'})
+exe('doas', 'usr.bin/doas/(doas.c.o env.c persist.c) parse.tab.c.o libbsd.a')
+file('bin/doas', '6755', '$outdir/doas')
+man{'usr.bin/doas/doas.1', 'usr.bin/doas/doas.conf.5'}
+
+-- fmt
+file('bin/fmt', '755', exe('fmt', {'usr.bin/fmt/fmt.c'}))
+man{'usr.bin/fmt/fmt.1'}
+
+-- nc
+exe('nc', [[
+ usr.bin/nc/(netcat.c atomicio.c socks.c)
+ $builddir/pkg/libressl/libtls.a.d
+]], {'pkg/libressl/headers'})
+file('bin/nc', '755', '$outdir/nc')
+man{'usr.bin/nc/nc.1'}
+
+-- patch
+exe('patch', 'usr.bin/patch/(patch.c pch.c inp.c util.c backupfile.c mkpath.c ed.c) libbsd.a')
+file('bin/patch', '755', '$outdir/patch')
+man{'usr.bin/patch/patch.1'}
+
+-- pax
+exe('pax', [[bin/pax/(
+ ar_io.c ar_subs.c buf_subs.c cache.c cpio.c file_subs.c ftree.c
+ gen_subs.c getoldopt.c options.c pat_rep.c pax.c sel_subs.c tables.c
+ tar.c tty_subs.c
+) libbsd.a]])
+file('bin/pax', '755', '$outdir/pax')
+sym('bin/tar', 'pax')
+sym('bin/cpio', 'pax')
+man{'bin/pax/pax.1', 'bin/pax/tar.1', 'bin/pax/cpio.1'}
+
+-- yacc
+exe('yacc', [[usr.bin/yacc/(
+ closure.c error.c lalr.c lr0.c main.c mkpar.c output.c reader.c
+ skeleton.c symtab.c verbose.c warshall.c
+) libbsd.a]])
+file('bin/yacc', '755', '$outdir/yacc')
+man{'usr.bin/yacc/yacc.1'}
+
+fetch('curl', paths[['(
+ ./(
+ bin/pax
+ include
+ lib/(libc/(crypt gen net stdlib string) libcrypto/arc4random)
+ usr.bin/(diff doas fmt nc patch yacc)
+ )/*
+ ;
+ ./sys/sys/*
+)']])