summaryrefslogtreecommitdiff
path: root/pkg/openbsd
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
parentcb362b531d79708a259bbf070dee5104fd63df08 (diff)
Rewrite ninja generation scripts in Lua
Diffstat (limited to 'pkg/openbsd')
-rw-r--r--pkg/openbsd/gen.lua99
-rw-r--r--pkg/openbsd/gen.rc96
2 files changed, 99 insertions, 96 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/*
+)']])
diff --git a/pkg/openbsd/gen.rc b/pkg/openbsd/gen.rc
deleted file mode 100644
index 354c86f6..00000000
--- a/pkg/openbsd/gen.rc
+++ /dev/null
@@ -1,96 +0,0 @@
-cflags=(\
- -D '''DEF_WEAK(n)=''' \
- -I '$dir'/include\
- -I '$builddir'/pkg/libressl/include\
- -idirafter '$srcdir'/include\
- -idirafter '$srcdir'/sys\
-)
-libs=()
-
-switch($config_tls) {
-case libressl ''
- cflags=($cflags -D USE_OPENSSL -I '$builddir'/pkg/libressl/include)
- libs=($libs '$builddir'/pkg/libressl/libcrypto.a)
-case bearssl
- cflags=($cflags -D USE_BEARSSL -I pkg/bearssl/src/inc)
- libs=($libs '$builddir'/pkg/bearssl/libbearssl.a)
-}
-
-cflags $cflags
-
-# Link arc4random.c to '$outdir' so that it doesn't include the local
-# arc4random.h
-build '$outdir'/lib/libc/crypt/arc4random.c copy '$srcdir'/lib/libc/crypt/arc4random.c
-build '$outdir'/lib/libc/crypt/arc4random.h copy '$srcdir'/lib/libcrypto/arc4random/arc4random_linux.h
-build '$outdir'/lib/libc/crypt/chacha_private.h copy '$srcdir'/lib/libc/crypt/chacha_private.h
-cc '$outdir'/lib/libc/crypt/arc4random.c '||' '$outdir'/lib/libc/crypt/^(arc4random.h chacha_private.h)
-
-lib libbsd.a -d pkg/libressl/headers\
- 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
-
-# diff
-exe diff usr.bin/diff/^(diff.c diffdir.c diffreg.c xmalloc.c) libbsd.a
-file bin/diff '$outdir'/diff 755
-man -d usr.bin/diff 1 diff.1
-
-# doas
-yacc parse '$srcdir'/usr.bin/doas/parse.y
-cc '$outdir'/parse.tab.c ; with cflags '$cflags -I $srcdir/usr.bin/doas'
-cc usr.bin/doas/doas.c ; with 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 '$outdir'/doas 6755
-man -d usr.bin/doas\
- 1 doas.1\
- 5 doas.conf.5
-
-# fmt
-exe fmt usr.bin/fmt/fmt.c
-file bin/fmt '$outdir'/fmt 755
-man -d usr.bin/fmt 1 fmt.1
-
-# nc
-exe nc -d pkg/libressl/headers\
- usr.bin/nc/^(netcat.c atomicio.c socks.c)\
- '$builddir'/pkg/libressl/libtls.a.d
-file bin/nc '$outdir'/nc 755
-man -d usr.bin/nc 1 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 '$outdir'/patch 755
-man -d usr.bin/patch 1 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 '$outdir'/pax 755
-for(alias in tar cpio) sym bin/$alias pax
-man -d bin/pax 1 pax.1 tar.1 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 '$outdir'/yacc 755
-man -d usr.bin/yacc 1 yacc.1
-
-srcpats=./^(\
- bin/pax\
- include\
- lib/^(libc/^(crypt gen net stdlib string) libcrypto/arc4random)\
- usr.bin/^(diff doas fmt nc patch yacc)\
-)^/'*'
-syspats='./sys/sys/*'
-fetch curl $srcpats ';' $syspats