commit: ba94a8513d9a0aadb3f2c834c74b64aa644c61e8
parent cb362b531d79708a259bbf070dee5104fd63df08
Author: Michael Forney <mforney@mforney.org>
Date: Sun, 17 Sep 2017 00:03:34 -0700
Rewrite ninja generation scripts in Lua
Diffstat:
241 files changed, 8667 insertions(+), 7767 deletions(-)
diff --git a/.gitignore b/.gitignore
@@ -1,5 +1,5 @@
/config.ninja
-/config.rc
+/config.lua
/out
local.ninja
local.perms
diff --git a/.travis.yml b/.travis.yml
@@ -8,6 +8,7 @@ addons:
packages:
- 9base
- libwayland-dev
+ - lua5.2
- nasm
- pax
install:
@@ -17,7 +18,7 @@ script:
- git submodule update --init pkg/samurai/src
- make -C pkg/samurai/src
- echo 'fn fs { true }; config_tls=libressl; config_video_drivers=(intel nouveau)' > config.rc
-- rc ./setup.rc
+- lua setup.lua
- ./pkg/samurai/src/samu out/pkg/openbsd/pax out/pkg/mc/bin/6m out/pkg/mc/bin/muse out/pkg/file/file
- mkdir /tmp/bin
- cp out/pkg/openbsd/pax out/pkg/mc/bin/6m out/pkg/mc/bin/muse out/pkg/file/file /tmp/bin
diff --git a/config.def.lua b/config.def.lua
@@ -0,0 +1,13 @@
+local sets = dofile 'sets.lua'
+
+return {
+ fs={
+ {sets.core, exclude={'^include/', '^lib/.*%.a$'}},
+ },
+
+ -- TLS implementation (possible_values: libressl bearssl)
+ tls='libressl',
+
+ -- GPU driver (possible_values: intel nouveau)
+ -- video_drivers={intel=true}
+}
diff --git a/config.def.rc b/config.def.rc
@@ -1,19 +0,0 @@
-. ./sets.rc
-
-pkgs=$core
-
-fn fs {
- switch($1) {
- case $pkgs
- ! ~ $2 include/* lib/*.a
- case *
- false
- }
-}
-
-# TLS implementation (possible values: libressl bearssl)
-config_tls=libressl
-
-# depends on your video card
-# config_video_drivers=intel
-# config_video_drivers=nouveau
diff --git a/gen.lua b/gen.lua
@@ -0,0 +1,15 @@
+toolchain 'target'
+
+--subgen 'probe'
+subgen 'pkg'
+subgen 'src'
+
+file('.perms', '644', '$outdir/root.perms')
+
+build('gitinit', '$builddir/root.stamp')
+build('gittree', '$builddir/root.tree', {'$outdir/root.index', '|', 'scripts/tree.rc', '||', '$builddir/root.stamp'})
+build('gitarchive', '$builddir/root.tar', {'|', '$builddir/root.tree'})
+build('gitcommit', '$builddir/root.commit', {'|', '$builddir/root.tree'})
+build('phony', 'commit', {'$builddir/root.commit'})
+
+io.write('default $builddir/root.tree\n')
diff --git a/gen.rc b/gen.rc
@@ -1,14 +0,0 @@
-toolchain target
-
-subgen pkg
-subgen src
-
-file .perms '$outdir'/root.perms 644
-
-build '$builddir'/root.stamp gitinit
-build '$builddir'/root.tree gittree '$outdir'/root.index '|' ./scripts/tree.rc '||' '$builddir'/root.stamp
-build '$builddir'/root.tar gitarchive '|' '$builddir'/root.tree
-build '$builddir'/root.commit gitcommit '|' '$builddir'/root.tree
-build commit phony '$builddir'/root.commit
-
-echo default '$builddir'/root.tree
diff --git a/ninja.lua b/ninja.lua
@@ -0,0 +1,452 @@
+--
+-- utility functions
+--
+
+function string.hasprefix(s, prefix)
+ return s:sub(1, #prefix) == prefix
+end
+
+function string.hassuffix(s, suffix)
+ return s:sub(-#suffix) == suffix
+end
+
+-- collects the results of an iterator into a table
+local function collect(fn, s, i)
+ local results, nresults = {}, 0
+ for val in fn, s, i do
+ nresults = nresults + 1
+ results[nresults] = val
+ end
+ return results
+end
+
+-- collects the keys of a table into a sorted table
+function table.keys(t)
+ local keys = collect(next, t)
+ table.sort(keys)
+ return keys
+end
+
+-- yields string values of table or nested tables
+local function stringsgen(t)
+ for _, val in ipairs(t) do
+ if type(val) == 'string' then
+ coroutine.yield(val)
+ else
+ stringsgen(val)
+ end
+ end
+end
+
+function iterstrings(x)
+ return coroutine.wrap(stringsgen), x
+end
+
+function strings(s)
+ return collect(iterstrings(s))
+end
+
+-- yields strings generated by concateting all strings in a table, for every
+-- combination of strings in subtables
+local function expandgen(t, i)
+ while true do
+ local val
+ i, val = next(t, i)
+ if not i then
+ coroutine.yield(table.concat(t))
+ break
+ elseif type(val) == 'table' then
+ for opt in iterstrings(val) do
+ t[i] = opt
+ expandgen(t, i)
+ end
+ t[i] = val
+ break
+ end
+ end
+end
+
+function expand(t)
+ return collect(coroutine.wrap(expandgen), t)
+end
+
+-- yields expanded paths from the given path specification string
+function pathsgen(s, i)
+ local results = {}
+ local first = not i
+ while true do
+ i = s:find('%g', i)
+ if not i or s:sub(i, i) == ')' then
+ break
+ end
+ local parts, nparts = {}, 0
+ local c
+ while true do
+ local j = s:find('[%s()]', i)
+ if not j or j > i then
+ nparts = nparts + 1
+ parts[nparts] = s:sub(i, j and j - 1)
+ end
+ i = j
+ c = i and s:sub(i, i)
+ if c == '(' then
+ local opts, nopts = {}, 0
+ local fn = coroutine.wrap(pathsgen)
+ local opt
+ opt, i = fn(s, i + 1)
+ while opt do
+ nopts = nopts + 1
+ opts[nopts] = opt
+ opt, i = fn(s)
+ end
+ nparts = nparts + 1
+ parts[nparts] = opts
+ if not i or s:sub(i, i) ~= ')' then
+ error('unmatched (')
+ end
+ i = i + 1
+ c = s:sub(i, i)
+ else
+ break
+ end
+ end
+ expandgen(parts)
+ if not c or c == ')' then
+ break
+ end
+ end
+ if first and i then
+ error('unmatched )')
+ end
+ return nil, i
+end
+
+function iterpaths(s)
+ return coroutine.wrap(pathsgen), s
+end
+
+function paths(s)
+ return collect(iterpaths(s))
+end
+
+-- yields non-empty non-comment lines in a file
+function linesgen(file)
+ table.insert(pkg.inputs.gen, '$dir/'..file)
+ for line in io.lines(pkg.dir..'/'..file) do
+ if #line > 0 and not line:hasprefix('#') then
+ coroutine.yield(line)
+ end
+ end
+end
+
+function iterlines(file)
+ return coroutine.wrap(linesgen), file
+end
+
+function lines(file)
+ return collect(iterlines(file))
+end
+
+--
+-- base constructs
+--
+
+function set(var, val, indent)
+ if type(val) == 'table' then
+ val = table.concat(val, ' ')
+ end
+ io.write(string.format('%s%s = %s\n', indent or '', var, val))
+end
+
+function subninja(file)
+ if not file:hasprefix('$') then
+ file = '$dir/'..file
+ end
+ io.write(string.format('subninja %s\n', file))
+end
+
+function include(file)
+ io.write(string.format('include %s\n', file))
+end
+
+local function let(bindings)
+ for var, val in pairs(bindings) do
+ set(var, val, ' ')
+ end
+end
+
+function rule(name, cmd, bindings)
+ io.write(string.format('rule %s\n command = %s\n', name, cmd))
+ if bindings then
+ let(bindings)
+ end
+end
+
+function build(rule, outputs, inputs, bindings)
+ if type(outputs) == 'table' then
+ outputs = table.concat(strings(outputs), ' ')
+ end
+ if not inputs then
+ inputs = ''
+ elseif type(inputs) == 'table' then
+ local srcs, nsrcs = {}, 0
+ for src in iterstrings(inputs) do
+ nsrcs = nsrcs + 1
+ srcs[nsrcs] = src
+ if src:hasprefix('$srcdir/') then
+ pkg.inputs.fetch[src] = true
+ end
+ end
+ inputs = table.concat(srcs, ' ')
+ elseif inputs:hasprefix('$srcdir/') then
+ pkg.inputs.fetch[inputs] = true
+ end
+ io.write(string.format('build %s: %s %s\n', outputs, rule, inputs))
+ if bindings then
+ let(bindings)
+ end
+end
+
+--
+-- higher-level rules
+--
+
+function sub(name, fn)
+ local old = io.output()
+ io.output(pkg.dir..'/'..name)
+ fn()
+ io.output(old)
+ subninja(name)
+end
+
+function toolchain(name)
+ set('cflags', '$'..name..'_cflags')
+ set('cxxflags', '$'..name..'_cxxflags')
+ set('ldflags', '$'..name..'_ldflags')
+ include('toolchain/$'..name..'_toolchain.ninja')
+end
+
+function phony(name, inputs)
+ build('phony', '$dir/'..name, inputs)
+end
+
+function cflags(flags)
+ set('cflags', '$cflags '..table.concat(flags, ' '))
+end
+
+function compile(rule, src, deps, args)
+ local obj = src..'.o'
+ if not src:hasprefix('$') then
+ src = '$srcdir/'..src
+ obj = '$outdir/'..obj
+ end
+ if not deps and pkg.deps then
+ deps = '$dir/deps'
+ end
+ if deps then
+ src = {src, '||', deps}
+ end
+ build(rule, obj, src, args)
+ return obj
+end
+
+function cc(src, deps, args)
+ return compile('cc', src, deps, args)
+end
+
+function objects(srcs, deps)
+ local objs, nobjs = {}, 0
+ local rules = {
+ c='cc',
+ s='cc',
+ S='cc',
+ cc='cc',
+ cpp='cc',
+ asm='nasm',
+ }
+ local fn
+ if type(srcs) == 'string' then
+ fn = coroutine.wrap(pathsgen)
+ else
+ fn = coroutine.wrap(stringsgen)
+ end
+ for src in fn, srcs do
+ local rule = rules[src:match('[^.]*$')]
+ if rule then
+ src = compile(rule, src, deps)
+ end
+ nobjs = nobjs + 1
+ objs[nobjs] = src
+ end
+ return objs
+end
+
+function link(out, files, args)
+ local objs, nobjs = {}, 0
+ local deps, ndeps = {}, 0
+ for _, file in ipairs(files) do
+ if not file:hasprefix('$') then
+ file = '$outdir/'..file
+ end
+ if file:hassuffix('.d') then
+ ndeps = ndeps + 1
+ deps[ndeps] = file
+ else
+ nobjs = nobjs + 1
+ objs[nobjs] = file
+ end
+ end
+ out = '$outdir/'..out
+ if not args then
+ args = {}
+ end
+ if next(deps) then
+ local rsp = out..'.rsp'
+ build('awk', rsp, {deps, '|', 'scripts/rsp.awk'}, {expr='-f scripts/rsp.awk'})
+ objs = {objs, '|', rsp}
+ args.ldlibs = '@'..rsp
+ end
+ build('link', out, objs, args)
+ return out
+end
+
+function ar(out, files)
+ out = '$outdir/'..out
+ local objs, nobjs = {}, 0
+ local deps, ndeps = {out}, 1
+ for _, file in ipairs(files) do
+ if not file:hasprefix('$') then
+ file = '$outdir/'..file
+ end
+ if file:find('%.[ad]$') then
+ ndeps = ndeps + 1
+ deps[ndeps] = file
+ else
+ nobjs = nobjs + 1
+ objs[nobjs] = file
+ end
+ end
+ build('ar', out, objs)
+ build('lines', out..'.d', deps)
+end
+
+function lib(out, srcs, deps)
+ return ar(out, objects(srcs, deps))
+end
+
+function exe(out, srcs, deps, args)
+ return link(out, objects(srcs, deps), args)
+end
+
+function yacc(name, gram)
+ if not gram:hasprefix('$') then
+ gram = '$srcdir/'..gram
+ end
+ build('yacc', expand{'$outdir/', name, {'.tab.c', '.tab.h'}}, gram, {
+ yaccflags='-d -b '..name,
+ })
+end
+
+function waylandproto(proto, client, server, code)
+ proto = '$srcdir/'..proto
+ code = '$outdir/'..code
+ build('waylandproto', '$outdir/'..client, proto, {type='client-header'})
+ build('waylandproto', '$outdir/'..server, proto, {type='server-header'})
+ build('waylandproto', code, proto, {type='code'})
+ cc(code, {'pkg/wayland/headers'})
+end
+
+function fetch(method, args)
+ build('fetch'..method, '$outdir/fetch.stamp', {'|', '$dir/rev'}, {args=args})
+ if next(pkg.inputs.fetch) then
+ build('phony', table.keys(pkg.inputs.fetch), '$outdir/fetch.stamp')
+ end
+end
+
+local function findany(path, pats)
+ for _, pat in pairs(pats) do
+ if path:find(pat) then
+ return true
+ end
+ end
+ return false
+end
+
+local function specmatch(spec, path)
+ if spec.include and not findany(path, spec.include) then
+ return false
+ end
+ if spec.exclude and findany(path, spec.exclude) then
+ return false
+ end
+ return true
+end
+
+local function fs(name, path)
+ for _, spec in ipairs(config.fs) do
+ for specname in iterstrings(spec) do
+ if name == specname then
+ return specmatch(spec, path)
+ end
+ end
+ end
+ return (config.fs.include or config.fs.exclude) and specmatch(config.fs, path)
+end
+
+function file(path, mode, src)
+ if pkg.dir:hasprefix('pkg/') and not fs(pkg.name, path) then
+ return
+ end
+ local out = '$builddir/root.hash/'..path
+ mode = tonumber(mode, 8)
+ local perm = string.format('10%04o %s', mode, path)
+ build('githash', out, {src, '|', 'scripts/hash.rc', '||', '$builddir/root.stamp'}, {
+ args=perm,
+ })
+ table.insert(pkg.inputs.index, out)
+ if mode ~= 420 and mode ~= 493 then -- 0644 and 0755
+ table.insert(pkg.perms, perm)
+ end
+end
+
+function dir(path, mode)
+ if pkg.dir:hasprefix('pkg/') and not fs(pkg.name, path) then
+ return
+ end
+ mode = tonumber(mode, 8)
+ table.insert(pkg.perms, string.format('04%04o %s', mode, path))
+end
+
+function sym(path, target)
+ if pkg.dir:hasprefix('pkg/') and not fs(pkg.name, path) then
+ return
+ end
+ local out = '$builddir/root.hash/'..path
+ build('githash', out, {'|', 'scripts/hash.rc', '||', '$builddir/root.stamp'}, {
+ args=string.format('120000 %s %s', path, target),
+ })
+ table.insert(pkg.inputs.index, out)
+end
+
+function man(srcs, section)
+ for _, src in ipairs(srcs) do
+ if not src:hasprefix('$') then
+ src = '$srcdir/'..src
+ end
+ local i = src:find('/', 1, true)
+ local gz = '$outdir'..src:sub(i)..'.gz'
+ build('gzip', gz, src)
+ local srcsection = section or src:match('[^.]*$')
+ file('share/man/man'..srcsection..'/'..gz:match('[^/]*$'), '644', gz)
+ end
+end
+
+function copy(outdir, srcdir, files)
+ local outs = {}
+ for i, file in ipairs(files) do
+ local out = outdir..'/'..file
+ outs[i] = out
+ build('copy', out, srcdir..'/'..file)
+ end
+ return outs
+end
diff --git a/ninja.rc b/ninja.rc
@@ -1,246 +0,0 @@
-# ninja constructs
-
-fn set {
- var=$1 {
- shift
- printf '%s = %s\n' $var $"*
- }
-}
-
-fn with {
- while(! ~ $#* 0) {
- printf ' %s = %s\n' $1 $2
- shift 2
- }
- status=()
-}
-
-fn subninja {
- file=$1
- if(! ~ $file '$'*)
- file='$dir'/$file
- echo subninja $file
-}
-
-fn include {
- echo include $*
-}
-
-fn rule {
- name=$1 {
- shift
- echo rule $name ; with command $"*
- }
-}
-
-fn build {
- out=$1 rule=$2 src=() {
- shift 2
- for(src) if(~ $src '$srcdir'/*) allsrcs=($allsrcs $src)
- echo build $out: $rule $*
- }
-}
-
-# higher-level rules
-
-fn toolchain {
- set cflags '$'$1^_cflags
- set cxxflags '$'$1^_cxxflags
- set ldflags '$'$1^_ldflags
- include 'toolchain/$'$1'_toolchain.ninja'
-}
-
-fn phony {
- name=$1 {
- shift
- build '$dir'/$name phony $*
- }
-}
-
-fn cflags {
- set cflags '$cflags' $*
-}
-
-fn compile {
- rule=$1 src=$2 obj=$src.o {
- shift 2
- if(! ~ $src '$'*) {
- src='$srcdir'/$src
- obj='$outdir'/$obj
- }
- build $obj $rule $src $*
- }
-}
-
-fn cc {
- compile cc $*
-}
-
-fn link {
- out='$outdir'/$1 objs=() deps=() {
- shift
- for(obj in $*) {
- if(! ~ $obj '$'*) obj='$outdir'/$obj
- switch($obj) {
- case *.d
- deps=($deps $obj)
- case *
- objs=($objs $obj)
- }
- }
- if(! ~ $#deps 0) {
- build $out.rsp awk $deps '|' scripts/rsp.awk ; with expr '-f scripts/rsp.awk'
- objs=($objs '|' $out.rsp)
- }
- build $out link $objs
- if(! ~ $#deps 0)
- with ldlibs @$out.rsp
- status=()
- }
-}
-
-fn ar {
- out='$outdir'/$1 objs=() deps=() {
- shift
- for(obj in $*) {
- if(! ~ $obj '$'*) obj='$outdir'/$obj
- switch($obj) {
- case *.[ad]
- deps=($deps $obj)
- case *
- objs=($objs $obj)
- }
- }
- build $out ar $objs
- build $out.d lines $out $deps
- }
-}
-
-fn objects {
- rule=$1 out=$2 deps=() objs=() {
- shift 2
- if(~ $1 -d) {
- deps=('||' $2)
- shift 2
- }
- for(src) {
- switch($src) {
- case *.[csS] *.cc *.cpp
- compile cc $src $deps
- obj=$src.o
- case *.asm
- compile nasm $src $deps
- obj=$src.o
- case *
- obj=$src
- }
- objs=($objs $obj)
- }
- $rule $out $objs
- }
-}
-
-fn lib {
- objects ar $*
-}
-
-fn exe {
- objects link $*
-}
-
-fn yacc {
- outs='$outdir'/$1.tab.^(c h) {
- build $"outs yacc $2 ; with yaccflags '-d -b '$1
- }
-}
-
-fn waylandproto {
- proto='$srcdir'/$1
- shift
- build '$outdir'/$1 waylandproto $proto ; with type client-header
- build '$outdir'/$2 waylandproto $proto ; with type server-header
- build '$outdir'/$3 waylandproto $proto ; with type code
- cc '$outdir'/$3 '||' pkg/wayland/headers
-}
-
-# packaging rules
-
-fn file {
- ~ $#* 3
- if(~ $dir . src || fs $pkg $1) {
- out='$builddir'/root.hash/$1
- mode=`{printf %4s $3 | tr ' ' 0 | tail -c 4}
- build $out githash $2 '|' scripts/hash.rc '||' '$builddir'/root.stamp ; with\
- args 10$mode' '$1
- index_inputs=($index_inputs $out)
-
- if(! ~ $mode 0755 0644) tree_perms=($tree_perms 10$mode' '$1)
- }
- status=()
-}
-
-fn dir {
- ~ $#* 2
- if(~ $dir . util || fs $pkg $1)
- tree_perms=($tree_perms '040'$2' '$1)
- status=()
-}
-
-fn sym {
- ~ $#* 2
- if(~ $dir . util || fs $pkg $1) {
- out='$builddir/root.hash'/$1
- build $out githash '|' scripts/hash.rc '||' '$builddir'/root.stamp ; with\
- args 120000' '$1' '$2
- index_inputs=($index_inputs $out)
- }
- status=()
-}
-
-fn man {
- srcdir='$srcdir'
- outdir='$outdir'
- if(~ $1 -d) {
- if(~ $2 '$'*) {
- srcdir=$2
- outdir=$2
- }
- if not {
- srcdir='$srcdir'/$2
- outdir='$outdir'/$2
- }
- shift 2
- }
- mandir=share/man
- for(src) {
- if(~ $src [1-9])
- mandir=share/man/man$src
- if not {
- if(~ $src *.gz)
- gz=$srcdir/$src
- if not {
- build $outdir/$src.gz gzip $srcdir/$src
- src=$src.gz
- gz=$outdir/$src
- }
- file $mandir/$src $outdir/$src 644
- }
- }
-}
-
-fn fetch {
- # Use a phony rule and stamp file to prevent ninja from making parent
- # directories.
- build '$outdir'/fetch.stamp fetch$1 '|' '$dir'/rev
- shift
- if(! ~ $#* 0) {
- *=''''$*''''
- with args $"*
- }
- allsrcs=`{printf %s\n $allsrcs | sort -u}
- if(! ~ $#allsrcs 0)
- build $"allsrcs phony '$outdir'/fetch.stamp
- status=()
-}
-
-status=()
diff --git a/pkg/acme-client/gen.lua b/pkg/acme-client/gen.lua
@@ -0,0 +1,33 @@
+cflags{
+ '-D _GNU_SOURCE',
+ '-I pkg/openbsd/include',
+ '-I $builddir/pkg/libressl/include',
+}
+
+pkg.deps = {'pkg/libressl/headers'}
+
+exe('acme-client', {
+ 'acctproc.c',
+ 'base64.c',
+ 'certproc.c',
+ 'chngproc.c',
+ 'dbg.c',
+ 'dnsproc.c',
+ 'fileproc.c',
+ 'http.c',
+ 'jsmn.c',
+ 'json.c',
+ 'keyproc.c',
+ 'main.c',
+ 'netproc.c',
+ 'revokeproc.c',
+ 'rsa.c',
+ 'sandbox-pledge.c',
+ 'util.c',
+ 'util-pledge.c',
+ '$builddir/pkg/libressl/libtls.a.d',
+})
+file('bin/acme-client', '755', '$outdir/acme-client')
+man{'acme-client.1'}
+
+fetch 'git'
diff --git a/pkg/acme-client/gen.rc b/pkg/acme-client/gen.rc
@@ -1,29 +0,0 @@
-cflags\
- -D _GNU_SOURCE\
- -I pkg/openbsd/include\
- -I '$builddir'/pkg/libressl/include
-
-exe acme-client -d pkg/libressl/headers\
- acctproc.c\
- base64.c\
- certproc.c\
- chngproc.c\
- dbg.c\
- dnsproc.c\
- fileproc.c\
- http.c\
- jsmn.c\
- json.c\
- keyproc.c\
- main.c\
- netproc.c\
- revokeproc.c\
- rsa.c\
- sandbox-pledge.c\
- util.c\
- util-pledge.c\
- '$builddir'/pkg/libressl/libtls.a.d
-file bin/acme-client '$outdir'/acme-client 755
-man 1 acme-client.1
-
-fetch git
diff --git a/pkg/adobe-source-fonts/gen.lua b/pkg/adobe-source-fonts/gen.lua
@@ -0,0 +1,50 @@
+local function font(name, styles)
+ for _, style in ipairs(styles) do
+ local path = string.format('share/fonts/%s/%s.otf', name, style)
+ local src = string.format('$srcdir/OTF/%s.otf', style)
+ file(path, '644', src)
+ end
+end
+
+font('source-code-pro', {
+ 'SourceCodePro-Black',
+ 'SourceCodePro-BlackIt',
+ 'SourceCodePro-Bold',
+ 'SourceCodePro-BoldIt',
+ 'SourceCodePro-ExtraLight',
+ 'SourceCodePro-ExtraLightIt',
+ 'SourceCodePro-It',
+ 'SourceCodePro-Light',
+ 'SourceCodePro-LightIt',
+ 'SourceCodePro-Medium',
+ 'SourceCodePro-MediumIt',
+ 'SourceCodePro-Regular',
+ 'SourceCodePro-Semibold',
+ 'SourceCodePro-SemiboldIt',
+})
+
+font('source-sans-pro', {
+ 'SourceSansPro-Black',
+ 'SourceSansPro-BlackIt',
+ 'SourceSansPro-Bold',
+ 'SourceSansPro-BoldIt',
+ 'SourceSansPro-ExtraLight',
+ 'SourceSansPro-ExtraLightIt',
+ 'SourceSansPro-It',
+ 'SourceSansPro-Light',
+ 'SourceSansPro-LightIt',
+ 'SourceSansPro-Regular',
+ 'SourceSansPro-Semibold',
+ 'SourceSansPro-SemiboldIt',
+})
+
+font('source-serif-pro', {
+ 'SourceSerifPro-Black',
+ 'SourceSerifPro-Bold',
+ 'SourceSerifPro-ExtraLight',
+ 'SourceSerifPro-Light',
+ 'SourceSerifPro-Regular',
+ 'SourceSerifPro-Semibold',
+})
+
+fetch 'curl'
diff --git a/pkg/adobe-source-fonts/gen.rc b/pkg/adobe-source-fonts/gen.rc
@@ -1,46 +0,0 @@
-fn fonts {
- fontdir=$1
- shift
- for(font)
- file share/fonts/$fontdir/$font.otf '$srcdir'/OTF/$font.otf 644
-}
-
-fonts source-code-pro\
- SourceCodePro-Black\
- SourceCodePro-BlackIt\
- SourceCodePro-Bold\
- SourceCodePro-BoldIt\
- SourceCodePro-ExtraLight\
- SourceCodePro-ExtraLightIt\
- SourceCodePro-It\
- SourceCodePro-Light\
- SourceCodePro-LightIt\
- SourceCodePro-Medium\
- SourceCodePro-MediumIt\
- SourceCodePro-Regular\
- SourceCodePro-Semibold\
- SourceCodePro-SemiboldIt
-
-fonts source-sans-pro\
- SourceSansPro-Black\
- SourceSansPro-BlackIt\
- SourceSansPro-Bold\
- SourceSansPro-BoldIt\
- SourceSansPro-ExtraLight\
- SourceSansPro-ExtraLightIt\
- SourceSansPro-It\
- SourceSansPro-Light\
- SourceSansPro-LightIt\
- SourceSansPro-Regular\
- SourceSansPro-Semibold\
- SourceSansPro-SemiboldIt
-
-fonts source-serif-pro\
- SourceSerifPro-Black\
- SourceSerifPro-Bold\
- SourceSerifPro-ExtraLight\
- SourceSerifPro-Light\
- SourceSerifPro-Regular\
- SourceSerifPro-Semibold
-
-fetch curl
diff --git a/pkg/alsa-lib/gen.lua b/pkg/alsa-lib/gen.lua
@@ -0,0 +1,165 @@
+cflags{
+ '-I include',
+ '-I $dir',
+ '-I $dir/alsa',
+ '-I $srcdir/include',
+}
+
+pkg.hdrs = {
+ copy('$outdir/include/alsa', '$srcdir/include/alsa', {
+ 'asoundef.h',
+ 'conf.h',
+ 'control.h',
+ 'error.h',
+ 'global.h',
+ 'input.h',
+ 'mixer.h',
+ 'mixer_abst.h',
+ 'output.h',
+ 'pcm.h',
+ 'pcm_external.h',
+ 'pcm_extplug.h',
+ 'pcm_ioplug.h',
+ 'pcm_old.h',
+ 'pcm_plugin.h',
+ 'pcm_rate.h',
+ 'seq.h',
+ 'seq_event.h',
+ 'seq_midi_event.h',
+ 'seqmid.h',
+ 'timer.h',
+ }),
+ copy('$outdir/include/alsa', '$dir/alsa', {'asoundlib.h', 'version.h'}),
+}
+
+cc('src/pcm/pcm.c')
+build('objcopy', '$outdir/src/pcm/pcm.nowarn.c.o', '$outdir/src/pcm/pcm.c.o', {
+ objcopyflags='-R .gnu.warning.snd_pcm_hwsync',
+})
+
+lib('libasound.a', [[src/(
+ conf.c confmisc.c input.c output.c async.c error.c dlmisc.c socket.c shmarea.c userfile.c names.c
+ control/(
+ cards.c tlv.c namehint.c hcontrol.c
+ control.c control_hw.c setup.c ctlparse.c
+ control_symbols.c
+ control_shm.c
+ control_ext.c
+ )
+ mixer/(bag.c mixer.c simple.c simple_none.c)
+ pcm/(
+ mask.c interval.c
+ pcm.nowarn.c.o pcm_params.c pcm_simple.c
+ pcm_hw.c pcm_misc.c pcm_mmap.c pcm_symbols.c
+ pcm_generic.c pcm_plugin.c
+ pcm_copy.c
+ pcm_linear.c
+ pcm_route.c
+ pcm_mulaw.c
+ pcm_alaw.c
+ pcm_adpcm.c
+ pcm_rate.c pcm_rate_linear.c
+ pcm_plug.c
+ pcm_multi.c
+ pcm_shm.c
+ pcm_file.c
+ pcm_null.c
+ pcm_empty.c
+ pcm_share.c
+ pcm_meter.c
+ pcm_hooks.c
+ pcm_lfloat.c
+ pcm_dmix.c
+ pcm_dshare.c
+ pcm_dsnoop.c
+ pcm_direct.c
+ pcm_asym.c
+ pcm_iec958.c
+ pcm_softvol.c
+ pcm_extplug.c
+ pcm_ioplug.c
+ pcm_mmap_emul.c
+ )
+ timer/(
+ timer.c timer_hw.c timer_query.c timer_query_hw.c
+ timer_symbols.c
+ )
+)]])
+
+local conf = [[
+ alsa.conf
+ cards/(
+ aliases.conf
+ AACI.conf
+ ATIIXP.conf
+ ATIIXP-SPDMA.conf
+ ATIIXP-MODEM.conf
+ AU8810.conf
+ AU8820.conf
+ AU8830.conf
+ Audigy.conf
+ Audigy2.conf
+ Aureon51.conf
+ Aureon71.conf
+ CA0106.conf
+ CMI8338.conf
+ CMI8338-SWIEC.conf
+ CMI8738-MC6.conf
+ CMI8738-MC8.conf
+ CMI8788.conf
+ CS46xx.conf
+ Echo_Echo3G.conf
+ EMU10K1.conf
+ EMU10K1X.conf
+ ENS1370.conf
+ ENS1371.conf
+ ES1968.conf
+ FM801.conf
+ FWSpeakers.conf
+ FireWave.conf
+ GUS.conf
+ HDA-Intel.conf
+ HdmiLpeAudio.conf
+ ICE1712.conf
+ ICE1724.conf
+ ICH.conf
+ ICH4.conf
+ ICH-MODEM.conf
+ Loopback.conf
+ Maestro3.conf
+ NFORCE.conf
+ PC-Speaker.conf
+ pistachio-card.conf
+ PMac.conf
+ PMacToonie.conf
+ PS3.conf
+ RME9636.conf
+ RME9652.conf
+ SI7018.conf
+ SB-XFi.conf
+ TRID4DWAVENX.conf
+ USB-Audio.conf
+ YMF744.conf
+ vc4-hdmi.conf
+ VIA686A.conf
+ VIA8233.conf
+ VIA8233A.conf
+ VIA8237.conf
+ VX222.conf
+ VXPocket.conf
+ VXPocket440.conf
+ )
+ pcm/(
+ default.conf front.conf rear.conf center_lfe.conf side.conf
+ surround21.conf surround40.conf surround41.conf
+ surround50.conf surround51.conf
+ surround71.conf iec958.conf hdmi.conf modem.conf
+ dmix.conf dsnoop.conf
+ dpl.conf
+ )
+]]
+for f in iterpaths(conf) do
+ file('share/alsa/'..f, '644', '$srcdir/src/conf/'..f)
+end
+
+fetch 'git'
diff --git a/pkg/alsa-lib/gen.rc b/pkg/alsa-lib/gen.rc
@@ -1,151 +0,0 @@
-cflags\
- -I include\
- -I '$dir' \
- -I '$dir'/alsa\
- -I '$srcdir'/include
-
-hdrs=(\
- asoundef.h\
- global.h input.h output.h error.h\
- conf.h control.h\
- pcm.h pcm_old.h timer.h\
- pcm_plugin.h\
- pcm_rate.h\
- pcm_external.h pcm_extplug.h\
- pcm_ioplug.h\
- mixer.h mixer_abst.h\
- seq_event.h seq.h seqmid.h seq_midi_event.h\
-)
-for(hdr in $hdrs)
- build '$outdir'/include/alsa/$hdr copy '$srcdir'/include/$hdr
-for(hdr in asoundlib.h version.h)
- build '$outdir'/include/alsa/$hdr copy '$dir'/alsa/$hdr
-phony headers '$outdir'/include/alsa/^($hdrs asoundlib.h version.h)
-
-cc src/pcm/pcm.c
-build '$outdir'/src/pcm/pcm.nowarn.c.o objcopy '$outdir'/src/pcm/pcm.c.o ; with\
- objcopyflags '-R .gnu.warning.snd_pcm_hwsync'
-
-lib libasound.a src/^(\
- conf.c confmisc.c input.c output.c async.c error.c dlmisc.c socket.c shmarea.c userfile.c names.c\
- control/^(\
- cards.c tlv.c namehint.c hcontrol.c\
- control.c control_hw.c setup.c ctlparse.c\
- control_symbols.c\
- control_shm.c\
- control_ext.c\
- )\
- mixer/^(bag.c mixer.c simple.c simple_none.c)\
- pcm/^(\
- mask.c interval.c\
- pcm.nowarn.c.o pcm_params.c pcm_simple.c\
- pcm_hw.c pcm_misc.c pcm_mmap.c pcm_symbols.c\
- pcm_generic.c pcm_plugin.c\
- pcm_copy.c\
- pcm_linear.c\
- pcm_route.c\
- pcm_mulaw.c\
- pcm_alaw.c\
- pcm_adpcm.c\
- pcm_rate.c pcm_rate_linear.c\
- pcm_plug.c\
- pcm_multi.c\
- pcm_shm.c\
- pcm_file.c\
- pcm_null.c\
- pcm_empty.c\
- pcm_share.c\
- pcm_meter.c\
- pcm_hooks.c\
- pcm_lfloat.c\
- pcm_dmix.c\
- pcm_dshare.c\
- pcm_dsnoop.c\
- pcm_direct.c\
- pcm_asym.c\
- pcm_iec958.c\
- pcm_softvol.c\
- pcm_extplug.c\
- pcm_ioplug.c\
- pcm_mmap_emul.c\
- )\
- timer/^(\
- timer.c timer_hw.c timer_query.c timer_query_hw.c\
- timer_symbols.c\
- )\
-)
-
-conf=(\
- alsa.conf\
- cards/^(\
- aliases.conf\
- AACI.conf\
- ATIIXP.conf\
- ATIIXP-SPDMA.conf\
- ATIIXP-MODEM.conf\
- AU8810.conf\
- AU8820.conf\
- AU8830.conf\
- Audigy.conf\
- Audigy2.conf\
- Aureon51.conf\
- Aureon71.conf\
- CA0106.conf\
- CMI8338.conf\
- CMI8338-SWIEC.conf\
- CMI8738-MC6.conf\
- CMI8738-MC8.conf\
- CMI8788.conf\
- CS46xx.conf\
- Echo_Echo3G.conf\
- EMU10K1.conf\
- EMU10K1X.conf\
- ENS1370.conf\
- ENS1371.conf\
- ES1968.conf\
- FM801.conf\
- FWSpeakers.conf\
- FireWave.conf\
- GUS.conf\
- HDA-Intel.conf\
- HdmiLpeAudio.conf\
- ICE1712.conf\
- ICE1724.conf\
- ICH.conf\
- ICH4.conf\
- ICH-MODEM.conf\
- Loopback.conf\
- Maestro3.conf\
- NFORCE.conf\
- PC-Speaker.conf\
- pistachio-card.conf\
- PMac.conf\
- PMacToonie.conf\
- PS3.conf\
- RME9636.conf\
- RME9652.conf\
- SI7018.conf\
- SB-XFi.conf\
- TRID4DWAVENX.conf\
- USB-Audio.conf\
- YMF744.conf\
- vc4-hdmi.conf\
- VIA686A.conf\
- VIA8233.conf\
- VIA8233A.conf\
- VIA8237.conf\
- VX222.conf\
- VXPocket.conf\
- VXPocket440.conf\
- )\
- pcm/^(\
- default.conf front.conf rear.conf center_lfe.conf side.conf\
- surround21.conf surround40.conf surround41.conf\
- surround50.conf surround51.conf\
- surround71.conf iec958.conf hdmi.conf modem.conf\
- dmix.conf dsnoop.conf\
- dpl.conf\
- )\
-) for(f in $conf) file share/alsa/$f '$srcdir'/src/conf/$f 644
-
-fetch git
diff --git a/pkg/alsa-utils/gen.lua b/pkg/alsa-utils/gen.lua
@@ -0,0 +1,22 @@
+cflags{
+ '-I include',
+ '-I $dir',
+ '-I $srcdir/include',
+ '-I $builddir/pkg/alsa-lib/include',
+}
+
+pkg.deps = {'pkg/alsa-lib/headers'}
+
+local function x(name, srcs)
+ local out = 'bin/'..name
+ exe(out, {srcs, '$builddir/pkg/alsa-lib/libasound.a'})
+ file(out, '755', '$outdir/'..out)
+ man{name..'/'..name..'.1'}
+end
+
+x('amixer', {'amixer/amixer.c', 'alsamixer/volume_mapping.c'})
+x('aplay', {'aplay/aplay.c'})
+sym('bin/arecord', 'aplay')
+sym('share/man/man1/arecord.1.gz', 'aplay.1.gz')
+
+fetch 'git'
diff --git a/pkg/alsa-utils/gen.rc b/pkg/alsa-utils/gen.rc
@@ -1,21 +0,0 @@
-cflags\
- -I include\
- -I '$dir' \
- -I '$srcdir'/include\
- -I '$builddir'/pkg/alsa-lib/include
-
-fn x {
- name=$1
- shift
- exe bin/$name -d pkg/alsa-lib/headers $*\
- '$builddir'/pkg/alsa-lib/libasound.a
- file bin/$name '$outdir'/bin/$name 755
- man -d $name 1 $name.1
-}
-
-x amixer amixer/amixer.c alsamixer/volume_mapping.c
-x aplay aplay/aplay.c
-sym bin/arecord aplay
-sym share/man/man1/arecord.1.gz aplay.1.gz
-
-fetch git
diff --git a/pkg/awk/gen.lua b/pkg/awk/gen.lua
@@ -0,0 +1,29 @@
+cflags{
+ '-std=c90',
+ '-D _POSIX_C_SOURCE=200809L',
+ '-I $outdir',
+ '-I $srcdir',
+}
+
+yacc('gram', 'awkgram.y')
+build('copy', '$outdir/ytab.h', '$outdir/gram.tab.h')
+
+pkg.deps = {'$outdir/ytab.h'}
+
+sub('tools.ninja', function()
+ toolchain 'host'
+ cflags{'-I $outdir'}
+ exe('maketab', {'maketab.c'})
+end)
+
+rule('maketab', '(cd $outdir && ./maketab) >$out.tmp && mv $out.tmp $out')
+build('maketab', '$outdir/proctab.c', {'|', '$outdir/maketab', '$outdir/ytab.h'})
+
+exe('awk', [[
+ b.c main.c parse.c tran.c lib.c run.c lex.c
+ $outdir/(gram.tab.c proctab.c)
+]])
+file('bin/awk', '755', '$outdir/awk')
+man{'awk.1'}
+
+fetch 'git'
diff --git a/pkg/awk/gen.rc b/pkg/awk/gen.rc
@@ -1,25 +0,0 @@
-cflags\
- '-std=c90' \
- -D '_POSIX_C_SOURCE=200809L' \
- -I '$outdir' \
- -I '$srcdir'
-
-yacc gram '$srcdir'/awkgram.y
-build '$outdir'/ytab.h copy '$outdir'/gram.tab.h
-
-{
- toolchain host
- cflags -I '$outdir'
- exe maketab -d '$outdir'/ytab.h maketab.c
-} >tools.ninja ; subninja tools.ninja
-
-rule maketab '(cd $outdir && ./maketab) >$out.tmp && mv $out.tmp $out'
-build '$outdir'/proctab.c maketab '|' '$outdir'/^(maketab ytab.h)
-
-exe awk -d '$outdir'/ytab.h\
- b.c main.c parse.c tran.c lib.c run.c lex.c\
- '$outdir'/^(gram.tab.c proctab.c)
-file bin/awk '$outdir'/awk 755
-man 1 awk.1
-
-fetch git
diff --git a/pkg/bc/gen.lua b/pkg/bc/gen.lua
@@ -0,0 +1,16 @@
+cflags{
+ '-D HAVE_CONFIG_H',
+ '-I include',
+ '-I $dir',
+ '-I $srcdir/h',
+}
+
+lib('libbc.a', {'lib/number.c'})
+exe('bin/bc', [[
+ bc/(main.c bc.c scan.c execute.c load.c storage.c util.c global.c warranty.c)
+ libbc.a
+]])
+file('bin/bc', '755', '$outdir/bin/bc')
+man{'doc/bc.1'}
+
+fetch 'curl'
diff --git a/pkg/bc/gen.rc b/pkg/bc/gen.rc
@@ -1,12 +0,0 @@
-cflags\
- -D HAVE_CONFIG_H\
- -I include\
- -I '$dir' \
- -I '$srcdir'/h
-
-lib libbc.a lib/number.c
-exe bin/bc bc/^(main.c bc.c scan.c execute.c load.c storage.c util.c global.c warranty.c) libbc.a
-file bin/bc '$outdir'/bin/bc 755
-man -d doc 1 bc.1
-
-fetch curl
diff --git a/pkg/bearssl/gen.lua b/pkg/bearssl/gen.lua
@@ -0,0 +1,276 @@
+cflags{
+ '-Wall',
+ '-I $srcdir/src',
+ '-I $srcdir/inc',
+}
+
+pkg.hdrs = copy('$outdir/include', '$srcdir/inc', {
+ 'bearssl.h',
+ 'bearssl_aead.h',
+ 'bearssl_block.h',
+ 'bearssl_ec.h',
+ 'bearssl_hash.h',
+ 'bearssl_hmac.h',
+ 'bearssl_pem.h',
+ 'bearssl_prf.h',
+ 'bearssl_rand.h',
+ 'bearssl_rsa.h',
+ 'bearssl_ssl.h',
+ 'bearssl_x509.h',
+})
+pkg.hdrs.install = true
+
+lib('libbearssl.a', [[src/(
+ aead/gcm.c
+ codec/ccopy.c
+ codec/dec16be.c
+ codec/dec16le.c
+ codec/dec32be.c
+ codec/dec32le.c
+ codec/dec64be.c
+ codec/dec64le.c
+ codec/enc16be.c
+ codec/enc16le.c
+ codec/enc32be.c
+ codec/enc32le.c
+ codec/enc64be.c
+ codec/enc64le.c
+ codec/pemdec.c
+ ec/ec_all_m15.c
+ ec/ec_all_m31.c
+ ec/ec_c25519_i15.c
+ ec/ec_c25519_i31.c
+ ec/ec_c25519_m15.c
+ ec/ec_c25519_m31.c
+ ec/ec_curve25519.c
+ ec/ec_default.c
+ ec/ec_p256_m15.c
+ ec/ec_p256_m31.c
+ ec/ec_prime_i15.c
+ ec/ec_prime_i31.c
+ ec/ec_secp256r1.c
+ ec/ec_secp384r1.c
+ ec/ec_secp521r1.c
+ ec/ecdsa_atr.c
+ ec/ecdsa_default_sign_asn1.c
+ ec/ecdsa_default_sign_raw.c
+ ec/ecdsa_default_vrfy_asn1.c
+ ec/ecdsa_default_vrfy_raw.c
+ ec/ecdsa_i15_bits.c
+ ec/ecdsa_i15_sign_asn1.c
+ ec/ecdsa_i15_sign_raw.c
+ ec/ecdsa_i15_vrfy_asn1.c
+ ec/ecdsa_i15_vrfy_raw.c
+ ec/ecdsa_i31_bits.c
+ ec/ecdsa_i31_sign_asn1.c
+ ec/ecdsa_i31_sign_raw.c
+ ec/ecdsa_i31_vrfy_asn1.c
+ ec/ecdsa_i31_vrfy_raw.c
+ ec/ecdsa_rta.c
+ hash/dig_oid.c
+ hash/dig_size.c
+ hash/ghash_ctmul.c
+ hash/ghash_ctmul32.c
+ hash/ghash_ctmul64.c
+ hash/ghash_pclmul.c
+ hash/ghash_pwr8.c
+ hash/md5.c
+ hash/md5sha1.c
+ hash/multihash.c
+ hash/sha1.c
+ hash/sha2big.c
+ hash/sha2small.c
+ int/i15_add.c
+ int/i15_bitlen.c
+ int/i15_decmod.c
+ int/i15_decode.c
+ int/i15_decred.c
+ int/i15_encode.c
+ int/i15_fmont.c
+ int/i15_iszero.c
+ int/i15_modpow.c
+ int/i15_modpow2.c
+ int/i15_montmul.c
+ int/i15_mulacc.c
+ int/i15_muladd.c
+ int/i15_ninv15.c
+ int/i15_reduce.c
+ int/i15_rshift.c
+ int/i15_sub.c
+ int/i15_tmont.c
+ int/i31_add.c
+ int/i31_bitlen.c
+ int/i31_decmod.c
+ int/i31_decode.c
+ int/i31_decred.c
+ int/i31_encode.c
+ int/i31_fmont.c
+ int/i31_iszero.c
+ int/i31_modpow.c
+ int/i31_modpow2.c
+ int/i31_montmul.c
+ int/i31_mulacc.c
+ int/i31_muladd.c
+ int/i31_ninv31.c
+ int/i31_reduce.c
+ int/i31_rshift.c
+ int/i31_sub.c
+ int/i31_tmont.c
+ int/i32_add.c
+ int/i32_bitlen.c
+ int/i32_decmod.c
+ int/i32_decode.c
+ int/i32_decred.c
+ int/i32_div32.c
+ int/i32_encode.c
+ int/i32_fmont.c
+ int/i32_iszero.c
+ int/i32_modpow.c
+ int/i32_montmul.c
+ int/i32_mulacc.c
+ int/i32_muladd.c
+ int/i32_ninv32.c
+ int/i32_reduce.c
+ int/i32_sub.c
+ int/i32_tmont.c
+ int/i62_modpow2.c
+ mac/hmac.c
+ mac/hmac_ct.c
+ rand/hmac_drbg.c
+ rsa/rsa_default_pkcs1_sign.c
+ rsa/rsa_default_pkcs1_vrfy.c
+ rsa/rsa_default_priv.c
+ rsa/rsa_default_pub.c
+ rsa/rsa_i15_pkcs1_sign.c
+ rsa/rsa_i15_pkcs1_vrfy.c
+ rsa/rsa_i15_priv.c
+ rsa/rsa_i15_pub.c
+ rsa/rsa_i31_pkcs1_sign.c
+ rsa/rsa_i31_pkcs1_vrfy.c
+ rsa/rsa_i31_priv.c
+ rsa/rsa_i31_pub.c
+ rsa/rsa_i32_pkcs1_sign.c
+ rsa/rsa_i32_pkcs1_vrfy.c
+ rsa/rsa_i32_priv.c
+ rsa/rsa_i32_pub.c
+ rsa/rsa_i62_pkcs1_sign.c
+ rsa/rsa_i62_pkcs1_vrfy.c
+ rsa/rsa_i62_priv.c
+ rsa/rsa_i62_pub.c
+ rsa/rsa_pkcs1_sig_pad.c
+ rsa/rsa_pkcs1_sig_unpad.c
+ rsa/rsa_ssl_decrypt.c
+ ssl/prf.c
+ ssl/prf_md5sha1.c
+ ssl/prf_sha256.c
+ ssl/prf_sha384.c
+ ssl/ssl_ccert_single_ec.c
+ ssl/ssl_ccert_single_rsa.c
+ ssl/ssl_client.c
+ ssl/ssl_client_default_rsapub.c
+ ssl/ssl_client_full.c
+ ssl/ssl_engine.c
+ ssl/ssl_engine_default_aescbc.c
+ ssl/ssl_engine_default_aesgcm.c
+ ssl/ssl_engine_default_chapol.c
+ ssl/ssl_engine_default_descbc.c
+ ssl/ssl_engine_default_ec.c
+ ssl/ssl_engine_default_ecdsa.c
+ ssl/ssl_engine_default_rsavrfy.c
+ ssl/ssl_hashes.c
+ ssl/ssl_hs_client.c
+ ssl/ssl_hs_server.c
+ ssl/ssl_io.c
+ ssl/ssl_keyexport.c
+ ssl/ssl_lru.c
+ ssl/ssl_rec_cbc.c
+ ssl/ssl_rec_chapol.c
+ ssl/ssl_rec_gcm.c
+ ssl/ssl_scert_single_ec.c
+ ssl/ssl_scert_single_rsa.c
+ ssl/ssl_server.c
+ ssl/ssl_server_full_ec.c
+ ssl/ssl_server_full_rsa.c
+ ssl/ssl_server_mine2c.c
+ ssl/ssl_server_mine2g.c
+ ssl/ssl_server_minf2c.c
+ ssl/ssl_server_minf2g.c
+ ssl/ssl_server_minr2g.c
+ ssl/ssl_server_minu2g.c
+ ssl/ssl_server_minv2g.c
+ symcipher/aes_big_cbcdec.c
+ symcipher/aes_big_cbcenc.c
+ symcipher/aes_big_ctr.c
+ symcipher/aes_big_dec.c
+ symcipher/aes_big_enc.c
+ symcipher/aes_common.c
+ symcipher/aes_ct.c
+ symcipher/aes_ct64.c
+ symcipher/aes_ct64_cbcdec.c
+ symcipher/aes_ct64_cbcenc.c
+ symcipher/aes_ct64_ctr.c
+ symcipher/aes_ct64_dec.c
+ symcipher/aes_ct64_enc.c
+ symcipher/aes_ct_cbcdec.c
+ symcipher/aes_ct_cbcenc.c
+ symcipher/aes_ct_ctr.c
+ symcipher/aes_ct_dec.c
+ symcipher/aes_ct_enc.c
+ symcipher/aes_pwr8.c
+ symcipher/aes_pwr8_cbcdec.c
+ symcipher/aes_pwr8_cbcenc.c
+ symcipher/aes_pwr8_ctr.c
+ symcipher/aes_small_cbcdec.c
+ symcipher/aes_small_cbcenc.c
+ symcipher/aes_small_ctr.c
+ symcipher/aes_small_dec.c
+ symcipher/aes_small_enc.c
+ symcipher/aes_x86ni.c
+ symcipher/aes_x86ni_cbcdec.c
+ symcipher/aes_x86ni_cbcenc.c
+ symcipher/aes_x86ni_ctr.c
+ symcipher/chacha20_ct.c
+ symcipher/chacha20_sse2.c
+ symcipher/des_ct.c
+ symcipher/des_ct_cbcdec.c
+ symcipher/des_ct_cbcenc.c
+ symcipher/des_support.c
+ symcipher/des_tab.c
+ symcipher/des_tab_cbcdec.c
+ symcipher/des_tab_cbcenc.c
+ symcipher/poly1305_ctmul.c
+ symcipher/poly1305_ctmul32.c
+ symcipher/poly1305_ctmulq.c
+ symcipher/poly1305_i15.c
+ x509/skey_decoder.c
+ x509/x509_decoder.c
+ x509/x509_knownkey.c
+ x509/x509_minimal.c
+ x509/x509_minimal_full.c
+)]])
+file('lib/libbearssl.a', '644', '$outdir/libbearssl.a')
+
+exe('brssl', [[
+ tools/(
+ brssl.c
+ certs.c
+ chain.c
+ client.c
+ errors.c
+ files.c
+ keys.c
+ names.c
+ server.c
+ skey.c
+ sslio.c
+ ta.c
+ twrch.c
+ vector.c
+ verify.c
+ xmem.c
+ )
+ libbearssl.a
+]])
+file('bin/brssl', '755', '$outdir/brssl')
+
+fetch 'git'
diff --git a/pkg/bearssl/gen.rc b/pkg/bearssl/gen.rc
@@ -1,273 +0,0 @@
-cflags\
- -Wall\
- -I '$srcdir'/src\
- -I '$srcdir'/inc
-
-hdrs=(\
- bearssl.h\
- bearssl_aead.h\
- bearssl_block.h\
- bearssl_ec.h\
- bearssl_hash.h\
- bearssl_hmac.h\
- bearssl_pem.h\
- bearssl_prf.h\
- bearssl_rand.h\
- bearssl_rsa.h\
- bearssl_ssl.h\
- bearssl_x509.h\
-)
-for(hdr in $hdrs)
- file include/$hdr '$srcdir'/inc/$hdr 644
-
-lib libbearssl.a src/^(\
- aead/gcm.c\
- codec/ccopy.c\
- codec/dec16be.c\
- codec/dec16le.c\
- codec/dec32be.c\
- codec/dec32le.c\
- codec/dec64be.c\
- codec/dec64le.c\
- codec/enc16be.c\
- codec/enc16le.c\
- codec/enc32be.c\
- codec/enc32le.c\
- codec/enc64be.c\
- codec/enc64le.c\
- codec/pemdec.c\
- ec/ec_all_m15.c\
- ec/ec_all_m31.c\
- ec/ec_c25519_i15.c\
- ec/ec_c25519_i31.c\
- ec/ec_c25519_m15.c\
- ec/ec_c25519_m31.c\
- ec/ec_curve25519.c\
- ec/ec_default.c\
- ec/ec_p256_m15.c\
- ec/ec_p256_m31.c\
- ec/ec_prime_i15.c\
- ec/ec_prime_i31.c\
- ec/ec_secp256r1.c\
- ec/ec_secp384r1.c\
- ec/ec_secp521r1.c\
- ec/ecdsa_atr.c\
- ec/ecdsa_default_sign_asn1.c\
- ec/ecdsa_default_sign_raw.c\
- ec/ecdsa_default_vrfy_asn1.c\
- ec/ecdsa_default_vrfy_raw.c\
- ec/ecdsa_i15_bits.c\
- ec/ecdsa_i15_sign_asn1.c\
- ec/ecdsa_i15_sign_raw.c\
- ec/ecdsa_i15_vrfy_asn1.c\
- ec/ecdsa_i15_vrfy_raw.c\
- ec/ecdsa_i31_bits.c\
- ec/ecdsa_i31_sign_asn1.c\
- ec/ecdsa_i31_sign_raw.c\
- ec/ecdsa_i31_vrfy_asn1.c\
- ec/ecdsa_i31_vrfy_raw.c\
- ec/ecdsa_rta.c\
- hash/dig_oid.c\
- hash/dig_size.c\
- hash/ghash_ctmul.c\
- hash/ghash_ctmul32.c\
- hash/ghash_ctmul64.c\
- hash/ghash_pclmul.c\
- hash/ghash_pwr8.c\
- hash/md5.c\
- hash/md5sha1.c\
- hash/multihash.c\
- hash/sha1.c\
- hash/sha2big.c\
- hash/sha2small.c\
- int/i15_add.c\
- int/i15_bitlen.c\
- int/i15_decmod.c\
- int/i15_decode.c\
- int/i15_decred.c\
- int/i15_encode.c\
- int/i15_fmont.c\
- int/i15_iszero.c\
- int/i15_modpow.c\
- int/i15_modpow2.c\
- int/i15_montmul.c\
- int/i15_mulacc.c\
- int/i15_muladd.c\
- int/i15_ninv15.c\
- int/i15_reduce.c\
- int/i15_rshift.c\
- int/i15_sub.c\
- int/i15_tmont.c\
- int/i31_add.c\
- int/i31_bitlen.c\
- int/i31_decmod.c\
- int/i31_decode.c\
- int/i31_decred.c\
- int/i31_encode.c\
- int/i31_fmont.c\
- int/i31_iszero.c\
- int/i31_modpow.c\
- int/i31_modpow2.c\
- int/i31_montmul.c\
- int/i31_mulacc.c\
- int/i31_muladd.c\
- int/i31_ninv31.c\
- int/i31_reduce.c\
- int/i31_rshift.c\
- int/i31_sub.c\
- int/i31_tmont.c\
- int/i32_add.c\
- int/i32_bitlen.c\
- int/i32_decmod.c\
- int/i32_decode.c\
- int/i32_decred.c\
- int/i32_div32.c\
- int/i32_encode.c\
- int/i32_fmont.c\
- int/i32_iszero.c\
- int/i32_modpow.c\
- int/i32_montmul.c\
- int/i32_mulacc.c\
- int/i32_muladd.c\
- int/i32_ninv32.c\
- int/i32_reduce.c\
- int/i32_sub.c\
- int/i32_tmont.c\
- int/i62_modpow2.c\
- mac/hmac.c\
- mac/hmac_ct.c\
- rand/hmac_drbg.c\
- rsa/rsa_default_pkcs1_sign.c\
- rsa/rsa_default_pkcs1_vrfy.c\
- rsa/rsa_default_priv.c\
- rsa/rsa_default_pub.c\
- rsa/rsa_i15_pkcs1_sign.c\
- rsa/rsa_i15_pkcs1_vrfy.c\
- rsa/rsa_i15_priv.c\
- rsa/rsa_i15_pub.c\
- rsa/rsa_i31_pkcs1_sign.c\
- rsa/rsa_i31_pkcs1_vrfy.c\
- rsa/rsa_i31_priv.c\
- rsa/rsa_i31_pub.c\
- rsa/rsa_i32_pkcs1_sign.c\
- rsa/rsa_i32_pkcs1_vrfy.c\
- rsa/rsa_i32_priv.c\
- rsa/rsa_i32_pub.c\
- rsa/rsa_i62_pkcs1_sign.c\
- rsa/rsa_i62_pkcs1_vrfy.c\
- rsa/rsa_i62_priv.c\
- rsa/rsa_i62_pub.c\
- rsa/rsa_pkcs1_sig_pad.c\
- rsa/rsa_pkcs1_sig_unpad.c\
- rsa/rsa_ssl_decrypt.c\
- ssl/prf.c\
- ssl/prf_md5sha1.c\
- ssl/prf_sha256.c\
- ssl/prf_sha384.c\
- ssl/ssl_ccert_single_ec.c\
- ssl/ssl_ccert_single_rsa.c\
- ssl/ssl_client.c\
- ssl/ssl_client_default_rsapub.c\
- ssl/ssl_client_full.c\
- ssl/ssl_engine.c\
- ssl/ssl_engine_default_aescbc.c\
- ssl/ssl_engine_default_aesgcm.c\
- ssl/ssl_engine_default_chapol.c\
- ssl/ssl_engine_default_descbc.c\
- ssl/ssl_engine_default_ec.c\
- ssl/ssl_engine_default_ecdsa.c\
- ssl/ssl_engine_default_rsavrfy.c\
- ssl/ssl_hashes.c\
- ssl/ssl_hs_client.c\
- ssl/ssl_hs_server.c\
- ssl/ssl_io.c\
- ssl/ssl_keyexport.c\
- ssl/ssl_lru.c\
- ssl/ssl_rec_cbc.c\
- ssl/ssl_rec_chapol.c\
- ssl/ssl_rec_gcm.c\
- ssl/ssl_scert_single_ec.c\
- ssl/ssl_scert_single_rsa.c\
- ssl/ssl_server.c\
- ssl/ssl_server_full_ec.c\
- ssl/ssl_server_full_rsa.c\
- ssl/ssl_server_mine2c.c\
- ssl/ssl_server_mine2g.c\
- ssl/ssl_server_minf2c.c\
- ssl/ssl_server_minf2g.c\
- ssl/ssl_server_minr2g.c\
- ssl/ssl_server_minu2g.c\
- ssl/ssl_server_minv2g.c\
- symcipher/aes_big_cbcdec.c\
- symcipher/aes_big_cbcenc.c\
- symcipher/aes_big_ctr.c\
- symcipher/aes_big_dec.c\
- symcipher/aes_big_enc.c\
- symcipher/aes_common.c\
- symcipher/aes_ct.c\
- symcipher/aes_ct64.c\
- symcipher/aes_ct64_cbcdec.c\
- symcipher/aes_ct64_cbcenc.c\
- symcipher/aes_ct64_ctr.c\
- symcipher/aes_ct64_dec.c\
- symcipher/aes_ct64_enc.c\
- symcipher/aes_ct_cbcdec.c\
- symcipher/aes_ct_cbcenc.c\
- symcipher/aes_ct_ctr.c\
- symcipher/aes_ct_dec.c\
- symcipher/aes_ct_enc.c\
- symcipher/aes_pwr8.c\
- symcipher/aes_pwr8_cbcdec.c\
- symcipher/aes_pwr8_cbcenc.c\
- symcipher/aes_pwr8_ctr.c\
- symcipher/aes_small_cbcdec.c\
- symcipher/aes_small_cbcenc.c\
- symcipher/aes_small_ctr.c\
- symcipher/aes_small_dec.c\
- symcipher/aes_small_enc.c\
- symcipher/aes_x86ni.c\
- symcipher/aes_x86ni_cbcdec.c\
- symcipher/aes_x86ni_cbcenc.c\
- symcipher/aes_x86ni_ctr.c\
- symcipher/chacha20_ct.c\
- symcipher/chacha20_sse2.c\
- symcipher/des_ct.c\
- symcipher/des_ct_cbcdec.c\
- symcipher/des_ct_cbcenc.c\
- symcipher/des_support.c\
- symcipher/des_tab.c\
- symcipher/des_tab_cbcdec.c\
- symcipher/des_tab_cbcenc.c\
- symcipher/poly1305_ctmul.c\
- symcipher/poly1305_ctmul32.c\
- symcipher/poly1305_ctmulq.c\
- symcipher/poly1305_i15.c\
- x509/skey_decoder.c\
- x509/x509_decoder.c\
- x509/x509_knownkey.c\
- x509/x509_minimal.c\
- x509/x509_minimal_full.c\
-)
-file lib/libbearssl.a '$outdir'/libbearssl.a 644
-
-exe brssl tools/^(\
- brssl.c\
- certs.c\
- chain.c\
- client.c\
- errors.c\
- files.c\
- keys.c\
- names.c\
- server.c\
- skey.c\
- sslio.c\
- ta.c\
- twrch.c\
- vector.c\
- verify.c\
- xmem.c\
-) libbearssl.a
-file bin/brssl '$outdir'/brssl 755
-
-fetch git
diff --git a/pkg/blind/gen.lua b/pkg/blind/gen.lua
@@ -0,0 +1,64 @@
+cflags{
+ '-std=c99', '-Wall', '-pedantic',
+ '-D _DEFAULT_SOURCE',
+ '-D HAVE_PRCTL',
+ '-D HAVE_EPOLL',
+}
+
+local cmds = {
+ 'blind-arithm',
+ 'blind-colour-ciexyz',
+ 'blind-colour-srgb',
+ 'blind-compress',
+ 'blind-concat',
+ 'blind-crop',
+ 'blind-cut',
+ 'blind-decompress',
+ 'blind-dissolve',
+ 'blind-extend',
+ 'blind-flip',
+ 'blind-flop',
+ 'blind-from-image',
+ 'blind-from-text',
+ 'blind-from-video',
+ 'blind-gauss-blur',
+ 'blind-invert-luma',
+ 'blind-next-frame',
+ 'blind-read-head',
+ 'blind-repeat',
+ 'blind-reverse',
+ 'blind-rewrite-head',
+ 'blind-set-alpha',
+ 'blind-set-luma',
+ 'blind-set-saturation',
+ 'blind-single-colour',
+ 'blind-skip-pattern',
+ 'blind-split',
+ 'blind-stack',
+ 'blind-time-blur',
+ 'blind-to-image',
+ 'blind-to-text',
+ 'blind-to-video',
+ 'blind-translate',
+ 'blind-transpose',
+ 'blind-write-head',
+}
+local scripts = {
+ 'blind-rotate-90',
+ 'blind-rotate-180',
+ 'blind-rotate-270',
+}
+
+lib('libutil.a', {'src/util.c', 'src/stream.c'})
+
+for _, cmd in ipairs(cmds) do
+ exe(cmd, {'src/'..cmd..'.c', 'libutil.a'})
+ file('bin/'..cmd, '755', '$outdir/'..cmd)
+end
+for _, script in ipairs(scripts) do
+ file('bin/'..script, '755', '$srcdir/'..script)
+end
+
+man(expand{'man/', {expand{{cmds, scripts}, '.1'}, 'blind.7'}})
+
+fetch 'git'
diff --git a/pkg/blind/gen.rc b/pkg/blind/gen.rc
@@ -1,65 +0,0 @@
-cflags\
- '-std=c99' -Wall -pedantic\
- -D _DEFAULT_SOURCE\
- -D HAVE_PRCTL\
- -D HAVE_EPOLL
-
-exes=(\
- blind-arithm\
- blind-colour-ciexyz\
- blind-colour-srgb\
- blind-compress\
- blind-concat\
- blind-crop\
- blind-cut\
- blind-decompress\
- blind-dissolve\
- blind-extend\
- blind-flip\
- blind-flop\
- blind-from-image\
- blind-from-text\
- blind-from-video\
- blind-gauss-blur\
- blind-invert-luma\
- blind-next-frame\
- blind-read-head\
- blind-repeat\
- blind-reverse\
- blind-rewrite-head\
- blind-set-alpha\
- blind-set-luma\
- blind-set-saturation\
- blind-single-colour\
- blind-skip-pattern\
- blind-split\
- blind-stack\
- blind-time-blur\
- blind-to-image\
- blind-to-text\
- blind-to-video\
- blind-translate\
- blind-transpose\
- blind-write-head\
-)
-scripts=(\
- blind-rotate-90\
- blind-rotate-180\
- blind-rotate-270\
-)
-
-lib libutil.a src/^(util.c stream.c)
-
-for(exe in $exes) {
- exe $exe src/$exe.c libutil.a
- file bin/$exe '$outdir'/$exe 755
-}
-for(script in $scripts) {
- file bin/$script '$srcdir'/$script 755
-}
-
-man -d man\
- 1 ($exes $scripts)^.1\
- 7 blind.7
-
-fetch git
diff --git a/pkg/bzip2/gen.lua b/pkg/bzip2/gen.lua
@@ -0,0 +1,18 @@
+cflags{'-Wall', '-Winline'}
+
+lib('libbz2.a', {
+ 'blocksort.c',
+ 'huffman.c',
+ 'crctable.c',
+ 'randtable.c',
+ 'compress.c',
+ 'decompress.c',
+ 'bzlib.c'
+})
+exe('bzip2', {'bzip2.c', 'libbz2.a'})
+
+file('bin/bzip2', '755', '$outdir/bzip2')
+man{'bzip2.1'}
+sym('bin/bzcat', 'bzip2')
+
+fetch 'curl'
diff --git a/pkg/bzip2/gen.rc b/pkg/bzip2/gen.rc
@@ -1,10 +0,0 @@
-cflags -Wall -Winline
-
-lib libbz2.a blocksort.c huffman.c crctable.c randtable.c compress.c decompress.c bzlib.c
-exe bzip2 bzip2.c libbz2.a
-
-file bin/bzip2 '$outdir'/bzip2 755
-man 1 bzip2.1
-sym bin/bzcat bzip2
-
-fetch curl
diff --git a/pkg/curl/gen.lua b/pkg/curl/gen.lua
@@ -0,0 +1,122 @@
+cflags{
+ '-D HAVE_CONFIG_H',
+ '-I include',
+ '-I $dir',
+ '-I $outdir/include/curl',
+ '-I $outdir/include',
+ '-I $srcdir/lib',
+ '-I $srcdir/src',
+ '-I $builddir/pkg/libressl/include',
+ '-I $builddir/pkg/zlib/include',
+}
+
+pkg.hdrs = copy('$outdir/include/curl', '$srcdir/include/curl', {
+ 'curl.h',
+ 'curlver.h',
+ 'easy.h',
+ 'mprintf.h',
+ 'stdcheaders.h',
+ 'multi.h',
+ 'typecheck-gcc.h',
+ 'system.h',
+})
+pkg.deps = {
+ '$dir/headers',
+ 'pkg/libressl/headers',
+ 'pkg/zlib/headers',
+}
+
+-- src/lib/Makefile.inc:/^CSOURCES
+lib('libcurl.a', [[
+ lib/(
+ file.c timeval.c base64.c hostip.c progress.c formdata.c
+ cookie.c http.c sendf.c ftp.c url.c dict.c if2ip.c speedcheck.c
+ ldap.c version.c getenv.c escape.c mprintf.c telnet.c netrc.c
+ getinfo.c transfer.c strcase.c easy.c security.c curl_fnmatch.c
+ fileinfo.c ftplistparser.c wildcard.c krb5.c memdebug.c http_chunks.c
+ strtok.c connect.c llist.c hash.c multi.c content_encoding.c share.c
+ http_digest.c md4.c md5.c http_negotiate.c inet_pton.c strtoofft.c
+ strerror.c amigaos.c hostasyn.c hostip4.c hostip6.c hostsyn.c
+ inet_ntop.c parsedate.c select.c tftp.c splay.c strdup.c socks.c
+ ssh.c curl_addrinfo.c socks_gssapi.c socks_sspi.c
+ curl_sspi.c slist.c nonblock.c curl_memrchr.c imap.c pop3.c smtp.c
+ pingpong.c rtsp.c curl_threads.c warnless.c hmac.c curl_rtmp.c
+ openldap.c curl_gethostname.c gopher.c idn_win32.c
+ http_proxy.c non-ascii.c asyn-ares.c asyn-thread.c curl_gssapi.c
+ http_ntlm.c curl_ntlm_wb.c curl_ntlm_core.c curl_sasl.c rand.c
+ curl_multibyte.c hostcheck.c conncache.c pipeline.c dotdot.c
+ x509asn1.c http2.c smb.c curl_endian.c curl_des.c system_win32.c
+ vauth/(
+ vauth.c cleartext.c cram.c
+ digest.c digest_sspi.c krb5_gssapi.c
+ krb5_sspi.c ntlm.c ntlm_sspi.c oauth2.c
+ spnego_gssapi.c spnego_sspi.c
+ )
+ vtls/(
+ openssl.c gtls.c vtls.c nss.c
+ polarssl.c polarssl_threadlock.c axtls.c
+ cyassl.c schannel.c darwinssl.c gskit.c
+ mbedtls.c
+ )
+ )
+ $builddir/pkg/(
+ libressl/libssl.a.d
+ libressl/libcrypto.a.d
+ zlib/libz.a
+ )
+]])
+
+build('cc', '$outdir/tool_hugehelp.c.o', {
+ '$dir/tool_hugehelp.c', '||', '$dir/deps', '$srcdir/src/tool_hugehelp.h',
+})
+
+-- src/src/Makefile.inc:/^CURL_CFILES
+exe('curl', [[
+ src/(
+ slist_wc.c
+ tool_binmode.c
+ tool_bname.c
+ tool_cb_dbg.c
+ tool_cb_hdr.c
+ tool_cb_prg.c
+ tool_cb_rea.c
+ tool_cb_see.c
+ tool_cb_wrt.c
+ tool_cfgable.c
+ tool_convert.c
+ tool_dirhie.c
+ tool_doswin.c
+ tool_easysrc.c
+ tool_formparse.c
+ tool_getparam.c
+ tool_getpass.c
+ tool_help.c
+ tool_helpers.c
+ tool_homedir.c
+ tool_libinfo.c
+ tool_main.c
+ tool_metalink.c
+ tool_mfiles.c
+ tool_msgs.c
+ tool_operate.c
+ tool_operhlp.c
+ tool_panykey.c
+ tool_paramhlp.c
+ tool_parsecfg.c
+ tool_strdup.c
+ tool_setopt.c
+ tool_sleep.c
+ tool_urlglob.c
+ tool_util.c
+ tool_vms.c
+ tool_writeout.c
+ tool_xattr.c
+ )
+ tool_hugehelp.c.o
+ libcurl.a.d
+]])
+
+file('bin/curl', '755', '$outdir/curl')
+man{'docs/curl.1'}
+
+fetch 'curl'
diff --git a/pkg/curl/gen.rc b/pkg/curl/gen.rc
@@ -1,107 +0,0 @@
-cflags\
- -D HAVE_CONFIG_H\
- -I include\
- -I '$dir' \
- -I '$outdir'/include/curl\
- -I '$outdir'/include\
- -I '$srcdir'/lib\
- -I '$srcdir'/src\
- -I '$builddir'/pkg/libressl/include\
- -I '$builddir'/pkg/zlib/include
-
-hdrs=include/curl/^(\
- curl.h curlver.h easy.h mprintf.h stdcheaders.h multi.h\
- typecheck-gcc.h system.h\
-)
-for(hdr in $hdrs) build '$outdir'/$hdr copy '$srcdir'/$hdr
-phony headers '$outdir'/$hdrs
-
-phony deps '$dir'/headers pkg/^(libressl zlib)^/headers
-
-# src/lib/Makefile.inc:/^CSOURCES
-lib libcurl.a -d '$dir'/deps lib/^(\
- file.c timeval.c base64.c hostip.c progress.c formdata.c\
- cookie.c http.c sendf.c ftp.c url.c dict.c if2ip.c speedcheck.c\
- ldap.c version.c getenv.c escape.c mprintf.c telnet.c netrc.c\
- getinfo.c transfer.c strcase.c easy.c security.c curl_fnmatch.c\
- fileinfo.c ftplistparser.c wildcard.c krb5.c memdebug.c http_chunks.c\
- strtok.c connect.c llist.c hash.c multi.c content_encoding.c share.c\
- http_digest.c md4.c md5.c http_negotiate.c inet_pton.c strtoofft.c\
- strerror.c amigaos.c hostasyn.c hostip4.c hostip6.c hostsyn.c\
- inet_ntop.c parsedate.c select.c tftp.c splay.c strdup.c socks.c\
- ssh.c curl_addrinfo.c socks_gssapi.c socks_sspi.c\
- curl_sspi.c slist.c nonblock.c curl_memrchr.c imap.c pop3.c smtp.c\
- pingpong.c rtsp.c curl_threads.c warnless.c hmac.c curl_rtmp.c\
- openldap.c curl_gethostname.c gopher.c idn_win32.c\
- http_proxy.c non-ascii.c asyn-ares.c asyn-thread.c curl_gssapi.c\
- http_ntlm.c curl_ntlm_wb.c curl_ntlm_core.c curl_sasl.c rand.c\
- curl_multibyte.c hostcheck.c conncache.c pipeline.c dotdot.c\
- x509asn1.c http2.c smb.c curl_endian.c curl_des.c system_win32.c\
- vauth/^(\
- vauth.c cleartext.c cram.c\
- digest.c digest_sspi.c krb5_gssapi.c\
- krb5_sspi.c ntlm.c ntlm_sspi.c oauth2.c\
- spnego_gssapi.c spnego_sspi.c\
- )\
- vtls/^(\
- openssl.c gtls.c vtls.c nss.c\
- polarssl.c polarssl_threadlock.c axtls.c\
- cyassl.c schannel.c darwinssl.c gskit.c\
- mbedtls.c\
- )\
-) '$builddir'/pkg/^(\
- libressl/^(libssl.a.d libcrypto.a.d)\
- zlib/libz.a\
-)
-
-build '$outdir'/tool_hugehelp.c.o cc '$dir'/tool_hugehelp.c '||' '$dir'/deps '$srcdir'/src/tool_hugehelp.h
-
-# src/src/Makefile.inc:/^CURL_CFILES
-exe curl -d '$dir'/deps\
- src/^(\
- slist_wc.c\
- tool_binmode.c\
- tool_bname.c\
- tool_cb_dbg.c\
- tool_cb_hdr.c\
- tool_cb_prg.c\
- tool_cb_rea.c\
- tool_cb_see.c\
- tool_cb_wrt.c\
- tool_cfgable.c\
- tool_convert.c\
- tool_dirhie.c\
- tool_doswin.c\
- tool_easysrc.c\
- tool_formparse.c\
- tool_getparam.c\
- tool_getpass.c\
- tool_help.c\
- tool_helpers.c\
- tool_homedir.c\
- tool_libinfo.c\
- tool_main.c\
- tool_metalink.c\
- tool_mfiles.c\
- tool_msgs.c\
- tool_operate.c\
- tool_operhlp.c\
- tool_panykey.c\
- tool_paramhlp.c\
- tool_parsecfg.c\
- tool_strdup.c\
- tool_setopt.c\
- tool_sleep.c\
- tool_urlglob.c\
- tool_util.c\
- tool_vms.c\
- tool_writeout.c\
- tool_xattr.c\
- )\
- tool_hugehelp.c.o\
- libcurl.a.d
-
-file bin/curl '$outdir'/curl 755
-man -d docs 1 curl.1
-
-fetch curl
diff --git a/pkg/discount/gen.lua b/pkg/discount/gen.lua
@@ -0,0 +1,40 @@
+cflags{
+ '-Wno-return-type', '-Wno-implicit-int',
+ '-I $dir',
+ '-I $srcdir',
+ '-I $outdir',
+}
+
+sub('tools.ninja', function()
+ toolchain 'host'
+ cflags{'-Wno-implicit-int', '-I $outdir'}
+ exe('mktags', {'mktags.c'})
+end)
+
+rule('mktags', '$outdir/mktags >$out.tmp && mv $out.tmp $out')
+build('mktags', '$outdir/blocktags', {'|', '$outdir/mktags'})
+
+build('awk', '$outdir/version.c', '$srcdir/VERSION', {
+ expr=[['{printf "char markdown_version[] = \"%s\";\n", $$0}']],
+})
+build('sed', '$outdir/mkdio.h', '$srcdir/mkdio.h.in', {
+ expr={
+ '-e \'4i#include <stdint.h>\'',
+ '-e s,@DWORD@,uint32_t,',
+ },
+})
+
+pkg.deps = {'$outdir/blocktags', '$outdir/mkdio.h'}
+
+lib('libmarkdown.a', [[
+ mkdio.c markdown.c dumptree.c generate.c
+ resource.c docheader.c $outdir/version.c toc.c css.c
+ xml.c Csio.c xmlpage.c basename.c emmatch.c
+ github_flavoured.c setup.c tags.c html5.c flags.c
+]])
+
+exe('markdown', {'main.c', 'pgm_options.c', 'libmarkdown.a'})
+file('bin/markdown', '755', '$outdir/markdown')
+man{'markdown.1', 'markdown.7'}
+
+fetch 'git'
diff --git a/pkg/discount/gen.rc b/pkg/discount/gen.rc
@@ -1,35 +0,0 @@
-cflags\
- -Wno-return-type -Wno-implicit-int\
- -I '$dir' \
- -I '$srcdir' \
- -I '$outdir'
-
-{
- toolchain host
- cflags -Wno-implicit-int -I '$outdir'
- exe mktags mktags.c
-} >tools.ninja ; subninja '$dir'/tools.ninja
-
-rule mktags '$outdir/mktags >$out.tmp && mv $out.tmp $out'
-build '$outdir'/blocktags mktags '|' '$outdir'/mktags
-
-build '$outdir'/version.c awk '$srcdir'/VERSION ; with\
- expr '''{printf "char markdown_version[] = \"%s\";\n", $$0}'''
-build '$outdir'/mkdio.h sed '$srcdir'/mkdio.h.in ; exprs=(\
- -e '''4i#include <stdint.h>''' \
- -e s,@DWORD@,uint32_t,\
-) with expr $"exprs
-
-phony deps '$outdir'/^(blocktags mkdio.h)
-
-lib libmarkdown.a -d '$dir'/deps\
- mkdio.c markdown.c dumptree.c generate.c\
- resource.c docheader.c '$outdir'/version.c toc.c css.c\
- xml.c Csio.c xmlpage.c basename.c emmatch.c\
- github_flavoured.c setup.c tags.c html5.c flags.c
-
-exe markdown -d '$dir'/deps main.c pgm_options.c libmarkdown.a
-file bin/markdown '$outdir'/markdown 755
-man 1 markdown.1 7 markdown.7
-
-fetch git
diff --git a/pkg/dmenu/gen.lua b/pkg/dmenu/gen.lua
@@ -0,0 +1,41 @@
+cflags{
+ [[-D 'VERSION="4.6"']],
+ '-I $dir',
+ '-I pkg/fontconfig/src',
+ '-I pkg/libxkbcommon/src',
+ '-I $builddir/pkg/pixman/include',
+ '-I $builddir/pkg/swc/include',
+ '-I $builddir/pkg/wayland/include',
+ '-I $builddir/pkg/wld/include',
+}
+
+pkg.deps = {
+ '$builddir/pkg/fontconfig/fetch.stamp',
+ '$builddir/pkg/libxkbcommon/fetch.stamp',
+ 'pkg/pixman/headers',
+ 'pkg/swc/headers',
+ 'pkg/wayland/headers',
+ 'pkg/wld/headers',
+}
+
+exe('dmenu', [[
+ dmenu.c drw.c util.c
+ $builddir/pkg/(
+ swc/swc-protocol.c.o
+ libxkbcommon/libxkbcommon.a
+ wld/libwld.a.d
+ fontconfig/libfontconfig.a.d
+ wayland/libwayland-client.a.d
+ )
+]])
+file('bin/dmenu', '755', '$outdir/dmenu')
+man{'dmenu.1'}
+
+exe('stest', {'stest.c'})
+file('bin/stest', '755', '$outdir/stest')
+man{'stest.1'}
+
+file('bin/dmenu_path', '755', '$srcdir/dmenu_path')
+file('bin/dmenu_run', '755', '$srcdir/dmenu_run')
+
+fetch 'git'
diff --git a/pkg/dmenu/gen.rc b/pkg/dmenu/gen.rc
@@ -1,32 +0,0 @@
-cflags\
- -D 'VERSION=''"4.6"''' \
- -I '$dir' \
- -I pkg/fontconfig/src\
- -I pkg/libxkbcommon/src\
- -I '$builddir'/pkg/pixman/include\
- -I '$builddir'/pkg/swc/include\
- -I '$builddir'/pkg/wayland/include\
- -I '$builddir'/pkg/wld/include
-
-phony deps\
- '$builddir'/pkg/^(fontconfig libxkbcommon)^/fetch.stamp\
- pkg/^(pixman swc wayland wld)^/headers
-
-exe dmenu -d '$dir'/deps dmenu.c drw.c util.c '$builddir'/pkg/^(\
- swc/swc-protocol.c.o\
- libxkbcommon/libxkbcommon.a\
- wld/libwld.a.d\
- fontconfig/libfontconfig.a.d\
- wayland/libwayland-client.a.d\
-)
-file bin/dmenu '$outdir'/dmenu 755
-man 1 dmenu.1
-
-exe stest stest.c
-file bin/stest '$outdir'/stest 755
-man 1 stest.1
-
-for(f in dmenu_path dmenu_run)
- file bin/$f '$srcdir'/$f 755
-
-fetch git
diff --git a/pkg/dosfstools/gen.lua b/pkg/dosfstools/gen.lua
@@ -0,0 +1,23 @@
+set('version', '4.1')
+cflags{
+ '-include $dir/config.h',
+ '-I include',
+ '-I $dir',
+ '-I $srcdir/src/blkdev',
+}
+
+exe('mkfs.fat', [[src/(mkfs.fat.c device_info.c blkdev/(blkdev.c linux_version.c))]])
+file('bin/mkfs.fat', '755', '$outdir/mkfs.fat')
+
+exe('fsck.fat', [[src/(fsck.fat.c boot.c check.c common.c fat.c file.c io.c lfn.c charconv.c)]])
+file('bin/fsck.fat', '755', '$outdir/fsck.fat')
+
+for _, src in ipairs{'fsck.fat.8', 'mkfs.fat.8'} do
+ local out = '$outdir/'..src
+ build('sed', out, '$srcdir/manpages/'..src..'.in', {
+ expr='s,@PACKAGE_VERSION@,$version,',
+ })
+ man{out}
+end
+
+fetch 'git'
diff --git a/pkg/dosfstools/gen.rc b/pkg/dosfstools/gen.rc
@@ -1,21 +0,0 @@
-version=4.1
-cflags\
- -include '$dir'/config.h\
- -I include\
- -I '$dir' \
- -I '$srcdir'/src/blkdev
-
-exe mkfs.fat src/^(mkfs.fat.c device_info.c blkdev/^(blkdev.c linux_version.c))
-file bin/mkfs.fat '$outdir'/mkfs.fat 755
-
-exe fsck.fat src/^(fsck.fat.c boot.c check.c common.c fat.c file.c io.c lfn.c charconv.c)
-file bin/fsck.fat '$outdir'/fsck.fat 755
-
-mans=(fsck.fat.8 mkfs.fat.8)
-for(man in $mans) {
- build '$outdir'/$man sed '$srcdir'/manpages/$man.in ; with\
- expr s,@PACKAGE_VERSION@,$version,
-}
-man -d '$outdir' 8 $mans
-
-fetch git
diff --git a/pkg/e2fsprogs/gen.lua b/pkg/e2fsprogs/gen.lua
@@ -0,0 +1,226 @@
+set('version', '1.43.6')
+cflags{
+ '-D HAVE_CONFIG_H',
+ '-I include',
+ '-I $dir',
+ '-I $outdir/include',
+ '-I $outdir/internal',
+ '-I $outdir/internal/support',
+ '-I $srcdir/lib',
+}
+
+set('subst', {
+ '-e s,@E2FSPROGS_VERSION@,$version,',
+ '-e s,@E2FSPROGS_MONTH@,June,',
+ '-e s,@E2FSPROGS_YEAR@,2016,',
+ '-e s,@JDEV@,,',
+})
+
+local function et(file, src, hdr)
+ src = '$outdir/'..src
+ hdr = '$outdir/'..hdr
+ build('awk', src, {file, '|', '$srcdir/lib/et/et_c.awk'}, {
+ expr='-f $srcdir/lib/et/et_c.awk -v outfile=/dev/stdout outfn='..src:match('[^/]*$'),
+ })
+ build('awk', hdr, {file, '|', '$srcdir/lib/et/et_h.awk'}, {
+ expr='-f $srcdir/lib/et/et_h.awk -v outfile=/dev/stdout outfn='..hdr:match('[^/]*$'),
+ })
+end
+
+local function subst(output, input)
+ output = '$outdir/'..output
+ build('sed', output, '$srcdir/'..input, {expr='$subst'})
+ return output
+end
+
+local function substman(files)
+ for _, file in ipairs(files) do
+ if file:hassuffix('.in') then
+ file = subst(file:sub(1, -4), file)
+ end
+ man{file}
+ end
+end
+
+subst('ext2_err.et', 'lib/ext2fs/ext2_err.et.in')
+et('$outdir/ext2_err.et', 'ext2_err.c', 'include/ext2fs/ext2_err.h')
+et('$srcdir/lib/support/prof_err.et', 'prof_err.c', 'internal/support/prof_err.h')
+
+build('copy', '$outdir/include/blkid/blkid.h', '$srcdir/lib/blkid/blkid.h.in')
+build('copy', '$outdir/include/ext2fs/ext2_types.h', '$dir/ext2_types.h')
+build('copy', '$outdir/include/uuid/uuid.h', '$srcdir/lib/uuid/uuid.h.in')
+build('copy', '$outdir/internal/blkid/blkid_types.h', '$dir/blkid_types.h')
+
+sub('tools.ninja', function()
+ toolchain 'host'
+ exe('gen_crc32ctable', {'lib/ext2fs/gen_crc32ctable.c'})
+end)
+rule('gen_crc32ctable', '$outdir/gen_crc32ctable >$out.tmp && mv $out.tmp $out')
+build('gen_crc32ctable', '$outdir/internal/crc32c_table.h', {'|', '$outdir/gen_crc32ctable'})
+
+pkg.hdrs = {
+ '$outdir/include/blkid/blkid.h',
+ '$outdir/include/ext2fs/ext2_err.h',
+ '$outdir/include/ext2fs/ext2_types.h',
+ '$outdir/include/uuid/uuid.h',
+}
+pkg.deps = {
+ '$dir/headers',
+ '$outdir/internal/blkid/blkid_types.h',
+ '$outdir/internal/support/prof_err.h',
+ '$outdir/internal/crc32c_table.h',
+}
+
+lib('libcomm_err.a', [[lib/et/(error_message.c et_name.c init_et.c com_err.c com_right.c)]])
+lib('libblkid.a', [[lib/blkid/(
+ cache.c dev.c devname.c devno.c getsize.c llseek.c probe.c
+ read.c resolve.c save.c tag.c version.c
+)]])
+lib('libe2p.a', [[lib/e2p/(
+ feature.c fgetflags.c fsetflags.c fgetversion.c fsetversion.c
+ getflags.c getversion.c hashstr.c iod.c ls.c ljs.c mntopts.c
+ parse_num.c pe.c pf.c ps.c setflags.c setversion.c uuid.c
+ ostype.c percent.c crypto_mode.c fgetproject.c fsetproject.c
+)]])
+lib('libext2fs.a', [[$outdir/ext2_err.c lib/ext2fs/(
+ alloc.c
+ alloc_sb.c
+ alloc_stats.c
+ alloc_tables.c
+ atexit.c
+ badblocks.c
+ bb_inode.c
+ bitmaps.c
+ bitops.c
+ blkmap64_ba.c
+ blkmap64_rb.c
+ blknum.c
+ block.c
+ bmap.c
+ check_desc.c
+ closefs.c
+ crc16.c
+ crc32c.c
+ csum.c
+ dblist.c
+ dblist_dir.c
+ dirblock.c
+ dirhash.c
+ dir_iterate.c
+ expanddir.c
+ ext_attr.c
+ extent.c
+ fallocate.c
+ fileio.c
+ finddev.c
+ flushb.c
+ freefs.c
+ gen_bitmap.c
+ gen_bitmap64.c
+ get_num_dirs.c
+ get_pathname.c
+ getsize.c
+ getsectsize.c
+ i_block.c
+ icount.c
+ ind_block.c
+ initialize.c
+ inline.c
+ inline_data.c
+ inode.c
+ io_manager.c
+ ismounted.c
+ link.c
+ llseek.c
+ lookup.c
+ mkdir.c
+ mkjournal.c
+ mmp.c
+ namei.c
+ native.c
+ newdir.c
+ openfs.c
+ progress.c
+ punch.c
+ qcow2.c
+ read_bb.c
+ read_bb_file.c
+ res_gdt.c
+ rw_bitmaps.c
+ sha512.c
+ swapfs.c
+ symlink.c
+ undo_io.c
+ unix_io.c
+ unlink.c
+ valid_blk.c
+ version.c
+ rbtree.c
+
+ dupfs.c
+)]])
+lib('libsupport.a', [[$outdir/prof_err.c lib/support/(
+ cstring.c
+ mkquota.c
+ plausible.c
+ profile.c
+ parse_qtype.c
+ profile_helpers.c
+ quotaio.c
+ quotaio_v2.c
+ quotaio_tree.c
+ dict.c
+)]])
+lib('libuuid.a', [[lib/uuid/(
+ clear.c
+ compare.c
+ copy.c
+ gen_uuid.c
+ isnull.c
+ pack.c
+ parse.c
+ unpack.c
+ unparse.c
+ uuid_time.c
+)]])
+
+exe('bin/e2fsck', [[
+ e2fsck/(
+ unix.c e2fsck.c super.c pass1.c pass1b.c pass2.c
+ pass3.c pass4.c pass5.c journal.c badblocks.c util.c dirinfo.c
+ dx_dirinfo.c ehandler.c problem.c message.c quota.c recovery.c
+ region.c revoke.c ea_refcount.c rehash.c
+ logfile.c sigcatcher.c readahead.c
+ extents.c
+ )
+ libsupport.a libext2fs.a libe2p.a libblkid.a libuuid.a libcomm_err.a
+]])
+file('bin/e2fsck', '755', '$outdir/bin/e2fsck')
+substman{'e2fsck/e2fsck.8.in', 'e2fsck/e2fsck.conf.5.in'}
+
+exe('bin/resize2fs', [[
+ resize/(
+ extent.c resize2fs.c main.c online.c resource_track.c
+ sim_progress.c
+ )
+ libext2fs.a libe2p.a libcomm_err.a
+]])
+file('bin/resize2fs', '755', '$outdir/bin/resize2fs')
+substman{'resize/resize2fs.8.in'}
+
+build('awk', '$outdir/default_profile.c', {'$srcdir/misc/mke2fs.conf.in', '|', '$srcdir/misc/profile-to-c.awk'}, {
+ expr='-f $srcdir/misc/profile-to-c.awk',
+})
+
+exe('bin/mke2fs', [[
+ misc/(
+ mke2fs.c util.c mk_hugefiles.c
+ create_inode.c
+ )
+ $outdir/default_profile.c
+ libsupport.a libext2fs.a libe2p.a libblkid.a libuuid.a libcomm_err.a
+]])
+file('bin/mke2fs', '755', '$outdir/bin/mke2fs')
+substman{'misc/mke2fs.8.in'}
+
+fetch 'git'
diff --git a/pkg/e2fsprogs/gen.rc b/pkg/e2fsprogs/gen.rc
@@ -1,207 +0,0 @@
-version=1.43.6
-cflags\
- -D HAVE_CONFIG_H\
- -I include\
- -I '$dir' \
- -I '$outdir'/include\
- -I '$outdir'/internal\
- -I '$outdir'/internal/support\
- -I '$srcdir'/lib
-
-set subst\
- -e s,@E2FSPROGS_VERSION@,$version,\
- -e s,@E2FSPROGS_MONTH@,June,\
- -e s,@E2FSPROGS_YEAR@,2016,\
- -e s,@JDEV@,,
-
-fn et {
- et=$1 src='$outdir'/$2 hdr='$outdir'/$3
- build $src awk $et '|' '$srcdir'/lib/et/et_c.awk ; with\
- expr '-f $srcdir/lib/et/et_c.awk -v outfile=/dev/stdout outfn='`{basename $src}
- build $hdr awk $et '|' '$srcdir'/lib/et/et_h.awk ; with\
- expr '-f $srcdir/lib/et/et_h.awk -v outfile=/dev/stdout outfn='`{basename $hdr}
-}
-
-fn subst {
- build '$outdir'/$1 sed '$srcdir'/$2 ; with expr '$subst'
-}
-
-fn substman {
- subdir=$1
- sec=$3
- src=$2.$sec
- subst $subdir/$src $subdir/$src.in
- man -d '$outdir'/$subdir $sec $src
-}
-
-subst ext2_err.et lib/ext2fs/ext2_err.et.in
-et '$outdir'/ext2_err.et ext2_err.c include/ext2fs/ext2_err.h
-et '$srcdir'/lib/support/prof_err.et prof_err.c internal/support/prof_err.h
-
-build '$outdir'/include/blkid/blkid.h copy '$srcdir'/lib/blkid/blkid.h.in
-build '$outdir'/include/ext2fs/ext2_types.h copy '$dir'/ext2_types.h
-build '$outdir'/include/uuid/uuid.h copy '$srcdir'/lib/uuid/uuid.h.in
-build '$outdir'/internal/blkid/blkid_types.h copy '$dir'/blkid_types.h
-
-{
- toolchain host
- exe gen_crc32ctable lib/ext2fs/gen_crc32ctable.c
-} >tools.ninja ; subninja tools.ninja
-rule gen_crc32ctable '$outdir/gen_crc32ctable >$out.tmp && mv $out.tmp $out'
-build '$outdir'/internal/crc32c_table.h gen_crc32ctable '|' '$outdir'/gen_crc32ctable
-
-phony headers '$outdir'/include/^(\
- blkid/blkid.h\
- ext2fs/^(ext2_err.h ext2_types.h)\
- uuid/uuid.h\
-)
-phony deps '$dir'/headers '$outdir'/internal/^(\
- blkid/blkid_types.h support/prof_err.h crc32c_table.h\
-)
-
-lib libcomm_err.a -d '$dir'/deps\
- lib/et/^(error_message.c et_name.c init_et.c com_err.c com_right.c)
-lib libblkid.a -d '$dir'/deps lib/blkid/^(\
- cache.c dev.c devname.c devno.c getsize.c llseek.c probe.c\
- read.c resolve.c save.c tag.c version.c\
-)
-lib libe2p.a -d '$dir'/deps lib/e2p/^(\
- feature.c fgetflags.c fsetflags.c fgetversion.c fsetversion.c\
- getflags.c getversion.c hashstr.c iod.c ls.c ljs.c mntopts.c\
- parse_num.c pe.c pf.c ps.c setflags.c setversion.c uuid.c\
- ostype.c percent.c crypto_mode.c fgetproject.c fsetproject.c\
-)
-lib libext2fs.a -d '$dir'/deps '$outdir'/ext2_err.c lib/ext2fs/^(\
- alloc.c\
- alloc_sb.c\
- alloc_stats.c\
- alloc_tables.c\
- atexit.c\
- badblocks.c\
- bb_inode.c\
- bitmaps.c\
- bitops.c\
- blkmap64_ba.c\
- blkmap64_rb.c\
- blknum.c\
- block.c\
- bmap.c\
- check_desc.c\
- closefs.c\
- crc16.c\
- crc32c.c\
- csum.c\
- dblist.c\
- dblist_dir.c\
- dirblock.c\
- dirhash.c\
- dir_iterate.c\
- expanddir.c\
- ext_attr.c\
- extent.c\
- fallocate.c\
- fileio.c\
- finddev.c\
- flushb.c\
- freefs.c\
- gen_bitmap.c\
- gen_bitmap64.c\
- get_num_dirs.c\
- get_pathname.c\
- getsize.c\
- getsectsize.c\
- i_block.c\
- icount.c\
- ind_block.c\
- initialize.c\
- inline.c\
- inline_data.c\
- inode.c\
- io_manager.c\
- ismounted.c\
- link.c\
- llseek.c\
- lookup.c\
- mkdir.c\
- mkjournal.c\
- mmp.c\
- namei.c\
- native.c\
- newdir.c\
- openfs.c\
- progress.c\
- punch.c\
- qcow2.c\
- read_bb.c\
- read_bb_file.c\
- res_gdt.c\
- rw_bitmaps.c\
- sha512.c\
- swapfs.c\
- symlink.c\
- undo_io.c\
- unix_io.c\
- unlink.c\
- valid_blk.c\
- version.c\
- rbtree.c\
- \
- dupfs.c\
-)
-lib libsupport.a -d '$dir'/deps '$outdir'/prof_err.c lib/support/^(\
- cstring.c\
- mkquota.c\
- plausible.c\
- profile.c\
- parse_qtype.c\
- profile_helpers.c\
- quotaio.c\
- quotaio_v2.c\
- quotaio_tree.c\
- dict.c\
-)
-lib libuuid.a -d '$dir'/deps lib/uuid/^(\
- clear.c\
- compare.c\
- copy.c\
- gen_uuid.c\
- isnull.c\
- pack.c\
- parse.c\
- unpack.c\
- unparse.c\
- uuid_time.c\
-)
-
-libs=(libsupport.a libext2fs.a libe2p.a libblkid.a libuuid.a libcomm_err.a)
-
-exe bin/e2fsck -d '$dir'/headers e2fsck/^(\
- unix.c e2fsck.c super.c pass1.c pass1b.c pass2.c\
- pass3.c pass4.c pass5.c journal.c badblocks.c util.c dirinfo.c\
- dx_dirinfo.c ehandler.c problem.c message.c quota.c recovery.c\
- region.c revoke.c ea_refcount.c rehash.c\
- logfile.c sigcatcher.c readahead.c\
- extents.c\
-) $libs
-file bin/e2fsck '$outdir'/bin/e2fsck 755
-substman e2fsck e2fsck 8
-substman e2fsck e2fsck.conf 5
-
-exe bin/resize2fs -d '$dir'/headers resize/^(\
- extent.c resize2fs.c main.c online.c resource_track.c\
- sim_progress.c\
-) $libs
-file bin/resize2fs '$outdir'/bin/resize2fs 755
-substman resize resize2fs 8
-
-build '$outdir'/default_profile.c awk '$srcdir'/misc/mke2fs.conf.in '|' '$srcdir'/misc/profile-to-c.awk ; with\
- expr '-f $srcdir/misc/profile-to-c.awk'
-
-exe bin/mke2fs -d '$dir'/headers misc/^(\
- mke2fs.c util.c mk_hugefiles.c\
- create_inode.c\
-) '$outdir'/default_profile.c $libs
-file bin/mke2fs '$outdir'/bin/mke2fs 755
-substman misc mke2fs 8
-
-fetch git
diff --git a/pkg/efibootmgr/gen.lua b/pkg/efibootmgr/gen.lua
@@ -0,0 +1,15 @@
+cflags{
+ [[-D 'EFIBOOTMGR_VERSION="14"']],
+ [[-D 'DEFAULT_LOADER="/linux"']],
+ '-I $srcdir/src/include',
+ '-I $builddir/pkg/efivar/include',
+}
+
+exe('efibootmgr', [[
+ src/(efibootmgr.c efi.c unparse_path.c)
+ $builddir/pkg/efivar/(libefiboot.a libefivar.a)
+]], {'pkg/efivar/headers'})
+file('bin/efibootmgr', '755', '$outdir/efibootmgr')
+man{'src/efibootmgr.8'}
+
+fetch 'git'
diff --git a/pkg/efibootmgr/gen.rc b/pkg/efibootmgr/gen.rc
@@ -1,13 +0,0 @@
-cflags\
- -D 'EFIBOOTMGR_VERSION=''"14"''' \
- -D 'DEFAULT_LOADER=''"/linux"''' \
- -I '$srcdir'/src/include\
- -I '$builddir'/pkg/efivar/include
-
-exe efibootmgr -d pkg/efivar/headers\
- src/^(efibootmgr.c efi.c unparse_path.c)\
- '$builddir'/pkg/efivar/^(libefiboot.a libefivar.a)
-file bin/efibootmgr '$outdir'/efibootmgr 755
-man -d src 8 efibootmgr.8
-
-fetch git
diff --git a/pkg/efivar/gen.lua 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
@@ -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
diff --git a/pkg/expat/gen.lua b/pkg/expat/gen.lua
@@ -0,0 +1,18 @@
+cflags{
+ '-D HAVE_EXPAT_CONFIG_H',
+ '-I include',
+ '-I $dir',
+ '-I pkg/openbsd/include',
+}
+
+lib('libexpat.a', [[
+ expat/lib/(loadlibrary.c xmlparse.c xmltok.c xmlrole.c)
+ $builddir/pkg/openbsd/libbsd.a.d
+]])
+
+pkg.hdrs = copy('$outdir/include', '$srcdir/expat/lib', {
+ 'expat.h',
+ 'expat_external.h',
+})
+
+fetch 'git'
diff --git a/pkg/expat/gen.rc b/pkg/expat/gen.rc
@@ -1,14 +0,0 @@
-cflags\
- -D HAVE_EXPAT_CONFIG_H\
- -I include\
- -I '$dir' \
- -I pkg/openbsd/include
-
-lib libexpat.a expat/lib/^(loadlibrary.c xmlparse.c xmltok.c xmlrole.c)\
- '$builddir'/pkg/openbsd/libbsd.a.d
-
-hdrs=(expat.h expat_external.h)
-for(hdr in $hdrs) build '$outdir'/include/$hdr copy '$srcdir'/expat/lib/$hdr
-phony headers '$outdir'/include/$hdrs
-
-fetch git
diff --git a/pkg/farbfeld/gen.lua b/pkg/farbfeld/gen.lua
@@ -0,0 +1,23 @@
+cflags{
+ '-std=c99', '-pedantic', '-Wall', '-Wextra',
+ '-D _DEFAULT_SOURCE',
+ '-I $builddir/pkg/libjpeg-turbo/include',
+ '-I $builddir/pkg/libpng/include',
+}
+
+cc('util.c')
+
+exe('png2ff', {'png2ff.c', 'util.c.o', '$builddir/pkg/libpng/libpng.a.d'}, {'pkg/libpng/headers'})
+exe('ff2png', {'ff2png.c', 'util.c.o', '$builddir/pkg/libpng/libpng.a.d'}, {'pkg/libpng/headers'})
+exe('jpg2ff', {'jpg2ff.c', 'util.c.o', '$builddir/pkg/libjpeg-turbo/libjpeg-turbo.a'}, {'pkg/libjpeg-turbo/headers'})
+exe('ff2jpg', {'ff2jpg.c', 'util.c.o', '$builddir/pkg/libjpeg-turbo/libjpeg-turbo.a'}, {'pkg/libjpeg-turbo/headers'})
+exe('ff2pam', {'ff2pam.c', 'util.c.o'})
+exe('ff2ppm', {'ff2ppm.c', 'util.c.o'})
+
+for _, cmd in ipairs{'png2ff', 'ff2png', 'jpg2ff', 'ff2jpg', 'ff2pam', 'ff2ppm'} do
+ file('bin/'..cmd, '755', '$outdir/'..cmd)
+ man{cmd..'.1'}
+end
+man{'farbfeld.5'}
+
+fetch 'git'
diff --git a/pkg/farbfeld/gen.rc b/pkg/farbfeld/gen.rc
@@ -1,25 +0,0 @@
-cflags\
- '-std=c99' -pedantic -Wall -Wextra\
- -D _DEFAULT_SOURCE \
- -I '$builddir'/pkg/libjpeg-turbo/include\
- -I '$builddir'/pkg/libpng/include
-
-cc util.c
-
-exe png2ff -d pkg/libpng/headers png2ff.c util.c.o\
- '$builddir'/pkg/libpng/libpng.a.d
-exe ff2png -d pkg/libpng/headers ff2png.c util.c.o\
- '$builddir'/pkg/libpng/libpng.a.d
-exe jpg2ff -d pkg/libjpeg-turbo/headers jpg2ff.c util.c.o\
- '$builddir'/pkg/libjpeg-turbo/libjpeg-turbo.a
-exe ff2jpg -d pkg/libjpeg-turbo/headers ff2jpg.c util.c.o\
- '$builddir'/pkg/libjpeg-turbo/libjpeg-turbo.a
-exe ff2pam ff2pam.c util.c.o
-exe ff2ppm ff2ppm.c util.c.o
-
-exes=(png2ff ff2png jpg2ff ff2jpg ff2pam ff2ppm)
-for(exe in $exes)
- file bin/$exe '$outdir'/$exe 755
-man 1 $exes.1 5 farbfeld.5
-
-fetch git
diff --git a/pkg/ffmpeg/gen.lua b/pkg/ffmpeg/gen.lua
@@ -0,0 +1,342 @@
+local arch = 'x86'
+
+cflags{
+ '-Wno-deprecated-declarations',
+ '-Wno-discarded-qualifiers',
+ '-D HAVE_AV_CONFIG_H',
+ '-I $dir',
+ '-I $outdir/include',
+ '-I $outdir/internal',
+ '-I $srcdir',
+ '-I $builddir/pkg/alsa-lib/include',
+ '-I $builddir/pkg/libressl/include',
+}
+
+set('nasmflags', {
+ '-i $srcdir/',
+ '-i $srcdir/libavutil/'..arch..'/',
+ '-f elf64',
+ '-P $outdir/config.asm',
+})
+
+build('awk', '$outdir/config.asm', '$dir/options.h', {
+ expr=[['{print "%define " substr($$0, length("#define ") + 1)}']],
+})
+build('awk', '$outdir/internal/libavcodec/bsf_list.c', {'$dir/options.h', '|', '$dir/bitstream_filters.awk'}, {
+ expr='-f $dir/bitstream_filters.awk',
+})
+build('awk', '$outdir/internal/libavformat/protocol_list.c', {'$dir/options.h', '|', '$dir/protocols.awk'}, {
+ expr='-f $dir/protocols.awk',
+})
+build('awk', '$outdir/include/libavutil/avconfig.h', {'$dir/options.h', '|', '$dir/protocols.awk'}, {
+ expr='-f $dir/avconfig.awk',
+})
+
+rule('ffversion', 'sh $srcdir/version.sh $srcdir $out')
+build('ffversion', '$outdir/include/libavutil/ffversion.h', {'|', '$srcdir/version.sh'})
+
+-- TODO: Copy the rest of the headers.
+pkg.hdrs = {
+ '$outdir/include/libavutil/avconfig.h',
+ '$outdir/include/libavutil/ffversion.h',
+}
+pkg.deps = {
+ '$outdir/config.asm',
+ '$dir/headers',
+ 'pkg/libressl/headers',
+ 'pkg/alsa-lib/headers',
+}
+
+local options = {}
+for line in io.lines(pkg.dir..'/options.h') do
+ local cfg, val = line:match('^#define ([^ ]+) ([^ ]+)')
+ if cfg then
+ options[cfg] = val == '1'
+ end
+end
+local sources = {
+ libavcodec={},
+ libavdevice={},
+ libavfilter={},
+ libavformat={},
+ libavutil={},
+ libswresample={},
+ libswscale={},
+}
+for line in io.lines(pkg.dir..'/sources.txt') do
+ local i = line:find(' ', 1, true)
+ local cfg = line:sub(1, i and i - 1)
+ if options[cfg] then
+ while i do
+ local j = line:find(' ', i + 1)
+ local src = line:sub(i + 1, j and j - 1)
+ i = j
+ j = src:find('/', 1, true)
+ if not j then
+ error('source path has no directory part: '..src)
+ end
+ local k = src:find('/', j + 1, true)
+ if not k or src:sub(j + 1, k - 1) == arch then
+ sources[src:sub(1, j - 1)][src] = true
+ end
+ end
+ end
+end
+for lib, srcs in pairs(sources) do
+ sources[lib] = table.keys(srcs)
+end
+table.insert(pkg.inputs.gen, {
+ '$dir/sources.txt',
+ '$dir/options.h',
+})
+
+cc('libavcodec/bitstream_filters.c', {'$outdir/internal/libavcodec/bsf_list.c'})
+lib('libavcodec.a', {
+ expand{'libavcodec/', {
+ 'allcodecs.c',
+ 'audioconvert.c',
+ 'avdct.c',
+ 'avpacket.c',
+ 'avpicture.c',
+ 'bitstream.c',
+ 'bitstream_filter.c',
+ 'bitstream_filters.c.o',
+ 'bsf.c',
+ 'codec_desc.c',
+ 'd3d11va.c',
+ 'dirac.c',
+ 'dv_profile.c',
+ 'imgconvert.c',
+ 'jni.c',
+ 'mathtables.c',
+ 'mediacodec.c',
+ 'mpeg12framerate.c',
+ 'options.c',
+ 'mjpegenc_huffman.c',
+ 'parser.c',
+ 'profiles.c',
+ 'qsv_api.c',
+ 'raw.c',
+ 'resample.c',
+ 'resample2.c',
+ 'utils.c',
+ 'vorbis_parser.c',
+ 'xiph.c',
+ 'x86/constants.c',
+ }},
+ sources.libavcodec,
+ 'libavutil.a',
+})
+
+lib('libavdevice.a', {
+ expand{'libavdevice/', {
+ 'alldevices.c',
+ 'avdevice.c',
+ 'utils.c',
+ }},
+ sources.libavdevice,
+ 'libavcodec.a.d',
+ 'libavformat.a.d',
+ 'libavutil.a',
+})
+
+lib('libavfilter.a', {
+ expand{'libavfilter/', {
+ 'allfilters.c',
+ 'audio.c',
+ 'avfilter.c',
+ 'avfiltergraph.c',
+ 'buffersink.c',
+ 'buffersrc.c',
+ 'drawutils.c',
+ 'fifo.c',
+ 'formats.c',
+ 'framepool.c',
+ 'framequeue.c',
+ 'graphdump.c',
+ 'graphparser.c',
+ 'opencl_allkernels.c',
+ 'transform.c',
+ 'video.c',
+ }},
+ sources.libavfilter,
+ 'libavutil.a',
+})
+
+cc('libavformat/protocols.c', {'$outdir/internal/libavformat/protocol_list.c'})
+lib('libavformat.a', {
+ expand{'libavformat/', {
+ 'allformats.c',
+ 'avio.c',
+ 'aviobuf.c',
+ 'cutils.c',
+ 'dump.c',
+ 'format.c',
+ 'id3v1.c',
+ 'id3v2.c',
+ 'metadata.c',
+ 'mux.c',
+ 'options.c',
+ 'os_support.c',
+ 'qtpalette.c',
+ 'protocols.c.o',
+ 'riff.c',
+ 'sdp.c',
+ 'url.c',
+ 'utils.c',
+ }},
+ sources.libavformat,
+ 'libavcodec.a.d',
+ 'libavutil.a',
+ '$builddir/pkg/libressl/libssl.a.d',
+})
+
+lib('libavutil.a', {
+ expand{'libavutil/', {
+ 'adler32.c',
+ 'aes.c',
+ 'aes_ctr.c',
+ 'audio_fifo.c',
+ 'avstring.c',
+ 'base64.c',
+ 'blowfish.c',
+ 'bprint.c',
+ 'buffer.c',
+ 'cast5.c',
+ 'camellia.c',
+ 'channel_layout.c',
+ 'color_utils.c',
+ 'cpu.c',
+ 'crc.c',
+ 'des.c',
+ 'dict.c',
+ 'display.c',
+ 'downmix_info.c',
+ 'error.c',
+ 'eval.c',
+ 'fifo.c',
+ 'file.c',
+ 'file_open.c',
+ 'float_dsp.c',
+ 'fixed_dsp.c',
+ 'frame.c',
+ 'hash.c',
+ 'hmac.c',
+ 'hwcontext.c',
+ 'imgutils.c',
+ 'integer.c',
+ 'intmath.c',
+ 'lfg.c',
+ 'lls.c',
+ 'log.c',
+ 'log2_tab.c',
+ 'mathematics.c',
+ 'mastering_display_metadata.c',
+ 'md5.c',
+ 'mem.c',
+ 'murmur3.c',
+ 'opt.c',
+ 'parseutils.c',
+ 'pixdesc.c',
+ 'pixelutils.c',
+ 'random_seed.c',
+ 'rational.c',
+ 'reverse.c',
+ 'rc4.c',
+ 'ripemd.c',
+ 'samplefmt.c',
+ 'sha.c',
+ 'sha512.c',
+ 'spherical.c',
+ 'stereo3d.c',
+ 'threadmessage.c',
+ 'time.c',
+ 'timecode.c',
+ 'tree.c',
+ 'twofish.c',
+ 'utils.c',
+ 'xga_font_data.c',
+ 'xtea.c',
+ 'tea.c',
+ 'x86/cpu.c',
+ 'x86/fixed_dsp_init.c',
+ 'x86/float_dsp_init.c',
+ 'x86/imgutils_init.c',
+ 'x86/lls_init.c',
+ 'x86/cpuid.asm',
+ 'x86/fixed_dsp.asm',
+ 'x86/float_dsp.asm',
+ 'x86/imgutils.asm',
+ 'x86/lls.asm',
+ }},
+ sources.libavutil,
+})
+
+lib('libswresample.a', {
+ expand{'libswresample/', {
+ 'audioconvert.c',
+ 'dither.c',
+ 'options.c',
+ 'rematrix.c',
+ 'resample.c',
+ 'resample_dsp.c',
+ 'swresample.c',
+ 'swresample_frame.c',
+ 'x86/audio_convert.asm',
+ 'x86/rematrix.asm',
+ 'x86/resample.asm',
+ 'x86/audio_convert_init.c',
+ 'x86/rematrix_init.c',
+ 'x86/resample_init.c',
+ }},
+ sources.libswresample,
+ 'libavutil.a',
+})
+
+lib('libswscale.a', {
+ expand{'libswscale/', {
+ 'alphablend.c',
+ 'hscale.c',
+ 'hscale_fast_bilinear.c',
+ 'gamma.c',
+ 'input.c',
+ 'options.c',
+ 'output.c',
+ 'rgb2rgb.c',
+ 'slice.c',
+ 'swscale.c',
+ 'swscale_unscaled.c',
+ 'utils.c',
+ 'yuv2rgb.c',
+ 'vscale.c',
+ 'x86/rgb2rgb.c',
+ 'x86/swscale.c',
+ 'x86/yuv2rgb.c',
+ 'x86/hscale_fast_bilinear_simd.c',
+ 'x86/input.asm',
+ 'x86/output.asm',
+ 'x86/scale.asm',
+ }},
+ sources.libswscale,
+ 'libavutil.a',
+})
+
+local libs = {
+ 'libavcodec.a.d',
+ 'libavdevice.a.d',
+ 'libavfilter.a.d',
+ 'libavformat.a.d',
+ 'libavutil.a',
+ 'libswresample.a.d',
+ 'libswscale.a.d',
+}
+
+cc('cmdutils.c', {'$dir/deps'})
+
+exe('ffprobe', {'ffprobe.c', 'cmdutils.c.o', libs})
+file('bin/ffprobe', '755', '$outdir/ffprobe')
+
+exe('ffmpeg', {'ffmpeg.c', 'ffmpeg_opt.c', 'ffmpeg_filter.c', 'cmdutils.c.o', libs})
+file('bin/ffmpeg', '755', '$outdir/ffmpeg')
+
+fetch 'git'
diff --git a/pkg/ffmpeg/gen.rc b/pkg/ffmpeg/gen.rc
@@ -1,258 +0,0 @@
-arch=x86
-
-cflags\
- -Wno-deprecated-declarations\
- -Wno-discarded-qualifiers\
- -D HAVE_AV_CONFIG_H\
- -I '$dir' \
- -I '$outdir'/include\
- -I '$outdir'/internal\
- -I '$srcdir' \
- -I '$builddir'/pkg/alsa-lib/include\
- -I '$builddir'/pkg/libressl/include
-
-set nasmflags\
- -i '$srcdir'/\
- -i '$srcdir'/libavutil/$arch/\
- -f elf64\
- -P '$outdir'/config.asm
-
-gen_inputs='$dir'/^(sources.awk sources.txt options.h)
-
-build '$outdir'/config.asm awk '$dir'/options.h ; with\
- expr '''{print "%define " substr($$0, length("#define ") + 1)}'''
-build '$outdir'/internal/libavcodec/bsf_list.c awk '$dir'/options.h '|' '$dir'/bitstream_filters.awk ; with\
- expr '-f $dir/bitstream_filters.awk'
-build '$outdir'/internal/libavformat/protocol_list.c awk '$dir'/options.h '|' '$dir'/protocols.awk ; with\
- expr '-f $dir/protocols.awk'
-build '$outdir'/include/libavutil/avconfig.h awk '$dir'/options.h ; with\
- expr '-f $dir/avconfig.awk'
-
-rule ffversion 'sh $srcdir/version.sh $srcdir $out'
-build '$outdir'/include/libavutil/ffversion.h ffversion '|' '$srcdir'/version.sh
-
-# TODO: Copy the rest of the headers.
-phony headers '$outdir'/include/libavutil/^(avconfig.h ffversion.h)
-
-phony deps\
- '$outdir'/config.asm\
- ('$dir' pkg/libressl pkg/alsa-lib)^/headers
-
-fn fflib {
- name=$1 srcs=() libs=()
- shift
- for(src) switch($src) {
- case *.[ad]
- libs=($libs $src)
- case $arch/*
- srcs=($srcs $src)
- case */*
- case *
- srcs=($srcs $src)
- }
- srcs=($srcs `{awk -f sources.awk 'lib='$name 'sources='sources.txt 'arch='$arch options.h | sort -u})
- checkstatus
- lib $name.a -d '$dir'/deps $name/$srcs $libs
-}
-
-cc libavcodec/bitstream_filters.c '||' '$outdir'/internal/libavcodec/bsf_list.c
-fflib libavcodec\
- allcodecs.c\
- audioconvert.c\
- avdct.c\
- avpacket.c\
- avpicture.c\
- bitstream.c\
- bitstream_filter.c\
- bitstream_filters.c.o\
- bsf.c\
- codec_desc.c\
- d3d11va.c\
- dirac.c\
- dv_profile.c\
- imgconvert.c\
- jni.c\
- mathtables.c\
- mediacodec.c\
- mpeg12framerate.c\
- options.c\
- mjpegenc_huffman.c\
- parser.c\
- profiles.c\
- qsv_api.c\
- raw.c\
- resample.c\
- resample2.c\
- utils.c\
- vorbis_parser.c\
- xiph.c\
- x86/constants.c\
- libavutil.a
-
-fflib libavdevice alldevices.c avdevice.c utils.c\
- libavcodec.a.d libavformat.a.d libavutil.a
-
-fflib libavfilter\
- allfilters.c\
- audio.c\
- avfilter.c\
- avfiltergraph.c\
- buffersink.c\
- buffersrc.c\
- drawutils.c\
- fifo.c\
- formats.c\
- framepool.c\
- framequeue.c\
- graphdump.c\
- graphparser.c\
- opencl_allkernels.c\
- transform.c\
- video.c\
- libavutil.a
-
-cc libavformat/protocols.c '||' '$outdir'/internal/libavformat/protocol_list.c
-fflib libavformat\
- allformats.c\
- avio.c\
- aviobuf.c\
- cutils.c\
- dump.c\
- format.c\
- id3v1.c\
- id3v2.c\
- metadata.c\
- mux.c\
- options.c\
- os_support.c\
- qtpalette.c\
- protocols.c.o\
- riff.c\
- sdp.c\
- url.c\
- utils.c\
- libavcodec.a.d libavutil.a\
- '$builddir'/pkg/libressl/libssl.a.d
-
-fflib libavutil\
- adler32.c\
- aes.c\
- aes_ctr.c\
- audio_fifo.c\
- avstring.c\
- base64.c\
- blowfish.c\
- bprint.c\
- buffer.c\
- cast5.c\
- camellia.c\
- channel_layout.c\
- color_utils.c\
- cpu.c\
- crc.c\
- des.c\
- dict.c\
- display.c\
- downmix_info.c\
- error.c\
- eval.c\
- fifo.c\
- file.c\
- file_open.c\
- float_dsp.c\
- fixed_dsp.c\
- frame.c\
- hash.c\
- hmac.c\
- hwcontext.c\
- imgutils.c\
- integer.c\
- intmath.c\
- lfg.c\
- lls.c\
- log.c\
- log2_tab.c\
- mathematics.c\
- mastering_display_metadata.c\
- md5.c\
- mem.c\
- murmur3.c\
- opt.c\
- parseutils.c\
- pixdesc.c\
- pixelutils.c\
- random_seed.c\
- rational.c\
- reverse.c\
- rc4.c\
- ripemd.c\
- samplefmt.c\
- sha.c\
- sha512.c\
- spherical.c\
- stereo3d.c\
- threadmessage.c\
- time.c\
- timecode.c\
- tree.c\
- twofish.c\
- utils.c\
- xga_font_data.c\
- xtea.c\
- tea.c\
- x86/^(\
- cpu.c fixed_dsp_init.c float_dsp_init.c imgutils_init.c lls_init.c\
- cpuid.asm fixed_dsp.asm float_dsp.asm imgutils.asm lls.asm\
- )
-
-fflib libswresample\
- audioconvert.c\
- dither.c\
- options.c\
- rematrix.c\
- resample.c\
- resample_dsp.c\
- swresample.c\
- swresample_frame.c\
- x86/^(\
- audio_convert.asm rematrix.asm resample.asm\
- audio_convert_init.c rematrix_init.c resample_init.c\
- )\
- libavutil.a
-
-fflib libswscale\
- alphablend.c\
- hscale.c\
- hscale_fast_bilinear.c\
- gamma.c\
- input.c\
- options.c\
- output.c\
- rgb2rgb.c\
- slice.c\
- swscale.c\
- swscale_unscaled.c\
- utils.c\
- yuv2rgb.c\
- vscale.c\
- x86/^(\
- rgb2rgb.c swscale.c yuv2rgb.c\
- hscale_fast_bilinear_simd.c\
- input.asm output.asm scale.asm\
- )\
- libavutil.a
-
-libs=(\
- libavcodec.a.d libavdevice.a.d libavfilter.a.d libavformat.a.d libavutil.a\
- libswresample.a.d libswscale.a.d\
-)
-
-cc cmdutils.c '||' '$dir'/deps
-
-exe ffprobe -d '$dir'/deps ffprobe.c cmdutils.c.o $libs
-file bin/ffprobe '$outdir'/ffprobe 755
-
-exe ffmpeg -d '$dir'/deps ffmpeg.c ffmpeg_opt.c ffmpeg_filter.c cmdutils.c.o $libs
-file bin/ffmpeg '$outdir'/ffmpeg 755
-
-fetch git
diff --git a/pkg/ffmpeg/sources.awk b/pkg/ffmpeg/sources.awk
@@ -1,14 +0,0 @@
-/^#define/ && $3 {
- cfg[$2] = 1
-}
-
-END {
- while (getline < sources) {
- if (!cfg[$1])
- continue
- for (i = 2; i <= NF; ++i) {
- if (match($i, "^" lib "/(" arch "/)?[^/]*$"))
- print substr($i, length(lib) + 2)
- }
- }
-}
diff --git a/pkg/file/gen.lua b/pkg/file/gen.lua
@@ -0,0 +1,61 @@
+local version = '5.32'
+cflags{
+ '-Wall',
+ '-D HAVE_CONFIG_H',
+ [[-D 'MAGIC="/share/file/magic"']],
+ '-D _GNU_SOURCE',
+ '-I include',
+ '-I $dir',
+ '-I $outdir/include',
+ '-I $builddir/pkg/zlib/include',
+}
+
+build('sed', '$outdir/include/magic.h', '$srcdir/src/magic.h.in', {
+ expr='s,X.YY,'..version:gsub('%.', '')..',',
+})
+
+build('sed', '$outdir/file.1', '$srcdir/doc/file.man', {
+ expr={
+ '-e s,__CSECTION__,1,g',
+ '-e s,__FSECTION__,5,g',
+ '-e s,__VERSION__,'..version..',g',
+ '-e s,__MAGIC__,/share/file/magic,g',
+ },
+})
+
+pkg.hdrs = {'$outdir/include/magic.h'}
+pkg.deps = {'$dir/headers', 'pkg/zlib/headers'}
+
+lib('libmagic.a', [[src/(
+ magic.c
+ apprentice.c
+ softmagic.c
+ ascmagic.c
+ encoding.c
+ compress.c
+ is_tar.c
+ readelf.c
+ print.c
+ fsmagic.c
+ funcs.c
+ apptype.c
+ der.c
+ cdf.c
+ cdf_time.c
+ readcdf.c
+
+ fmtcheck.c
+)]])
+
+exe('file', {'src/file.c', 'libmagic.a', '$builddir/pkg/zlib/libz.a'})
+file('bin/file', '755', '$outdir/file')
+man{'$outdir/file.1'}
+
+rule('magic', 'cd $outdir && file -C -m magic')
+build('magic', '$outdir/magic.mgc', {'|',
+ copy('$outdir/magic', '$srcdir/magic/Magdir', lines('magic.txt')),
+ copy('$outdir/magic', '$srcdir/magic', {'Header', 'Localstuff'}),
+})
+file('share/file/magic.mgc', '644', '$outdir/magic.mgc')
+
+fetch 'git'
diff --git a/pkg/file/gen.rc b/pkg/file/gen.rc
@@ -1,59 +0,0 @@
-version=5.32
-cflags\
- -Wall\
- -D HAVE_CONFIG_H\
- -D 'MAGIC=''"/share/file/magic"''' \
- -D _GNU_SOURCE\
- -I include\
- -I '$dir' \
- -I '$outdir'/include\
- -I '$builddir'/pkg/zlib/include
-
-build '$outdir'/include/magic.h sed '$srcdir'/src/magic.h.in ; with\
- expr s,X.YY,`{echo $version | tr -d .}^,
-phony headers '$outdir'/include/magic.h
-
-build '$outdir'/file.1 sed '$srcdir'/doc/file.man ; exprs=(\
- -e s,__CSECTION__,1,g\
- -e s,__FSECTION__,5,g\
- -e s,__VERSION__,$version,g\
- -e s,__MAGIC__,/share/file/magic,g\
-) with expr $"exprs
-
-phony deps ('$dir' pkg/zlib)^/headers
-
-lib libmagic.a -d '$dir'/deps src/^(\
- magic.c\
- apprentice.c\
- softmagic.c\
- ascmagic.c\
- encoding.c\
- compress.c\
- is_tar.c\
- readelf.c\
- print.c\
- fsmagic.c\
- funcs.c\
- apptype.c\
- der.c\
- cdf.c\
- cdf_time.c\
- readcdf.c\
- \
- fmtcheck.c\
-)
-
-exe file -d '$dir'/headers src/file.c libmagic.a '$builddir/pkg/zlib/libz.a'
-file bin/file '$outdir'/file 755
-man -d '$outdir' 1 file.1
-
-srcs=`{grep -v '^#' magic.txt}
-for(src in $srcs) build '$outdir'/magic/$src copy '$srcdir'/magic/Magdir/$src
-for(src in Header Localstuff) build '$outdir'/magic/$src copy '$srcdir'/magic/$src
-magic_outs=magic/^(Header Localstuff $srcs)
-
-rule magic 'cd $outdir && file -C -m magic'
-build '$outdir'/magic.mgc magic '|' '$outdir'/$magic_outs
-file share/file/magic.mgc '$outdir'/magic.mgc 644
-
-fetch git
diff --git a/pkg/fontconfig/gen.lua b/pkg/fontconfig/gen.lua
@@ -0,0 +1,63 @@
+cflags{
+ '-D HAVE_CONFIG_H',
+ '-I include',
+ '-I $dir',
+ '-I $outdir',
+ '-I $srcdir',
+ '-I pkg/freetype/src/include',
+ '-I $builddir/pkg/expat/include',
+}
+
+pkg.deps = {'pkg/expat/headers', '$builddir/pkg/freetype/fetch.stamp'}
+
+rule('makealias', '$srcdir/src/makealias $srcdir/src $out $in')
+local function makealias(name, srcs)
+ local outs = {'$outdir/'..name..'.h', '$outdir/'..name..'tail.h'}
+ table.insert(pkg.deps, outs)
+ build('makealias', outs, {expand{'$srcdir/', srcs}, '|', '$srcdir/src/makealias'})
+end
+
+makealias('fcalias', {
+ 'fontconfig/fontconfig.h',
+ 'fontconfig/fcprivate.h',
+ 'src/fcdeprecate.h',
+})
+makealias('fcftalias', 'fontconfig/fcfreetype.h')
+
+lib('libfontconfig.a', [[
+ src/(
+ fcatomic.c
+ fcblanks.c
+ fccache.c
+ fccfg.c
+ fccharset.c
+ fccompat.c
+ fcdbg.c
+ fcdefault.c
+ fcdir.c
+ fcformat.c
+ fcfreetype.c
+ fcfs.c
+ fcinit.c
+ fclang.c
+ fclist.c
+ fcmatch.c
+ fcmatrix.c
+ fcname.c
+ fcobjs.c
+ fcpat.c
+ fcrange.c
+ fcserialize.c
+ fcstat.c
+ fcstr.c
+ fcweight.c
+ fcxml.c
+ ftglue.c
+ )
+ $builddir/pkg/(
+ expat/libexpat.a.d
+ freetype/libfreetype.a.d
+ )
+]])
+
+fetch 'curl'
diff --git a/pkg/fontconfig/gen.rc b/pkg/fontconfig/gen.rc
@@ -1,58 +0,0 @@
-cflags\
- -D HAVE_CONFIG_H\
- -I include\
- -I '$dir' \
- -I '$outdir' \
- -I '$srcdir' \
- -I pkg/freetype/src/include\
- -I '$builddir'/pkg/expat/include
-
-deps=(pkg/expat/headers '$builddir'/pkg/freetype/fetch.stamp)
-
-rule makealias '$srcdir/src/makealias $srcdir/src $out $in'
-fn makealias {
- outs='$outdir'/^($1.h $1^tail.h)
- deps=($deps $outs)
- shift
- build $"outs makealias '$srcdir'/$* '|' '$srcdir'/src/makealias
-}
-
-makealias fcalias fontconfig/^(fontconfig.h fcprivate.h) src/fcdeprecate.h
-makealias fcftalias fontconfig/fcfreetype.h
-
-phony deps $deps
-
-lib libfontconfig.a -d '$dir'/deps src/^(\
- fcatomic.c\
- fcblanks.c\
- fccache.c\
- fccfg.c\
- fccharset.c\
- fccompat.c\
- fcdbg.c\
- fcdefault.c\
- fcdir.c\
- fcformat.c\
- fcfreetype.c\
- fcfs.c\
- fcinit.c\
- fclang.c\
- fclist.c\
- fcmatch.c\
- fcmatrix.c\
- fcname.c\
- fcobjs.c\
- fcpat.c\
- fcrange.c\
- fcserialize.c\
- fcstat.c\
- fcstr.c\
- fcweight.c\
- fcxml.c\
- ftglue.c\
-) '$builddir'/pkg/^(\
- expat/libexpat.a.d\
- freetype/libfreetype.a.d\
-)
-
-fetch curl
diff --git a/pkg/freetype/gen.lua b/pkg/freetype/gen.lua
@@ -0,0 +1,51 @@
+cflags{
+ '-Wall',
+ '-D FT2_BUILD_LIBRARY',
+ '-D FT_CONFIG_OPTION_SYSTEM_ZLIB',
+ '-D HAVE_FCNTL_H',
+ '-D HAVE_STDINT_H',
+ '-D HAVE_UNISTD_H',
+ '-I $srcdir/builds/unix',
+ '-I $srcdir/include/freetype/config',
+ '-I $srcdir/include',
+ '-I $builddir/pkg/zlib/include',
+}
+
+cc('src/gzip/ftgzip.c', {'pkg/zlib/headers'})
+lib('libfreetype.a', [[
+ builds/unix/ftsystem.c
+ src/(
+ base/(
+ ftdebug.c ftinit.c ftbase.c
+ ftbbox.c ftbdf.c ftbitmap.c ftcid.c ftfntfmt.c ftfstype.c
+ ftgasp.c ftglyph.c ftgxval.c ftlcdfil.c ftmm.c ftotval.c
+ ftpatent.c ftpfr.c ftstroke.c ftsynth.c fttype1.c ftwinfnt.c
+ )
+ truetype/truetype.c
+ type1/type1.c
+ cff/cff.c
+ cid/type1cid.c
+ pfr/pfr.c
+ type42/type42.c
+ winfonts/winfnt.c
+ pcf/pcf.c
+ bdf/bdf.c
+ sfnt/sfnt.c
+
+ autofit/autofit.c
+ pshinter/pshinter.c
+
+ raster/raster.c
+ smooth/smooth.c
+
+ cache/ftcache.c
+ gzip/ftgzip.c.o
+ lzw/ftlzw.c
+ bzip2/ftbzip2.c
+ psaux/psaux.c
+ psnames/psnames.c
+ )
+ $builddir/pkg/zlib/libz.a
+]])
+
+fetch 'git'
diff --git a/pkg/freetype/gen.rc b/pkg/freetype/gen.rc
@@ -1,46 +0,0 @@
-cflags\
- -Wall\
- -D FT2_BUILD_LIBRARY\
- -D FT_CONFIG_OPTION_SYSTEM_ZLIB\
- -D HAVE_FCNTL_H\
- -D HAVE_STDINT_H\
- -D HAVE_UNISTD_H\
- -I '$srcdir'/builds/unix\
- -I '$srcdir'/include/freetype/config\
- -I '$srcdir'/include\
- -I '$builddir'/pkg/zlib/include
-
-cc src/gzip/ftgzip.c '||' pkg/zlib/headers
-lib libfreetype.a builds/unix/ftsystem.c src/^(\
- base/^(\
- ftdebug.c ftinit.c ftbase.c\
- ftbbox.c ftbdf.c ftbitmap.c ftcid.c ftfntfmt.c ftfstype.c\
- ftgasp.c ftglyph.c ftgxval.c ftlcdfil.c ftmm.c ftotval.c\
- ftpatent.c ftpfr.c ftstroke.c ftsynth.c fttype1.c ftwinfnt.c\
- )\
- truetype/truetype.c\
- type1/type1.c\
- cff/cff.c\
- cid/type1cid.c\
- pfr/pfr.c\
- type42/type42.c\
- winfonts/winfnt.c\
- pcf/pcf.c\
- bdf/bdf.c\
- sfnt/sfnt.c\
- \
- autofit/autofit.c\
- pshinter/pshinter.c\
- \
- raster/raster.c\
- smooth/smooth.c\
- \
- cache/ftcache.c\
- gzip/ftgzip.c.o\
- lzw/ftlzw.c\
- bzip2/ftbzip2.c\
- psaux/psaux.c\
- psnames/psnames.c\
-) '$builddir'/pkg/zlib/libz.a
-
-fetch git
diff --git a/pkg/fribidi/gen.lua b/pkg/fribidi/gen.lua
@@ -0,0 +1,84 @@
+cflags{
+ '-D HAVE_CONFIG_H',
+ '-I include',
+ '-I $dir',
+ '-I $outdir',
+ '-I $outdir/include',
+ '-I $srcdir/lib',
+}
+
+sub('tools.ninja', function()
+ cc('gen.tab/packtab.c')
+ exe('gen-unicode-version', {'gen.tab/gen-unicode-version.c'})
+ for _, t in ipairs{'bidi-type', 'joining-type', 'arabic-shaping', 'mirroring'} do
+ exe('gen-'..t..'-tab', expand{'gen.tab/', {
+ 'gen-'..t..'-tab.c',
+ 'packtab.c.o',
+ }}, {'$dir/headers'})
+ end
+end)
+
+set('compression', '2')
+
+rule('gentool', '$outdir/$tool $args $in >$out.tmp && mv $out.tmp $out')
+local function gentool(tool, out, srcs, args)
+ build('gentool', '$outdir/'..out, {expand{'$srcdir/gen.tab/unidata/', srcs}, '|', '$outdir/gen-'..tool}, {
+ tool='gen-'..tool,
+ args=args,
+ })
+end
+
+gentool('unicode-version', 'include/fribidi-unicode-version.h', {'BidiMirroring.txt'})
+gentool('bidi-type-tab', 'bidi-type.tab.i', {'UnicodeData.txt'}, '$compression')
+gentool('joining-type-tab', 'joining-type.tab.i', {'UnicodeData.txt', 'ArabicShaping.txt'}, '$compression')
+gentool('arabic-shaping-tab', 'arabic-shaping.tab.i', {'UnicodeData.txt'}, '$compression')
+gentool('mirroring-tab', 'mirroring.tab.i', {'BidiMirroring.txt'}, '$compression')
+
+pkg.hdrs = {
+ copy('$outdir/include', '$srcdir/lib', {
+ 'fribidi.h',
+ 'fribidi-arabic.h',
+ 'fribidi-begindecls.h',
+ 'fribidi-bidi.h',
+ 'fribidi-bidi-types.h',
+ 'fribidi-bidi-types-list.h',
+ 'fribidi-common.h',
+ 'fribidi-deprecated.h',
+ 'fribidi-enddecls.h',
+ 'fribidi-flags.h',
+ 'fribidi-joining.h',
+ 'fribidi-joining-types.h',
+ 'fribidi-joining-types-list.h',
+ 'fribidi-mirroring.h',
+ 'fribidi-shape.h',
+ 'fribidi-types.h',
+ 'fribidi-unicode.h',
+ }),
+ copy('$outdir/include', '$dir', {'fribidi-config.h'}),
+ '$outdir/include/fribidi-unicode-version.h',
+}
+pkg.deps = {
+ '$outdir/bidi-type.tab.i',
+ '$outdir/joining-type.tab.i',
+ '$outdir/arabic-shaping.tab.i',
+ '$outdir/mirroring.tab.i',
+ '$dir/headers',
+}
+
+lib('libfribidi.a', [[
+ lib/(
+ fribidi.c
+ fribidi-arabic.c
+ fribidi-bidi.c
+ fribidi-bidi-types.c
+ fribidi-deprecated.c
+ fribidi-joining.c
+ fribidi-joining-types.c
+ fribidi-mem.c
+ fribidi-mirroring.c
+ fribidi-run.c
+ fribidi-shape.c
+ )
+]])
+
+fetch 'git'
diff --git a/pkg/fribidi/gen.rc b/pkg/fribidi/gen.rc
@@ -1,63 +0,0 @@
-cflags\
- -D HAVE_CONFIG_H\
- -I include\
- -I '$dir' \
- -I '$outdir' \
- -I '$outdir'/include\
- -I '$srcdir'/lib
-
-{
- cc gen.tab/packtab.c
- exe gen-unicode-version gen.tab/gen-unicode-version.c
- for(t in bidi-type joining-type arabic-shaping mirroring)
- exe gen-$t-tab -d '$dir'/headers gen.tab/^(gen-$t-tab.c packtab.c.o)
-} >tools.ninja ; subninja tools.ninja
-
-set compression 2
-
-rule gentool '$outdir/$tool $args $in >$out.tmp && mv $out.tmp $out'
-fn gentool {
- tool=$1
- out=$2
- shift 2
- build '$outdir'/$out gentool '$srcdir'/gen.tab/unidata/$* '|' '$outdir'/gen-$tool
- with tool gen-$tool
-}
-
-gentool unicode-version include/fribidi-unicode-version.h BidiMirroring.txt
-gentool bidi-type-tab bidi-type.tab.i UnicodeData.txt ; with args '$compression'
-gentool joining-type-tab joining-type.tab.i UnicodeData.txt ArabicShaping.txt ; with args '$compression'
-gentool arabic-shaping-tab arabic-shaping.tab.i UnicodeData.txt ; with args '$compression'
-gentool mirroring-tab mirroring.tab.i BidiMirroring.txt ; with args '$compression'
-
-hdrs=(\
- fribidi.h fribidi-arabic.h fribidi-begindecls.h\
- fribidi-bidi.h fribidi-bidi-types.h fribidi-bidi-types-list.h\
- fribidi-common.h fribidi-deprecated.h fribidi-enddecls.h fribidi-flags.h\
- fribidi-joining.h fribidi-joining-types.h fribidi-joining-types-list.h\
- fribidi-mirroring.h fribidi-shape.h fribidi-types.h fribidi-unicode.h\
-)
-for(hdr in $hdrs)
- build '$outdir'/include/$hdr copy '$srcdir'/lib/$hdr
-build '$outdir'/include/fribidi-config.h copy '$dir'/fribidi-config.h
-phony headers '$outdir'/include/^($hdrs fribidi-config.h fribidi-unicode-version.h)
-
-phony deps\
- '$outdir'/^(bidi-type joining-type arabic-shaping mirroring)^.tab.i\
- '$dir'/headers
-
-lib libfribidi.a -d '$dir'/deps lib/^(\
- fribidi.c\
- fribidi-arabic.c\
- fribidi-bidi.c\
- fribidi-bidi-types.c\
- fribidi-deprecated.c\
- fribidi-joining.c\
- fribidi-joining-types.c\
- fribidi-mem.c\
- fribidi-mirroring.c\
- fribidi-run.c\
- fribidi-shape.c\
-)
-
-fetch git
diff --git a/pkg/gen.lua b/pkg/gen.lua
@@ -0,0 +1,100 @@
+subgen 'acme-client'
+subgen 'adobe-source-fonts'
+subgen 'alsa-lib'
+subgen 'alsa-utils'
+subgen 'awk'
+subgen 'bc'
+subgen 'bearssl'
+subgen 'blind'
+subgen 'bzip2'
+subgen 'curl'
+subgen 'discount'
+subgen 'dosfstools'
+subgen 'dmenu'
+subgen 'e2fsprogs'
+subgen 'efibootmgr'
+subgen 'efivar'
+subgen 'expat'
+subgen 'farbfeld'
+subgen 'ffmpeg'
+subgen 'file'
+subgen 'fontconfig'
+subgen 'freetype'
+subgen 'fribidi'
+subgen 'git'
+subgen 'hostap'
+subgen 'ii'
+subgen 'iproute2'
+subgen 'jbig2dec'
+subgen 'kbd'
+subgen 'less'
+subgen 'libass'
+subgen 'libdrm'
+subgen 'libevdev'
+subgen 'libevent'
+subgen 'libffi'
+subgen 'libfuse'
+subgen 'libinput'
+subgen 'libjpeg-turbo'
+subgen 'libnl'
+subgen 'libpciaccess'
+subgen 'libpng'
+subgen 'libressl'
+subgen 'libtermkey'
+subgen 'libusb'
+subgen 'libxkbcommon'
+subgen 'loksh'
+subgen 'lpeg'
+subgen 'lua'
+subgen 'make'
+subgen 'man-pages-posix'
+subgen 'mandoc'
+subgen 'mc'
+subgen 'mpv'
+subgen 'msmtp'
+subgen 'mtdev'
+subgen 'mupdf'
+subgen 'nasm'
+subgen 'ncurses'
+subgen 'netsurf'
+subgen 'nginx'
+subgen 'openbsd'
+subgen 'openntpd'
+subgen 'openssh'
+subgen 'pcre'
+subgen 'perp'
+subgen 'pigz'
+subgen 'pixman'
+subgen 'plan9fonts'
+subgen 'plan9port'
+subgen 'python'
+subgen 'qbe'
+subgen 'samurai'
+subgen 'sbase'
+subgen 'scc'
+subgen 'scron'
+subgen 'sdhcp'
+subgen 'sinit'
+subgen 'skeleton'
+subgen 'sshfs'
+subgen 'st'
+subgen 'strace'
+subgen 'swc'
+subgen 'syslinux'
+subgen 'terminus-font'
+subgen 'the_silver_searcher'
+subgen 'transmission'
+subgen 'tz'
+subgen 'ubase'
+subgen 'unzip'
+subgen 'utf8proc'
+subgen 'util-linux'
+subgen 'velox'
+subgen 'vis'
+subgen 'wayland'
+subgen 'wayland-protocols'
+subgen 'wld'
+subgen 'xkeyboard-config'
+subgen 'xz'
+subgen 'youtube-dl'
+subgen 'zlib'
diff --git a/pkg/gen.rc b/pkg/gen.rc
@@ -1,100 +0,0 @@
-subgen acme-client
-subgen adobe-source-fonts
-subgen alsa-lib
-subgen alsa-utils
-subgen awk
-subgen bc
-subgen bearssl
-subgen blind
-subgen bzip2
-subgen curl
-subgen discount
-subgen dosfstools
-subgen dmenu
-subgen e2fsprogs
-subgen efibootmgr
-subgen efivar
-subgen expat
-subgen farbfeld
-subgen ffmpeg
-subgen file
-subgen fontconfig
-subgen freetype
-subgen fribidi
-subgen git
-subgen hostap
-subgen ii
-subgen iproute2
-subgen jbig2dec
-subgen kbd
-subgen less
-subgen libass
-subgen libdrm
-subgen libevdev
-subgen libevent
-subgen libffi
-subgen libfuse
-subgen libinput
-subgen libjpeg-turbo
-subgen libnl
-subgen libpciaccess
-subgen libpng
-subgen libressl
-subgen libtermkey
-subgen libusb
-subgen libxkbcommon
-subgen loksh
-subgen lpeg
-subgen lua
-subgen make
-subgen man-pages-posix
-subgen mandoc
-subgen mc
-subgen mpv
-subgen msmtp
-subgen mtdev
-subgen mupdf
-subgen nasm
-subgen ncurses
-subgen netsurf
-subgen nginx
-subgen openbsd
-subgen openntpd
-subgen openssh
-subgen pcre
-subgen perp
-subgen pigz
-subgen pixman
-subgen plan9fonts
-subgen plan9port
-subgen python
-subgen qbe
-subgen samurai
-subgen sbase
-subgen scc
-subgen scron
-subgen sdhcp
-subgen sinit
-subgen skeleton
-subgen sshfs
-subgen st
-subgen strace
-subgen swc
-subgen syslinux
-subgen terminus-font
-subgen the_silver_searcher
-subgen transmission
-subgen tz
-subgen ubase
-subgen unzip
-subgen utf8proc
-subgen util-linux
-subgen velox
-subgen vis
-subgen wayland
-subgen wayland-protocols
-subgen wld
-subgen xkeyboard-config
-subgen xz
-subgen youtube-dl
-subgen zlib
diff --git a/pkg/git/gen.lua b/pkg/git/gen.lua
@@ -0,0 +1,410 @@
+cflags{
+ '-include $dir/config.h',
+ '-I $srcdir',
+ '-I $srcdir/compat/regex',
+ '-I $outdir',
+ '-I $builddir/pkg/curl/include',
+ '-I $builddir/pkg/zlib/include',
+}
+
+rule('cmdlist', 'wd=$$PWD && cd $srcdir && ./generate-cmdlist.sh $$wd/$in >$$wd/$out.tmp && mv $$wd/$out.tmp $$wd/$out')
+build('cmdlist', '$outdir/common-cmds.h', {
+ '$srcdir/command-list.txt', '|', expand{'$srcdir/Documentation/', lines('commands.txt')},
+})
+
+pkg.deps = {'$outdir/common-cmds.h', 'pkg/curl/headers', 'pkg/zlib/headers'}
+
+cc('exec_cmd.c', nil, {cflags=[[$cflags '-DPREFIX=""']]})
+cc('common-main.c')
+cc('http.c')
+cc('compat/regex/regex.c', nil, {cflags='$cflags -DGAWK -DNO_MBSUPPORT'})
+
+-- src/Makefile:/^LIB_OBJS.\+=
+lib('libgit.a', [[
+ abspath.c
+ advice.c
+ alias.c
+ alloc.c
+ apply.c
+ archive-tar.c
+ archive-zip.c
+ archive.c
+ argv-array.c
+ attr.c
+ base85.c
+ bisect.c
+ blame.c
+ blob.c
+ branch.c
+ bulk-checkin.c
+ bundle.c
+ cache-tree.c
+ color.c
+ column.c
+ combine-diff.c
+ commit.c
+ compat/obstack.c
+ compat/regex/regex.c.o
+ compat/terminal.c
+ compat/qsort_s.c
+ config.c
+ connect.c
+ connected.c
+ convert.c
+ copy.c
+ credential.c
+ csum-file.c
+ ctype.c
+ date.c
+ decorate.c
+ diff-delta.c
+ diff-lib.c
+ diff-no-index.c
+ diff.c
+ diffcore-break.c
+ diffcore-delta.c
+ diffcore-order.c
+ diffcore-pickaxe.c
+ diffcore-rename.c
+ dir.c
+ dir-iterator.c
+ editor.c
+ entry.c
+ environment.c
+ ewah/bitmap.c
+ ewah/ewah_bitmap.c
+ ewah/ewah_io.c
+ ewah/ewah_rlw.c
+ exec_cmd.c.o
+ fetch-pack.c
+ fsck.c
+ gettext.c
+ gpg-interface.c
+ graph.c
+ grep.c
+ hashmap.c
+ help.c
+ hex.c
+ ident.c
+ kwset.c
+ levenshtein.c
+ line-log.c
+ line-range.c
+ list-objects.c
+ ll-merge.c
+ lockfile.c
+ log-tree.c
+ mailinfo.c
+ mailmap.c
+ match-trees.c
+ merge-blobs.c
+ merge-recursive.c
+ merge.c
+ mergesort.c
+ mru.c
+ name-hash.c
+ notes-cache.c
+ notes-merge.c
+ notes-utils.c
+ notes.c
+ object.c
+ oidset.c
+ pack-bitmap-write.c
+ pack-bitmap.c
+ pack-check.c
+ pack-objects.c
+ pack-revindex.c
+ pack-write.c
+ pager.c
+ parse-options-cb.c
+ parse-options.c
+ patch-delta.c
+ patch-ids.c
+ path.c
+ pathspec.c
+ pkt-line.c
+ preload-index.c
+ pretty.c
+ prio-queue.c
+ progress.c
+ prompt.c
+ quote.c
+ reachable.c
+ read-cache.c
+ ref-filter.c
+ reflog-walk.c
+ refs.c
+ refs/files-backend.c
+ refs/iterator.c
+ refs/ref-cache.c
+ remote.c
+ replace_object.c
+ repository.c
+ rerere.c
+ resolve-undo.c
+ revision.c
+ run-command.c
+ send-pack.c
+ sequencer.c
+ server-info.c
+ setup.c
+ sha1-array.c
+ sha1-lookup.c
+ sha1_file.c
+ sha1_name.c
+ shallow.c
+ sideband.c
+ sigchain.c
+ split-index.c
+ strbuf.c
+ streaming.c
+ string-list.c
+ submodule-config.c
+ submodule.c
+ sub-process.c
+ symlinks.c
+ tag.c
+ tempfile.c
+ tmp-objdir.c
+ trace.c
+ trailer.c
+ transport-helper.c
+ transport.c
+ tree-diff.c
+ tree-walk.c
+ tree.c
+ unpack-trees.c
+ url.c
+ urlmatch.c
+ usage.c
+ userdiff.c
+ utf8.c
+ varint.c
+ version.c
+ versioncmp.c
+ walker.c
+ wildmatch.c
+ worktree.c
+ wrapper.c
+ write_or_die.c
+ ws.c
+ wt-status.c
+ xdiff-interface.c
+ zlib.c
+
+ sha1dc/sha1.c
+ sha1dc/ubc_check.c
+
+ thread-utils.c
+ libxdiff.a
+ $builddir/pkg/zlib/libz.a
+]])
+
+-- src/Makefile:/^XDIFF_OBJS.\+=
+lib('libxdiff.a', [[xdiff/(
+ xdiffi.c
+ xprepare.c
+ xutils.c
+ xemit.c
+ xmerge.c
+ xpatience.c
+ xhistogram.c
+)]])
+
+-- src/Makefile:/^BUILTIN_OBJS.\+=
+local builtins = {
+ 'add',
+ 'am',
+ 'annotate',
+ 'apply',
+ 'archive',
+ 'bisect--helper',
+ 'blame',
+ 'branch',
+ 'bundle',
+ 'cat-file',
+ 'check-attr',
+ 'check-ignore',
+ 'check-mailmap',
+ 'check-ref-format',
+ 'checkout-index',
+ 'checkout',
+ 'clean',
+ 'clone',
+ 'column',
+ 'commit-tree',
+ 'commit',
+ 'config',
+ 'count-objects',
+ 'credential',
+ 'describe',
+ 'diff-files',
+ 'diff-index',
+ 'diff-tree',
+ 'diff',
+ 'difftool',
+ 'fast-export',
+ 'fetch-pack',
+ 'fetch',
+ 'fmt-merge-msg',
+ 'for-each-ref',
+ 'fsck',
+ 'gc',
+ 'get-tar-commit-id',
+ 'grep',
+ 'hash-object',
+ 'help',
+ 'index-pack',
+ 'init-db',
+ 'interpret-trailers',
+ 'log',
+ 'ls-files',
+ 'ls-remote',
+ 'ls-tree',
+ 'mailinfo',
+ 'mailsplit',
+ 'merge',
+ 'merge-base',
+ 'merge-file',
+ 'merge-index',
+ 'merge-ours',
+ 'merge-recursive',
+ 'merge-tree',
+ 'mktag',
+ 'mktree',
+ 'mv',
+ 'name-rev',
+ 'notes',
+ 'pack-objects',
+ 'pack-redundant',
+ 'pack-refs',
+ 'patch-id',
+ 'prune-packed',
+ 'prune',
+ 'pull',
+ 'push',
+ 'read-tree',
+ 'rebase--helper',
+ 'receive-pack',
+ 'reflog',
+ 'remote',
+ 'remote-ext',
+ 'remote-fd',
+ 'repack',
+ 'replace',
+ 'rerere',
+ 'reset',
+ 'rev-list',
+ 'rev-parse',
+ 'revert',
+ 'rm',
+ 'send-pack',
+ 'shortlog',
+ 'show-branch',
+ 'show-ref',
+ 'stripspace',
+ 'submodule--helper',
+ 'symbolic-ref',
+ 'tag',
+ 'unpack-file',
+ 'unpack-objects',
+ 'update-index',
+ 'update-ref',
+ 'update-server-info',
+ 'upload-archive',
+ 'var',
+ 'verify-commit',
+ 'verify-pack',
+ 'verify-tag',
+ 'worktree',
+ 'write-tree',
+}
+exe('git', {'git.c', 'common-main.c.o', expand{'builtin/', builtins, '.c'}, 'libgit.a.d'})
+file('bin/git', '755', '$outdir/git')
+local syms = {
+ builtins,
+ 'cherry',
+ 'cherry-pick',
+ 'format-patch',
+ 'fsck-objects',
+ 'init',
+ 'merge-subtree',
+ 'show',
+ 'stage',
+ 'status',
+ 'whatchanged',
+}
+for name in iterstrings(syms) do
+ sym('libexec/git-core/git-'..name, '../../bin/git')
+end
+
+local function x(name, srcs)
+ exe('git-'..name, {srcs or name..'.c', 'common-main.c.o', 'libgit.a.d'})
+ file('libexec/git-core/git-'..name, '755', '$outdir/git-'..name)
+end
+
+-- src/Makefile:/^PROGRAM_OBJS./+=
+x('credential-store')
+x('daemon')
+x('fast-import')
+x('http-backend')
+x('imap-send', {'imap-send.c', 'http.c.o', '$builddir/pkg/curl/libcurl.a.d'})
+x('sh-i18n--envsubst')
+x('shell')
+x('show-index')
+x('upload-pack')
+-- git-remote-testsvn is intentionally omitted.
+
+x('remote-http', {'remote-curl.c', 'http.c.o', 'http-walker.c', '$builddir/pkg/curl/libcurl.a.d'})
+for _, remote in ipairs{'https', 'ftp', 'ftps'} do
+ sym('libexec/git-core/git-remote-'..remote, 'git-remote-http')
+end
+
+rule('sh_gen', 'sed -f $dir/sh_gen.sed $in >$out.tmp && mv $out.tmp $out')
+local function x(name, mode)
+ build('sh_gen', '$outdir/git-'..name, {'$srcdir/git-'..name..'.sh', '|', '$dir/sh_gen.sed'})
+ file('libexec/git-core/git-'..name, mode, '$outdir/git-'..name)
+end
+
+-- src/Makefile:/^SCRIPT_SH.\+=
+x('bisect', '755')
+x('difftool--helper', '755')
+x('filter-branch', '755')
+x('merge-octopus', '755')
+x('merge-one-file', '755')
+x('merge-resolve', '755')
+x('mergetool', '755')
+x('quiltimport', '755')
+x('rebase', '755')
+x('remote-testgit', '755')
+x('request-pull', '755')
+x('stash', '755')
+x('submodule', '755')
+x('web--browse', '755')
+
+-- src/Makefile:/^SCRIPT_LIB.\+=
+x('mergetool--lib', '644')
+x('parse-remote', '644')
+x('rebase--am', '644')
+x('rebase--interactive', '644')
+x('rebase--merge', '644')
+x('sh-setup', '644')
+x('sh-i18n', '644')
+
+for _, name in ipairs{'git-shell', 'git-upload-pack'} do
+ sym('bin/'..name, '../libexec/git-core/'..name)
+end
+for _, name in ipairs{'git-receive-pack', 'git-upload-archive'} do
+ sym('bin/'..name, 'git')
+end
+
+-- templates
+dir('share/git-core/templates/branches', '755')
+file('share/git-core/templates/description', '644', '$srcdir/templates/this--description')
+file('share/git-core/templates/info/exclude', '644', '$srcdir/templates/info--exclude')
+-- Skip the sample hooks and install an empty directory instead.
+dir('share/git-core/templates/hooks', '755')
+
+man(expand{'man/', lines('man.txt')})
+
+fetch 'local'
diff --git a/pkg/git/gen.rc b/pkg/git/gen.rc
@@ -1,397 +0,0 @@
-cflags\
- -include '$dir'/config.h\
- -I '$srcdir' \
- -I '$srcdir'/compat/regex\
- -I '$outdir' \
- -I '$builddir'/pkg/curl/include\
- -I '$builddir'/pkg/zlib/include
-
-rule cmdlist 'wd=$$PWD && cd $srcdir && ./generate-cmdlist.sh $$wd/$in >$$wd/$out.tmp && mv $$wd/$out.tmp $$wd/$out'
-build '$outdir'/common-cmds.h cmdlist '$srcdir'/command-list.txt '|' '$srcdir'/Documentation/`{grep -v '^#' commands.txt}
-
-phony deps '$outdir'/common-cmds.h pkg/^(curl zlib)^/headers
-
-cc exec_cmd.c '||' '$dir'/deps ; with cflags '$cflags ''-DPREFIX=""'''
-cc common-main.c '||' '$dir'/deps
-cc http.c '||' '$dir'/deps
-cc compat/regex/regex.c '||' '$dir'/deps ; with cflags '$cflags -DGAWK -DNO_MBSUPPORT'
-
-# src/Makefile:/^LIB_OBJS.\+=
-lib libgit.a -d '$dir'/deps\
- abspath.c\
- advice.c\
- alias.c\
- alloc.c\
- apply.c\
- archive-tar.c\
- archive-zip.c\
- archive.c\
- argv-array.c\
- attr.c\
- base85.c\
- bisect.c\
- blame.c\
- blob.c\
- branch.c\
- bulk-checkin.c\
- bundle.c\
- cache-tree.c\
- color.c\
- column.c\
- combine-diff.c\
- commit.c\
- compat/obstack.c\
- compat/regex/regex.c.o\
- compat/terminal.c\
- compat/qsort_s.c\
- config.c\
- connect.c\
- connected.c\
- convert.c\
- copy.c\
- credential.c\
- csum-file.c\
- ctype.c\
- date.c\
- decorate.c\
- diff-delta.c\
- diff-lib.c\
- diff-no-index.c\
- diff.c\
- diffcore-break.c\
- diffcore-delta.c\
- diffcore-order.c\
- diffcore-pickaxe.c\
- diffcore-rename.c\
- dir.c\
- dir-iterator.c\
- editor.c\
- entry.c\
- environment.c\
- ewah/bitmap.c\
- ewah/ewah_bitmap.c\
- ewah/ewah_io.c\
- ewah/ewah_rlw.c\
- exec_cmd.c.o\
- fetch-pack.c\
- fsck.c\
- gettext.c\
- gpg-interface.c\
- graph.c\
- grep.c\
- hashmap.c\
- help.c\
- hex.c\
- ident.c\
- kwset.c\
- levenshtein.c\
- line-log.c\
- line-range.c\
- list-objects.c\
- ll-merge.c\
- lockfile.c\
- log-tree.c\
- mailinfo.c\
- mailmap.c\
- match-trees.c\
- merge-blobs.c\
- merge-recursive.c\
- merge.c\
- mergesort.c\
- mru.c\
- name-hash.c\
- notes-cache.c\
- notes-merge.c\
- notes-utils.c\
- notes.c\
- object.c\
- oidset.c\
- pack-bitmap-write.c\
- pack-bitmap.c\
- pack-check.c\
- pack-objects.c\
- pack-revindex.c\
- pack-write.c\
- pager.c\
- parse-options-cb.c\
- parse-options.c\
- patch-delta.c\
- patch-ids.c\
- path.c\
- pathspec.c\
- pkt-line.c\
- preload-index.c\
- pretty.c\
- prio-queue.c\
- progress.c\
- prompt.c\
- quote.c\
- reachable.c\
- read-cache.c\
- ref-filter.c\
- reflog-walk.c\
- refs.c\
- refs/files-backend.c\
- refs/iterator.c\
- refs/ref-cache.c\
- remote.c\
- replace_object.c\
- repository.c\
- rerere.c\
- resolve-undo.c\
- revision.c\
- run-command.c\
- send-pack.c\
- sequencer.c\
- server-info.c\
- setup.c\
- sha1-array.c\
- sha1-lookup.c\
- sha1_file.c\
- sha1_name.c\
- shallow.c\
- sideband.c\
- sigchain.c\
- split-index.c\
- strbuf.c\
- streaming.c\
- string-list.c\
- submodule-config.c\
- submodule.c\
- sub-process.c\
- symlinks.c\
- tag.c\
- tempfile.c\
- tmp-objdir.c\
- trace.c\
- trailer.c\
- transport-helper.c\
- transport.c\
- tree-diff.c\
- tree-walk.c\
- tree.c\
- unpack-trees.c\
- url.c\
- urlmatch.c\
- usage.c\
- userdiff.c\
- utf8.c\
- varint.c\
- version.c\
- versioncmp.c\
- walker.c\
- wildmatch.c\
- worktree.c\
- wrapper.c\
- write_or_die.c\
- ws.c\
- wt-status.c\
- xdiff-interface.c\
- zlib.c\
- \
- sha1dc/sha1.c\
- sha1dc/ubc_check.c\
- \
- thread-utils.c\
- libxdiff.a\
- '$builddir'/pkg/zlib/libz.a
-
-# src/Makefile:/^XDIFF_OBJS.\+=
-lib libxdiff.a xdiff/^(\
- xdiffi.c\
- xprepare.c\
- xutils.c\
- xemit.c\
- xmerge.c\
- xpatience.c\
- xhistogram.c\
-)
-
-# src/Makefile:/^BUILTIN_OBJS.\+=
-builtins=(\
- add\
- am\
- annotate\
- apply\
- archive\
- bisect--helper\
- blame\
- branch\
- bundle\
- cat-file\
- check-attr\
- check-ignore\
- check-mailmap\
- check-ref-format\
- checkout-index\
- checkout\
- clean\
- clone\
- column\
- commit-tree\
- commit\
- config\
- count-objects\
- credential\
- describe\
- diff-files\
- diff-index\
- diff-tree\
- diff\
- difftool\
- fast-export\
- fetch-pack\
- fetch\
- fmt-merge-msg\
- for-each-ref\
- fsck\
- gc\
- get-tar-commit-id\
- grep\
- hash-object\
- help\
- index-pack\
- init-db\
- interpret-trailers\
- log\
- ls-files\
- ls-remote\
- ls-tree\
- mailinfo\
- mailsplit\
- merge\
- merge-base\
- merge-file\
- merge-index\
- merge-ours\
- merge-recursive\
- merge-tree\
- mktag\
- mktree\
- mv\
- name-rev\
- notes\
- pack-objects\
- pack-redundant\
- pack-refs\
- patch-id\
- prune-packed\
- prune\
- pull\
- push\
- read-tree\
- rebase--helper\
- receive-pack\
- reflog\
- remote\
- remote-ext\
- remote-fd\
- repack\
- replace\
- rerere\
- reset\
- rev-list\
- rev-parse\
- revert\
- rm\
- send-pack\
- shortlog\
- show-branch\
- show-ref\
- stripspace\
- submodule--helper\
- symbolic-ref\
- tag\
- unpack-file\
- unpack-objects\
- update-index\
- update-ref\
- update-server-info\
- upload-archive\
- var\
- verify-commit\
- verify-pack\
- verify-tag\
- worktree\
- write-tree\
-)
-exe git -d '$dir'/deps git.c common-main.c.o builtin/$builtins.c libgit.a.d
-file bin/git '$outdir'/git 755
-for(name in $builtins cherry cherry-pick format-patch fsck-objects init merge-subtree show stage status whatchanged)
- sym libexec/git-core/git-$name ../../bin/git
-
-fn x {
- name=$1
- shift
- if(~ $#* 0) srcs=$name.c
- if not srcs=$*
- exe git-$name -d '$dir'/deps $srcs common-main.c.o libgit.a.d
- file libexec/git-core/git-$name '$outdir'/git-$name 755
-}
-
-# src/Makefile:/^PROGRAM_OBJS./+=
-x credential-store
-x daemon
-x fast-import
-x http-backend
-x imap-send imap-send.c http.c.o '$builddir'/pkg/curl/libcurl.a.d
-x sh-i18n--envsubst
-x shell
-x show-index
-x upload-pack
-# git-remote-testsvn is intentionally omitted.
-
-x remote-http remote-curl.c http.c.o http-walker.c '$builddir'/pkg/curl/libcurl.a.d
-for(remote in https ftp ftps) sym libexec/git-core/git-remote-$remote git-remote-http
-
-rule sh_gen 'sed -f $dir/sh_gen.sed $in >$out.tmp && mv $out.tmp $out'
-fn x {
- name=$1
- mode=$2
- shift
- build '$outdir'/git-$name sh_gen '$srcdir'/git-$name.sh '|' '$dir'/sh_gen.sed
- file libexec/git-core/git-$name '$outdir'/git-$name $mode
-}
-
-# src/Makefile:/^SCRIPT_SH.\+=
-x bisect 755
-x difftool--helper 755
-x filter-branch 755
-x merge-octopus 755
-x merge-one-file 755
-x merge-resolve 755
-x mergetool 755
-x quiltimport 755
-x rebase 755
-x remote-testgit 755
-x request-pull 755
-x stash 755
-x submodule 755
-x web--browse 755
-
-# src/Makefile:/^SCRIPT_LIB.\+=
-x mergetool--lib 644
-x parse-remote 644
-x rebase--am 644
-x rebase--interactive 644
-x rebase--merge 644
-x sh-setup 644
-x sh-i18n 644
-
-for(exe in git-^(shell upload-pack))
- sym bin/$exe ../libexec/git-core/$exe
-for(exe in git-^(receive-pack upload-archive))
- sym bin/$exe git
-
-# templates
-dir share/git-core/templates/branches 755
-file share/git-core/templates/description '$srcdir'/templates/this--description 644
-file share/git-core/templates/info/exclude '$srcdir'/templates/info--exclude 644
-# Skip the sample hooks and install an empty directory instead.
-dir share/git-core/templates/hooks 755
-
-srcs=`{grep -v '^#' man.txt}
-checkstatus
-man -d man $srcs
-
-fetch local
diff --git a/pkg/hostap/gen.lua b/pkg/hostap/gen.lua
@@ -0,0 +1,94 @@
+cflags{
+ '-include $dir/config.h',
+ '-I $srcdir/src/utils',
+ '-I $srcdir/src',
+ '-I $builddir/pkg/libressl/include',
+ '-I $builddir/pkg/libnl/include',
+}
+
+pkg.deps = {
+ 'pkg/libressl/headers',
+ 'pkg/libnl/headers',
+}
+
+lib('libcommon.a', 'src/utils/(common.c eloop.c os_unix.c wpa_debug.c)')
+
+exe('bin/wpa_supplicant', [[
+ src/ap/(
+ wpa_auth.c
+ wpa_auth_ie.c
+ pmksa_cache_auth.c
+ peerkey_auth.c
+ )
+ src/common/(
+ ctrl_iface_common.c
+ hw_features_common.c
+ ieee802_11_common.c
+ wpa_common.c
+ )
+ src/crypto/(
+ aes-omac1.c
+ crypto_openssl.c
+ random.c
+ sha1-prf.c
+ sha256-prf.c
+ tls_none.c
+ )
+ src/drivers/(
+ driver_common.c
+ driver_nl80211.c
+ driver_nl80211_capa.c
+ driver_nl80211_event.c
+ driver_nl80211_monitor.c
+ driver_nl80211_scan.c
+ drivers.c
+ linux_ioctl.c
+ netlink.c
+ rfkill.c
+ )
+ src/l2_packet/l2_packet_linux.c
+ src/rsn_supp/(
+ peerkey.c
+ pmksa_cache.c
+ preauth.c
+ tdls.c
+ wpa.c
+ wpa_ie.c
+ )
+ src/utils/(radiotap.c wpabuf.c)
+ wpa_supplicant/(
+ blacklist.c
+ bss.c
+ config.c
+ config_file.c
+ ctrl_iface.c
+ ctrl_iface_unix.c
+ eap_register.c
+ events.c
+ ibss_rsn.c
+ main.c
+ notify.c
+ scan.c
+ sme.c
+ wmm_ac.c
+ wpa_supplicant.c
+ wpas_glue.c
+ )
+ libcommon.a
+ $builddir/pkg/(
+ libressl/libcrypto.a
+ openbsd/libbsd.a
+ libnl/(libnl-3.a libnl-genl-3.a)
+ )
+]])
+file('bin/wpa_supplicant', '755', '$outdir/bin/wpa_supplicant')
+
+exe('bin/wpa_cli', [[
+ src/common/(cli.c wpa_ctrl.c)
+ src/utils/edit_simple.c
+ wpa_supplicant/wpa_cli.c
+ libcommon.a
+]])
+file('bin/wpa_cli', '755', '$outdir/bin/wpa_cli')
+
+fetch 'git'
diff --git a/pkg/hostap/gen.rc b/pkg/hostap/gen.rc
@@ -1,88 +0,0 @@
-cflags\
- -include '$dir'/config.h\
- -I '$srcdir'/src/utils\
- -I '$srcdir'/src\
- -I '$builddir'/pkg/libressl/include\
- -I '$builddir'/pkg/libnl/include
-
-phony deps pkg/^(libressl libnl)^/headers
-
-lib libcommon.a -d '$dir'/deps src/utils/^(common.c eloop.c os_unix.c wpa_debug.c)
-
-exe bin/wpa_supplicant -d '$dir'/deps\
- src/ap/^(\
- wpa_auth.c\
- wpa_auth_ie.c\
- pmksa_cache_auth.c\
- peerkey_auth.c\
- )\
- src/common/^(\
- ctrl_iface_common.c\
- hw_features_common.c\
- ieee802_11_common.c\
- wpa_common.c\
- )\
- src/crypto/^(\
- aes-omac1.c\
- crypto_openssl.c\
- random.c\
- sha1-prf.c\
- sha256-prf.c\
- tls_none.c\
- )\
- src/drivers/^(\
- driver_common.c\
- driver_nl80211.c\
- driver_nl80211_capa.c\
- driver_nl80211_event.c\
- driver_nl80211_monitor.c\
- driver_nl80211_scan.c\
- drivers.c\
- linux_ioctl.c\
- netlink.c\
- rfkill.c\
- )\
- src/l2_packet/l2_packet_linux.c\
- src/rsn_supp/^(\
- peerkey.c\
- pmksa_cache.c\
- preauth.c\
- tdls.c\
- wpa.c\
- wpa_ie.c\
- )\
- src/utils/^(radiotap.c wpabuf.c)\
- wpa_supplicant/^(\
- blacklist.c\
- bss.c\
- config.c\
- config_file.c\
- ctrl_iface.c\
- ctrl_iface_unix.c\
- eap_register.c\
- events.c\
- ibss_rsn.c\
- main.c\
- notify.c\
- scan.c\
- sme.c\
- wmm_ac.c\
- wpa_supplicant.c\
- wpas_glue.c\
- )\
- libcommon.a\
- '$builddir'/pkg/^(\
- libressl/libcrypto.a\
- openbsd/libbsd.a\
- libnl/^(libnl-3.a libnl-genl-3.a)\
- )
-file bin/wpa_supplicant '$outdir'/bin/wpa_supplicant 755
-
-exe bin/wpa_cli -d '$dir'/deps\
- src/common/^(cli.c wpa_ctrl.c)\
- src/utils/edit_simple.c\
- wpa_supplicant/wpa_cli.c\
- libcommon.a
-file bin/wpa_cli '$outdir'/bin/wpa_cli 755
-
-fetch git
diff --git a/pkg/ii/gen.lua b/pkg/ii/gen.lua
@@ -0,0 +1,13 @@
+set('version', '1.7-13-g704ab92')
+cflags{
+ '-Wall',
+ [[-D 'VERSION="$version"']],
+}
+
+exe('ii', {'ii.c'})
+file('bin/ii', '755', '$outdir/ii')
+
+build('sed', '$outdir/ii.1', '$srcdir/ii.1', {expr='s,VERSION,$version,'})
+man{'$outdir/ii.1'}
+
+fetch 'git'
diff --git a/pkg/ii/gen.rc b/pkg/ii/gen.rc
@@ -1,13 +0,0 @@
-version=1.7-13-g704ab92
-cflags\
- -Wall\
- -D 'VERSION=''"'$version'"'''
-
-exe ii ii.c
-file bin/ii '$outdir'/ii 755
-
-build '$outdir'/ii.1 sed '$srcdir'/ii.1 ; with\
- expr s,VERSION,$version,
-man -d '$outdir' 1 ii.1
-
-fetch git
diff --git a/pkg/iproute2/gen.lua b/pkg/iproute2/gen.lua
@@ -0,0 +1,60 @@
+cflags{
+ '-Wall', '-Wformat=2', '-Wmissing-declarations', '-Wmissing-prototypes',
+ '-Wold-style-definition', '-Wstrict-prototypes',
+ '-D _GNU_SOURCE',
+ '-D HAVE_SETNS',
+ '-I $srcdir/include',
+ '-I $srcdir/misc',
+}
+
+lib('libnetlink.a', [[lib/(
+ libgenl.c ll_map.c libnetlink.c
+
+ utils.c rt_names.c ll_types.c ll_proto.c ll_addr.c
+ inet_proto.c namespace.c json_writer.c
+ names.c color.c bpf.c exec.c fs.c
+ (dnet ipx mpls)_ntop.c (dnet ipx mpls)_pton.c
+)]])
+
+exe('bin/ip', [[ip/(
+ ip.c ipaddress.c ipaddrlabel.c iproute.c iprule.c ipnetns.c
+ rtm_map.c iptunnel.c ip6tunnel.c tunnel.c ipneigh.c ipntable.c iplink.c
+ ipmaddr.c ipmonitor.c ipmroute.c ipprefix.c iptuntap.c iptoken.c
+ ipxfrm.c xfrm_state.c xfrm_policy.c xfrm_monitor.c iplink_dummy.c
+ iplink_ifb.c iplink_nlmon.c iplink_team.c iplink_vcan.c iplink_vxcan.c
+ iplink_vlan.c link_veth.c link_gre.c iplink_can.c iplink_xdp.c
+ iplink_macvlan.c ipl2tp.c link_vti.c link_vti6.c
+ iplink_vxlan.c tcp_metrics.c iplink_ipoib.c ipnetconf.c link_ip6tnl.c
+ link_iptnl.c link_gre6.c iplink_bond.c iplink_bond_slave.c iplink_hsr.c
+ iplink_bridge.c iplink_bridge_slave.c ipfou.c iplink_ipvlan.c
+ iplink_geneve.c iplink_vrf.c iproute_lwtunnel.c ipmacsec.c ipila.c
+ ipvrf.c iplink_xstats.c ipseg6.c
+) libnetlink.a]])
+file('bin/ip', '755', '$outdir/bin/ip')
+
+exe('bin/bridge', [[
+ bridge/(bridge.c fdb.c monitor.c link.c mdb.c vlan.c)
+ libnetlink.a
+]])
+file('bin/bridge', '755', '$outdir/bin/bridge')
+
+yacc('ssfilter', '$srcdir/misc/ssfilter.y')
+exe('bin/ss', {'misc/ss.c', '$outdir/ssfilter.tab.c', 'libnetlink.a'})
+file('bin/ss', '755', '$outdir/bin/ss')
+
+man(paths[[man/man8/(
+ bridge ip ss
+ ip-(
+ addrlabel fou gue l2tp macsec maddress monitor mroute neighbour
+ netconf netns ntable rule sr tcp_metrics token tunnel vrf xfrm
+ )
+).8]])
+for _, name in ipairs{'ip-address', 'ip-link', 'ip-route'} do
+ local out = '$outdir/'..name..'.8'
+ build('sed', out, '$srcdir/man/man8/'..name..'.8.in', {
+ expr='s,@SYSCONFDIR@,/etc,g'
+ })
+ man{out}
+end
+
+fetch 'git'
diff --git a/pkg/iproute2/gen.rc b/pkg/iproute2/gen.rc
@@ -1,54 +0,0 @@
-cflags\
- -Wall '-Wformat=2' -Wmissing-declarations -Wmissing-prototypes\
- -Wold-style-definition -Wstrict-prototypes\
- -D _GNU_SOURCE\
- -D HAVE_SETNS\
- -I '$srcdir'/include\
- -I '$srcdir'/misc
-
-lib libnetlink.a lib/^(\
- libgenl.c ll_map.c libnetlink.c\
- \
- utils.c rt_names.c ll_types.c ll_proto.c ll_addr.c\
- inet_proto.c namespace.c json_writer.c\
- names.c color.c bpf.c exec.c fs.c\
- (dnet ipx mpls)^_ntop.c (dnet ipx mpls)^_pton.c\
-)
-
-exe bin/ip ip/^(\
- ip.c ipaddress.c ipaddrlabel.c iproute.c iprule.c ipnetns.c\
- rtm_map.c iptunnel.c ip6tunnel.c tunnel.c ipneigh.c ipntable.c iplink.c\
- ipmaddr.c ipmonitor.c ipmroute.c ipprefix.c iptuntap.c iptoken.c\
- ipxfrm.c xfrm_state.c xfrm_policy.c xfrm_monitor.c iplink_dummy.c\
- iplink_ifb.c iplink_nlmon.c iplink_team.c iplink_vcan.c iplink_vxcan.c\
- iplink_vlan.c link_veth.c link_gre.c iplink_can.c iplink_xdp.c\
- iplink_macvlan.c ipl2tp.c link_vti.c link_vti6.c\
- iplink_vxlan.c tcp_metrics.c iplink_ipoib.c ipnetconf.c link_ip6tnl.c\
- link_iptnl.c link_gre6.c iplink_bond.c iplink_bond_slave.c iplink_hsr.c\
- iplink_bridge.c iplink_bridge_slave.c ipfou.c iplink_ipvlan.c\
- iplink_geneve.c iplink_vrf.c iproute_lwtunnel.c ipmacsec.c ipila.c\
- ipvrf.c iplink_xstats.c ipseg6.c\
-) libnetlink.a
-
-exe bin/bridge\
- bridge/^(bridge.c fdb.c monitor.c link.c mdb.c vlan.c)\
- libnetlink.a
-
-yacc ssfilter '$srcdir'/misc/ssfilter.y
-exe bin/ss misc/ss.c '$outdir'/ssfilter.tab.c libnetlink.a
-
-for(exe in bin/^(ip bridge ss)) file $exe '$outdir'/$exe 755
-man=(\
- bridge ip ss\
- ip-^(\
- addrlabel fou gue l2tp macsec maddress monitor mroute neighbour\
- netconf netns ntable rule sr tcp_metrics token tunnel vrf xfrm\
- )\
-) man -d man man8/$man.8
-for(man in ip-address ip-link ip-route) {
- build '$outdir'/$man.8 sed '$srcdir'/man/man8/$man.8.in ; with\
- expr s,@SYSCONFDIR@,/etc,g
- man -d '$outdir' 8 $man.8
-}
-
-fetch git
diff --git a/pkg/jbig2dec/gen.lua b/pkg/jbig2dec/gen.lua
@@ -0,0 +1,14 @@
+cflags{
+ '-Wall',
+ '-D HAVE_STDINT_H',
+ '-D HAVE_GETOPT_H',
+}
+
+lib('libjbig2dec.a', [[
+ jbig2_arith.c jbig2_arith_int.c jbig2_arith_iaid.c
+ jbig2_huffman.c jbig2_segment.c jbig2_page.c jbig2_symbol_dict.c
+ jbig2_text.c jbig2_halftone.c jbig2_generic.c jbig2_refinement.c
+ jbig2_mmr.c jbig2_image.c jbig2_metadata.c jbig2.c
+]])
+
+fetch 'git'
diff --git a/pkg/jbig2dec/gen.rc b/pkg/jbig2dec/gen.rc
@@ -1,12 +0,0 @@
-cflags\
- -Wall\
- -D HAVE_STDINT_H\
- -D HAVE_GETOPT_H
-
-lib libjbig2dec.a\
- jbig2_arith.c jbig2_arith_int.c jbig2_arith_iaid.c\
- jbig2_huffman.c jbig2_segment.c jbig2_page.c jbig2_symbol_dict.c\
- jbig2_text.c jbig2_halftone.c jbig2_generic.c jbig2_refinement.c\
- jbig2_mmr.c jbig2_image.c jbig2_metadata.c jbig2.c
-
-fetch git
diff --git a/pkg/kbd/gen.lua b/pkg/kbd/gen.lua
@@ -0,0 +1,76 @@
+cflags{
+ [[-D 'DATADIR="/share/kbd"']],
+ '-I include',
+ '-I $dir',
+ '-I $srcdir',
+ '-I $srcdir/src',
+ '-I $srcdir/src/libkeymap',
+ '-I $srcdir/src/libkeymap/keymap',
+}
+
+lib('libcommon.a', 'src/(getfd.c xmalloc.c kbd_error.c)')
+lib('libfont.a', 'src/(kdfontop.c kdmapop.c loadunimap.c psffontop.c utf8.c)')
+lib('libkeymap.a', [[src/libkeymap/(
+ analyze.c
+ array.c
+ common.c
+ diacr.c
+ dump.c
+ findfile.c
+ func.c
+ kernel.c
+ kmap.c
+ ksyms.c
+ loadkeys.c
+ modifiers.c
+ parser.c
+ summary.c
+)]])
+
+-- old: loadunimap mapscrn
+-- optional: clrunmap getunimap setlogcons setvesablank setpalette screendump
+-- i386/x86_64 only: resizecons
+-- ubase: chvt
+
+local function x(cmd, section, subst, srcs)
+ if not srcs then
+ srcs = 'src/'..cmd..'.c'
+ end
+ exe(cmd, {srcs, 'libcommon.a', 'libfont.a', 'libkeymap.a'})
+ file('bin/'..cmd, '755', '$outdir/'..cmd)
+ if not section then
+ return
+ end
+ local manpage = string.format('docs/man/man%s/%s.%s', section, cmd, section)
+ if subst then
+ local out = string.format('$outdir/%s.%s', cmd, section)
+ build('sed', out, '$srcdir/'..manpage..'.in', {expr='s,@DATADIR@,/share/kbd,g'})
+ manpage = out
+ end
+ man{manpage}
+end
+
+x('deallocvt', '1')
+x('dumpkeys', '1', true)
+x('fgconsole', '1')
+x('getkeycodes', '8')
+x('kbd_mode', '1')
+x('kbdinfo')
+x('loadkeys', '1', true)
+x('openvt', '1')
+x('psfxtable', '1')
+x('setfont', '8', true, {'src/setfont.c', 'src/mapscrn.c'})
+x('setkeycodes', '8')
+x('setvtrgb', '8')
+x('showconsolefont', '8')
+x('showkey', '1')
+
+-- keymap data
+for keymap in iterlines('keymaps.txt') do
+ local out = '$outdir/keymaps/'..keymap..'.gz'
+ build('gzip', out, '$srcdir/data/keymaps/'..keymap)
+ file('share/kbd/keymaps/'..keymap..'.gz', '644', out)
+end
+sym('share/kbd/keymaps/ppc', 'mac')
+
+fetch 'curl'
diff --git a/pkg/kbd/gen.rc b/pkg/kbd/gen.rc
@@ -1,75 +0,0 @@
-cflags\
- -D 'DATADIR=''"/share/kbd"''' \
- -I include\
- -I '$dir' \
- -I '$srcdir' \
- -I '$srcdir'/src\
- -I '$srcdir'/src/libkeymap\
- -I '$srcdir'/src/libkeymap/keymap
-
-lib libcommon.a src/^(getfd.c xmalloc.c kbd_error.c)
-lib libfont.a src/^(kdfontop.c kdmapop.c loadunimap.c psffontop.c utf8.c)
-lib libkeymap.a src/libkeymap/^(\
- analyze.c\
- array.c\
- common.c\
- diacr.c\
- dump.c\
- findfile.c\
- func.c\
- kernel.c\
- kmap.c\
- ksyms.c\
- loadkeys.c\
- modifiers.c\
- parser.c\
- summary.c\
-)
-
-# old: loadunimap mapscrn
-# optional: clrunmap getunimap setlogcons setvesablank setpalette screendump
-# i386/x86_64 only: resizecons
-# ubase: chvt
-
-fn x {
- sect=$1
- exe=$2
- shift 2
- exe $exe src/$exe.c $* libcommon.a libfont.a libkeymap.a
- file bin/$exe '$outdir'/$exe 755
- if(~ $sect ?~) {
- sect=`{printf %s $sect | cut -c -1}
- build '$outdir'/$exe.$sect sed '$srcdir'/docs/man/man$sect/$exe.$sect.in ; with\
- expr s,@DATADIR@,/share/kbd,g
- subdir='$outdir'
- }
- if not subdir=docs/man/man$sect
- if(~ $sect [18])
- man -d $subdir $sect $exe.$sect
- status=()
-}
-
-x 1 deallocvt
-x 1~ dumpkeys
-x 1 fgconsole
-x 8 getkeycodes
-x 1 kbd_mode
-x - kbdinfo
-x 1~ loadkeys
-x 1 openvt
-x 1 psfxtable
-x 8~ setfont src/mapscrn.c
-x 8 setkeycodes
-x 8 setvtrgb
-x 8 showconsolefont
-x 1 showkey
-
-# keymap data
-keymaps=`{grep -v '^#' keymaps.txt}
-for(keymap in keymaps/$keymaps) {
- build '$outdir'/$keymap.gz gzip '$srcdir'/data/$keymap
- file share/kbd/$keymap.gz '$outdir'/$keymap.gz 644
-}
-sym share/kbd/keymaps/ppc mac
-
-fetch curl
diff --git a/pkg/less/gen.lua b/pkg/less/gen.lua
@@ -0,0 +1,31 @@
+cflags{
+ '-I include',
+ '-I $dir',
+ '-I $builddir/pkg/ncurses/include',
+}
+
+cc('version.c')
+
+exe('less', [[
+ main.c screen.c brac.c ch.c charset.c cmdbuf.c
+ command.c cvt.c decode.c edit.c filename.c forwback.c
+ help.c ifile.c input.c jump.c line.c linenum.c
+ lsystem.c mark.c optfunc.c option.c opttbl.c os.c
+ output.c pattern.c position.c prompt.c search.c signal.c
+ tags.c ttyin.c version.c.o
+ $builddir/pkg/ncurses/libncurses.a
+]], {'pkg/ncurses/headers'})
+file('bin/less', '755', '$outdir/less')
+
+exe('lessecho', {'lessecho.c', 'version.c.o'})
+file('bin/lessecho', '755', '$outdir/lessecho')
+
+exe('lesskey', {'lesskey.c', 'version.c.o'})
+file('bin/lesskey', '755', '$outdir/lesskey')
+
+for _, cmd in ipairs{'less', 'lessecho', 'lesskey'} do
+ build('gzip', '$outdir/'..cmd..'.1.gz', '$srcdir/'..cmd..'.nro')
+ file('share/man/man1/'..cmd..'.1.gz', '644', '$outdir/'..cmd..'.1.gz')
+end
+
+fetch 'curl'
diff --git a/pkg/less/gen.rc b/pkg/less/gen.rc
@@ -1,29 +0,0 @@
-cflags\
- -I include\
- -I '$dir' \
- -I '$builddir'/pkg/ncurses/include
-
-cc version.c
-
-exe less -d pkg/ncurses/headers\
- main.c screen.c brac.c ch.c charset.c cmdbuf.c\
- command.c cvt.c decode.c edit.c filename.c forwback.c\
- help.c ifile.c input.c jump.c line.c linenum.c\
- lsystem.c mark.c optfunc.c option.c opttbl.c os.c\
- output.c pattern.c position.c prompt.c search.c signal.c\
- tags.c ttyin.c version.c.o\
- '$builddir'/pkg/ncurses/libncurses.a
-file bin/less '$outdir'/less 755
-
-exe lessecho lessecho.c version.c.o
-file bin/lessecho '$outdir'/lessecho 755
-
-exe lesskey lesskey.c version.c.o
-file bin/lesskey '$outdir'/lesskey 755
-
-for(man in less lessecho lesskey) {
- build '$outdir'/$man.1.gz gzip '$srcdir'/$man.nro
- file share/man/man1/$man.1.gz '$outdir'/$man.1.gz 644
-}
-
-fetch curl
diff --git a/pkg/libass/gen.lua b/pkg/libass/gen.lua
@@ -0,0 +1,43 @@
+cflags{
+ '-I include',
+ '-I $dir',
+ '-I pkg/freetype/src/include',
+ '-I $builddir/pkg/fribidi/include',
+}
+
+set('nasmflags', {
+ '-w -orphan-labels',
+ '-D ARCH_X86_64=1',
+ '-D HAVE_ALIGNED_STACK=1',
+ '-i $srcdir/libass/x86/',
+ '-f elf64',
+})
+
+pkg.hdrs = copy('$outdir/include/ass', '$srcdir/libass', {'ass.h', 'ass_types.h'})
+pkg.deps = {
+ '$builddir/pkg/freetype/fetch.stamp',
+ 'pkg/fribidi/headers',
+}
+
+lib('libass.a', [[
+ libass/(
+ ass.c ass_cache.c ass_font.c ass_fontselect.c ass_render.c
+ ass_utils.c ass_bitmap.c ass_blur.c ass_library.c
+ ass_drawing.c
+ ass_parse.c ass_render_api.c ass_shaper.c
+ ass_strtod.c ass_fontconfig.c
+ ass_string.c
+ ass_rasterizer.c ass_rasterizer_c.c
+ x86/(
+ blend_bitmaps.asm blur.asm cpuid.asm utils.asm
+ be_blur.asm
+ rasterizer.asm
+ )
+ )
+ $builddir/pkg/(
+ freetype/libfreetype.a.d
+ fribidi/libfribidi.a
+ )
+]])
+
+fetch 'git'
diff --git a/pkg/libass/gen.rc b/pkg/libass/gen.rc
@@ -1,39 +0,0 @@
-cflags\
- -I include\
- -I '$dir' \
- -I pkg/freetype/src/include\
- -I '$builddir'/pkg/fribidi/include
-
-set nasmflags\
- -w -orphan-labels\
- -D 'ARCH_X86_64=1' \
- -D 'HAVE_ALIGNED_STACK=1' \
- -i '$srcdir'/libass/x86/\
- -f elf64
-
-hdrs=(ass.h ass_types.h)
-for(hdr in $hdrs)
- build '$outdir'/include/ass/$hdr copy '$srcdir'/libass/$hdr
-phony headers '$outdir'/include/ass/$hdrs
-
-phony deps '$builddir'/pkg/freetype/fetch.stamp pkg/fribidi/headers
-
-lib libass.a -d '$dir'/deps libass/^(\
- ass.c ass_cache.c ass_font.c ass_fontselect.c ass_render.c\
- ass_utils.c ass_bitmap.c ass_blur.c ass_library.c\
- ass_drawing.c\
- ass_parse.c ass_render_api.c ass_shaper.c\
- ass_strtod.c ass_fontconfig.c\
- ass_string.c\
- ass_rasterizer.c ass_rasterizer_c.c\
- x86/^(\
- blend_bitmaps.asm blur.asm cpuid.asm utils.asm\
- be_blur.asm\
- rasterizer.asm\
- )\
-) '$builddir'/pkg/^(\
- freetype/libfreetype.a.d\
- fribidi/libfribidi.a\
-)
-
-fetch git
diff --git a/pkg/libdrm/gen.lua b/pkg/libdrm/gen.lua
@@ -0,0 +1,44 @@
+cflags{
+ '-D HAVE_CONFIG_H',
+ '-I include',
+ '-I $dir',
+ '-I $srcdir',
+ '-I $srcdir/include/drm',
+}
+
+lib('libdrm.a', {
+ 'xf86drm.c',
+ 'xf86drmHash.c',
+ 'xf86drmRandom.c',
+ 'xf86drmSL.c',
+ 'xf86drmMode.c',
+})
+
+if config.video_drivers and config.video_drivers['intel'] then
+ cflags{'-D HAVE_INTEL=1', '-I pkg/libpciaccess/src/include'}
+ pkg.deps = {'$builddir/pkg/libpciaccess/fetch.stamp'}
+ lib('libdrm_intel.a', [[
+ intel/(
+ intel_bufmgr.c
+ intel_bufmgr_fake.c
+ intel_bufmgr_gem.c
+ intel_decode.c
+ mm.c
+ )
+ $builddir/pkg/libpciaccess/libpciaccess.a
+ ]])
+end
+
+if config.video_drivers and config.video_drivers['nouveau'] then
+ cflags{'-D HAVE_NOUVEAU=1'}
+ lib('libdrm_nouveau.a', [[
+ nouveau/(
+ nouveau.c
+ pushbuf.c
+ bufctx.c
+ abi16.c
+ )
+ ]])
+end
+
+fetch 'git'
diff --git a/pkg/libdrm/gen.rc b/pkg/libdrm/gen.rc
@@ -1,38 +0,0 @@
-cflags\
- -D HAVE_CONFIG_H\
- -I include\
- -I '$dir' \
- -I '$srcdir' \
- -I '$srcdir'/include/drm
-
-lib libdrm.a\
- xf86drm.c\
- xf86drmHash.c\
- xf86drmRandom.c\
- xf86drmSL.c\
- xf86drmMode.c
-
-if(~ intel $config_video_drivers) {
- cflags -D 'HAVE_INTEL=1' -I pkg/libpciaccess/src/include
- lib libdrm_intel.a -d '$builddir'/pkg/libpciaccess/fetch.stamp intel/^(\
- intel_bufmgr.c\
- intel_bufmgr_fake.c\
- intel_bufmgr_gem.c\
- intel_decode.c\
- mm.c\
- ) '$builddir'/pkg/libpciaccess/libpciaccess.a
-}
-
-if(~ nouveau $config_video_drivers) {
- cflags -D 'HAVE_NOUVEAU=1'
- lib libdrm_nouveau.a nouveau/^(\
- nouveau.c\
- pushbuf.c\
- bufctx.c\
- abi16.c\
- )
-}
-
-status=()
-
-fetch git
diff --git a/pkg/libevdev/gen.lua b/pkg/libevdev/gen.lua
@@ -0,0 +1,19 @@
+cflags{
+ '-I include',
+ '-I $dir',
+ '-I $outdir',
+ '-I $srcdir/include',
+}
+
+pkg.hdrs = copy('$outdir/include/libevdev', '$srcdir/libevdev', {'libevdev.h'})
+pkg.hdrs.install = true
+
+build('awk', '$outdir/event-names.h', {
+ '$srcdir/include/linux/input.h',
+ '$srcdir/include/linux/input-event-codes.h',
+ '|', '$dir/eventnames.awk',
+}, {expr='-f $dir/eventnames.awk'})
+lib('libevdev.a', {'libevdev/libevdev.c', 'libevdev/libevdev-names.c'}, {'$outdir/event-names.h'})
+file('lib/libevdev.a', '644', '$outdir/libevdev.a')
+
+fetch 'git'
diff --git a/pkg/libevdev/gen.rc b/pkg/libevdev/gen.rc
@@ -1,19 +0,0 @@
-cflags\
- -I include\
- -I '$dir' \
- -I '$outdir' \
- -I '$srcdir'/include
-
-hdrs=libevdev/libevdev.h
-for(hdr in $hdrs) {
- build '$outdir'/include/$hdr copy '$srcdir'/$hdr
- file include/$hdr '$srcdir'/$hdr 644
-}
-phony headers '$outdir'/include/$hdrs
-
-build '$outdir'/event-names.h awk '$srcdir'/include/linux/^(input.h input-event-codes.h) '|' '$dir'/eventnames.awk ; with\
- expr '-f $dir/eventnames.awk'
-lib libevdev.a -d '$outdir'/event-names.h libevdev/^(libevdev.c libevdev-names.c)
-file lib/libevdev.a '$outdir'/libevdev.a 644
-
-fetch git
diff --git a/pkg/libevent/gen.lua b/pkg/libevent/gen.lua
@@ -0,0 +1,46 @@
+cflags{
+ '-I $dir',
+ '-I $outdir/include',
+ '-I $srcdir/include',
+ '-I include',
+ '-idirafter pkg/openbsd/src/sys',
+}
+
+build('sed', '$outdir/include/event2/event-config.h', {'$dir/config.h', '|', '$srcdir/make-event-config.sed'}, {
+ expr='-f $srcdir/make-event-config.sed',
+})
+
+pkg.hdrs = {
+ '$outdir/include/event2/event-config.h',
+}
+pkg.deps = {
+ '$dir/headers',
+ '$builddir/pkg/openbsd/fetch.stamp',
+}
+
+lib('libevent.a', {
+ 'buffer.c',
+ 'bufferevent.c',
+ 'bufferevent_filter.c',
+ 'bufferevent_pair.c',
+ 'bufferevent_ratelim.c',
+ 'bufferevent_sock.c',
+ 'event.c',
+ 'evmap.c',
+ 'evthread.c',
+ 'evutil.c',
+ 'evutil_rand.c',
+ 'evutil_time.c',
+ 'listener.c',
+ 'log.c',
+
+ 'evdns.c',
+ 'event_tagging.c',
+ 'evrpc.c',
+ 'http.c',
+
+ 'epoll.c',
+ 'signal.c',
+})
+
+fetch 'git'
diff --git a/pkg/libevent/gen.rc b/pkg/libevent/gen.rc
@@ -1,38 +0,0 @@
-cflags\
- -I '$dir' \
- -I '$outdir'/include\
- -I '$srcdir'/include\
- -I include\
- -idirafter pkg/openbsd/src/sys
-
-build '$outdir'/include/event2/event-config.h\
- sed '$dir'/config.h '|' '$srcdir'/make-event-config.sed
-with expr '-f $srcdir/make-event-config.sed'
-
-phony headers '$outdir'/include/event2/event-config.h
-phony deps '$dir'/headers '$builddir'/pkg/openbsd/fetch.stamp
-
-lib libevent.a -d '$dir'/deps\
- buffer.c\
- bufferevent.c\
- bufferevent_filter.c\
- bufferevent_pair.c\
- bufferevent_ratelim.c\
- bufferevent_sock.c\
- event.c\
- evmap.c\
- evthread.c\
- evutil.c\
- evutil_rand.c\
- evutil_time.c\
- listener.c\
- log.c\
- \
- evdns.c\
- event_tagging.c\
- evrpc.c\
- http.c\
- \
- epoll.c signal.c
-
-fetch git
diff --git a/pkg/libffi/gen.lua b/pkg/libffi/gen.lua
@@ -0,0 +1,30 @@
+cflags{
+ '-I include',
+ '-I $dir',
+ '-I $outdir/include',
+ '-I $srcdir/include',
+}
+
+build('sed', '$outdir/include/ffi.h', '$srcdir/include/ffi.h.in', {
+ expr={
+ '-e s,@VERSION@,3.2.1,',
+ '-e s,@TARGET@,X86_64,',
+ '-e s,@HAVE_LONG_DOUBLE@,1,',
+ '-e s,@HAVE_LONG_DOUBLE_VARIANT@,0,',
+ '-e s,@FFI_EXEC_TRAMPOLINE_TABLE@,0,',
+ },
+})
+
+pkg.hdrs = {
+ copy('$outdir/include', '$srcdir/src/x86', {'ffitarget.h'}),
+ '$outdir/include/ffi.h',
+ install=true,
+}
+
+lib('libffi.a', [[src/(
+ prep_cif.c types.c raw_api.c java_raw_api.c closures.c
+ x86/(ffi64.c unix64.S ffi.c sysv.S)
+)]], {'$dir/headers'})
+file('lib/libffi.a', '644', '$outdir/libffi.a')
+
+fetch 'git'
diff --git a/pkg/libffi/gen.rc b/pkg/libffi/gen.rc
@@ -1,26 +0,0 @@
-cflags\
- -I include\
- -I '$dir' \
- -I '$outdir'/include\
- -I '$srcdir'/include
-
-build '$outdir'/include/ffi.h sed '$srcdir'/include/ffi.h.in ; exprs=(\
- -e s,@VERSION@,3.2.1,\
- -e s,@TARGET@,X86_64,\
- -e s,@HAVE_LONG_DOUBLE@,1,\
- -e s,@HAVE_LONG_DOUBLE_VARIANT@,0,\
- -e s,@FFI_EXEC_TRAMPOLINE_TABLE@,0,\
-) with expr $"exprs
-build '$outdir'/include/ffitarget.h copy '$srcdir'/src/x86/ffitarget.h
-
-hdrs=include/^(ffi.h ffitarget.h)
-phony headers '$outdir'/$hdrs
-for(hdr in $hdrs) file $hdr '$outdir'/$hdr 644
-
-lib libffi.a -d '$dir'/headers src/^(\
- prep_cif.c types.c raw_api.c java_raw_api.c closures.c\
- x86/^(ffi64.c unix64.S ffi.c sysv.S)\
-)
-file lib/libffi.a '$outdir'/libffi.a 644
-
-fetch git
diff --git a/pkg/libfuse/gen.lua b/pkg/libfuse/gen.lua
@@ -0,0 +1,24 @@
+cflags{
+ '-D FUSE_USE_VERSION=31',
+ '-D fuse_new_31=fuse_new',
+ '-I include',
+ '-I $dir',
+ '-I $srcdir/include',
+ '-I $srcdir/lib',
+}
+
+cc('lib/mount_util.c')
+
+exe('fusermount3', {'util/fusermount.c', 'lib/mount_util.c.o'})
+file('bin/fusermount3', '4755', '$outdir/fusermount3')
+man{'doc/fusermount3.1'}
+
+lib('libfuse.a', [[lib/(
+ fuse.c fuse_loop.c fuse_loop_mt.c
+ fuse_lowlevel.c fuse_opt.c
+ fuse_signals.c buffer.c cuse_lowlevel.c
+ helper.c modules/subdir.c
+ mount.c mount_util.c.o
+)]])
+
+fetch 'git'
diff --git a/pkg/libfuse/gen.rc b/pkg/libfuse/gen.rc
@@ -1,23 +0,0 @@
-cflags\
- -D 'FUSE_USE_VERSION=31' \
- -D 'fuse_new_31=fuse_new' \
- -I include\
- -I '$dir' \
- -I '$srcdir'/include\
- -I '$srcdir'/lib
-
-cc lib/mount_util.c
-
-exe fusermount3 util/fusermount.c lib/mount_util.c.o
-file bin/fusermount3 '$outdir'/fusermount3 4755
-man -d doc 1 fusermount3.1
-
-lib libfuse.a lib/^(\
- fuse.c fuse_loop.c fuse_loop_mt.c\
- fuse_lowlevel.c fuse_opt.c\
- fuse_signals.c buffer.c cuse_lowlevel.c\
- helper.c modules/subdir.c\
- mount.c mount_util.c.o\
-)
-
-fetch git
diff --git a/pkg/libinput/gen.lua b/pkg/libinput/gen.lua
@@ -0,0 +1,40 @@
+cflags{
+ '-std=c11', '-Wall',
+ '-I include',
+ '-I $dir',
+ '-I pkg/libevdev/src',
+ '-I pkg/mtdev/src/include',
+}
+
+pkg.deps = {
+ '$builddir/pkg/libevdev/fetch.stamp',
+ '$builddir/pkg/mtdev/fetch.stamp',
+}
+
+lib('libinput.a', [[
+ src/(
+ libinput.c
+ libinput-util.c
+ evdev.c
+ evdev-lid.c
+ evdev-middle-button.c
+ evdev-mt-touchpad.c
+ evdev-mt-touchpad-tap.c
+ evdev-mt-touchpad-buttons.c
+ evdev-mt-touchpad-edge-scroll.c
+ evdev-mt-touchpad-gestures.c
+ evdev-tablet.c
+ evdev-tablet-pad.c
+ evdev-tablet-pad-leds.c
+ filter.c
+ netlink-seat.c
+ path-seat.c
+ timer.c
+ )
+ $builddir/pkg/(
+ libevdev/libevdev.a
+ mtdev/libmtdev.a
+ )
+]])
+
+fetch 'git'
diff --git a/pkg/libinput/gen.rc b/pkg/libinput/gen.rc
@@ -1,33 +0,0 @@
-cflags\
- '-std=c11' -Wall\
- -I include\
- -I '$dir' \
- -I pkg/libevdev/src\
- -I pkg/mtdev/src/include
-
-phony deps '$builddir'/pkg/^(libevdev mtdev)^/fetch.stamp
-
-lib libinput.a -d '$dir'/deps src/^(\
- libinput.c\
- libinput-util.c\
- evdev.c\
- evdev-lid.c\
- evdev-middle-button.c\
- evdev-mt-touchpad.c\
- evdev-mt-touchpad-tap.c\
- evdev-mt-touchpad-buttons.c\
- evdev-mt-touchpad-edge-scroll.c\
- evdev-mt-touchpad-gestures.c\
- evdev-tablet.c\
- evdev-tablet-pad.c\
- evdev-tablet-pad-leds.c\
- filter.c\
- netlink-seat.c\
- path-seat.c\
- timer.c\
-) '$builddir'/pkg/^(\
- libevdev/libevdev.a\
- mtdev/libmtdev.a\
-)
-
-fetch git
diff --git a/pkg/libjpeg-turbo/gen.lua b/pkg/libjpeg-turbo/gen.lua
@@ -0,0 +1,20 @@
+cflags{'-I $dir'}
+
+lib('libjpeg-turbo.a', [[
+ jcapimin.c jcapistd.c jccoefct.c jccolor.c
+ jcdctmgr.c jchuff.c jcinit.c jcmainct.c jcmarker.c jcmaster.c
+ jcomapi.c jcparam.c jcphuff.c jcprepct.c jcsample.c jctrans.c
+ jdapimin.c jdapistd.c jdatadst.c jdatasrc.c jdcoefct.c jdcolor.c
+ jddctmgr.c jdhuff.c jdinput.c jdmainct.c jdmarker.c jdmaster.c
+ jdmerge.c jdphuff.c jdpostct.c jdsample.c jdtrans.c jerror.c
+ jfdctflt.c jfdctfst.c jfdctint.c jidctflt.c jidctfst.c jidctint.c
+ jidctred.c jquant1.c jquant2.c jutils.c jmemmgr.c jmemnobs.c
+ jaricom.c jcarith.c jdarith.c jsimd_none.c
+]])
+
+pkg.hdrs = {
+ copy('$outdir/include', '$srcdir', {'jmorecfg.h', 'jpeglib.h'}),
+ copy('$outdir/include', '$dir', {'jconfig.h'}),
+}
+
+fetch 'git'
diff --git a/pkg/libjpeg-turbo/gen.rc b/pkg/libjpeg-turbo/gen.rc
@@ -1,20 +0,0 @@
-cflags -I '$dir'
-
-lib libjpeg-turbo.a\
- jcapimin.c jcapistd.c jccoefct.c jccolor.c\
- jcdctmgr.c jchuff.c jcinit.c jcmainct.c jcmarker.c jcmaster.c\
- jcomapi.c jcparam.c jcphuff.c jcprepct.c jcsample.c jctrans.c\
- jdapimin.c jdapistd.c jdatadst.c jdatasrc.c jdcoefct.c jdcolor.c\
- jddctmgr.c jdhuff.c jdinput.c jdmainct.c jdmarker.c jdmaster.c\
- jdmerge.c jdphuff.c jdpostct.c jdsample.c jdtrans.c jerror.c\
- jfdctflt.c jfdctfst.c jfdctint.c jidctflt.c jidctfst.c jidctint.c\
- jidctred.c jquant1.c jquant2.c jutils.c jmemmgr.c jmemnobs.c\
- jaricom.c jcarith.c jdarith.c jsimd_none.c
-
-hdrs=(jmorecfg.h jpeglib.h)
-for(hdr in $hdrs)
- build '$outdir'/include/$hdr copy '$srcdir'/$hdr
-build '$outdir'/include/jconfig.h copy '$dir'/jconfig.h
-phony headers '$outdir'/include/^($hdrs jconfig.h)
-
-fetch git
diff --git a/pkg/libnl/gen.lua b/pkg/libnl/gen.lua
@@ -0,0 +1,61 @@
+cflags{
+ '-D _GNU_SOURCE',
+ [[-D 'SYSCONFDIR="/etc/libnl"']],
+ '-I include',
+ '-I $dir',
+ '-I $outdir/include',
+ '-I $srcdir/include',
+ '-I $srcdir/include/linux-private',
+}
+
+build('sed', '$outdir/include/netlink/version.h', '$srcdir/include/netlink/version.h.in', {
+ expr={
+ '-e s,@PACKAGE_STRING@,\'libnl 3.3.0\',',
+ '-e s,@PACKAGE_VERSION@,3.3.0,',
+ '-e s,@MAJ_VERSION@,3,',
+ '-e s,@MIN_VERSION@,3,',
+ '-e s,@MIC_VERSION@,0,',
+ '-e s,@LT_CURRENT@,225,',
+ '-e s,@LT_REVISION@,0,',
+ '-e s,@LT_AGE@,25,',
+ },
+})
+
+pkg.hdrs = {
+ copy('$outdir/include/netlink', '$srcdir/include/netlink', {
+ 'addr.h',
+ 'attr.h',
+ 'cache.h',
+ 'cache-api.h',
+ 'data.h',
+ 'errno.h',
+ 'handlers.h',
+ 'hash.h',
+ 'hashtable.h',
+ 'list.h',
+ 'msg.h',
+ 'netlink.h',
+ 'netlink-compat.h',
+ 'netlink-kernel.h',
+ 'object.h',
+ 'object-api.h',
+ 'socket.h',
+ 'types.h',
+ 'utils.h',
+ 'genl/ctrl.h',
+ 'genl/family.h',
+ 'genl/genl.h',
+ 'genl/mngt.h',
+ }),
+ '$outdir/include/netlink/version.h',
+}
+
+lib('libnl-3.a', [[lib/(
+ addr.c attr.c cache.c cache_mngr.c cache_mngt.c data.c
+ error.c handlers.c msg.c nl.c object.c socket.c utils.c
+ version.c hash.c hashtable.c
+)]], {'$dir/headers'})
+
+lib('libnl-genl-3.a', 'lib/genl/(ctrl.c family.c genl.c mngt.c)', {'$dir/headers'})
+
+fetch 'git'
diff --git a/pkg/libnl/gen.rc b/pkg/libnl/gen.rc
@@ -1,55 +0,0 @@
-cflags\
- -D _GNU_SOURCE\
- -D 'SYSCONFDIR=''"/etc/libnl"''' \
- -I include\
- -I '$dir' \
- -I '$outdir'/include\
- -I '$srcdir'/include\
- -I '$srcdir'/include/linux-private
-
-hdrs=include/netlink/^(\
- addr.h\
- attr.h\
- cache.h\
- cache-api.h\
- data.h\
- errno.h\
- handlers.h\
- hash.h\
- hashtable.h\
- list.h\
- msg.h\
- netlink.h\
- netlink-compat.h\
- netlink-kernel.h\
- object.h\
- object-api.h\
- socket.h\
- types.h\
- utils.h\
- genl/^(ctrl.h family.h genl.h mngt.h)\
-)
-for(hdr in $hdrs) build '$outdir'/$hdr copy '$srcdir'/$hdr
-build '$outdir'/include/netlink/version.h sed '$srcdir'/include/netlink/version.h.in ; exprs=(\
- -e s,@PACKAGE_STRING@,'''libnl 3.3.0''',\
- -e s,@PACKAGE_VERSION@,3.3.0,\
- -e s,@MAJ_VERSION@,3,\
- -e s,@MIN_VERSION@,3,\
- -e s,@MIC_VERSION@,0,\
- -e s,@LT_CURRENT@,225,\
- -e s,@LT_REVISION@,0,\
- -e s,@LT_AGE@,25,\
-) with expr $"exprs
-hdrs=($hdrs include/netlink/version.h)
-phony headers '$outdir'/$hdrs
-
-lib libnl-3.a -d '$dir'/headers lib/^(\
- addr.c attr.c cache.c cache_mngr.c cache_mngt.c data.c\
- error.c handlers.c msg.c nl.c object.c socket.c utils.c\
- version.c hash.c hashtable.c\
-)
-
-lib libnl-genl-3.a -d '$dir'/headers\
- lib/genl/^(ctrl.c family.c genl.c mngt.c)
-
-fetch git
diff --git a/pkg/libpciaccess/gen.lua b/pkg/libpciaccess/gen.lua
@@ -0,0 +1,22 @@
+cflags{
+ '-Wno-deprecated-declarations',
+ '-D HAVE_CONFIG_H',
+ '-I include',
+ '-I $dir',
+ '-I $srcdir/include',
+}
+
+lib('libpciaccess.a', [[src/(
+ common_bridge.c
+ common_iterator.c
+ common_init.c
+ common_interface.c
+ common_io.c
+ common_capability.c
+ common_device_name.c
+ common_map.c
+ common_vgaarb.c
+ linux_sysfs.c linux_devmem.c
+)]])
+
+fetch 'git'
diff --git a/pkg/libpciaccess/gen.rc b/pkg/libpciaccess/gen.rc
@@ -1,21 +0,0 @@
-cflags\
- -Wno-deprecated-declarations\
- -D HAVE_CONFIG_H\
- -I include\
- -I '$dir' \
- -I '$srcdir'/include
-
-lib libpciaccess.a src/^(\
- common_bridge.c\
- common_iterator.c\
- common_init.c\
- common_interface.c\
- common_io.c\
- common_capability.c\
- common_device_name.c\
- common_map.c\
- common_vgaarb.c\
- linux_sysfs.c linux_devmem.c\
-)
-
-fetch git
diff --git a/pkg/libpng/gen.lua b/pkg/libpng/gen.lua
@@ -0,0 +1,41 @@
+cflags{
+ '-D HAVE_CONFIG_H',
+ '-I include',
+ '-I $dir',
+ '-I $outdir/include',
+ '-I $builddir/pkg/zlib/include',
+}
+
+build('awk', '$outdir/pnglibconf.tf4', {
+ '$srcdir/pngconf.h',
+ '$srcdir/scripts/pnglibconf.dfa',
+ '$srcdir/pngusr.dfa',
+ '|', '$srcdir/scripts/options.awk',
+}, {expr='-f $srcdir/scripts/options.awk out=/dev/stdout version=search'})
+build('awk', '$outdir/pnglibconf.c', '$outdir/pnglibconf.tf4', {
+ expr='-f $srcdir/scripts/options.awk out=/dev/stdout',
+})
+build('cc', '$outdir/pnglibconf.tf1', {'$outdir/pnglibconf.c', '||', 'pkg/zlib/headers'}, {
+ cflags='$cflags -E -MT $outdir/pnglibconf.tf1',
+})
+build('awk', '$outdir/include/pnglibconf.h', '$outdir/pnglibconf.tf1', {
+ expr='-f $srcdir/scripts/dfn.awk out=/dev/stdout',
+})
+
+pkg.hdrs = {
+ copy('$outdir/include', '$srcdir', {'png.h', 'pngconf.h'}),
+ '$outdir/include/pnglibconf.h',
+ install=true,
+}
+pkg.deps = {'$outdir/include/pnglibconf.h', 'pkg/zlib/headers'}
+
+lib('libpng.a', [[
+ png.c pngerror.c
+ pngget.c pngmem.c pngpread.c pngread.c pngrio.c pngrtran.c pngrutil.c
+ pngset.c pngtrans.c pngwio.c pngwrite.c pngwtran.c pngwutil.c
+ intel/(intel_init.c filter_sse2_intrinsics.c)
+ $builddir/pkg/zlib/libz.a
+]])
+file('lib/libpng.a', '644', '$outdir/libpng.a')
+
+fetch 'git'
diff --git a/pkg/libpng/gen.rc b/pkg/libpng/gen.rc
@@ -1,34 +0,0 @@
-cflags\
- -D HAVE_CONFIG_H\
- -I include\
- -I '$dir' \
- -I '$outdir'/include\
- -I '$builddir'/pkg/zlib/include
-
-build '$outdir'/pnglibconf.tf4 awk '$srcdir'/^(pngconf.h scripts/pnglibconf.dfa pngusr.dfa) ; with\
- expr '-f $srcdir/scripts/options.awk out=/dev/stdout version=search'
-build '$outdir'/pnglibconf.c awk '$outdir'/pnglibconf.tf4 ; with\
- expr '-f $srcdir/scripts/options.awk out=/dev/stdout'
-build '$outdir'/pnglibconf.tf1 cc '$outdir'/pnglibconf.c '||' pkg/zlib/headers ; with\
- cflags '$cflags -E -MT $outdir/pnglibconf.tf1'
-build '$outdir'/include/pnglibconf.h awk '$outdir'/pnglibconf.tf1 ; with\
- expr '-f $srcdir/scripts/dfn.awk out=/dev/stdout'
-
-hdrs=(png.h pngconf.h)
-for(hdr in $hdrs) {
- build '$outdir'/include/$hdr copy '$srcdir'/$hdr
- file include/$hdr '$srcdir'/$hdr 644
-}
-phony headers '$outdir'/include/^($hdrs pnglibconf.h)
-file include/pnglibconf.h '$outdir'/include/pnglibconf.h 644
-
-phony deps '$outdir'/include/pnglibconf.h pkg/zlib/headers
-lib libpng.a -d '$dir'/deps\
- png.c pngerror.c\
- pngget.c pngmem.c pngpread.c pngread.c pngrio.c pngrtran.c pngrutil.c\
- pngset.c pngtrans.c pngwio.c pngwrite.c pngwtran.c pngwutil.c\
- intel/^(intel_init.c filter_sse2_intrinsics.c)\
- '$builddir'/pkg/zlib/libz.a
-file lib/libpng.a '$outdir'/libpng.a 644
-
-fetch git
diff --git a/pkg/libressl/gen.lua b/pkg/libressl/gen.lua
@@ -0,0 +1,315 @@
+cflags{
+ '-Wno-attributes',
+ '-D LIBRESSL_INTERNAL',
+ '-D OPENSSL_NO_HW_PADLOCK',
+ '-D OPENSSL_NO_ASM',
+ '-D __BEGIN_HIDDEN_DECLS=',
+ '-D __END_HIDDEN_DECLS=',
+ [[-D '__warn_references(sym,msg)=']],
+ '-I $srcdir/include',
+ '-I $srcdir/crypto',
+ '-I $srcdir/crypto/asn1',
+ '-I $srcdir/crypto/bn',
+ '-I $srcdir/crypto/evp',
+ '-I $srcdir/crypto/modes',
+ '-I pkg/openbsd/include',
+}
+
+pkg.hdrs = {
+ copy('$outdir/include', '$srcdir/include', {'tls.h'}),
+ copy('$outdir/include/openssl', '$srcdir/include/openssl', {
+ 'aes.h',
+ 'asn1.h',
+ 'asn1_mac.h',
+ 'asn1t.h',
+ 'blowfish.h',
+ 'bio.h',
+ 'bn.h',
+ 'buffer.h',
+ 'camellia.h',
+ 'cast.h',
+ 'chacha.h',
+ 'cmac.h',
+ 'comp.h',
+ 'conf.h',
+ 'conf_api.h',
+ 'crypto.h',
+ 'curve25519.h',
+ 'des.h',
+ 'dh.h',
+ 'dsa.h',
+ 'dso.h',
+ 'ec.h',
+ 'ecdh.h',
+ 'ecdsa.h',
+ 'engine.h',
+ 'err.h',
+ 'evp.h',
+ 'gost.h',
+ 'hmac.h',
+ 'idea.h',
+ 'lhash.h',
+ 'md4.h',
+ 'md5.h',
+ 'modes.h',
+ 'objects.h',
+ 'ocsp.h',
+ 'opensslfeatures.h',
+ 'opensslv.h',
+ 'ossl_typ.h',
+ 'pem.h',
+ 'pem2.h',
+ 'pkcs12.h',
+ 'pkcs7.h',
+ 'poly1305.h',
+ 'rand.h',
+ 'rc2.h',
+ 'rc4.h',
+ 'ripemd.h',
+ 'rsa.h',
+ 'sha.h',
+ 'safestack.h',
+ 'stack.h',
+ 'ts.h',
+ 'txt_db.h',
+ 'ui.h',
+ 'ui_compat.h',
+ 'whrlpool.h',
+ 'x509.h',
+ 'x509_vfy.h',
+ 'x509v3.h',
+
+ 'opensslconf.h',
+ 'obj_mac.h',
+
+ 'srtp.h',
+ 'ssl.h',
+ 'ssl2.h',
+ 'ssl3.h',
+ 'ssl23.h',
+ 'tls1.h',
+ 'dtls1.h',
+ }),
+ install=true,
+}
+
+-- src/crypto/Makefile.am
+lib('libcrypto.a', [[crypto/(
+ cryptlib.c malloc-wrapper.c mem_dbg.c cversion.c ex_data.c cpt_err.c
+ o_time.c o_str.c o_init.c
+ mem_clr.c
+ aes/(
+ aes_misc.c aes_ecb.c aes_cfb.c aes_ofb.c
+ aes_ctr.c aes_ige.c aes_wrap.c
+ )
+ asn1/(
+ a_object.c a_bitstr.c a_time.c a_int.c a_octet.c
+ a_print.c a_type.c a_dup.c a_d2i_fp.c a_i2d_fp.c
+ a_enum.c a_utf8.c a_sign.c a_digest.c a_verify.c a_mbstr.c a_strex.c
+ x_algor.c x_val.c x_pubkey.c x_sig.c x_req.c x_attrib.c x_bignum.c
+ x_long.c x_name.c x_x509.c x_x509a.c x_crl.c x_info.c x_spki.c nsseq.c
+ x_nx509.c d2i_pu.c d2i_pr.c i2d_pu.c i2d_pr.c
+ t_req.c t_x509.c t_x509a.c t_crl.c t_pkey.c t_spki.c t_bitst.c
+ tasn_new.c tasn_fre.c tasn_enc.c tasn_dec.c tasn_utl.c tasn_typ.c
+ tasn_prn.c ameth_lib.c
+ f_int.c f_string.c n_pkey.c
+ f_enum.c x_pkey.c a_bool.c x_exten.c bio_asn1.c bio_ndef.c asn_mime.c
+ asn1_gen.c asn1_par.c asn1_lib.c asn1_err.c a_bytes.c a_strnid.c
+ evp_asn1.c asn_pack.c p5_pbe.c p5_pbev2.c p8_pkey.c asn_moid.c
+ a_set.c
+ a_time_tm.c
+ )
+ bf/(bf_skey.c bf_ecb.c bf_cfb64.c bf_ofb64.c)
+ bio/(
+ bio_lib.c bio_cb.c bio_err.c
+ bss_mem.c bss_null.c bss_fd.c
+ bss_file.c bss_sock.c bss_conn.c
+ bf_null.c bf_buff.c b_print.c b_dump.c
+ b_posix.c b_sock.c bss_acpt.c bf_nbio.c bss_log.c bss_bio.c
+ bss_dgram.c
+ )
+ bn/(
+ bn_add.c bn_div.c bn_exp.c bn_lib.c bn_ctx.c bn_mul.c bn_mod.c
+ bn_print.c bn_rand.c bn_shift.c bn_word.c bn_blind.c
+ bn_kron.c bn_sqrt.c bn_gcd.c bn_prime.c bn_err.c bn_sqr.c
+ bn_recp.c bn_mont.c bn_mpi.c bn_exp2.c bn_gf2m.c bn_nist.c
+ bn_depr.c bn_const.c bn_x931p.c
+ )
+ buffer/(buffer.c buf_err.c buf_str.c)
+ camellia/(cmll_cfb.c cmll_ctr.c cmll_ecb.c cmll_ofb.c)
+ cast/(c_skey.c c_ecb.c c_enc.c c_cfb64.c c_ofb64.c)
+ chacha/chacha.c
+ cmac/(cmac.c cm_ameth.c cm_pmeth.c)
+ comp/(comp_lib.c comp_err.c c_rle.c c_zlib.c)
+ conf/(
+ conf_err.c conf_lib.c conf_api.c conf_def.c conf_mod.c
+ conf_mall.c conf_sap.c
+ )
+ curve25519/(curve25519.c curve25519-generic.c)
+ des/(
+ cbc_cksm.c cbc_enc.c cfb64enc.c cfb_enc.c
+ ecb3_enc.c ecb_enc.c enc_read.c enc_writ.c
+ fcrypt.c ofb64enc.c ofb_enc.c pcbc_enc.c
+ qud_cksm.c rand_key.c set_key.c xcbc_enc.c
+ str2key.c cfb64ede.c ofb64ede.c ede_cbcm_enc.c
+ )
+ dh/(
+ dh_asn1.c dh_gen.c dh_key.c dh_lib.c dh_check.c dh_err.c dh_depr.c
+ dh_ameth.c dh_pmeth.c dh_prn.c
+ )
+ dsa/(
+ dsa_gen.c dsa_key.c dsa_lib.c dsa_asn1.c dsa_vrf.c dsa_sign.c
+ dsa_err.c dsa_ossl.c dsa_depr.c dsa_ameth.c dsa_pmeth.c dsa_prn.c
+ )
+ dso/(
+ dso_dlfcn.c dso_err.c dso_lib.c dso_null.c
+ dso_openssl.c
+ )
+ ec/(
+ ec_lib.c ecp_smpl.c ecp_mont.c ecp_nist.c ec_cvt.c ec_mult.c
+ ec_err.c ec_curve.c ec_check.c ec_print.c ec_asn1.c ec_key.c
+ ec2_smpl.c ec2_mult.c ec_ameth.c ec_pmeth.c eck_prn.c
+ ecp_oct.c ec2_oct.c ec_oct.c
+ )
+ ecdh/(ech_lib.c ech_key.c ech_err.c)
+ ecdsa/(ecs_lib.c ecs_asn1.c ecs_ossl.c ecs_sign.c ecs_vrf.c ecs_err.c)
+ engine/(
+ eng_err.c eng_lib.c eng_list.c eng_init.c eng_ctrl.c
+ eng_table.c eng_pkey.c eng_fat.c eng_all.c
+ tb_rsa.c tb_dsa.c tb_ecdsa.c tb_dh.c tb_ecdh.c tb_rand.c tb_store.c
+ tb_cipher.c tb_digest.c tb_pkmeth.c tb_asnmth.c
+ eng_openssl.c eng_cnf.c eng_dyn.c
+ )
+ err/(err.c err_all.c err_prn.c)
+ evp/(
+ encode.c digest.c evp_enc.c evp_key.c
+ e_des.c e_bf.c e_idea.c e_des3.c e_camellia.c
+ e_rc4.c e_aes.c names.c
+ e_xcbc_d.c e_rc2.c e_cast.c
+ m_null.c m_md4.c m_md5.c m_sha1.c m_wp.c
+ m_dss.c m_dss1.c m_ripemd.c m_ecdsa.c
+ p_open.c p_seal.c p_sign.c p_verify.c p_lib.c p_enc.c p_dec.c
+ bio_md.c bio_b64.c bio_enc.c evp_err.c e_null.c
+ c_all.c evp_lib.c
+ evp_pkey.c evp_pbe.c p5_crpt.c p5_crpt2.c
+ e_old.c pmeth_lib.c pmeth_fn.c pmeth_gn.c m_sigver.c
+ e_aes_cbc_hmac_sha1.c e_rc4_hmac_md5.c
+ e_chacha.c evp_aead.c e_chacha20poly1305.c
+ e_gost2814789.c m_gost2814789.c m_gostr341194.c m_streebog.c
+ m_md5_sha1.c
+ )
+ gost/(
+ gost2814789.c gost89_keywrap.c gost89_params.c gost89imit_ameth.c
+ gost89imit_pmeth.c gost_asn1.c gost_err.c gostr341001.c
+ gostr341001_ameth.c gostr341001_key.c gostr341001_params.c
+ gostr341001_pmeth.c gostr341194.c streebog.c
+ )
+ hmac/(hmac.c hm_ameth.c hm_pmeth.c)
+ idea/(i_cbc.c i_cfb64.c i_ofb64.c i_ecb.c i_skey.c)
+ lhash/(lhash.c lh_stats.c)
+ md4/(md4_dgst.c md4_one.c)
+ md5/(md5_dgst.c md5_one.c)
+ modes/(cbc128.c ctr128.c cts128.c cfb128.c ofb128.c gcm128.c ccm128.c xts128.c)
+ objects/(o_names.c obj_dat.c obj_lib.c obj_err.c obj_xref.c)
+ ocsp/(
+ ocsp_asn.c ocsp_ext.c ocsp_ht.c ocsp_lib.c ocsp_cl.c
+ ocsp_srv.c ocsp_prn.c ocsp_vfy.c ocsp_err.c
+ )
+ pem/(
+ pem_sign.c pem_seal.c pem_info.c pem_lib.c pem_all.c pem_err.c
+ pem_x509.c pem_xaux.c pem_oth.c pem_pk8.c pem_pkey.c pvkfmt.c
+ )
+ pkcs12/(
+ p12_add.c p12_asn.c p12_attr.c p12_crpt.c p12_crt.c p12_decr.c
+ p12_init.c p12_key.c p12_kiss.c p12_mutl.c
+ p12_utl.c p12_npas.c pk12err.c p12_p8d.c p12_p8e.c
+ )
+ pkcs7/(
+ pk7_asn1.c pk7_lib.c pkcs7err.c pk7_doit.c pk7_smime.c pk7_attr.c
+ pk7_mime.c bio_pk7.c
+ )
+ poly1305/poly1305.c
+ rand/(randfile.c rand_lib.c rand_err.c)
+ rc2/(rc2_ecb.c rc2_skey.c rc2_cbc.c rc2cfb64.c rc2ofb64.c)
+ ripemd/(rmd_dgst.c rmd_one.c)
+ rsa/(
+ rsa_eay.c rsa_gen.c rsa_lib.c rsa_sign.c rsa_saos.c rsa_err.c
+ rsa_pk1.c rsa_ssl.c rsa_none.c rsa_oaep.c rsa_chk.c
+ rsa_pss.c rsa_x931.c rsa_asn1.c rsa_depr.c rsa_ameth.c rsa_prn.c
+ rsa_pmeth.c rsa_crpt.c
+ )
+ sha/(sha1dgst.c sha1_one.c sha256.c sha512.c)
+ stack/stack.c
+ ts/(
+ ts_err.c ts_req_utils.c ts_req_print.c ts_rsp_utils.c ts_rsp_print.c
+ ts_rsp_sign.c ts_rsp_verify.c ts_verify_ctx.c ts_lib.c ts_conf.c
+ ts_asn1.c
+ )
+ txt_db/txt_db.c
+ ui/(ui_err.c ui_lib.c ui_openssl.c ui_util.c)
+ whrlpool/wp_dgst.c
+ x509/(
+ x509_def.c x509_d2.c x509_r2x.c x509_cmp.c
+ x509_obj.c x509_req.c x509spki.c x509_vfy.c
+ x509_set.c x509cset.c x509rset.c x509_err.c
+ x509name.c x509_v3.c x509_ext.c x509_att.c
+ x509type.c x509_lu.c x_all.c x509_txt.c
+ x509_trs.c by_file.c by_dir.c by_mem.c x509_vpm.c
+ )
+ x509v3/(
+ v3_bcons.c v3_bitst.c v3_conf.c v3_extku.c v3_ia5.c v3_lib.c
+ v3_prn.c v3_utl.c v3err.c v3_genn.c v3_alt.c v3_skey.c v3_akey.c v3_pku.c
+ v3_int.c v3_enum.c v3_sxnet.c v3_cpols.c v3_crld.c v3_purp.c v3_info.c
+ v3_ocsp.c v3_akeya.c v3_pmaps.c v3_pcons.c v3_ncons.c v3_pcia.c v3_pci.c
+ pcy_cache.c pcy_node.c pcy_data.c pcy_map.c pcy_tree.c pcy_lib.c
+ )
+
+ aes/(aes_core.c aes_cbc.c)
+ bf/bf_enc.c
+ bn/bn_asm.c
+ camellia/(camellia.c cmll_cbc.c cmll_misc.c)
+ des/(des_enc.c fcrypt_b.c)
+ rc4/(rc4_enc.c rc4_skey.c)
+ whrlpool/wp_block.c
+) $builddir/pkg/openbsd/libbsd.a]])
+file('lib/libcrypto.a', '644', '$outdir/libcrypto.a')
+
+-- src/ssl/Makefile.am
+lib('libssl.a', [[ssl/(
+ ssl_srvr.c ssl_clnt.c s3_lib.c ssl_pkt.c ssl_both.c
+ t1_meth.c t1_srvr.c t1_clnt.c t1_lib.c t1_enc.c t1_hash.c
+ d1_meth.c d1_srvr.c d1_clnt.c d1_lib.c d1_pkt.c
+ d1_both.c d1_enc.c d1_srtp.c
+ ssl_lib.c ssl_cert.c ssl_sess.c
+ ssl_ciph.c ssl_stat.c ssl_rsa.c
+ ssl_asn1.c ssl_txt.c ssl_algs.c
+ bio_ssl.c ssl_err.c t1_reneg.c
+ ssl_packet.c ssl_versions.c pqueue.c
+
+ s3_cbc.c
+ bs_ber.c bs_cbb.c bs_cbs.c
+) libcrypto.a.d]])
+file('lib/libssl.a', '644', '$outdir/libssl.a')
+
+-- src/libtls/Makefile.am
+lib('libtls.a', [[tls/(
+ tls.c tls_bio_cb.c tls_client.c tls_config.c tls_conninfo.c tls_peer.c
+ tls_server.c tls_util.c tls_ocsp.c tls_verify.c
+) libssl.a.d libcrypto.a.d]])
+file('lib/libtls.a', '644', '$outdir/libtls.a')
+
+exe('openssl', [[apps/openssl/(
+ apps.c apps_posix.c asn1pars.c ca.c certhash.c ciphers.c crl.c
+ crl2p7.c dgst.c dh.c dhparam.c dsa.c dsaparam.c ec.c ecparam.c enc.c
+ errstr.c gendh.c gendsa.c genpkey.c genrsa.c nseq.c ocsp.c
+ openssl.c passwd.c pkcs12.c pkcs7.c pkcs8.c pkey.c pkeyparam.c
+ pkeyutl.c prime.c rand.c req.c rsa.c rsautl.c s_cb.c s_client.c
+ s_server.c s_socket.c s_time.c sess_id.c smime.c speed.c spkac.c ts.c
+ verify.c version.c x509.c
+) libssl.a.d libcrypto.a.d]])
+file('bin/openssl', '755', '$outdir/openssl')
+man{'apps/openssl/openssl.1'}
+
+file('share/libressl/cert.pem', '644', '$srcdir/apps/openssl/cert.pem')
+
+fetch 'curl'
diff --git a/pkg/libressl/gen.rc b/pkg/libressl/gen.rc
@@ -1,312 +0,0 @@
-cflags\
- -Wno-attributes\
- -D LIBRESSL_INTERNAL\
- -D OPENSSL_NO_HW_PADLOCK\
- -D OPENSSL_NO_ASM\
- -D '__BEGIN_HIDDEN_DECLS=' \
- -D '__END_HIDDEN_DECLS=' \
- -D '''__warn_references(sym,msg)=''' \
- -I '$srcdir'/include\
- -I '$srcdir'/crypto\
- -I '$srcdir'/crypto/asn1\
- -I '$srcdir'/crypto/bn\
- -I '$srcdir'/crypto/evp\
- -I '$srcdir'/crypto/modes\
- -I pkg/openbsd/include
-
-hdrs=include/^(\
- tls.h\
- openssl/^(\
- aes.h\
- asn1.h\
- asn1_mac.h\
- asn1t.h\
- blowfish.h\
- bio.h\
- bn.h\
- buffer.h\
- camellia.h\
- cast.h\
- chacha.h\
- cmac.h\
- comp.h\
- conf.h\
- conf_api.h\
- crypto.h\
- curve25519.h\
- des.h\
- dh.h\
- dsa.h\
- dso.h\
- ec.h\
- ecdh.h\
- ecdsa.h\
- engine.h\
- err.h\
- evp.h\
- gost.h\
- hmac.h\
- idea.h\
- lhash.h\
- md4.h\
- md5.h\
- modes.h\
- objects.h\
- ocsp.h\
- opensslfeatures.h\
- opensslv.h\
- ossl_typ.h\
- pem.h\
- pem2.h\
- pkcs12.h\
- pkcs7.h\
- poly1305.h\
- rand.h\
- rc2.h\
- rc4.h\
- ripemd.h\
- rsa.h\
- sha.h\
- safestack.h\
- stack.h\
- ts.h\
- txt_db.h\
- ui.h\
- ui_compat.h\
- whrlpool.h\
- x509.h\
- x509_vfy.h\
- x509v3.h\
- \
- opensslconf.h obj_mac.h\
- \
- srtp.h ssl.h ssl2.h ssl3.h ssl23.h tls1.h dtls1.h\
- )\
-)
-for(hdr in $hdrs) {
- build '$outdir'/$hdr copy '$srcdir'/$hdr
- file $hdr '$srcdir'/$hdr 644
-}
-phony headers '$outdir'/$hdrs
-
-# src/crypto/Makefile.am
-lib libcrypto.a crypto/^(\
- cryptlib.c malloc-wrapper.c mem_dbg.c cversion.c ex_data.c cpt_err.c\
- o_time.c o_str.c o_init.c\
- mem_clr.c\
- aes/^(\
- aes_misc.c aes_ecb.c aes_cfb.c aes_ofb.c\
- aes_ctr.c aes_ige.c aes_wrap.c\
- )\
- asn1/^(\
- a_object.c a_bitstr.c a_time.c a_int.c a_octet.c\
- a_print.c a_type.c a_dup.c a_d2i_fp.c a_i2d_fp.c\
- a_enum.c a_utf8.c a_sign.c a_digest.c a_verify.c a_mbstr.c a_strex.c\
- x_algor.c x_val.c x_pubkey.c x_sig.c x_req.c x_attrib.c x_bignum.c\
- x_long.c x_name.c x_x509.c x_x509a.c x_crl.c x_info.c x_spki.c nsseq.c\
- x_nx509.c d2i_pu.c d2i_pr.c i2d_pu.c i2d_pr.c\
- t_req.c t_x509.c t_x509a.c t_crl.c t_pkey.c t_spki.c t_bitst.c\
- tasn_new.c tasn_fre.c tasn_enc.c tasn_dec.c tasn_utl.c tasn_typ.c\
- tasn_prn.c ameth_lib.c\
- f_int.c f_string.c n_pkey.c\
- f_enum.c x_pkey.c a_bool.c x_exten.c bio_asn1.c bio_ndef.c asn_mime.c\
- asn1_gen.c asn1_par.c asn1_lib.c asn1_err.c a_bytes.c a_strnid.c\
- evp_asn1.c asn_pack.c p5_pbe.c p5_pbev2.c p8_pkey.c asn_moid.c\
- a_set.c\
- a_time_tm.c\
- )\
- bf/^(bf_skey.c bf_ecb.c bf_cfb64.c bf_ofb64.c)\
- bio/^(\
- bio_lib.c bio_cb.c bio_err.c\
- bss_mem.c bss_null.c bss_fd.c\
- bss_file.c bss_sock.c bss_conn.c\
- bf_null.c bf_buff.c b_print.c b_dump.c\
- b_posix.c b_sock.c bss_acpt.c bf_nbio.c bss_log.c bss_bio.c\
- bss_dgram.c\
- )\
- bn/^(\
- bn_add.c bn_div.c bn_exp.c bn_lib.c bn_ctx.c bn_mul.c bn_mod.c\
- bn_print.c bn_rand.c bn_shift.c bn_word.c bn_blind.c\
- bn_kron.c bn_sqrt.c bn_gcd.c bn_prime.c bn_err.c bn_sqr.c\
- bn_recp.c bn_mont.c bn_mpi.c bn_exp2.c bn_gf2m.c bn_nist.c\
- bn_depr.c bn_const.c bn_x931p.c\
- )\
- buffer/^(buffer.c buf_err.c buf_str.c)\
- camellia/^(cmll_cfb.c cmll_ctr.c cmll_ecb.c cmll_ofb.c)\
- cast/^(c_skey.c c_ecb.c c_enc.c c_cfb64.c c_ofb64.c)\
- chacha/chacha.c\
- cmac/^(cmac.c cm_ameth.c cm_pmeth.c)\
- comp/^(comp_lib.c comp_err.c c_rle.c c_zlib.c)\
- conf/^(\
- conf_err.c conf_lib.c conf_api.c conf_def.c conf_mod.c\
- conf_mall.c conf_sap.c\
- )\
- curve25519/^(curve25519.c curve25519-generic.c)\
- des/^(\
- cbc_cksm.c cbc_enc.c cfb64enc.c cfb_enc.c\
- ecb3_enc.c ecb_enc.c enc_read.c enc_writ.c\
- fcrypt.c ofb64enc.c ofb_enc.c pcbc_enc.c\
- qud_cksm.c rand_key.c set_key.c xcbc_enc.c\
- str2key.c cfb64ede.c ofb64ede.c ede_cbcm_enc.c\
- )\
- dh/^(\
- dh_asn1.c dh_gen.c dh_key.c dh_lib.c dh_check.c dh_err.c dh_depr.c\
- dh_ameth.c dh_pmeth.c dh_prn.c\
- )\
- dsa/^(\
- dsa_gen.c dsa_key.c dsa_lib.c dsa_asn1.c dsa_vrf.c dsa_sign.c\
- dsa_err.c dsa_ossl.c dsa_depr.c dsa_ameth.c dsa_pmeth.c dsa_prn.c\
- )\
- dso/^(\
- dso_dlfcn.c dso_err.c dso_lib.c dso_null.c\
- dso_openssl.c\
- )\
- ec/^(\
- ec_lib.c ecp_smpl.c ecp_mont.c ecp_nist.c ec_cvt.c ec_mult.c\
- ec_err.c ec_curve.c ec_check.c ec_print.c ec_asn1.c ec_key.c\
- ec2_smpl.c ec2_mult.c ec_ameth.c ec_pmeth.c eck_prn.c\
- ecp_oct.c ec2_oct.c ec_oct.c\
- )\
- ecdh/^(ech_lib.c ech_key.c ech_err.c)\
- ecdsa/^(ecs_lib.c ecs_asn1.c ecs_ossl.c ecs_sign.c ecs_vrf.c ecs_err.c)\
- engine/^(\
- eng_err.c eng_lib.c eng_list.c eng_init.c eng_ctrl.c\
- eng_table.c eng_pkey.c eng_fat.c eng_all.c\
- tb_rsa.c tb_dsa.c tb_ecdsa.c tb_dh.c tb_ecdh.c tb_rand.c tb_store.c\
- tb_cipher.c tb_digest.c tb_pkmeth.c tb_asnmth.c\
- eng_openssl.c eng_cnf.c eng_dyn.c\
- )\
- err/^(err.c err_all.c err_prn.c)\
- evp/^(\
- encode.c digest.c evp_enc.c evp_key.c\
- e_des.c e_bf.c e_idea.c e_des3.c e_camellia.c\
- e_rc4.c e_aes.c names.c\
- e_xcbc_d.c e_rc2.c e_cast.c\
- m_null.c m_md4.c m_md5.c m_sha1.c m_wp.c\
- m_dss.c m_dss1.c m_ripemd.c m_ecdsa.c\
- p_open.c p_seal.c p_sign.c p_verify.c p_lib.c p_enc.c p_dec.c\
- bio_md.c bio_b64.c bio_enc.c evp_err.c e_null.c\
- c_all.c evp_lib.c\
- evp_pkey.c evp_pbe.c p5_crpt.c p5_crpt2.c\
- e_old.c pmeth_lib.c pmeth_fn.c pmeth_gn.c m_sigver.c\
- e_aes_cbc_hmac_sha1.c e_rc4_hmac_md5.c\
- e_chacha.c evp_aead.c e_chacha20poly1305.c\
- e_gost2814789.c m_gost2814789.c m_gostr341194.c m_streebog.c\
- m_md5_sha1.c\
- )\
- gost/^(\
- gost2814789.c gost89_keywrap.c gost89_params.c gost89imit_ameth.c\
- gost89imit_pmeth.c gost_asn1.c gost_err.c gostr341001.c\
- gostr341001_ameth.c gostr341001_key.c gostr341001_params.c\
- gostr341001_pmeth.c gostr341194.c streebog.c\
- )\
- hmac/^(hmac.c hm_ameth.c hm_pmeth.c)\
- idea/^(i_cbc.c i_cfb64.c i_ofb64.c i_ecb.c i_skey.c)\
- lhash/^(lhash.c lh_stats.c)\
- md4/^(md4_dgst.c md4_one.c)\
- md5/^(md5_dgst.c md5_one.c)\
- modes/^(cbc128.c ctr128.c cts128.c cfb128.c ofb128.c gcm128.c ccm128.c xts128.c)\
- objects/^(o_names.c obj_dat.c obj_lib.c obj_err.c obj_xref.c)\
- ocsp/^(\
- ocsp_asn.c ocsp_ext.c ocsp_ht.c ocsp_lib.c ocsp_cl.c\
- ocsp_srv.c ocsp_prn.c ocsp_vfy.c ocsp_err.c\
- )\
- pem/^(\
- pem_sign.c pem_seal.c pem_info.c pem_lib.c pem_all.c pem_err.c\
- pem_x509.c pem_xaux.c pem_oth.c pem_pk8.c pem_pkey.c pvkfmt.c\
- )\
- pkcs12/^(\
- p12_add.c p12_asn.c p12_attr.c p12_crpt.c p12_crt.c p12_decr.c\
- p12_init.c p12_key.c p12_kiss.c p12_mutl.c\
- p12_utl.c p12_npas.c pk12err.c p12_p8d.c p12_p8e.c\
- )\
- pkcs7/^(\
- pk7_asn1.c pk7_lib.c pkcs7err.c pk7_doit.c pk7_smime.c pk7_attr.c\
- pk7_mime.c bio_pk7.c\
- )\
- poly1305/poly1305.c\
- rand/^(randfile.c rand_lib.c rand_err.c)\
- rc2/^(rc2_ecb.c rc2_skey.c rc2_cbc.c rc2cfb64.c rc2ofb64.c)\
- ripemd/^(rmd_dgst.c rmd_one.c)\
- rsa/^(\
- rsa_eay.c rsa_gen.c rsa_lib.c rsa_sign.c rsa_saos.c rsa_err.c\
- rsa_pk1.c rsa_ssl.c rsa_none.c rsa_oaep.c rsa_chk.c\
- rsa_pss.c rsa_x931.c rsa_asn1.c rsa_depr.c rsa_ameth.c rsa_prn.c\
- rsa_pmeth.c rsa_crpt.c\
- )\
- sha/^(sha1dgst.c sha1_one.c sha256.c sha512.c)\
- stack/stack.c\
- ts/^(\
- ts_err.c ts_req_utils.c ts_req_print.c ts_rsp_utils.c ts_rsp_print.c\
- ts_rsp_sign.c ts_rsp_verify.c ts_verify_ctx.c ts_lib.c ts_conf.c\
- ts_asn1.c\
- )\
- txt_db/txt_db.c\
- ui/^(ui_err.c ui_lib.c ui_openssl.c ui_util.c)\
- whrlpool/wp_dgst.c\
- x509/^(\
- x509_def.c x509_d2.c x509_r2x.c x509_cmp.c\
- x509_obj.c x509_req.c x509spki.c x509_vfy.c\
- x509_set.c x509cset.c x509rset.c x509_err.c\
- x509name.c x509_v3.c x509_ext.c x509_att.c\
- x509type.c x509_lu.c x_all.c x509_txt.c\
- x509_trs.c by_file.c by_dir.c by_mem.c x509_vpm.c\
- )\
- x509v3/^(\
- v3_bcons.c v3_bitst.c v3_conf.c v3_extku.c v3_ia5.c v3_lib.c\
- v3_prn.c v3_utl.c v3err.c v3_genn.c v3_alt.c v3_skey.c v3_akey.c v3_pku.c\
- v3_int.c v3_enum.c v3_sxnet.c v3_cpols.c v3_crld.c v3_purp.c v3_info.c\
- v3_ocsp.c v3_akeya.c v3_pmaps.c v3_pcons.c v3_ncons.c v3_pcia.c v3_pci.c\
- pcy_cache.c pcy_node.c pcy_data.c pcy_map.c pcy_tree.c pcy_lib.c\
- )\
- \
- aes/^(aes_core.c aes_cbc.c)\
- bf/^(bf_enc.c)\
- bn/^(bn_asm.c)\
- camellia/^(camellia.c cmll_cbc.c cmll_misc.c)\
- des/^(des_enc.c fcrypt_b.c)\
- rc4/^(rc4_enc.c rc4_skey.c)\
- whrlpool/^(wp_block.c)\
-) '$builddir'/pkg/openbsd/libbsd.a
-file lib/libcrypto.a '$outdir'/libcrypto.a 644
-
-# src/ssl/Makefile.am
-lib libssl.a ssl/^(\
- ssl_srvr.c ssl_clnt.c s3_lib.c ssl_pkt.c ssl_both.c\
- t1_meth.c t1_srvr.c t1_clnt.c t1_lib.c t1_enc.c t1_hash.c\
- d1_meth.c d1_srvr.c d1_clnt.c d1_lib.c d1_pkt.c\
- d1_both.c d1_enc.c d1_srtp.c\
- ssl_lib.c ssl_cert.c ssl_sess.c\
- ssl_ciph.c ssl_stat.c ssl_rsa.c\
- ssl_asn1.c ssl_txt.c ssl_algs.c\
- bio_ssl.c ssl_err.c t1_reneg.c\
- ssl_packet.c ssl_versions.c pqueue.c\
- \
- s3_cbc.c\
- bs_ber.c bs_cbb.c bs_cbs.c\
-) libcrypto.a.d
-file lib/libssl.a '$outdir'/libssl.a 644
-
-# src/libtls/Makefile.am
-lib libtls.a tls/^(\
- tls.c tls_bio_cb.c tls_client.c tls_config.c tls_conninfo.c tls_peer.c\
- tls_server.c tls_util.c tls_ocsp.c tls_verify.c\
-) libssl.a.d libcrypto.a.d
-file lib/libtls.a '$outdir'/libtls.a 644
-
-# src/apps/openssl/Makefile.am
-exe openssl apps/openssl/^(\
- apps.c apps_posix.c asn1pars.c ca.c certhash.c ciphers.c crl.c\
- crl2p7.c dgst.c dh.c dhparam.c dsa.c dsaparam.c ec.c ecparam.c enc.c\
- errstr.c gendh.c gendsa.c genpkey.c genrsa.c nseq.c ocsp.c\
- openssl.c passwd.c pkcs12.c pkcs7.c pkcs8.c pkey.c pkeyparam.c\
- pkeyutl.c prime.c rand.c req.c rsa.c rsautl.c s_cb.c s_client.c\
- s_server.c s_socket.c s_time.c sess_id.c smime.c speed.c spkac.c ts.c\
- verify.c version.c x509.c\
-) libssl.a.d libcrypto.a.d
-file bin/openssl '$outdir'/openssl 755
-man -d apps/openssl 1 openssl.1
-
-file share/libressl/cert.pem '$srcdir'/apps/openssl/cert.pem 644
-
-fetch curl
diff --git a/pkg/libtermkey/gen.lua b/pkg/libtermkey/gen.lua
@@ -0,0 +1,13 @@
+cflags{
+ '-std=c99', '-Wall',
+ '-I $builddir/pkg/ncurses/include',
+}
+
+lib('libtermkey.a', {
+ 'termkey.c',
+ 'driver-csi.c',
+ 'driver-ti.c',
+ '$builddir/pkg/ncurses/libncurses.a',
+}, {'pkg/ncurses/headers'})
+
+fetch 'curl'
diff --git a/pkg/libtermkey/gen.rc b/pkg/libtermkey/gen.rc
@@ -1,9 +0,0 @@
-cflags\
- '-std=c99' -Wall\
- -I '$builddir'/pkg/ncurses/include
-
-lib libtermkey.a -d pkg/ncurses/headers\
- termkey.c driver-csi.c driver-ti.c\
- '$builddir'/pkg/ncurses/libncurses.a
-
-fetch curl
diff --git a/pkg/libusb/gen.lua b/pkg/libusb/gen.lua
@@ -0,0 +1,14 @@
+cflags{
+ '-I include',
+ '-I $dir',
+ '-I $srcdir/libusb',
+}
+
+pkg.hdrs = copy('$outdir/include', '$srcdir/libusb', {'libusb.h'})
+
+lib('libusb-1.0.a', [[libusb/(
+ core.c descriptor.c hotplug.c io.c strerror.c sync.c
+ os/(poll_posix.c threads_posix.c linux_usbfs.c linux_netlink.c)
+)]])
+
+fetch 'git'
diff --git a/pkg/libusb/gen.rc b/pkg/libusb/gen.rc
@@ -1,14 +0,0 @@
-cflags\
- -I include\
- -I '$dir' \
- -I '$srcdir'/libusb
-
-build '$outdir'/include/libusb.h copy '$srcdir'/libusb/libusb.h
-phony headers '$outdir'/include/libusb.h
-
-lib libusb-1.0.a libusb/^(\
- core.c descriptor.c hotplug.c io.c strerror.c sync.c\
- os/^(poll_posix.c threads_posix.c linux_usbfs.c linux_netlink.c)\
-)
-
-fetch git
diff --git a/pkg/libxkbcommon/gen.lua b/pkg/libxkbcommon/gen.lua
@@ -0,0 +1,42 @@
+cflags{
+ '-include $dir/config.h',
+ '-I include',
+ '-I $srcdir',
+ '-I $srcdir/src',
+}
+
+lib('libxkbcommon.a', [[src/(
+ compose/parser.c
+ compose/paths.c
+ compose/state.c
+ compose/table.c
+ xkbcomp/action.c
+ xkbcomp/ast-build.c
+ xkbcomp/compat.c
+ xkbcomp/expr.c
+ xkbcomp/include.c
+ xkbcomp/keycodes.c
+ xkbcomp/keymap.c
+ xkbcomp/keymap-dump.c
+ xkbcomp/keywords.c
+ xkbcomp/parser.c
+ xkbcomp/rules.c
+ xkbcomp/scanner.c
+ xkbcomp/symbols.c
+ xkbcomp/types.c
+ xkbcomp/vmod.c
+ xkbcomp/xkbcomp.c
+ atom.c
+ context.c
+ context-priv.c
+ keysym.c
+ keysym-utf.c
+ keymap.c
+ keymap-priv.c
+ state.c
+ text.c
+ utf8.c
+ utils.c
+)]])
+
+fetch 'curl'
diff --git a/pkg/libxkbcommon/gen.rc b/pkg/libxkbcommon/gen.rc
@@ -1,41 +0,0 @@
-cflags\
- -include '$dir'/config.h\
- -I include\
- -I '$srcdir' \
- -I '$srcdir'/src
-
-lib libxkbcommon.a src/^(\
- compose/parser.c\
- compose/paths.c\
- compose/state.c\
- compose/table.c\
- xkbcomp/action.c\
- xkbcomp/ast-build.c\
- xkbcomp/compat.c\
- xkbcomp/expr.c\
- xkbcomp/include.c\
- xkbcomp/keycodes.c\
- xkbcomp/keymap.c\
- xkbcomp/keymap-dump.c\
- xkbcomp/keywords.c\
- xkbcomp/parser.c\
- xkbcomp/rules.c\
- xkbcomp/scanner.c\
- xkbcomp/symbols.c\
- xkbcomp/types.c\
- xkbcomp/vmod.c\
- xkbcomp/xkbcomp.c\
- atom.c\
- context.c\
- context-priv.c\
- keysym.c\
- keysym-utf.c\
- keymap.c\
- keymap-priv.c\
- state.c\
- text.c\
- utf8.c\
- utils.c\
-)
-
-fetch curl
diff --git a/pkg/loksh/gen.lua b/pkg/loksh/gen.lua
@@ -0,0 +1,41 @@
+cflags{
+ '-D _GNU_SOURCE',
+ '-I include',
+ '-idirafter pkg/openbsd/src/sys',
+}
+
+cc('emacs.c', {'$builddir/pkg/openbsd/fetch.stamp'})
+exe('ksh', {
+ 'alloc.c',
+ 'c_ksh.c',
+ 'c_sh.c',
+ 'c_test.c',
+ 'c_ulimit.c',
+ 'edit.c',
+ 'emacs.c.o',
+ 'eval.c',
+ 'exec.c',
+ 'expr.c',
+ 'history.c',
+ 'io.c',
+ 'jobs.c',
+ 'lex.c',
+ 'mail.c',
+ 'main.c',
+ 'misc.c',
+ 'path.c',
+ 'shf.c',
+ 'syn.c',
+ 'table.c',
+ 'trap.c',
+ 'tree.c',
+ 'tty.c',
+ 'var.c',
+ 'version.c',
+ 'vi.c',
+})
+file('bin/ksh', '755', '$outdir/ksh')
+sym('bin/sh', 'ksh')
+man{'ksh.1', 'sh.1'}
+
+fetch 'git'
diff --git a/pkg/loksh/gen.rc b/pkg/loksh/gen.rc
@@ -1,39 +0,0 @@
-cflags\
- -D _GNU_SOURCE\
- -I include\
- -idirafter pkg/openbsd/src/sys
-
-cc emacs.c '||' '$builddir'/pkg/openbsd/fetch.stamp
-exe ksh\
- alloc.c\
- c_ksh.c\
- c_sh.c\
- c_test.c\
- c_ulimit.c\
- edit.c\
- emacs.c.o\
- eval.c \
- exec.c\
- expr.c\
- history.c\
- io.c\
- jobs.c\
- lex.c\
- mail.c\
- main.c\
- misc.c\
- path.c\
- shf.c\
- syn.c\
- table.c\
- trap.c\
- tree.c\
- tty.c\
- var.c\
- version.c\
- vi.c
-file bin/ksh '$outdir'/ksh 755
-sym bin/sh ksh
-man 1 ksh.1 sh.1
-
-fetch git
diff --git a/pkg/lpeg/gen.lua b/pkg/lpeg/gen.lua
@@ -0,0 +1,14 @@
+cflags{
+ '-std=c99',
+ '-I pkg/lua/src/src',
+}
+
+lib('liblpeg.a', {
+ 'lpvm.c',
+ 'lpcap.c',
+ 'lptree.c',
+ 'lpcode.c',
+ 'lpprint.c',
+}, {'$builddir/pkg/lua/fetch.stamp'})
+
+fetch 'curl'
diff --git a/pkg/lpeg/gen.rc b/pkg/lpeg/gen.rc
@@ -1,8 +0,0 @@
-cflags\
- '-std=c99' \
- -I pkg/lua/src/src
-
-lib liblpeg.a -d '$builddir'/pkg/lua/fetch.stamp\
- lpvm.c lpcap.c lptree.c lpcode.c lpprint.c
-
-fetch curl
diff --git a/pkg/lua/gen.lua b/pkg/lua/gen.lua
@@ -0,0 +1,19 @@
+cflags{
+ '-Wall',
+ '-Wextra',
+ '-D LUA_USE_POSIX',
+}
+
+lib('liblua.a', [[src/(
+ lapi.c lcode.c lctype.c ldebug.c ldo.c ldump.c lfunc.c lgc.c llex.c
+ lmem.c lobject.c lopcodes.c lparser.c lstate.c lstring.c ltable.c
+ ltm.c lundump.c lvm.c lzio.c
+ lauxlib.c lbaselib.c lbitlib.c lcorolib.c ldblib.c liolib.c
+ lmathlib.c loslib.c lstrlib.c ltablib.c loadlib.c linit.c
+)]])
+
+exe('lua', {'src/lua.c', 'liblua.a'})
+file('bin/lua', '755', '$outdir/lua')
+man{'doc/lua.1'}
+
+fetch 'curl'
diff --git a/pkg/lua/gen.rc b/pkg/lua/gen.rc
@@ -1,18 +0,0 @@
-cflags\
- -Wall\
- -Wextra\
- -D LUA_USE_POSIX
-
-lib liblua.a src/^(\
- lapi.c lcode.c lctype.c ldebug.c ldo.c ldump.c lfunc.c lgc.c llex.c\
- lmem.c lobject.c lopcodes.c lparser.c lstate.c lstring.c ltable.c\
- ltm.c lundump.c lvm.c lzio.c\
- lauxlib.c lbaselib.c lbitlib.c lcorolib.c ldblib.c liolib.c\
- lmathlib.c loslib.c lstrlib.c ltablib.c loadlib.c linit.c\
-)
-
-exe lua src/lua.c liblua.a
-file bin/lua '$outdir'/lua 755
-man -d doc 1 lua.1
-
-fetch curl
diff --git a/pkg/make/gen.lua b/pkg/make/gen.lua
@@ -0,0 +1,22 @@
+cflags{
+ '-D HAVE_CONFIG_H',
+ '-I include',
+ '-I $dir',
+ '-I $srcdir',
+ '-I $srcdir/glob',
+}
+
+lib('libglob.a', {'glob/glob.c', 'glob/fnmatch.c'})
+
+exe('make', [[
+ ar.c arscan.c commands.c default.c dir.c expand.c file.c
+ function.c getopt.c getopt1.c guile.c implicit.c job.c load.c
+ loadapi.c main.c misc.c posixos.c output.c read.c remake.c
+ rule.c signame.c strcache.c variable.c version.c vpath.c
+ hash.c remote-stub.c
+ libglob.a
+]])
+file('bin/make', '755', '$outdir/make')
+man{'make.1'}
+
+fetch 'git'
diff --git a/pkg/make/gen.rc b/pkg/make/gen.rc
@@ -1,20 +0,0 @@
-cflags\
- -D HAVE_CONFIG_H\
- -I include\
- -I '$dir' \
- -I '$srcdir' \
- -I '$srcdir'/glob
-
-lib libglob.a glob/^(glob.c fnmatch.c)
-
-exe make\
- ar.c arscan.c commands.c default.c dir.c expand.c file.c\
- function.c getopt.c getopt1.c guile.c implicit.c job.c load.c\
- loadapi.c main.c misc.c posixos.c output.c read.c remake.c\
- rule.c signame.c strcache.c variable.c version.c vpath.c\
- hash.c remote-stub.c\
- libglob.a
-file bin/make '$outdir'/make 755
-man 1 make.1
-
-fetch git
diff --git a/pkg/man-pages-posix/gen.lua b/pkg/man-pages-posix/gen.lua
@@ -0,0 +1,2 @@
+man(lines('manpages.txt'))
+fetch 'curl'
diff --git a/pkg/man-pages-posix/gen.rc b/pkg/man-pages-posix/gen.rc
@@ -1,4 +0,0 @@
-manpages=`{grep -v '^#' manpages.txt} ; checkstatus
-man $manpages
-
-fetch curl
diff --git a/pkg/mandoc/gen.lua b/pkg/mandoc/gen.lua
@@ -0,0 +1,116 @@
+cflags{
+ '-I include',
+ '-I $dir',
+ '-I pkg/openbsd/include',
+ '-I $builddir/pkg/zlib/include',
+}
+
+lib('libmandoc.a', {
+ 'man.c',
+ 'man_macro.c',
+ 'man_validate.c',
+
+ 'att.c',
+ 'lib.c',
+ 'mdoc.c',
+ 'mdoc_argv.c',
+ 'mdoc_macro.c',
+ 'mdoc_state.c',
+ 'mdoc_validate.c',
+ 'st.c',
+
+ 'eqn.c',
+ 'roff.c',
+ 'roff_validate.c',
+ 'tbl.c',
+ 'tbl_data.c',
+ 'tbl_layout.c',
+ 'tbl_opts.c',
+
+ 'chars.c',
+ 'mandoc.c',
+ 'mandoc_aux.c',
+ 'mandoc_ohash.c',
+ 'mandoc_xr.c',
+ 'msec.c',
+ 'preconv.c',
+ 'read.c',
+
+ 'compat_fts.c',
+ 'compat_ohash.c',
+}, {'pkg/zlib/headers'})
+
+exe('mandoc', {
+ 'main.c',
+ 'manpath.c',
+ 'mdoc_man.c',
+ 'mdoc_markdown.c',
+ 'out.c',
+ 'tag.c',
+ 'tree.c',
+
+ 'eqn_html.c',
+ 'html.c',
+ 'man_html.c',
+ 'mdoc_html.c',
+ 'roff_html.c',
+ 'tbl_html.c',
+
+ 'eqn_term.c',
+ 'man_term.c',
+ 'mdoc_term.c',
+ 'roff_term.c',
+ 'term.c',
+ 'term_ascii.c',
+ 'term_ps.c',
+ 'term_tab.c',
+ 'tbl_term.c',
+
+ 'dbm.c',
+ 'dbm_map.c',
+ 'mansearch.c',
+
+ 'dba.c',
+ 'dba_array.c',
+ 'dba_read.c',
+ 'dba_write.c',
+ 'mandocdb.c',
+
+ 'libmandoc.a',
+ '$builddir/pkg/openbsd/libbsd.a',
+ '$builddir/pkg/zlib/libz.a',
+})
+file('bin/mandoc', '755', '$outdir/mandoc')
+for _, cmd in ipairs{'apropos', 'man', 'whatis', 'makewhatis'} do
+ sym('bin/'..cmd, 'mandoc')
+end
+
+exe('demandoc', {
+ 'demandoc.c',
+ 'libmandoc.a',
+ '$builddir/pkg/openbsd/libbsd.a',
+ '$builddir/pkg/zlib/libz.a',
+})
+file('bin/demandoc', '755', '$outdir/demandoc')
+
+man{
+ 'mandoc.1',
+ 'demandoc.1',
+ 'man.1',
+ 'apropos.1',
+
+ 'man.conf.5',
+ 'mandoc.db.5',
+
+ 'man.7',
+ 'mdoc.7',
+ 'roff.7',
+ 'eqn.7',
+ 'tbl.7',
+ 'mandoc_char.7',
+
+ 'makewhatis.8',
+}
+sym('share/man/man1/whatis.1.gz', 'apropos.1.gz')
+
+fetch 'curl'
diff --git a/pkg/mandoc/gen.rc b/pkg/mandoc/gen.rc
@@ -1,90 +0,0 @@
-cflags\
- -I include\
- -I '$dir' \
- -I pkg/openbsd/include\
- -I '$builddir'/pkg/zlib/include
-
-lib libmandoc.a -d pkg/zlib/headers\
- man.c\
- man_macro.c\
- man_validate.c\
- \
- att.c\
- lib.c\
- mdoc.c\
- mdoc_argv.c\
- mdoc_macro.c\
- mdoc_state.c\
- mdoc_validate.c\
- st.c\
- \
- eqn.c\
- roff.c\
- roff_validate.c\
- tbl.c\
- tbl_data.c\
- tbl_layout.c\
- tbl_opts.c\
- \
- chars.c\
- mandoc.c\
- mandoc_aux.c\
- mandoc_ohash.c\
- mandoc_xr.c\
- msec.c\
- preconv.c\
- read.c\
- \
- compat_fts.c\
- compat_ohash.c
-
-exe mandoc\
- main.c\
- manpath.c\
- mdoc_man.c\
- mdoc_markdown.c\
- out.c\
- tag.c\
- tree.c\
- \
- eqn_html.c\
- html.c\
- man_html.c\
- mdoc_html.c\
- roff_html.c\
- tbl_html.c\
- \
- eqn_term.c\
- man_term.c\
- mdoc_term.c\
- roff_term.c\
- term.c\
- term_ascii.c\
- term_ps.c\
- term_tab.c\
- tbl_term.c\
- \
- dbm.c\
- dbm_map.c\
- mansearch.c\
- \
- dba.c\
- dba_array.c\
- dba_read.c\
- dba_write.c\
- mandocdb.c\
- \
- libmandoc.a\
- '$builddir'/pkg/^(openbsd/libbsd.a zlib/libz.a)
-exe demandoc demandoc.c libmandoc.a '$builddir'/pkg/^(openbsd/libbsd.a zlib/libz.a)
-
-for(exe in mandoc demandoc) file bin/$exe '$outdir'/$exe 755
-for(sym in apropos man whatis makewhatis) sym bin/$sym mandoc
-man\
- 1 mandoc.1 demandoc.1 man.1 apropos.1\
- 5 man.conf.5 mandoc.db.5\
- 7 man.7 mdoc.7 roff.7 eqn.7 tbl.7 mandoc_char.7\
- 8 makewhatis.8
-sym share/man/man1/whatis.1.gz apropos.1.gz
-
-fetch curl
diff --git a/pkg/mc/gen.lua b/pkg/mc/gen.lua
@@ -0,0 +1,78 @@
+cflags{
+ '-I $outdir',
+ '-I $srcdir',
+ '-I $srcdir/mi',
+ '-I $srcdir/parse',
+ '-I $srcdir/util',
+}
+
+yacc('gram', '$srcdir/parse/gram.y')
+build('copy', '$outdir/gram.h', '$outdir/gram.tab.h')
+
+lib('libparse.a', [[
+ $outdir/gram.tab.c
+ parse/(
+ dump.c
+ err.c
+ export.c
+ fold.c
+ infer.c
+ names.c
+ node.c
+ specialize.c
+ stab.c
+ tok.c
+ type.c
+ use.c
+ )
+]], {'$outdir/gram.h'})
+lib('libmi.a', 'mi/(cfg.c flatten.c dfcheck.c match.c reaching.c)')
+lib('libutil.a', 'util/(alloc.c bitset.c htab.c pack.c util.c)')
+
+exe('bin/6m', [[
+ 6/(
+ blob.c
+ gen.c
+ gengas.c
+ genp9.c
+ isel.c
+ locs.c
+ main.c
+ ra.c
+ peep.c
+ simp.c
+ typeinfo.c
+ )
+ libmi.a libparse.a libutil.a
+]])
+file('bin/6m', '755', '$outdir/bin/6m')
+
+exe('bin/muse', {'muse/muse.c', 'libparse.a', 'libutil.a'})
+file('bin/muse', '755', '$outdir/bin/muse')
+
+build('cat', '$outdir/_myrrt.s', {
+ '$srcdir/rt/start-linux.s',
+ '$srcdir/rt/common.s',
+ '$srcdir/rt/abort-linux.s',
+})
+build('as', '$outdir/_myrrt.o', '$outdir/_myrrt.s')
+file('lib/myr/_myrrt.o', '644', '$outdir/_myrrt.o')
+
+set('mcflags', {
+ '-I $outdir/lib/sys',
+ '-I $outdir/lib/std',
+ '-I $outdir/lib/bio',
+ '-I $outdir/lib/regex',
+ '-I $outdir/lib/thread',
+})
+
+include '$dir/myr.ninja'
+for lib in iterpaths('bio crypto date escfmt fileutil inifile json regex std sys testr thread') do
+ file('lib/myr/lib'..lib..'.use', '644', '$outdir/lib/'..lib..'/lib'..lib..'.use')
+ file('lib/myr/lib'..lib..'.a', '644', '$outdir/lib/'..lib..'/lib'..lib..'.a')
+end
+file('bin/mbld', '755', '$outdir/mbld/mbld')
+
+man{'doc/6m.1', 'doc/muse.1', 'mbld/mbld.1'}
+
+fetch 'git'
diff --git a/pkg/mc/gen.rc b/pkg/mc/gen.rc
@@ -1,68 +0,0 @@
-cflags\
- -I '$outdir' \
- -I '$srcdir' \
- -I '$srcdir'/mi\
- -I '$srcdir'/parse\
- -I '$srcdir'/util
-
-yacc gram '$srcdir'/parse/gram.y
-build '$outdir'/gram.h copy '$outdir'/gram.tab.h
-
-lib libparse.a -d '$outdir'/gram.h '$outdir'/gram.tab.c parse/^(\
- dump.c\
- err.c\
- export.c\
- fold.c\
- infer.c\
- names.c\
- node.c\
- specialize.c\
- stab.c\
- tok.c\
- type.c\
- use.c\
-)
-lib libmi.a mi/^(cfg.c flatten.c dfcheck.c match.c reaching.c)
-lib libutil.a util/^(alloc.c bitset.c htab.c pack.c util.c)
-
-exe bin/6m 6/^(\
- blob.c\
- gen.c\
- gengas.c\
- genp9.c\
- isel.c\
- locs.c\
- main.c\
- ra.c\
- peep.c\
- simp.c\
- typeinfo.c\
-) libmi.a libparse.a libutil.a
-file bin/6m '$outdir'/bin/6m 755
-
-exe bin/muse muse/muse.c libparse.a libutil.a
-file bin/muse '$outdir'/bin/muse 755
-
-man -d doc 1 6m.1 muse.1
-
-build '$outdir'/_myrrt.s cat '$srcdir'/rt/^(start-linux.s common.s abort-linux.s)
-build '$outdir'/_myrrt.o as '$outdir'/_myrrt.s
-file lib/myr/_myrrt.o '$outdir'/_myrrt.o 644
-
-set mcflags $"mcflags\
- -I '$outdir'/lib/sys\
- -I '$outdir'/lib/std\
- -I '$outdir'/lib/bio\
- -I '$outdir'/lib/regex\
- -I '$outdir'/lib/thread
-
-include '$dir'/myr.ninja
-for(lib in bio crypto date escfmt fileutil inifile json regex std sys testr thread) {
- file lib/myr/lib$lib.use '$outdir'/lib/$lib/lib$lib.use 644
- file lib/myr/lib$lib.a '$outdir'/lib/$lib/lib$lib.a 644
-}
-file bin/mbld '$outdir'/mbld/mbld 755
-
-man -d mbld 1 mbld.1
-
-fetch git
diff --git a/pkg/mpv/gen.lua b/pkg/mpv/gen.lua
@@ -0,0 +1,123 @@
+rule('versionhdr', 'sh $srcdir/version.sh --cwd=$srcdir --versionh=$out')
+build('versionhdr', '$outdir/version.h', {'|', '$srcdir/version.sh'})
+
+sub('tools.ninja', function()
+ toolchain 'host'
+ set('srcdir', '$dir')
+ exe('file2string', {'file2string.c'})
+end)
+
+cflags{
+ '-D _GNU_SOURCE',
+ '-I $dir',
+ '-I $outdir',
+ '-I $srcdir',
+ '-I pkg/ffmpeg/src',
+ '-I $builddir/pkg/ffmpeg/include',
+ '-I $builddir/pkg/zlib/include',
+}
+local libs = {
+ 'ffmpeg/libavcodec.a.d',
+ 'ffmpeg/libavdevice.a.d',
+ 'ffmpeg/libavfilter.a.d',
+ 'ffmpeg/libavformat.a.d',
+ 'ffmpeg/libavutil.a',
+ 'ffmpeg/libswresample.a.d',
+ 'ffmpeg/libswscale.a.d',
+ 'zlib/libz.a',
+}
+pkg.deps = {
+ '$outdir/version.h',
+ 'pkg/ffmpeg/headers',
+ 'pkg/zlib/headers',
+}
+
+rule('file2string', '$outdir/file2string $in >$out.tmp && mv $out.tmp $out')
+function file2string(out, inp)
+ build('file2string', '$outdir/'..out, {'$srcdir/'..inp, '|', '$outdir/file2string'})
+ table.insert(pkg.deps, '$outdir/'..out)
+end
+
+file2string('input/input_conf.h', 'etc/input.conf')
+file2string('player/builtin_conf.inc', 'etc/builtin.conf')
+file2string('sub/osd_font.h', 'sub/osd_font.otf')
+for _, f in ipairs{'assdraw', 'defaults', 'options', 'osc', 'ytdl_hook'} do
+ file2string('player/lua/'..f..'.inc', 'player/lua/'..f..'.lua')
+end
+
+local options = {}
+for line in io.lines(pkg.dir..'/config.h') do
+ local var, val = line:match('^#define ([^ ]+) ([^ ]+)')
+ if var and val == '1' then
+ options[var] = true
+ end
+end
+local sources = {}
+for line in io.lines(pkg.dir..'/sources.txt') do
+ local i = line:find(' ', 1, true)
+ local add = true
+ if i then
+ local var = line:sub(i + 1):upper():gsub('-', '_')
+ local neg = var:sub(1, 1) == '!'
+ if neg then
+ var = var:sub(2)
+ end
+ add = options['HAVE_'..var] or false ~= neg
+ end
+ if add then
+ sources[line:sub(1, i and i - 1)] = true
+ end
+end
+sources = table.keys(sources)
+table.insert(pkg.inputs.gen, {'$dir/config.h', '$dir/sources.txt'})
+
+if options['HAVE_ALSA'] then
+ cflags{'-I $builddir/pkg/alsa-lib/include'}
+ table.insert(libs, 'alsa-lib/libasound.a')
+ table.insert(pkg.deps, 'pkg/alsa-lib/headers')
+end
+if options['HAVE_DRM'] then
+ cflags{
+ '-I pkg/libdrm/src',
+ '-I pkg/libdrm/src/include/drm',
+ }
+ table.insert(libs, 'libdrm/libdrm.a')
+ table.insert(pkg.deps, '$builddir/pkg/libdrm/fetch.stamp')
+end
+if options['HAVE_LIBASS'] then
+ cflags{'-I $builddir/pkg/libass/include'}
+ table.insert(libs, 'libass/libass.a.d')
+ table.insert(pkg.deps, 'pkg/libass/headers')
+end
+if options['HAVE_LUA'] then
+ cflags{'-I pkg/lua/src/src'}
+ table.insert(libs, 'lua/liblua.a')
+ table.insert(pkg.deps, '$builddir/pkg/lua/fetch.stamp')
+end
+if options['HAVE_WAYLAND'] then
+ cflags{
+ '-I $builddir/pkg/wayland/include',
+ '-I pkg/libxkbcommon/src',
+ }
+ table.insert(libs, {
+ 'wayland/libwayland-client.a.d',
+ 'wayland/libwayland-cursor.a.d',
+ 'libxkbcommon/libxkbcommon.a',
+ })
+ table.insert(pkg.deps, {
+ 'pkg/wayland/headers',
+ '$builddir/pkg/libxkbcommon/fetch.stamp',
+ })
+end
+
+exe('mpv', {
+ 'ta/ta.c',
+ 'ta/ta_talloc.c',
+ 'ta/ta_utils.c',
+ sources,
+ expand{'$builddir/pkg/', libs},
+})
+file('bin/mpv', '755', '$outdir/mpv')
+man{'DOCS/man/mpv.1'}
+
+fetch 'git'
diff --git a/pkg/mpv/gen.rc b/pkg/mpv/gen.rc
@@ -1,94 +0,0 @@
-cflags=(\
- -D _GNU_SOURCE\
- -I '$dir' \
- -I '$outdir' \
- -I '$srcdir' \
- -I pkg/ffmpeg/src\
- -I '$builddir'/pkg/ffmpeg/include\
- -I '$builddir'/pkg/zlib/include\
-)
-
-srcs=(\
- ta/^(ta.c ta_talloc.c ta_utils.c)\
- `{awk -f sources.awk 'sources=sources.txt' config.h}\
-)
-checkstatus
-
-libs=(\
- ffmpeg/^(\
- libavcodec.a.d\
- libavdevice.a.d\
- libavfilter.a.d\
- libavformat.a.d\
- libavutil.a\
- libswresample.a.d\
- libswscale.a.d\
- )\
- zlib/libz.a\
-)
-
-deps=('$outdir'/version.h pkg/^(zlib ffmpeg)^/headers)
-
-rule versionhdr 'sh $srcdir/version.sh --cwd=$srcdir --versionh=$out'
-build '$outdir'/version.h versionhdr '|' '$srcdir'/version.sh
-
-{
- toolchain host
- set srcdir '$dir'
- exe file2string file2string.c
-} >tools.ninja ; subninja tools.ninja
-
-rule file2string '$outdir/file2string $in >$out.tmp && mv $out.tmp $out'
-
-fn file2string {
- build '$outdir'/$1 file2string '$srcdir'/$2 '|' '$outdir'/file2string
- deps=($deps '$outdir'/$1)
-}
-
-file2string input/input_conf.h etc/input.conf
-file2string player/builtin_conf.inc etc/builtin.conf
-file2string sub/osd_font.h sub/osd_font.otf
-for(f in assdraw defaults options osc ytdl_hook)
- file2string player/lua/$f.inc player/lua/$f.lua
-
-if(grep -qF 'HAVE_ALSA 1' config.h) {
- cflags=($cflags -I '$builddir'/pkg/alsa-lib/include)
- libs=($libs alsa-lib/libasound.a)
- deps=($deps pkg/alsa-lib/headers)
-}
-if(grep -qF 'HAVE_DRM 1' config.h) {
- cflags=($cflags '-I pkg/libdrm/'^(src src/include/drm))
- libs=($libs libdrm/libdrm.a)
- deps=($deps '$builddir'/pkg/libdrm/fetch.stamp)
-}
-if(grep -qF 'HAVE_LIBASS 1' config.h) {
- cflags=($cflags -I '$builddir'/pkg/libass/include)
- libs=($libs libass/libass.a.d)
- deps=($deps pkg/libass/headers)
-}
-if(grep -qF 'HAVE_LUA 1' config.h) {
- cflags=($cflags -I pkg/lua/src/src)
- libs=($libs lua/liblua.a)
- deps=($deps '$builddir'/pkg/lua/fetch.stamp)
-}
-if(grep -qF 'HAVE_WAYLAND 1' config.h) {
- cflags=($cflags\
- -I '$builddir'/pkg/wayland/include\
- -I pkg/libxkbcommon/src\
- )
- libs=($libs\
- wayland/libwayland-^(client cursor)^.a.d\
- libxkbcommon/libxkbcommon.a\
- )
- deps=($deps pkg/wayland/headers '$builddir'/pkg/libxkbcommon/fetch.stamp)
-}
-
-cflags $cflags
-phony deps $deps
-
-exe mpv -d '$dir'/deps $srcs '$builddir'/pkg/$libs
-file bin/mpv '$outdir'/mpv 755
-man -d DOCS/man 1 mpv.1
-
-gen_inputs='$dir'/^(sources.awk sources.txt config.h)
-fetch git
diff --git a/pkg/mpv/sources.awk b/pkg/mpv/sources.awk
@@ -1,19 +0,0 @@
-# usage: awk -f sources.awk sources=sources.txt config.h
-
-$1 == "#define" && $3 ~ /[01]/ {
- cfg[$2] = $3
-}
-
-END {
- while (getline < sources) {
- if (NF == 2) {
- var = toupper($2)
- gsub("-", "_", var)
- if (neg = var ~ /^!/)
- var = substr(var, 2)
- if (cfg["HAVE_" var] == neg)
- continue
- }
- print $1
- }
-}
diff --git a/pkg/msmtp/gen.lua b/pkg/msmtp/gen.lua
@@ -0,0 +1,33 @@
+cflags{
+ '-D HAVE_CONFIG_H',
+ [[-D 'SYSCONFDIR="/etc"']],
+ '-I include',
+ '-I $dir',
+ '-I $builddir/pkg/libressl/include',
+}
+
+exe('msmtp', [[
+ src/(
+ conf.c
+ list.c
+ msmtp.c
+ net.c
+ netrc.c
+ readbuf.c
+ smtp.c
+ stream.c
+ tools.c
+ xalloc.c
+ aliases.c
+
+ tls.c
+
+ base64.c md5.c md5-apps.c
+ )
+ $builddir/pkg/libressl/(libssl.a.d libcrypto.a.d)
+]], {'pkg/libressl/headers'})
+
+file('bin/msmtp', '755', '$outdir/msmtp')
+man{'doc/msmtp.1'}
+
+fetch 'git'
diff --git a/pkg/msmtp/gen.rc b/pkg/msmtp/gen.rc
@@ -1,29 +0,0 @@
-cflags\
- -D HAVE_CONFIG_H\
- -D 'SYSCONFDIR=\"/etc\"' \
- -I include\
- -I '$dir' \
- -I '$builddir'/pkg/libressl/include
-
-exe msmtp -d pkg/libressl/headers src/^(\
- conf.c\
- list.c\
- msmtp.c\
- net.c\
- netrc.c\
- readbuf.c\
- smtp.c\
- stream.c\
- tools.c\
- xalloc.c\
- aliases.c\
- \
- tls.c\
- \
- base64.c md5.c md5-apps.c\
-) '$builddir'/pkg/libressl/^(libssl.a.d libcrypto.a.d)
-
-file bin/msmtp '$outdir'/msmtp 755
-man -d doc 1 msmtp.1
-
-fetch git
diff --git a/pkg/mtdev/gen.lua b/pkg/mtdev/gen.lua
@@ -0,0 +1,11 @@
+cflags{'-I $srcdir/include'}
+
+lib('libmtdev.a', {
+ 'src/caps.c',
+ 'src/core.c',
+ 'src/iobuf.c',
+ 'src/match.c',
+ 'src/match_four.c',
+})
+
+fetch 'git'
diff --git a/pkg/mtdev/gen.rc b/pkg/mtdev/gen.rc
@@ -1,5 +0,0 @@
-cflags -I '$srcdir'/include
-
-lib libmtdev.a src/^(caps.c core.c iobuf.c match.c match_four.c)
-
-fetch git
diff --git a/pkg/mupdf/gen.lua b/pkg/mupdf/gen.lua
@@ -0,0 +1,102 @@
+cflags{
+ '-D NDEBUG',
+ '-Wall',
+ '-Wno-maybe-uninitialized',
+ '-D FZ_ENABLE_JS=0',
+ -- HTML and EPUB require harfbuzz
+ '-D FZ_ENABLE_HTML=0',
+ '-D FZ_ENABLE_EPUB=0',
+ -- JPX requires openjpeg
+ '-D FZ_ENABLE_JPX=0',
+ '-D NOTO_SMALL',
+ '-D NOCJK',
+ '-D SHARE_JPEG',
+ '-I $srcdir/include',
+ '-I $outdir',
+ '-I pkg/freetype/src/include',
+ '-I pkg/jbig2dec/src',
+ '-I $builddir/pkg/libjpeg-turbo/include',
+ '-I $builddir/pkg/zlib/include',
+}
+
+sub('tools.ninja', function()
+ toolchain 'host'
+ cflags{'-Wall'}
+
+ exe('namedump', {'scripts/namedump.c'})
+ exe('hexdump', {'scripts/hexdump.c'})
+end)
+
+rule('namedump', '$outdir/namedump $in $out')
+build('namedump', {'$outdir/mupdf/pdf/name-table.h', '$outdir/pdf-name-table.h'}, {
+ '$srcdir/resources/pdf/names.txt', '|', '$outdir/namedump',
+})
+
+rule('hexdump', '$outdir/hexdump -p $srcdir/ $out.tmp $in && mv $out.tmp $out')
+local fonts = lines('fonts.txt')
+for _, font in ipairs(fonts) do
+ build('hexdump', '$outdir/'..font..'.c', {'$srcdir/resources/fonts/'..font, '|', '$outdir/hexdump'})
+end
+
+pkg.deps = {
+ 'pkg/curl/headers',
+ 'pkg/libjpeg-turbo/headers',
+ 'pkg/zlib/headers',
+ '$builddir/pkg/freetype/fetch.stamp',
+ '$builddir/pkg/jbig2dec/fetch.stamp',
+ '$outdir/mupdf/pdf/name-table.h',
+}
+
+lib('libmupdf.a', {
+ expand{'source/', lines('sources.txt')},
+ expand{'$outdir/', fonts, '.c'},
+ '$builddir/pkg/freetype/libfreetype.a.d',
+ '$builddir/pkg/jbig2dec/libjbig2dec.a',
+ '$builddir/pkg/libjpeg-turbo/libjpeg-turbo.a',
+ '$builddir/pkg/zlib/libz.a',
+})
+
+exe('bin/mutool', [[
+ source/tools/(
+ mutool.c muconvert.c mudraw.c murun.c
+ pdfclean.c pdfcreate.c pdfextract.c pdfinfo.c pdfmerge.c pdfpages.c
+ pdfportfolio.c pdfposter.c pdfshow.c
+ )
+ libmupdf.a.d
+]])
+file('bin/mutool', '755', '$outdir/bin/mutool')
+
+cc('platform/x11/curl_stream.c', {'pkg/curl/headers'}, {
+ cflags='$cflags -I $builddir/pkg/curl/include',
+})
+cc('platform/x11/wl_main.c', {
+ '$dir/deps',
+ '$builddir/pkg/libxkbcommon/fetch.stamp',
+ 'pkg/pixman/headers',
+ 'pkg/wayland/headers',
+ 'pkg/wayland-protocols/headers',
+}, {cflags={
+ '$cflags',
+ '-I $builddir/pkg/pixman/include',
+ '-I $builddir/pkg/wayland/include',
+ '-I $builddir/pkg/wayland-protocols/include',
+ '-I pkg/libxkbcommon/src',
+}})
+exe('bin/mupdf', [[
+ platform/x11/(pdfapp.c curl_stream.c.o wl_main.c.o)
+ libmupdf.a.d
+ $builddir/pkg/(
+ curl/libcurl.a.d
+ jbig2dec/libjbig2dec.a
+ libxkbcommon/libxkbcommon.a
+ pixman/libpixman.a
+ wayland-protocols/xdg-shell-unstable-v5-protocol.c.o
+ wayland/libwayland-client.a.d
+ wayland/libwayland-cursor.a
+ )
+]])
+file('bin/mupdf', '755', '$outdir/bin/mupdf')
+
+man{'docs/man/mutool.1', 'docs/man/mupdf.1'}
+
+fetch 'git'
diff --git a/pkg/mupdf/gen.rc b/pkg/mupdf/gen.rc
@@ -1,86 +0,0 @@
-# HTML/EPUB require harfbuzz, JPX requires openjpeg
-cflags\
- -D NDEBUG\
- -Wall\
- -Wno-maybe-uninitialized\
- -D 'FZ_ENABLE_JS=0' \
- -D 'FZ_ENABLE_HTML=0' \
- -D 'FZ_ENABLE_EPUB=0' \
- -D 'FZ_ENABLE_JPX=0' \
- -D NOTO_SMALL\
- -D NOCJK\
- -D SHARE_JPEG\
- -I '$srcdir'/include\
- -I '$outdir' \
- -I pkg/freetype/src/include\
- -I pkg/jbig2dec/src\
- -I '$builddir'/pkg/libjpeg-turbo/include\
- -I '$builddir'/pkg/zlib/include
-
-{
- toolchain host
- cflags -Wall
-
- exe namedump scripts/namedump.c
- exe hexdump scripts/hexdump.c
-} >tools.ninja && subninja tools.ninja
-
-rule namedump '$outdir/namedump $in $out'
-outs='$outdir'/^(mupdf/pdf/name-table.h pdf-name-table.h)
-build $"outs namedump '$srcdir'/resources/pdf/names.txt '|' '$outdir'/namedump
-
-rule hexdump '$outdir/hexdump -p $srcdir/ $out.tmp $in && mv $out.tmp $out'
-fonts=`{grep -v '^#' fonts.txt} ; checkstatus
-for(font in $fonts)
- build '$outdir'/$font.c hexdump '$srcdir'/resources/fonts/$font '|' '$outdir'/hexdump
-
-phony deps\
- pkg/^(curl libjpeg-turbo zlib)^/headers\
- '$builddir'/pkg/^(freetype jbig2dec)^/fetch.stamp\
- '$outdir'/mupdf/pdf/name-table.h
-
-srcs=`{grep -v -e '^#' -e harfbuzz.c sources.txt} ; checkstatus
-lib libmupdf.a -d '$dir'/deps source/$srcs '$outdir'/$fonts.c\
- '$builddir'/pkg/^(\
- freetype/libfreetype.a.d\
- jbig2dec/libjbig2dec.a\
- libjpeg-turbo/libjpeg-turbo.a\
- zlib/libz.a\
- )
-
-exe bin/mutool -d '$dir'/deps source/tools/^(\
- mutool.c muconvert.c mudraw.c murun.c\
- pdfclean.c pdfcreate.c pdfextract.c pdfinfo.c pdfmerge.c pdfpages.c\
- pdfportfolio.c pdfposter.c pdfshow.c\
-) libmupdf.a.d
-file bin/mutool '$outdir'/bin/mutool 755
-
-cc platform/x11/curl_stream.c '||' pkg/curl/headers ; with\
- cflags '$cflags -I $builddir/pkg/curl/include'
-phony wldeps\
- '$dir'/deps\
- '$builddir'/pkg/libxkbcommon/fetch.stamp\
- pkg/^(pixman wayland wayland-protocols)^/headers
-cc platform/x11/wl_main.c '||' '$dir'/wldeps ; cflags=(\
- -I '$builddir'/pkg/pixman/include\
- -I '$builddir'/pkg/wayland/include\
- -I '$builddir'/pkg/wayland-protocols/include\
- -I pkg/libxkbcommon/src\
-) with cflags '$cflags '$"cflags
-exe bin/mupdf -d '$dir'/deps platform/x11/^(pdfapp.c curl_stream.c.o wl_main.c.o)\
- libmupdf.a.d\
- '$builddir'/pkg/^(\
- curl/libcurl.a.d\
- jbig2dec/libjbig2dec.a\
- libxkbcommon/libxkbcommon.a\
- pixman/libpixman.a\
- wayland-protocols/xdg-shell-unstable-v5-protocol.c.o\
- wayland/libwayland-client.a.d\
- wayland/libwayland-cursor.a\
- )
-file bin/mupdf '$outdir'/bin/mupdf 755
-
-man -d docs/man 1 mutool.1 mupdf.1
-
-fetch git
-gen_inputs='$dir'/^(sources.txt fonts.txt)
diff --git a/pkg/mupdf/sources.txt b/pkg/mupdf/sources.txt
@@ -1,4 +1,4 @@
-# 2,<cd src/source && ls fitz/*.c pdf/*.c xps/*.c svg/*.c cbz/*.c gprf/*.c helpers/mu-threads/*.c
+# 2,<cd src/source && ls fitz/*.c pdf/*.c xps/*.c svg/*.c cbz/*.c gprf/*.c helpers/mu-threads/*.c | grep -v fitz/harfbuzz.c
cbz/mucbz.c
cbz/muimg.c
cbz/mutiff.c
@@ -47,7 +47,6 @@ fitz/geometry.c
fitz/getopt.c
fitz/glyph.c
fitz/halftone.c
-fitz/harfbuzz.c
fitz/hash.c
fitz/image.c
fitz/jmemcust.c
diff --git a/pkg/nasm/gen.lua b/pkg/nasm/gen.lua
@@ -0,0 +1,65 @@
+cflags{
+ '-D HAVE_CONFIG_H',
+ '-I include',
+ '-I $dir',
+ '-I $srcdir',
+ '-I $srcdir/include',
+ '-I $srcdir/x86',
+ '-I $srcdir/asm',
+ '-I $srcdir/disasm',
+ '-I $srcdir/output',
+}
+
+lib('libnasm.a', [[
+ stdlib/(snprintf.c vsnprintf.c strlcpy.c strnlen.c)
+ nasmlib/(
+ ver.c
+ crc64.c malloc.c
+ md5c.c string.c
+ file.c mmap.c ilog2.c
+ realpath.c path.c
+ filename.c srcfile.c
+ zerobuf.c readnum.c bsi.c
+ rbtree.c hashtbl.c
+ raa.c saa.c
+ strlist.c
+ perfhash.c badenum.c
+ )
+ common/common.c
+ x86/(
+ insnsa.c insnsb.c insnsd.c insnsn.c
+ regs.c regvals.c regflags.c regdis.c
+ disp8.c iflag.c
+ )
+ asm/(
+ error.c
+ float.c
+ directiv.c directbl.c
+ pragma.c
+ assemble.c labels.c parser.c
+ preproc.c quote.c pptok.c
+ listing.c eval.c exprlib.c exprdump.c
+ stdscan.c
+ strfunc.c tokhash.c
+ segalloc.c
+ preproc-nop.c
+ rdstrnum.c
+ )
+ macros/macros.c
+ output/(
+ outform.c outlib.c legacy.c
+ nulldbg.c nullout.c
+ outbin.c outaout.c outcoff.c
+ outelf.c
+ outobj.c outas86.c outrdf2.c
+ outdbg.c outieee.c outmacho.c
+ codeview.c
+ )
+ disasm/(disasm.c sync.c)
+]])
+
+exe('nasm', {'asm/nasm.c', 'libnasm.a'})
+file('bin/nasm', '755', '$outdir/nasm')
+man{'nasm.1'}
+
+fetch 'curl'
diff --git a/pkg/nasm/gen.rc b/pkg/nasm/gen.rc
@@ -1,63 +0,0 @@
-cflags\
- -D HAVE_CONFIG_H\
- -I include\
- -I '$dir' \
- -I '$srcdir' \
- -I '$srcdir'/include\
- -I '$srcdir'/x86\
- -I '$srcdir'/asm\
- -I '$srcdir'/disasm\
- -I '$srcdir'/output
-
-lib libnasm.a\
- stdlib/^(snprintf.c vsnprintf.c strlcpy.c strnlen.c)\
- nasmlib/^(\
- ver.c\
- crc64.c malloc.c\
- md5c.c string.c\
- file.c mmap.c ilog2.c\
- realpath.c path.c\
- filename.c srcfile.c\
- zerobuf.c readnum.c bsi.c\
- rbtree.c hashtbl.c\
- raa.c saa.c\
- strlist.c\
- perfhash.c badenum.c\
- )\
- common/common.c\
- x86/^(\
- insnsa.c insnsb.c insnsd.c insnsn.c\
- regs.c regvals.c regflags.c regdis.c\
- disp8.c iflag.c\
- )\
- asm/^(\
- error.c\
- float.c\
- directiv.c directbl.c\
- pragma.c\
- assemble.c labels.c parser.c\
- preproc.c quote.c pptok.c\
- listing.c eval.c exprlib.c exprdump.c\
- stdscan.c\
- strfunc.c tokhash.c\
- segalloc.c\
- preproc-nop.c\
- rdstrnum.c\
- )\
- macros/macros.c\
- output/^(\
- outform.c outlib.c legacy.c\
- nulldbg.c nullout.c\
- outbin.c outaout.c outcoff.c\
- outelf.c\
- outobj.c outas86.c outrdf2.c\
- outdbg.c outieee.c outmacho.c\
- codeview.c\
- )\
- disasm/^(disasm.c sync.c)
-
-exe nasm asm/nasm.c libnasm.a
-file bin/nasm '$outdir'/nasm 755
-man 1 nasm.1
-
-fetch curl
diff --git a/pkg/ncurses/gen.lua b/pkg/ncurses/gen.lua
@@ -0,0 +1,166 @@
+set('common_cflags', {
+ '-D NDEBUG',
+ '-I include',
+ '-I $dir',
+ '-I $outdir',
+ '-I $outdir/include',
+ '-I $srcdir/include',
+ '-I $srcdir/ncurses',
+ '-I $srcdir/progs',
+})
+cflags{'$common_cflags'}
+
+sub('tools.ninja', function()
+ toolchain 'host'
+ cflags{'$common_cflags', '-D USE_BUILD_CC'}
+ exe('make_keys', {'ncurses/tinfo/make_keys.c'}, {
+ '$outdir/names.c',
+ '$outdir/include/curses.h',
+ '$outdir/include/ncurses_dll.h',
+ })
+ exe('make_hash', {'ncurses/tinfo/make_hash.c'}, {
+ '$outdir/hashsize.h',
+ '$outdir/include/curses.h',
+ })
+end)
+
+build('sed', '$outdir/curses.head', {'$srcdir/include/curses.h.in', '|', '$dir/subst.sed'}, {
+ expr='-f $dir/subst.sed',
+})
+rule('mkkeydefs', '{ cat $outdir/curses.head && sh $srcdir/include/MKkey_defs.sh $in && cat $srcdir/include/curses.wide $srcdir/include/curses.tail; } >$out.tmp && mv $out.tmp $out')
+build('mkkeydefs', '$outdir/include/curses.h', {'$srcdir/include/Caps', '|',
+ '$outdir/curses.head',
+ '$srcdir/include/curses.wide',
+ '$srcdir/include/curses.tail',
+ '$srcdir/include/MKkey_defs.sh',
+})
+
+rule('mkhashsize', 'sh $srcdir/include/MKhashsize.sh $in >$out.tmp && mv $out.tmp $out')
+build('mkhashsize', '$outdir/hashsize.h', {'$srcdir/include/Caps', '|', '$srcdir/include/MKhashsize.sh'})
+
+rule('mkkeyslist', 'sh $srcdir/ncurses/tinfo/MKkeys_list.sh $in | sort >$out.tmp && mv $out.tmp $out')
+build('mkkeyslist', '$outdir/keys.list', {'$srcdir/include/Caps', '|', '$srcdir/ncurses/tinfo/MKkeys_list.sh'})
+
+rule('mkkeys', '$outdir/make_keys $in >$out.tmp && mv $out.tmp $out')
+build('mkkeys', '$outdir/init_keytry.h', {'$outdir/keys.list', '|', '$outdir/make_keys'})
+
+rule('mkdefs', 'sh $srcdir/include/MKncurses_def.sh $in >$out.tmp && mv $out.tmp $out')
+build('mkdefs', '$outdir/ncurses_def.h', {'$srcdir/include/ncurses_defs', '|', '$srcdir/include/MKncurses_def.sh'})
+
+build('sed', '$outdir/include/ncurses_dll.h', '$srcdir/include/ncurses_dll.h.in', {
+ expr='s,@NCURSES_WRAP_PREFIX@,_nc_,',
+})
+
+rule('mkparam', '$srcdir/include/MKparametrized.sh $in >$out.tmp && mv $out.tmp $out')
+build('mkparam', '$outdir/parametrized.h', {'$srcdir/include/Caps', '|', '$srcdir/include/MKparametrized.sh'})
+
+build('sed', '$outdir/MKterm.h.awk', {'$srcdir/include/MKterm.h.awk.in', '|', '$dir/subst.sed'}, {
+ expr='-f $dir/subst.sed',
+})
+
+for _, f in ipairs{'termcap.h', 'unctrl.h'} do
+ build('sed', '$outdir/include/'..f, {'$srcdir/include/'..f..'.in', '|', '$dir/subst.sed'}, {
+ expr='-f $dir/subst.sed',
+ })
+end
+
+rule('mkterm', 'awk -f $outdir/MKterm.h.awk $in >$out.tmp && mv $out.tmp $out')
+build('mkterm', '$outdir/include/term.h', {'$srcdir/include/Caps', '|', '$outdir/MKterm.h.awk'})
+
+build('awk', '$outdir/codes.c', {'$srcdir/include/Caps', '|', '$srcdir/ncurses/tinfo/MKcodes.awk'}, {
+ expr='-f $srcdir/ncurses/tinfo/MKcodes.awk bigstrings=1',
+})
+
+rule('mkcaptab', '(cd $outdir && $$OLDPWD/$srcdir/ncurses/tinfo/MKcaptab.sh awk 1 $$OLDPWD/$srcdir/ncurses/tinfo/MKcaptab.awk $$OLDPWD/$in) >$out.tmp && mv $out.tmp $out')
+build('mkcaptab', '$outdir/comp_captab.c', {'$srcdir/include/Caps', '|',
+ '$outdir/make_hash',
+ '$srcdir/tinfo/MKcaptab.awk',
+ '$srcdir/tinfo/MKcaptab.sh',
+})
+
+rule('mkfallback', 'sh $srcdir/ncurses/tinfo/MKfallback.sh /dev/null /dev/null /dev/null >$out.tmp && mv $out.tmp $out')
+build('mkfallback', '$outdir/fallback.c', {'|', '$srcdir/ncurses/tinfo/MKfallback.sh'})
+
+build('awk', '$outdir/lib_keyname.c', '$outdir/keys.list', {
+ expr='-f $srcdir/ncurses/base/MKkeyname.awk bigstrings=1',
+})
+
+build('awk', '$outdir/names.c', {'$srcdir/include/Caps', '|', '$srcdir/ncurses/tinfo/MKnames.awk'}, {
+ expr='-f $srcdir/ncurses/tinfo/MKnames.awk bigstrings=1',
+})
+
+rule('mktermsort', 'sh $srcdir/progs/MKtermsort.sh awk $in >$out.tmp && mv $out.tmp $out')
+build('mktermsort', '$outdir/termsort.c', {'$srcdir/include/Caps', '|', '$srcdir/progs/MKtermsort.sh'})
+
+build('awk', '$outdir/unctrl.c', '/dev/null | $srcdir/ncurses/base/MKunctrl.awk', {
+ expr='-f $srcdir/ncurses/base/MKunctrl.awk bigstrings=1',
+})
+
+pkg.hdrs = {
+ '$outdir/include/curses.h',
+ '$outdir/include/ncurses_dll.h',
+ '$outdir/include/term.h',
+ '$outdir/include/termcap.h',
+ '$outdir/include/unctrl.h',
+ install=true,
+}
+pkg.deps = {
+ '$dir/headers',
+ '$outdir/hashsize.h',
+ '$outdir/init_keytry.h',
+ '$outdir/ncurses_def.h',
+ '$outdir/parametrized.h',
+ '$outdir/termsort.c',
+}
+
+lib('libncurses.a', lines('sources.txt'))
+file('lib/libncurses.a', '644', '$outdir/libncurses.a')
+
+exe('tic', [[
+ progs/(tic.c dump_entry.c tparm_type.c transform.c)
+ ncurses/(
+ tinfo/(
+ alloc_entry.c
+ captoinfo.c
+ comp_expand.c
+ comp_parse.c
+ comp_scan.c
+ parse_entry.c
+ write_entry.c
+ )
+ trace/lib_trace.c
+ )
+ libncurses.a
+]])
+file('bin/tic', '755', '$outdir/tic')
+
+exe('tset', {'progs/tset.c', 'progs/transform.c.o', 'libncurses.a'})
+file('bin/tset', '755', '$outdir/tset')
+sym('bin/reset', 'tset')
+
+for _, f in ipairs{'tic.1m', 'tset.1'} do
+ local out = '$outdir/'..f
+ build('sed', out, {'$srcdir/man/'..f, '|', '$dir/subst.sed'}, {
+ expr='-f $dir/subst.sed',
+ })
+ man({out}, '1')
+end
+sym('share/man/man1/reset.1.gz', 'tset.1.gz')
+
+local terms = {'dumb', 'linux', 'tmux', 'tmux-256color', 'xterm', 'xterm-256color'}
+local terminfo = {}
+for _, term in ipairs(terms) do
+ table.insert(terminfo, term:sub(1, 1)..'/'..term)
+end
+build('tic', expand{'$outdir/terminfo/', terminfo}, '$srcdir/misc/terminfo.src', {
+ ticflags={
+ '-o $outdir/terminfo',
+ '-e', table.concat(terms, ','),
+ '-x',
+ },
+})
+for _, f in ipairs(terminfo) do
+ file('share/terminfo/'..f, '644', '$outdir/terminfo/'..f)
+end
+
+fetch 'curl'
diff --git a/pkg/ncurses/gen.rc b/pkg/ncurses/gen.rc
@@ -1,128 +0,0 @@
-set common_cflags\
- -D NDEBUG\
- -I include\
- -I '$dir' \
- -I '$outdir' \
- -I '$outdir'/include\
- -I '$srcdir'/include\
- -I '$srcdir'/ncurses\
- -I '$srcdir'/progs
-cflags '$common_cflags'
-
-{
- toolchain host
- cflags '$common_cflags' -D USE_BUILD_CC
- exe make_keys -d '$outdir/names.c $outdir/include/curses.h $outdir/include/ncurses_dll.h' ncurses/tinfo/make_keys.c
- exe make_hash -d '$outdir/hashsize.h $outdir/include/curses.h' ncurses/tinfo/make_hash.c
-} >tools.ninja ; subninja tools.ninja
-
-build '$outdir'/curses.head sed '$srcdir'/include/curses.h.in '|' '$dir'/subst.sed ; with\
- expr '-f $dir/subst.sed'
-rule mkkeydefs '{ cat $outdir/curses.head && sh $srcdir/include/MKkey_defs.sh $in && cat $srcdir/include/curses.wide $srcdir/include/curses.tail; } >$out.tmp && mv $out.tmp $out'
-build '$outdir'/include/curses.h mkkeydefs '$srcdir'/include/Caps '|' '$outdir'/curses.head '$srcdir'/include/^(curses.^(wide tail) MKkey_defs.sh)
-
-rule mkhashsize 'sh $srcdir/include/MKhashsize.sh $in >$out.tmp && mv $out.tmp $out'
-build '$outdir'/hashsize.h mkhashsize '$srcdir'/include/Caps '|' '$srcdir'/include/MKhashsize.sh
-
-rule mkkeyslist 'sh $srcdir/ncurses/tinfo/MKkeys_list.sh $in | sort >$out.tmp && mv $out.tmp $out'
-build '$outdir'/keys.list mkkeyslist '$srcdir'/include/Caps '|' '$srcdir'/ncurses/tinfo/MKkeys_list.sh
-
-rule mkkeys '$outdir/make_keys $in >$out.tmp && mv $out.tmp $out'
-build '$outdir'/init_keytry.h mkkeys '$outdir'/keys.list '|' '$outdir'/make_keys
-
-rule mkdefs 'sh $srcdir/include/MKncurses_def.sh $in >$out.tmp && mv $out.tmp $out'
-build '$outdir'/ncurses_def.h mkdefs '$srcdir'/include/ncurses_defs '|' '$srcdir'/include/MKncurses_def.sh
-
-build '$outdir'/include/ncurses_dll.h sed '$srcdir'/include/ncurses_dll.h.in ; with\
- expr s,@NCURSES_WRAP_PREFIX@,_nc_,
-
-rule mkparam '$srcdir/include/MKparametrized.sh $in >$out.tmp && mv $out.tmp $out'
-build '$outdir'/parametrized.h mkparam '$srcdir'/include/Caps '|' '$srcdir'/include/MKparametrized.sh
-
-build '$outdir'/MKterm.h.awk sed '$srcdir'/include/MKterm.h.awk.in '|' '$dir'/subst.sed ; with\
- expr '-f $dir/subst.sed'
-
-for(f in termcap.h unctrl.h) {
- build '$outdir'/include/$f sed '$srcdir'/include/$f.in '|' '$dir'/subst.sed ; with\
- expr '-f $dir/subst.sed'
-}
-
-rule mkterm 'awk -f $outdir/MKterm.h.awk $in >$out.tmp && mv $out.tmp $out'
-build '$outdir'/include/term.h mkterm '$srcdir'/include/Caps '|' '$outdir'/MKterm.h.awk
-
-build '$outdir'/codes.c awk '$srcdir'/include/Caps '|' '$srcdir'/ncurses/tinfo/MKcodes.awk ; with\
- expr '-f $srcdir/ncurses/tinfo/MKcodes.awk bigstrings=1'
-
-rule mkcaptab '(cd $outdir && $$OLDPWD/$srcdir/ncurses/tinfo/MKcaptab.sh awk 1 $$OLDPWD/$srcdir/ncurses/tinfo/MKcaptab.awk $$OLDPWD/$in) >$out.tmp && mv $out.tmp $out'
-build '$outdir'/comp_captab.c mkcaptab '$srcdir'/include/Caps '|' '$outdir'/make_hash '$srcdir'/tinfo/^(MKcaptab.awk MKcaptab.sh)
-
-rule mkfallback 'sh $srcdir/ncurses/tinfo/MKfallback.sh /dev/null /dev/null /dev/null >$out.tmp && mv $out.tmp $out'
-build '$outdir'/fallback.c mkfallback '|' '$srcdir'/ncurses/tinfo/MKfallback.sh
-
-build '$outdir'/lib_keyname.c awk '$outdir'/keys.list ; with\
- expr '-f $srcdir/ncurses/base/MKkeyname.awk bigstrings=1'
-
-build '$outdir'/names.c awk '$srcdir'/include/Caps '|' '$srcdir'/ncurses/tinfo/MKnames.awk ; with\
- expr '-f $srcdir/ncurses/tinfo/MKnames.awk bigstrings=1'
-
-rule mktermsort 'sh $srcdir/progs/MKtermsort.sh awk $in >$out.tmp && mv $out.tmp $out'
-build '$outdir'/termsort.c mktermsort '$srcdir'/include/Caps '|' '$srcdir'/progs/MKtermsort.sh
-
-build '$outdir'/unctrl.c awk /dev/null '|' '$srcdir'/ncurses/base/MKunctrl.awk ; with\
- expr '-f $srcdir/ncurses/base/MKunctrl.awk bigstrings=1'
-
-hdrs=include/^(curses.h ncurses_dll.h term.h termcap.h unctrl.h)
-for(hdr in $hdrs) file $hdr '$outdir'/$hdr 644
-phony headers '$outdir'/$hdrs
-
-phony deps '$outdir'/^(\
- hashsize.h init_keytry.h ncurses_def.h parametrized.h termsort.c\
-) '$dir'/headers
-
-lib libncurses.a -d '$dir'/deps `{grep -v '^#' sources.txt}
-file lib/libncurses.a '$outdir'/libncurses.a 644
-
-exe tic -d '$dir'/deps\
- progs/^(tic.c dump_entry.c tparm_type.c transform.c)\
- ncurses/^(\
- tinfo/^(\
- alloc_entry.c\
- captoinfo.c\
- comp_expand.c\
- comp_parse.c\
- comp_scan.c\
- parse_entry.c\
- write_entry.c\
- )\
- trace/lib_trace.c\
- )\
- libncurses.a
-file bin/tic '$outdir'/tic 755
-
-exe tset -d '$dir'/deps progs/^(tset.c transform.c.o) libncurses.a
-file bin/tset '$outdir'/tset 755
-sym bin/reset tset
-
-for(m in tic.1m tset.1) {
- build '$outdir'/$m sed '$srcdir'/man/$m '|' '$dir'/subst.sed ; with\
- expr '-f $dir/subst.sed'
- man -d '$outdir' 1 $m
-}
-sym share/man/man1/reset.1.gz tset.1.gz
-
-terms=(dumb linux tmux tmux-256color xterm xterm-256color)
-terminfo=`{printf %s\n $terms | awk '{print substr($0, 1, 1) "/" $0}'}
-termnames=`{printf ,%s $terms | tail -c +1}
-terminfo_outs='$outdir'/terminfo/$terminfo
-
-build $"terminfo_outs tic '$srcdir'/misc/terminfo.src ; ticflags=(\
- -o '$outdir'/terminfo\
- -e $termnames\
- -x\
-) with ticflags $"ticflags
-for(f in $terminfo)
- file share/terminfo/$f '$outdir'/terminfo/$f 644
-
-gen_inputs='$dir'/sources.txt
-
-fetch curl
diff --git a/pkg/netsurf/gen.lua b/pkg/netsurf/gen.lua
@@ -0,0 +1,197 @@
+cflags{'-D NDEBUG'}
+
+subgen 'libcss'
+subgen 'libdom'
+subgen 'libhubbub'
+subgen 'libnsbmp'
+subgen 'libnsgif'
+subgen 'libnsutils'
+subgen 'libparserutils'
+subgen 'libsvgtiny'
+subgen 'libwapcaplet'
+subgen 'nsgenbind'
+
+sub('tools.ninja', function()
+ toolchain 'host'
+ exe('convert_image', {'frontends/framebuffer/convert_image.c'}, {'pkg/libpng/headers'}, {
+ ldlibs='-lpng -lz',
+ })
+end)
+
+-- netsurf
+cflags{
+ '-include $dir/config.h',
+ '-I $dir',
+ '-I $srcdir',
+ '-I $srcdir/include',
+ '-I $srcdir/frontends',
+ '-I $srcdir/content/handlers',
+ '-I $outdir',
+ '-I $outdir/libdom/include',
+ '-I $builddir/pkg/curl/include',
+ '-I $builddir/pkg/libjpeg-turbo/include',
+ '-I $builddir/pkg/libpng/include',
+ '-I $builddir/pkg/libressl/include',
+ '-I $builddir/pkg/pixman/include',
+ '-I $builddir/pkg/wayland/include',
+ '-I $builddir/pkg/wayland-protocols/include',
+ '-I $builddir/pkg/zlib/include',
+ '-I $dir/libcss/src/include',
+ '-I $dir/libdom/src/include',
+ '-I $dir/libhubbub/src/include',
+ '-I $dir/libnsbmp/src/include',
+ '-I $dir/libnsgif/src/include',
+ '-I $dir/libnsutils/src/include',
+ '-I $dir/libparserutils/src/include',
+ '-I $dir/libsvgtiny/src/include',
+ '-I $dir/libwapcaplet/src/include',
+ '-I pkg/freetype/src/include',
+ '-I pkg/libxkbcommon/src',
+ '-I pkg/openbsd/include',
+ '-I pkg/utf8proc/src',
+}
+
+rule('nsgenbind', '$outdir/nsgenbind/nsgenbind -I $srcdir/content/handlers/javascript/WebIDL $in $outdir/duktape', {
+ restat='1',
+})
+
+local nsgenbind = expand{'$outdir/duktape/', lines('nsgenbind.txt')}
+build('nsgenbind', nsgenbind, {
+ '$srcdir/content/handlers/javascript/duktape/netsurf.bnd',
+ '|', '$outdir/nsgenbind/nsgenbind',
+})
+
+pkg.deps = {
+ '$builddir/pkg/freetype/fetch.stamp',
+ '$builddir/pkg/libxkbcommon/fetch.stamp',
+ '$builddir/pkg/utf8proc/fetch.stamp',
+ '$dir/libdom/headers',
+ '$outdir/duktape/binding.c',
+ '$outdir/libcss/fetch.stamp',
+ '$outdir/libdom/fetch.stamp',
+ '$outdir/libhubbub/fetch.stamp',
+ '$outdir/libnsbmp/fetch.stamp',
+ '$outdir/libnsgif/fetch.stamp',
+ '$outdir/libnsutils/fetch.stamp',
+ '$outdir/libparserutils/fetch.stamp',
+ '$outdir/libsvgtiny/fetch.stamp',
+ '$outdir/libwapcaplet/fetch.stamp',
+ 'pkg/curl/headers',
+ 'pkg/libjpeg-turbo/headers',
+ 'pkg/libpng/headers',
+ 'pkg/libressl/headers',
+ 'pkg/zlib/headers',
+}
+
+local sources = {}
+for _, src in ipairs(nsgenbind) do
+ if src:hassuffix('.c') then
+ table.insert(sources, src)
+ end
+end
+exe('netsurf', {sources, paths[[
+ desktop/(
+ cookie_manager.c knockout.c hotlist.c mouse.c
+ plot_style.c print.c search.c searchweb.c scrollbar.c
+ sslcert_viewer.c textarea.c version.c system_colour.c
+ local_history.c global_history.c treeview.c
+
+ browser.c browser_history.c download.c frames.c netsurf.c
+ save_complete.c save_text.c selection.c textinput.c gui_factory.c
+ save_pdf.c font_haru.c
+ )
+ frontends/tiny/(download.c fetch.c icons.c gui.c render.c schedule.c ui.c wl.c)
+ content/(
+ content.c content_factory.c dirlist.c fetch.c hlcache.c
+ llcache.c mimesniff.c urldb.c no_backing_store.c
+ fetchers/(curl.c data.c file.c about.c resource.c)
+ handlers/(
+ javascript/(fetcher.c content.c duktape/(dukky.c duktape.c))
+ css/(css.c dump.c internal.c hints.c select.c utils.c)
+ image/(image.c image_cache.c bmp.c gif.c ico.c jpeg.c png.c svg.c)
+ )
+ )
+ utils/(
+ bloom.c
+ corestrings.c
+ file.c
+ filename.c
+ filepath.c
+ hashtable.c
+ idna.c
+ libdom.c
+ log.c
+ messages.c
+ nsoption.c
+ punycode.c
+ talloc.c
+ time.c
+ url.c
+ useragent.c
+ utf8.c
+ utils.c
+ http/(
+ challenge.c generics.c primitives.c parameter.c
+ content-disposition.c content-type.c www-authenticate.c
+ )
+ nsurl/(
+ nsurl.c
+ parse.c
+ )
+ )
+ render/(
+ box.c box_construct.c box_normalise.c box_textarea.c
+ font.c form.c imagemap.c layout.c search.c table.c textplain.c
+ html.c html_css.c html_css_fetcher.c html_script.c
+ html_interaction.c html_redraw.c html_redraw_border.c
+ html_forms.c html_object.c
+ )
+ $outdir/(
+ libcss/libcss.a.d
+ libdom/libdom.a.d
+ libnsbmp/libnsbmp.a
+ libnsgif/libnsgif.a
+ libnsutils/libnsutils.a
+ libsvgtiny/libsvgtiny.a.d
+ )
+ $builddir/pkg/(
+ curl/libcurl.a.d
+ freetype/libfreetype.a.d
+ libjpeg-turbo/libjpeg-turbo.a
+ libpng/libpng.a
+ libxkbcommon/libxkbcommon.a
+ pixman/libpixman.a
+ utf8proc/libutf8proc.a
+ wayland/(libwayland-client.a.d libwayland-cursor.a)
+ zlib/libz.a
+
+ wayland-protocols/xdg-shell-unstable-v5-protocol.c.o
+ )
+]]})
+file('bin/netsurf', '755', '$outdir/netsurf')
+
+build('sed', '$outdir/netsurf.1', '$srcdir/docs/netsurf-fb.1', {
+ expr='s,netsurf-fb,netsurf,g',
+})
+man{'$outdir/netsurf.1'}
+
+build('awk', '$outdir/Messages', {'$srcdir/resources/FatMessages', '|', '$dir/messages.awk'}, {
+ expr='-f $dir/messages.awk -v lang=en -v filter=any',
+})
+file('share/netsurf/Messages', '644', '$outdir/Messages')
+
+file('share/netsurf/adblock.css', '644', '$srcdir/!NetSurf/Resources/AdBlock,f79')
+file('share/netsurf/credits.html', '644', '$srcdir/!NetSurf/Resources/en/credits.html,faf')
+file('share/netsurf/default.css', '644', '$srcdir/!NetSurf/Resources/CSS,f79')
+file('share/netsurf/favicon.png', '644', '$srcdir/resources/favicon.png')
+file('share/netsurf/internal.css', '644', '$srcdir/!NetSurf/Resources/internal.css,f79')
+file('share/netsurf/licence.html', '644', '$srcdir/!NetSurf/Resources/en/licence.html,faf')
+sym('share/netsurf/maps.html', 'welcome.html')
+file('share/netsurf/netsurf.png', '644', '$srcdir/!NetSurf/Resources/netsurf.png,b60')
+file('share/netsurf/quirks.css', '644', '$srcdir/!NetSurf/Resources/Quirks,f79')
+file('share/netsurf/welcome.html', '644', '$srcdir/!NetSurf/Resources/en/welcome.html,faf')
+for icon in iterpaths[[back forward add remove home reload stop close up down]] do
+ file('share/netsurf/icons/'..icon..'.ff', '644', '$srcdir/frontends/tiny/res/icons/'..icon..'.ff')
+end
+
+fetch 'git'
diff --git a/pkg/netsurf/gen.rc b/pkg/netsurf/gen.rc
@@ -1,170 +0,0 @@
-cflags -D NDEBUG
-
-subgen libcss
-subgen libdom
-subgen libhubbub
-subgen libnsbmp
-subgen libnsgif
-subgen libnsutils
-subgen libparserutils
-subgen libsvgtiny
-subgen libwapcaplet
-subgen nsgenbind
-
-{
- toolchain host
- exe convert_image -d pkg/libpng/headers frontends/framebuffer/convert_image.c ; with\
- ldlibs '-lpng -lz'
-} >tools.ninja ; subninja tools.ninja
-
-# netsurf
-cflags\
- -include '$dir'/config.h\
- -I '$dir' \
- -I '$srcdir' \
- -I '$srcdir'/include\
- -I '$srcdir'/frontends\
- -I '$srcdir'/content/handlers\
- -I '$outdir' \
- -I '$outdir'/libdom/include\
- -I '$builddir'/pkg/curl/include\
- -I '$builddir'/pkg/libjpeg-turbo/include\
- -I '$builddir'/pkg/libpng/include\
- -I '$builddir'/pkg/libressl/include\
- -I '$builddir'/pkg/pixman/include\
- -I '$builddir'/pkg/wayland/include\
- -I '$builddir'/pkg/wayland-protocols/include\
- -I '$builddir'/pkg/zlib/include\
- -I '$dir'/libcss/src/include\
- -I '$dir'/libdom/src/include\
- -I '$dir'/libhubbub/src/include\
- -I '$dir'/libnsbmp/src/include\
- -I '$dir'/libnsgif/src/include\
- -I '$dir'/libnsutils/src/include\
- -I '$dir'/libparserutils/src/include\
- -I '$dir'/libsvgtiny/src/include\
- -I '$dir'/libwapcaplet/src/include\
- -I pkg/freetype/src/include\
- -I pkg/libxkbcommon/src\
- -I pkg/openbsd/include\
- -I pkg/utf8proc/src
-
-gen_inputs=($gen_inputs '$dir'/nsgenbind.txt) ; checkstatus
-rule nsgenbind '$outdir/nsgenbind/nsgenbind -I $srcdir/content/handlers/javascript/WebIDL $in $outdir/duktape' ; with\
- restat 1
-
-nsgenbind_srcs='$outdir'/duktape/`{cat nsgenbind.txt}
-build $"nsgenbind_srcs nsgenbind '$srcdir'/content/handlers/javascript/duktape/netsurf.bnd '|' '$outdir'/nsgenbind/nsgenbind
-
-phony deps '$outdir'/duktape/binding.c\
- '$outdir'/^(\
- libcss libdom libhubbub libnsbmp libnsgif libnsutils\
- libparserutils libsvgtiny libwapcaplet\
- )^/fetch.stamp\
- '$builddir'/pkg/^(freetype libxkbcommon utf8proc)^/fetch.stamp\
- ('$dir'/libdom pkg/^(curl libjpeg-turbo libpng libressl zlib))^/headers
-
-exe netsurf -d '$dir'/deps\
- desktop/^(\
- cookie_manager.c knockout.c hotlist.c mouse.c\
- plot_style.c print.c search.c searchweb.c scrollbar.c\
- sslcert_viewer.c textarea.c version.c system_colour.c\
- local_history.c global_history.c treeview.c\
- \
- browser.c browser_history.c download.c frames.c netsurf.c\
- save_complete.c save_text.c selection.c textinput.c gui_factory.c\
- save_pdf.c font_haru.c\
- )\
- frontends/tiny/^(download.c fetch.c icons.c gui.c render.c schedule.c ui.c wl.c)\
- content/^(\
- content.c content_factory.c dirlist.c fetch.c hlcache.c\
- llcache.c mimesniff.c urldb.c no_backing_store.c\
- fetchers/^(curl.c data.c file.c about.c resource.c)\
- handlers/^(\
- javascript/^(fetcher.c content.c duktape/^(dukky.c duktape.c))\
- css/^(css.c dump.c internal.c hints.c select.c utils.c)\
- image/^(image.c image_cache.c bmp.c gif.c ico.c jpeg.c png.c svg.c)\
- )\
- )\
- utils/^(\
- bloom.c\
- corestrings.c\
- file.c\
- filename.c\
- filepath.c\
- hashtable.c\
- idna.c\
- libdom.c\
- log.c\
- messages.c\
- nsoption.c\
- punycode.c\
- talloc.c\
- time.c\
- url.c\
- useragent.c\
- utf8.c\
- utils.c\
- http/^(\
- challenge.c generics.c primitives.c parameter.c\
- content-disposition.c content-type.c www-authenticate.c\
- )\
- nsurl/^(\
- nsurl.c\
- parse.c\
- )\
- )\
- render/^(\
- box.c box_construct.c box_normalise.c box_textarea.c\
- font.c form.c imagemap.c layout.c search.c table.c textplain.c\
- html.c html_css.c html_css_fetcher.c html_script.c\
- html_interaction.c html_redraw.c html_redraw_border.c\
- html_forms.c html_object.c\
- )\
- '$outdir'/^(\
- duktape/`{grep '\.c$' nsgenbind.txt}\
- \
- libcss/libcss.a.d\
- libdom/libdom.a.d\
- libnsbmp/libnsbmp.a\
- libnsgif/libnsgif.a\
- libnsutils/libnsutils.a\
- libsvgtiny/libsvgtiny.a.d\
- )\
- '$builddir'/pkg/^(\
- curl/libcurl.a.d\
- freetype/libfreetype.a.d\
- libjpeg-turbo/libjpeg-turbo.a\
- libpng/libpng.a\
- libxkbcommon/libxkbcommon.a\
- pixman/libpixman.a\
- utf8proc/libutf8proc.a\
- wayland/^(libwayland-client.a.d libwayland-cursor.a)\
- zlib/libz.a\
- \
- wayland-protocols/xdg-shell-unstable-v5-protocol.c.o\
- )
-file bin/netsurf '$outdir'/netsurf 755
-
-build '$outdir'/netsurf.1 sed '$srcdir'/docs/netsurf-fb.1 ; with\
- expr 's,netsurf-fb,netsurf,g'
-man -d '$outdir' 1 netsurf.1
-
-build '$outdir'/Messages awk '$srcdir'/resources/FatMessages '|' '$dir'/messages.awk ; with\
- expr '-f $dir/messages.awk -v lang=en -v filter=any'
-file share/netsurf/Messages '$outdir'/Messages 644
-
-file share/netsurf/adblock.css '$srcdir'/!NetSurf/Resources/AdBlock,f79 644
-file share/netsurf/credits.html '$srcdir'/!NetSurf/Resources/en/credits.html,faf 644
-file share/netsurf/default.css '$srcdir'/!NetSurf/Resources/CSS,f79 644
-file share/netsurf/favicon.png '$srcdir'/resources/favicon.png 644
-file share/netsurf/internal.css '$srcdir'/!NetSurf/Resources/internal.css,f79 644
-file share/netsurf/licence.html '$srcdir'/!NetSurf/Resources/en/licence.html,faf 644
-sym share/netsurf/maps.html welcome.html
-file share/netsurf/netsurf.png '$srcdir'/!NetSurf/Resources/netsurf.png,b60 644
-file share/netsurf/quirks.css '$srcdir'/!NetSurf/Resources/Quirks,f79 644
-file share/netsurf/welcome.html '$srcdir'/!NetSurf/Resources/en/welcome.html,faf 644
-for(icon in back forward add remove home reload stop close up down)
- file share/netsurf/icons/$icon.ff '$srcdir'/frontends/tiny/res/icons/$icon.ff 644
-
-fetch git
diff --git a/pkg/netsurf/libcss/gen.lua b/pkg/netsurf/libcss/gen.lua
@@ -0,0 +1,191 @@
+cflags{
+ '-I $srcdir/include',
+ '-I $srcdir/src',
+ '-I pkg/netsurf/libparserutils/src/include',
+ '-I pkg/netsurf/libwapcaplet/src/include',
+}
+
+sub('tools.ninja', function()
+ toolchain 'host'
+ exe('gen_prop_parser', {'src/parse/properties/css_property_parser_gen.c'})
+end)
+
+build('awk', '$outdir/prop_parsers.c', {
+ '$srcdir/src/parse/properties/properties.gen',
+ '|', '$dir/prop_parsers.awk', '$outdir/gen_prop_parser',
+}, {expr='-f $dir/prop_parsers.awk gen_prop_parser=$outdir/gen_prop_parser'})
+
+pkg.deps = {
+ '$builddir/pkg/netsurf/libparserutils/fetch.stamp',
+ '$builddir/pkg/netsurf/libwapcaplet/fetch.stamp',
+}
+
+lib('libcss.a', [[src/(
+ stylesheet.c
+ charset/detect.c
+ lex/lex.c
+ parse/(
+ parse.c language.c important.c propstrings.c font_face.c
+ properties/(
+ azimuth.c
+ background.c
+ background_position.c
+ border.c
+ border_color.c
+ border_spacing.c
+ border_style.c
+ border_width.c
+ clip.c
+ columns.c
+ column_rule.c
+ content.c
+ cue.c
+ cursor.c
+ elevation.c
+ font.c
+ font_family.c
+ font_weight.c
+ list_style.c
+ list_style_type.c
+ margin.c
+ opacity.c
+ outline.c
+ overflow.c
+ padding.c
+ pause.c
+ play_during.c
+ properties.c
+ quotes.c
+ text_decoration.c
+ utils.c
+ voice_family.c
+ )
+ )
+ select/(
+ arena.c computed.c dispatch.c hash.c select.c font_face.c
+ properties/(
+ helpers.c
+ azimuth.c
+ background_attachment.c
+ background_color.c
+ background_image.c
+ background_position.c
+ background_repeat.c
+ border_bottom_color.c
+ border_bottom_style.c
+ border_bottom_width.c
+ border_collapse.c
+ border_left_color.c
+ border_left_style.c
+ border_left_width.c
+ border_right_color.c
+ border_right_style.c
+ border_right_width.c
+ border_spacing.c
+ border_top_color.c
+ border_top_style.c
+ border_top_width.c
+ bottom.c
+ box_sizing.c
+ break_after.c
+ break_before.c
+ break_inside.c
+ caption_side.c
+ clear.c
+ clip.c
+ color.c
+ column_count.c
+ column_fill.c
+ column_gap.c
+ column_rule_color.c
+ column_rule_style.c
+ column_rule_width.c
+ column_span.c
+ column_width.c
+ content.c
+ counter_increment.c
+ counter_reset.c
+ cue_after.c
+ cue_before.c
+ cursor.c
+ direction.c
+ display.c
+ elevation.c
+ empty_cells.c
+ float.c
+ font_family.c
+ font_size.c
+ font_style.c
+ font_variant.c
+ font_weight.c
+ height.c
+ left.c
+ letter_spacing.c
+ line_height.c
+ list_style_image.c
+ list_style_position.c
+ list_style_type.c
+ margin_bottom.c
+ margin_left.c
+ margin_right.c
+ margin_top.c
+ max_height.c
+ max_width.c
+ min_height.c
+ min_width.c
+ opacity.c
+ orphans.c
+ outline_color.c
+ outline_style.c
+ outline_width.c
+ overflow_x.c
+ overflow_y.c
+ padding_bottom.c
+ padding_left.c
+ padding_right.c
+ padding_top.c
+ page_break_after.c
+ page_break_before.c
+ page_break_inside.c
+ pause_after.c
+ pause_before.c
+ pitch.c
+ pitch_range.c
+ play_during.c
+ position.c
+ quotes.c
+ richness.c
+ right.c
+ speech_rate.c
+ speak.c
+ speak_header.c
+ speak_numeral.c
+ speak_punctuation.c
+ stress.c
+ table_layout.c
+ text_align.c
+ text_decoration.c
+ text_indent.c
+ text_transform.c
+ top.c
+ unicode_bidi.c
+ vertical_align.c
+ visibility.c
+ voice_family.c
+ volume.c
+ white_space.c
+ widows.c
+ width.c
+ word_spacing.c
+ writing_mode.c
+ z_index.c
+ )
+ )
+ utils/(errors.c utils.c)
+) $builddir/pkg/netsurf/(
+ libcss/prop_parsers.c
+ libparserutils/libparserutils.a
+ libwapcaplet/libwapcaplet.a
+)]])
+
+fetch 'git'
diff --git a/pkg/netsurf/libcss/gen.rc b/pkg/netsurf/libcss/gen.rc
@@ -1,185 +0,0 @@
-cflags\
- -I '$srcdir'/include\
- -I '$srcdir'/src\
- -I pkg/netsurf/libparserutils/src/include\
- -I pkg/netsurf/libwapcaplet/src/include
-
-{
- toolchain host
- exe gen_prop_parser src/parse/properties/css_property_parser_gen.c
-} >tools.ninja ; subninja tools.ninja
-
-build '$outdir'/prop_parsers.c awk '$srcdir'/src/parse/properties/properties.gen '|' '$dir'/prop_parsers.awk '$outdir'/gen_prop_parser ; with\
- expr '-f $dir/prop_parsers.awk gen_prop_parser=$outdir/gen_prop_parser'
-
-phony deps '$builddir'/pkg/netsurf/^(libparserutils libwapcaplet)^/fetch.stamp
-
-lib libcss.a -d '$dir'/deps src/^(\
- stylesheet.c\
- charset/detect.c\
- lex/lex.c\
- parse/^(\
- parse.c language.c important.c propstrings.c font_face.c\
- properties/^(\
- azimuth.c\
- background.c\
- background_position.c\
- border.c\
- border_color.c\
- border_spacing.c\
- border_style.c\
- border_width.c\
- clip.c\
- columns.c\
- column_rule.c\
- content.c\
- cue.c\
- cursor.c\
- elevation.c\
- font.c\
- font_family.c\
- font_weight.c\
- list_style.c\
- list_style_type.c\
- margin.c\
- opacity.c\
- outline.c\
- overflow.c\
- padding.c\
- pause.c\
- play_during.c\
- properties.c\
- quotes.c\
- text_decoration.c\
- utils.c\
- voice_family.c\
- )\
- )\
- select/^(\
- arena.c computed.c dispatch.c hash.c select.c font_face.c\
- properties/^(\
- helpers.c\
- azimuth.c\
- background_attachment.c\
- background_color.c\
- background_image.c\
- background_position.c\
- background_repeat.c\
- border_bottom_color.c\
- border_bottom_style.c\
- border_bottom_width.c\
- border_collapse.c\
- border_left_color.c\
- border_left_style.c\
- border_left_width.c\
- border_right_color.c\
- border_right_style.c\
- border_right_width.c\
- border_spacing.c\
- border_top_color.c\
- border_top_style.c\
- border_top_width.c\
- bottom.c\
- box_sizing.c\
- break_after.c\
- break_before.c\
- break_inside.c\
- caption_side.c\
- clear.c\
- clip.c\
- color.c\
- column_count.c\
- column_fill.c\
- column_gap.c\
- column_rule_color.c\
- column_rule_style.c\
- column_rule_width.c\
- column_span.c\
- column_width.c\
- content.c\
- counter_increment.c\
- counter_reset.c\
- cue_after.c\
- cue_before.c\
- cursor.c\
- direction.c\
- display.c\
- elevation.c\
- empty_cells.c\
- float.c\
- font_family.c\
- font_size.c\
- font_style.c\
- font_variant.c\
- font_weight.c\
- height.c\
- left.c\
- letter_spacing.c\
- line_height.c\
- list_style_image.c\
- list_style_position.c\
- list_style_type.c\
- margin_bottom.c\
- margin_left.c\
- margin_right.c\
- margin_top.c\
- max_height.c\
- max_width.c\
- min_height.c\
- min_width.c\
- opacity.c\
- orphans.c\
- outline_color.c\
- outline_style.c\
- outline_width.c\
- overflow_x.c\
- overflow_y.c\
- padding_bottom.c\
- padding_left.c\
- padding_right.c\
- padding_top.c\
- page_break_after.c\
- page_break_before.c\
- page_break_inside.c\
- pause_after.c\
- pause_before.c\
- pitch.c\
- pitch_range.c\
- play_during.c\
- position.c\
- quotes.c\
- richness.c\
- right.c\
- speech_rate.c\
- speak.c\
- speak_header.c\
- speak_numeral.c\
- speak_punctuation.c\
- stress.c\
- table_layout.c\
- text_align.c\
- text_decoration.c\
- text_indent.c\
- text_transform.c\
- top.c\
- unicode_bidi.c\
- vertical_align.c\
- visibility.c\
- voice_family.c\
- volume.c\
- white_space.c\
- widows.c\
- width.c\
- word_spacing.c\
- writing_mode.c\
- z_index.c\
- )\
- )\
- utils/^(errors.c utils.c)\
-) '$builddir'/pkg/netsurf/^(\
- libcss/prop_parsers.c\
- libparserutils/libparserutils.a\
- libwapcaplet/libwapcaplet.a\
-)
-
-fetch git
diff --git a/pkg/netsurf/libdom/gen.lua b/pkg/netsurf/libdom/gen.lua
@@ -0,0 +1,72 @@
+cflags{
+ '-I $srcdir/include',
+ '-I $srcdir/src',
+ '-I pkg/netsurf/libhubbub/src/include',
+ '-I pkg/netsurf/libparserutils/src/include',
+ '-I pkg/netsurf/libwapcaplet/src/include',
+ '-I $builddir/pkg/expat/include',
+}
+
+pkg.hdrs = copy('$outdir/include/dom', '$srcdir', {
+ 'bindings/hubbub/errors.h',
+ 'bindings/hubbub/parser.h',
+ 'bindings/xml/xmlerror.h',
+ 'bindings/xml/xmlparser.h',
+})
+pkg.deps = {
+ 'pkg/expat/headers',
+ '$builddir/pkg/netsurf/libhubbub/fetch.stamp',
+ '$builddir/pkg/netsurf/libparserutils/fetch.stamp',
+ '$builddir/pkg/netsurf/libwapcaplet/fetch.stamp',
+}
+
+lib('libdom.a', [[
+ src/(
+ core/(
+ string.c node.c
+ attr.c characterdata.c element.c
+ implementation.c
+ text.c typeinfo.c comment.c
+ namednodemap.c nodelist.c
+ cdatasection.c document_type.c entity_ref.c pi.c
+ doc_fragment.c document.c
+ )
+ events/(
+ event.c dispatch.c event_target.c document_event.c
+ custom_event.c keyboard_event.c mouse_wheel_event.c
+ text_event.c event_listener.c mouse_event.c mutation_event.c
+ ui_event.c mouse_multi_wheel_event.c mutation_name_event.c
+ )
+ html/(
+ html_document.c html_collection.c html_options_collection.c
+ html_element.c html_html_element.c html_head_element.c
+ html_link_element.c html_title_element.c html_meta_element.c
+ html_base_element.c html_style_element.c
+ html_body_element.c html_form_element.c html_select_element.c
+ html_button_element.c html_input_element.c html_text_area_element.c
+ html_opt_group_element.c html_option_element.c html_hr_element.c
+ html_dlist_element.c html_directory_element.c html_menu_element.c
+ html_fieldset_element.c html_legend_element.c html_div_element.c
+ html_paragraph_element.c html_heading_element.c html_quote_element.c
+ html_pre_element.c html_br_element.c html_label_element.c
+ html_ulist_element.c html_olist_element.c html_li_element.c
+ html_font_element.c html_mod_element.c html_anchor_element.c
+ html_basefont_element.c html_image_element.c html_object_element.c
+ html_param_element.c html_applet_element.c html_area_element.c
+ html_map_element.c html_script_element.c html_tablecaption_element.c
+ html_tablecell_element.c html_tablecol_element.c html_tablesection_element.c
+ html_table_element.c html_tablerow_element.c html_frameset_element.c
+ html_frame_element.c html_iframe_element.c html_isindex_element.c
+ )
+ utils/(namespace.c hashtable.c character_valid.c validate.c)
+ )
+ bindings/hubbub/parser.c
+ bindings/xml/expat_xmlparser.c
+ $builddir/pkg/(
+ expat/libexpat.a.d
+ netsurf/libhubbub/libhubbub.a.d
+ netsurf/libwapcaplet/libwapcaplet.a
+ )
+]])
+
+fetch 'git'
diff --git a/pkg/netsurf/libdom/gen.rc b/pkg/netsurf/libdom/gen.rc
@@ -1,67 +0,0 @@
-cflags\
- -I '$srcdir'/include\
- -I '$srcdir'/src\
- -I pkg/netsurf/libhubbub/src/include\
- -I pkg/netsurf/libparserutils/src/include\
- -I pkg/netsurf/libwapcaplet/src/include\
- -I '$builddir'/pkg/expat/include
-
-hdrs=bindings/^(hubbub/^(errors.h parser.h) xml/^(xmlerror.h xmlparser.h))
-for(hdr in $hdrs)
- build '$outdir'/include/dom/$hdr copy '$srcdir'/$hdr
-phony headers '$outdir'/include/dom/$hdrs
-phony deps\
- pkg/expat/headers\
- '$builddir'/pkg/netsurf/^(libhubbub libparserutils libwapcaplet)^/fetch.stamp
-
-lib libdom.a -d '$dir'/deps\
- src/^(\
- core/^(\
- string.c node.c\
- attr.c characterdata.c element.c\
- implementation.c\
- text.c typeinfo.c comment.c\
- namednodemap.c nodelist.c\
- cdatasection.c document_type.c entity_ref.c pi.c\
- doc_fragment.c document.c\
- )\
- events/^(\
- event.c dispatch.c event_target.c document_event.c\
- custom_event.c keyboard_event.c mouse_wheel_event.c\
- text_event.c event_listener.c mouse_event.c mutation_event.c\
- ui_event.c mouse_multi_wheel_event.c mutation_name_event.c\
- )\
- html/^(\
- html_document.c html_collection.c html_options_collection.c\
- html_element.c html_html_element.c html_head_element.c\
- html_link_element.c html_title_element.c html_meta_element.c\
- html_base_element.c html_style_element.c\
- html_body_element.c html_form_element.c html_select_element.c\
- html_button_element.c html_input_element.c html_text_area_element.c\
- html_opt_group_element.c html_option_element.c html_hr_element.c\
- html_dlist_element.c html_directory_element.c html_menu_element.c\
- html_fieldset_element.c html_legend_element.c html_div_element.c\
- html_paragraph_element.c html_heading_element.c html_quote_element.c\
- html_pre_element.c html_br_element.c html_label_element.c\
- html_ulist_element.c html_olist_element.c html_li_element.c\
- html_font_element.c html_mod_element.c html_anchor_element.c\
- html_basefont_element.c html_image_element.c html_object_element.c\
- html_param_element.c html_applet_element.c html_area_element.c\
- html_map_element.c html_script_element.c html_tablecaption_element.c\
- html_tablecell_element.c html_tablecol_element.c html_tablesection_element.c\
- html_table_element.c html_tablerow_element.c html_frameset_element.c\
- html_frame_element.c html_iframe_element.c html_isindex_element.c\
- )\
- utils/^(namespace.c hashtable.c character_valid.c validate.c)\
- )\
- bindings/hubbub/parser.c\
- bindings/xml/expat_xmlparser.c\
- '$builddir'/pkg/^(\
- expat/libexpat.a.d\
- netsurf/^(\
- libhubbub/libhubbub.a.d\
- libwapcaplet/libwapcaplet.a\
- )\
- )
-
-fetch git
diff --git a/pkg/netsurf/libhubbub/gen.lua b/pkg/netsurf/libhubbub/gen.lua
@@ -0,0 +1,38 @@
+cflags{
+ '-I $outdir',
+ '-I $srcdir/src',
+ '-I $srcdir/include',
+ '-I pkg/netsurf/libdom/src/include',
+ '-I pkg/netsurf/libparserutils/src/include',
+ '-I pkg/netsurf/libwapcaplet/src/include',
+}
+
+build('awk', '$outdir/entities.inc', {'$srcdir/build/Entities', '|', '$dir/entities.awk'}, {
+ expr='-f $dir/entities.awk',
+})
+
+pkg.deps = {
+ '$outdir/entities.inc',
+ '$builddir/pkg/netsurf/libdom/fetch.stamp',
+ '$builddir/pkg/netsurf/libparserutils/fetch.stamp',
+ '$builddir/pkg/netsurf/libwapcaplet/fetch.stamp',
+}
+
+lib('libhubbub.a', [[src/(
+ parser.c
+ charset/detect.c
+ tokeniser/(entities.c tokeniser.c)
+ treebuilder/(
+ treebuilder.c
+ initial.c before_html.c before_head.c in_head.c
+ in_head_noscript.c after_head.c in_body.c in_table.c
+ in_caption.c in_column_group.c in_table_body.c in_row.c
+ in_cell.c in_select.c in_select_in_table.c
+ in_foreign_content.c after_body.c in_frameset.c
+ after_frameset.c after_after_body.c after_after_frameset.c
+ generic_rcdata.c
+ )
+ utils/(errors.c string.c)
+) $builddir/pkg/netsurf/libparserutils/libparserutils.a]])
+
+fetch 'git'
diff --git a/pkg/netsurf/libhubbub/gen.rc b/pkg/netsurf/libhubbub/gen.rc
@@ -1,33 +0,0 @@
-cflags\
- -I '$outdir' \
- -I '$srcdir'/src\
- -I '$srcdir'/include\
- -I pkg/netsurf/libdom/src/include\
- -I pkg/netsurf/libparserutils/src/include\
- -I pkg/netsurf/libwapcaplet/src/include
-
-build '$outdir'/entities.inc awk '$srcdir'/build/Entities '|' '$dir'/entities.awk ; with\
- expr '-f $dir/entities.awk'
-
-phony deps\
- '$outdir'/entities.inc\
- '$builddir'/pkg/netsurf/^(libdom libparserutils libwapcaplet)^/fetch.stamp
-
-lib libhubbub.a -d '$dir'/deps src/^(\
- parser.c\
- charset/detect.c\
- tokeniser/^(entities.c tokeniser.c)\
- treebuilder/^(\
- treebuilder.c\
- initial.c before_html.c before_head.c in_head.c\
- in_head_noscript.c after_head.c in_body.c in_table.c\
- in_caption.c in_column_group.c in_table_body.c in_row.c\
- in_cell.c in_select.c in_select_in_table.c\
- in_foreign_content.c after_body.c in_frameset.c\
- after_frameset.c after_after_body.c after_after_frameset.c\
- generic_rcdata.c\
- )\
- utils/^(errors.c string.c)\
-) '$builddir'/pkg/netsurf/libparserutils/libparserutils.a
-
-fetch git
diff --git a/pkg/netsurf/libnsbmp/gen.lua b/pkg/netsurf/libnsbmp/gen.lua
@@ -0,0 +1,2 @@
+lib('libnsbmp.a', {'src/libnsbmp.c'})
+fetch 'git'
diff --git a/pkg/netsurf/libnsbmp/gen.rc b/pkg/netsurf/libnsbmp/gen.rc
@@ -1,2 +0,0 @@
-lib libnsbmp.a src/libnsbmp.c
-fetch git
diff --git a/pkg/netsurf/libnsgif/gen.lua b/pkg/netsurf/libnsgif/gen.lua
@@ -0,0 +1,2 @@
+lib('libnsgif.a', {'src/libnsgif.c'})
+fetch 'git'
diff --git a/pkg/netsurf/libnsgif/gen.rc b/pkg/netsurf/libnsgif/gen.rc
@@ -1,2 +0,0 @@
-lib libnsgif.a src/libnsgif.c
-fetch git
diff --git a/pkg/netsurf/libnsutils/gen.lua b/pkg/netsurf/libnsutils/gen.lua
@@ -0,0 +1,7 @@
+lib('libnsutils.a', {
+ 'src/base64.c',
+ 'src/time.c',
+ 'src/unistd.c',
+})
+
+fetch 'git'
diff --git a/pkg/netsurf/libnsutils/gen.rc b/pkg/netsurf/libnsutils/gen.rc
@@ -1,2 +0,0 @@
-lib libnsutils.a src/^(base64.c time.c unistd.c)
-fetch git
diff --git a/pkg/netsurf/libparserutils/gen.lua b/pkg/netsurf/libparserutils/gen.lua
@@ -0,0 +1,20 @@
+cflags{
+ '-I $srcdir/include',
+ '-I $srcdir/src',
+}
+
+build('awk', '$outdir/aliases.inc', {'$srcdir/build/Aliases', '|', '$dir/aliases.awk'}, {
+ expr='-f $dir/aliases.awk',
+})
+
+cc('src/charset/aliases.c', {'$outdir/aliases.inc'}, {cflags='$cflags -I $outdir'})
+lib('libparserutils.a', [[src/(
+ charset/(
+ aliases.c.o codec.c
+ encodings/(utf8.c utf16.c)
+ )
+ input/(filter.c inputstream.c)
+ utils/(buffer.c errors.c stack.c vector.c)
+)]])
+
+fetch 'git'
diff --git a/pkg/netsurf/libparserutils/gen.rc b/pkg/netsurf/libparserutils/gen.rc
@@ -1,18 +0,0 @@
-cflags\
- -I '$srcdir'/include\
- -I '$srcdir'/src
-
-build '$outdir'/aliases.inc awk '$srcdir'/build/Aliases '|' '$dir'/aliases.awk ; with\
- expr '-f $dir/aliases.awk'
-
-cc src/charset/aliases.c '||' '$outdir'/aliases.inc ; with cflags '$cflags -I $outdir'
-lib libparserutils.a src/^(\
- charset/^(\
- aliases.c.o codec.c\
- encodings/^(utf8.c utf16.c)\
- )\
- input/^(filter.c inputstream.c)\
- utils/^(buffer.c errors.c stack.c vector.c)\
-)
-
-fetch git
diff --git a/pkg/netsurf/libsvgtiny/gen.lua b/pkg/netsurf/libsvgtiny/gen.lua
@@ -0,0 +1,21 @@
+cflags{
+ '-I $srcdir/include',
+ '-I $srcdir/src',
+ '-I pkg/netsurf/libdom/src/include',
+ '-I pkg/netsurf/libwapcaplet/src/include',
+ '-I $builddir/pkg/netsurf/libdom/include',
+}
+
+pkg.deps = {
+ 'pkg/netsurf/libdom/headers',
+ '$builddir/pkg/netsurf/libdom/fetch.stamp',
+ '$builddir/pkg/netsurf/libwapcaplet/fetch.stamp',
+}
+
+build('cc', '$outdir/src/src_colors.c.o', {'$dir/src_colors.c', '||', '$outdir/fetch.stamp', '$dir/deps'})
+lib('libsvgtiny.a', [[
+ src/(src_colors.c.o svgtiny.c svgtiny_gradient.c svgtiny_list.c)
+ $builddir/pkg/netsurf/libdom/libdom.a.d
+]])
+
+fetch 'git'
diff --git a/pkg/netsurf/libsvgtiny/gen.rc b/pkg/netsurf/libsvgtiny/gen.rc
@@ -1,17 +0,0 @@
-cflags\
- -I '$srcdir'/include\
- -I '$srcdir'/src\
- -I pkg/netsurf/libdom/src/include\
- -I pkg/netsurf/libwapcaplet/src/include\
- -I '$builddir'/pkg/netsurf/libdom/include
-
-phony deps\
- pkg/netsurf/libdom/headers\
- '$builddir'/pkg/netsurf/^(libdom libwapcaplet)^/fetch.stamp
-
-build '$outdir'/src/src_colors.c.o cc '$dir'/src_colors.c '||' '$outdir'/fetch.stamp '$dir'/deps
-lib libsvgtiny.a -d '$dir'/deps\
- src/^(src_colors.c.o svgtiny.c svgtiny_gradient.c svgtiny_list.c)\
- '$builddir'/pkg/netsurf/libdom/libdom.a.d
-
-fetch git
diff --git a/pkg/netsurf/libwapcaplet/gen.lua b/pkg/netsurf/libwapcaplet/gen.lua
@@ -0,0 +1,2 @@
+lib('libwapcaplet.a', {'src/libwapcaplet.c'})
+fetch 'git'
diff --git a/pkg/netsurf/libwapcaplet/gen.rc b/pkg/netsurf/libwapcaplet/gen.rc
@@ -1,2 +0,0 @@
-lib libwapcaplet.a src/libwapcaplet.c
-fetch git
diff --git a/pkg/netsurf/nsgenbind/gen.lua b/pkg/netsurf/nsgenbind/gen.lua
@@ -0,0 +1,23 @@
+toolchain 'host'
+cflags{'-I $srcdir/src'}
+
+local generated = {
+ 'nsgenbind-lexer.c',
+ 'nsgenbind-parser.c',
+ 'webidl-lexer.c',
+ 'webidl-parser.c',
+}
+for _, src in ipairs(generated) do
+ build('cc', '$outdir/src/'..src..'.o', {'$dir/'..src, '||', '$outdir/fetch.stamp'})
+end
+
+exe('nsgenbind', [[src/(
+ nsgenbind.c utils.c webidl-ast.c nsgenbind-ast.c ir.c
+ duk-libdom.c duk-libdom-interface.c duk-libdom-dictionary.c
+ duk-libdom-common.c duk-libdom-generated.c
+
+ nsgenbind-lexer.c.o nsgenbind-parser.c.o
+ webidl-lexer.c.o webidl-parser.c.o
+)]])
+
+fetch 'git'
diff --git a/pkg/netsurf/nsgenbind/gen.rc b/pkg/netsurf/nsgenbind/gen.rc
@@ -1,16 +0,0 @@
-toolchain host
-cflags -I '$srcdir'/src
-
-for(src in nsgenbind-^(lexer parser)^.c webidl-^(lexer parser)^.c)
- build '$outdir'/src/$src.o cc '$dir'/$src '||' '$outdir'/fetch.stamp
-
-exe nsgenbind src/^(\
- nsgenbind.c utils.c webidl-ast.c nsgenbind-ast.c ir.c\
- duk-libdom.c duk-libdom-interface.c duk-libdom-dictionary.c\
- duk-libdom-common.c duk-libdom-generated.c\
- \
- nsgenbind-lexer.c.o nsgenbind-parser.c.o\
- webidl-lexer.c.o webidl-parser.c.o\
-)
-
-fetch git
diff --git a/pkg/nginx/gen.lua b/pkg/nginx/gen.lua
@@ -0,0 +1,161 @@
+cflags{
+ '-I $dir',
+ '-I $srcdir/src/core',
+ '-I $srcdir/src/event',
+ '-I $srcdir/src/os/unix',
+}
+local libs = {}
+pkg.deps = {}
+
+local modules = {}
+for line in io.lines(pkg.dir..'/modules.txt') do
+ if #line > 0 then
+ modules[line] = true
+ end
+end
+
+if modules['openssl'] then
+ cflags{'-I $builddir/pkg/libressl/include'}
+ table.insert(libs, {
+ '$builddir/pkg/libressl/libssl.a.d',
+ '$builddir/pkg/libressl/libcrypto.a.d',
+ })
+ table.insert(pkg.deps, 'pkg/libressl/headers')
+end
+if modules['regex'] then
+ cflags{'-I $builddir/pkg/pcre/include'}
+ table.insert(libs, '$builddir/pkg/pcre/libpcre.a')
+ table.insert(pkg.deps, 'pkg/pcre/headers')
+end
+local zlib = modules['http_gzip_filter'] or modules['http_gunzip_filter']
+for line in io.lines(pkg.dir..'/ngx_auto_config.h') do
+ if line == 'NGX_ZLIB 1' then
+ zlib = true
+ break
+ end
+end
+if zlib then
+ cflags{'-I $builddir/pkg/zlib/include'}
+ table.insert(libs, '$builddir/pkg/zlib/libz.a')
+ table.insert(pkg.deps, 'pkg/zlib/headers')
+end
+if modules['http'] then
+ cflags{'-I $srcdir/src/http', '-I $srcdir/src/http/modules'}
+end
+if modules['mail'] then
+ cflags{'-I $srcdir/src/mail'}
+end
+if modules['stream'] then
+ cflags{'-I $srcdir/src/stream'}
+end
+
+build('awk', '$outdir/ngx_modules.c', {'$dir/modules.txt', '|', '$dir/modules.awk', '$dir/sources.txt'}, {
+ expr='-f $dir/modules.awk -v sources=$dir/sources.txt'
+})
+cc('$outdir/ngx_modules.c', {'$outdir/fetch.stamp'})
+
+local sources = paths[[src/(
+ core/(
+ nginx.c
+ ngx_log.c
+ ngx_palloc.c
+ ngx_array.c
+ ngx_list.c
+ ngx_hash.c
+ ngx_buf.c
+ ngx_queue.c
+ ngx_output_chain.c
+ ngx_string.c
+ ngx_parse.c
+ ngx_parse_time.c
+ ngx_inet.c
+ ngx_file.c
+ ngx_crc32.c
+ ngx_murmurhash.c
+ ngx_md5.c
+ ngx_sha1.c
+ ngx_rbtree.c
+ ngx_radix_tree.c
+ ngx_slab.c
+ ngx_times.c
+ ngx_shmtx.c
+ ngx_connection.c
+ ngx_cycle.c
+ ngx_spinlock.c
+ ngx_rwlock.c
+ ngx_cpuinfo.c
+ ngx_conf_file.c
+ ngx_module.c
+ ngx_resolver.c
+ ngx_open_file_cache.c
+ ngx_crypt.c
+ ngx_proxy_protocol.c
+ ngx_syslog.c
+ )
+ event/(
+ ngx_event.c
+ ngx_event_timer.c
+ ngx_event_posted.c
+ ngx_event_accept.c
+ ngx_event_connect.c
+ ngx_event_pipe.c
+ modules/ngx_epoll_module.c
+ )
+ http/ngx_http_file_cache.c
+ os/unix/(
+ ngx_time.c
+ ngx_errno.c
+ ngx_alloc.c
+ ngx_files.c
+ ngx_socket.c
+ ngx_recv.c
+ ngx_readv_chain.c
+ ngx_udp_recv.c
+ ngx_send.c
+ ngx_writev_chain.c
+ ngx_udp_send.c
+ ngx_udp_sendmsg_chain.c
+ ngx_channel.c
+ ngx_shmem.c
+ ngx_process.c
+ ngx_daemon.c
+ ngx_setaffinity.c
+ ngx_setproctitle.c
+ ngx_posix_init.c
+ ngx_user.c
+ ngx_dlopen.c
+ ngx_process_cycle.c
+
+ ngx_linux_init.c
+ ngx_linux_sendfile_chain.c
+ )
+)]]
+for line in io.lines(pkg.dir..'/sources.txt') do
+ if #line > 0 and not line:hasprefix('#') then
+ local i = line:find(' ', 1, true)
+ if modules[line:sub(1, i and i - 1)] then
+ while i do
+ local j = line:find(' ', i + 1, true)
+ table.insert(sources, 'src/'..line:sub(i + 1, j and j - 1))
+ i = j
+ end
+ end
+ end
+end
+
+exe('nginx', {sources, 'ngx_modules.c.o', libs})
+file('bin/nginx', '755', '$outdir/nginx')
+file('share/nginx/mime.types', '644', '$srcdir/conf/mime.types')
+
+build('sed', '$outdir/nginx.8', '$srcdir/docs/man/nginx.8', {
+ expr={
+ '-e s,%%PREFIX%%,/run/nginx/,',
+ '-e s,%%PID_PATH%%,/run/nginx/nginx.pid,',
+ '-e s,%%CONF_PATH%%,/etc/nginx/nginx.conf,',
+ '-e s,%%ERROR_LOG_PATH%%,/var/log/nginx/error.log,',
+ },
+})
+man{'$outdir/nginx.8'}
+
+fetch 'git'
+table.insert(pkg.inputs.gen, {'$dir/sources.txt', '$dir/modules.txt', '$dir/ngx_auto_config.h'})
diff --git a/pkg/nginx/gen.rc b/pkg/nginx/gen.rc
@@ -1,129 +0,0 @@
-cflags=(\
- -I '$dir' \
- -I '$srcdir'/src/core\
- -I '$srcdir'/src/event\
- -I '$srcdir'/src/os/unix\
-)
-libs=()
-deps=()
-if(grep -Fxq openssl modules.txt) {
- cflags=($cflags -I '$builddir'/pkg/libressl/include)
- libs=($libs '$builddir'/pkg/libressl/^(libssl.a.d libcrypto.a.d))
- deps=($deps pkg/libressl/headers)
-}
-if(grep -Fxq regex modules.txt) {
- cflags=($cflags -I '$builddir'/pkg/pcre/include)
- libs=($libs '$builddir'/pkg/pcre/libpcre.a)
- deps=($deps pkg/pcre/headers)
-}
-if(grep -Fxq -e http_gzip_filter -e http_gunzip_filter modules.txt || grep -Fq 'NGX_ZLIB 1' ngx_auto_config.h) {
- cflags=($cflags -I '$builddir'/pkg/zlib/include)
- libs=($libs '$builddir'/pkg/zlib/libz.a)
- deps=($deps pkg/zlib/headers)
-}
-if(grep -Fxq http modules.txt)
- cflags=($cflags -I '$srcdir'/src/http -I '$srcdir'/src/http/modules)
-if(grep -Fxq mail modules.txt)
- cflags=($cflags -I '$srcdir'/src/mail)
-if(grep -Fxq stream modules.txt)
- cflags=($cflags -I '$srcdir'/src/stream)
-cflags $cflags
-
-build '$outdir'/ngx_modules.c awk '$dir'/modules.txt '|' '$dir'/^(modules.awk sources.txt) ; with\
- expr '-f $dir/modules.awk -v sources=$dir/sources.txt'
-cc '$outdir'/ngx_modules.c '||' '$outdir'/fetch.stamp
-
-srcs=src/^(\
- core/^(\
- nginx.c\
- ngx_log.c\
- ngx_palloc.c\
- ngx_array.c\
- ngx_list.c\
- ngx_hash.c\
- ngx_buf.c\
- ngx_queue.c\
- ngx_output_chain.c\
- ngx_string.c\
- ngx_parse.c\
- ngx_parse_time.c\
- ngx_inet.c\
- ngx_file.c\
- ngx_crc32.c\
- ngx_murmurhash.c\
- ngx_md5.c\
- ngx_sha1.c\
- ngx_rbtree.c\
- ngx_radix_tree.c\
- ngx_slab.c\
- ngx_times.c\
- ngx_shmtx.c\
- ngx_connection.c\
- ngx_cycle.c\
- ngx_spinlock.c\
- ngx_rwlock.c\
- ngx_cpuinfo.c\
- ngx_conf_file.c\
- ngx_module.c\
- ngx_resolver.c\
- ngx_open_file_cache.c\
- ngx_crypt.c\
- ngx_proxy_protocol.c\
- ngx_syslog.c\
- )\
- event/^(\
- ngx_event.c\
- ngx_event_timer.c\
- ngx_event_posted.c\
- ngx_event_accept.c\
- ngx_event_connect.c\
- ngx_event_pipe.c\
- modules/ngx_epoll_module.c\
- )\
- http/ngx_http_file_cache.c\
- os/unix/^(\
- ngx_time.c\
- ngx_errno.c\
- ngx_alloc.c\
- ngx_files.c\
- ngx_socket.c\
- ngx_recv.c\
- ngx_readv_chain.c\
- ngx_udp_recv.c\
- ngx_send.c\
- ngx_writev_chain.c\
- ngx_udp_send.c\
- ngx_udp_sendmsg_chain.c\
- ngx_channel.c\
- ngx_shmem.c\
- ngx_process.c\
- ngx_daemon.c\
- ngx_setaffinity.c\
- ngx_setproctitle.c\
- ngx_posix_init.c\
- ngx_user.c\
- ngx_dlopen.c\
- ngx_process_cycle.c\
- \
- ngx_linux_init.c\
- ngx_linux_sendfile_chain.c\
- )\
- `{awk -f sources.awk -v 'sources=sources.txt' modules.txt}\
-)
-checkstatus
-
-phony deps $deps
-exe nginx -d '$dir'/deps $srcs ngx_modules.c.o $libs
-file bin/nginx '$outdir'/nginx 755
-file share/nginx/mime.types '$srcdir'/conf/mime.types 644
-
-build '$outdir'/nginx.8 sed '$srcdir'/docs/man/nginx.8 ; expr=(\
- -e 's,%%PREFIX%%,/run/nginx/,' \
- -e 's,%%PID_PATH%%,/run/nginx/nginx.pid,' \
- -e 's,%%CONF_PATH%%,/etc/nginx/nginx.conf,' \
- -e 's,%%ERROR_LOG_PATH%%,/var/log/nginx/error.log,' \
-) with expr $"expr
-man -d '$outdir' 8 nginx.8
-
-fetch git
-gen_inputs='$dir'/^(sources.awk sources.txt modules.txt)
diff --git a/pkg/nginx/sources.awk b/pkg/nginx/sources.awk
@@ -1,13 +0,0 @@
-/^(#|$)/ { next }
-{
- enabled[$0] = 1
-}
-
-END {
- while (getline < sources) {
- if (!enabled[$1])
- continue
- for (i = 2; i <= NF; ++i)
- print $i
- }
-}
diff --git a/pkg/openbsd/gen.lua 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
@@ -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
diff --git a/pkg/openntpd/gen.lua b/pkg/openntpd/gen.lua
@@ -0,0 +1,47 @@
+cflags{
+ '-D _GNU_SOURCE',
+ '-include $dir/config.h',
+ '-I include',
+ '-I $srcdir/src',
+ '-I $srcdir/include',
+ '-I pkg/openbsd/include',
+ '-I $builddir/pkg/libressl/include',
+}
+
+yacc('parse', '$srcdir/src/parse.y')
+exe('ntpd', [[
+ src/(
+ client.c
+ config.c
+ constraint.c
+ control.c
+ fake-sensors.c
+ log.c
+ ntp.c
+ ntp_dns.c
+ ntp_msg.c
+ ntpd.c
+ server.c
+ util.c
+ )
+ compat/(
+ adjfreq_linux.c
+ closefrom.c
+ freezero.c
+ imsg.c
+ imsg-buffer.c
+ md5.c
+ progname.c
+ setproctitle.c
+ )
+ $outdir/parse.tab.c
+ $builddir/pkg/(
+ libressl/(libcrypto.a.d libtls.a.d)
+ openbsd/libbsd.a.d
+ )
+]], {'pkg/libressl/headers'})
+file('bin/ntpd', '755', '$outdir/ntpd')
+sym('bin/ntpctl', 'ntpd')
+man{'src/ntpd.conf.5', 'src/ntpd.8', 'src/ntpctl.8'}
+
+fetch 'curl'
diff --git a/pkg/openntpd/gen.rc b/pkg/openntpd/gen.rc
@@ -1,45 +0,0 @@
-cflags\
- -D _GNU_SOURCE\
- -include '$dir'/config.h\
- -I include\
- -I '$srcdir'/src\
- -I '$srcdir'/include\
- -I pkg/openbsd/include\
- -I '$builddir'/pkg/libressl/include
-
-yacc parse '$srcdir'/src/parse.y
-exe ntpd -d pkg/libressl/headers\
- src/^(\
- client.c\
- config.c\
- constraint.c\
- control.c\
- fake-sensors.c\
- log.c\
- ntp.c\
- ntp_dns.c\
- ntp_msg.c\
- ntpd.c\
- server.c\
- util.c\
- )\
- compat/^(\
- adjfreq_linux.c\
- closefrom.c\
- freezero.c\
- imsg.c\
- imsg-buffer.c\
- md5.c\
- progname.c\
- setproctitle.c\
- )\
- '$outdir'/parse.tab.c\
- '$builddir'/pkg/^(\
- libressl/^(libcrypto.a.d libtls.a.d)\
- openbsd/libbsd.a.d\
- )
-file bin/ntpd '$outdir'/ntpd 755
-sym bin/ntpctl ntpd
-man -d src 5 ntpd.conf.5 8 ntpd.8 ntpctl.8
-
-fetch curl
diff --git a/pkg/openssh/gen.lua b/pkg/openssh/gen.lua
@@ -0,0 +1,129 @@
+cflags{
+ '-D _XOPEN_SOURCE=600',
+ '-D _DEFAULT_SOURCE',
+ '-I include',
+ '-I $dir',
+ '-I $srcdir',
+ '-I $srcdir/openbsd-compat',
+ '-I pkg/openbsd/include',
+ '-I $builddir/pkg/libressl/include',
+ '-I $builddir/pkg/zlib/include',
+}
+
+pkg.deps = {
+ 'pkg/libressl/headers',
+ 'pkg/zlib/headers',
+}
+
+build('cc', '$outdir/umac128.c.o', {'$srcdir/umac.c', '||', '$dir/deps'}, {
+ cflags={
+ '$cflags',
+ '-D UMAC_OUTPUT_LEN=16',
+ '-D umac_new=umac128_new',
+ '-D umac_update=umac128_update',
+ '-D umac_final=umac128_final',
+ '-D umac_delete=umac128_delete',
+ '-D umac_ctx=umac128_ctx',
+ },
+})
+
+lib('libopenbsd-compat.a', [[openbsd-compat/(
+ base64.c basename.c bcrypt_pbkdf.c bindresvport.c blowfish.c daemon.c
+ dirname.c fmt_scaled.c getcwd.c getgrouplist.c getopt_long.c
+ getrrsetbyname.c glob.c inet_aton.c inet_ntoa.c inet_ntop.c mktemp.c
+ pwcache.c readpassphrase.c reallocarray.c realpath.c rresvport.c
+ setenv.c setproctitle.c sha1.c sha2.c rmd160.c md5.c sigact.c
+ strcasestr.c strlcat.c strlcpy.c strmode.c strnlen.c strptime.c
+ strsep.c strtonum.c strtoll.c strtoul.c strtoull.c timingsafe_bcmp.c
+ vis.c explicit_bzero.c
+
+ arc4random.c bsd-asprintf.c bsd-closefrom.c bsd-cray.c
+ bsd-cygwin_util.c bsd-getpeereid.c getrrsetbyname-ldns.c bsd-misc.c
+ bsd-nextstep.c bsd-openpty.c bsd-poll.c bsd-setres_id.c bsd-snprintf.c
+ bsd-statvfs.c bsd-waitpid.c fake-rfc2553.c openssl-compat.c xcrypt.c
+ kludge-fd_set.c
+
+ port-aix.c port-irix.c port-linux.c port-solaris.c port-uw.c
+)]])
+
+-- port-tun.c from openbsd-compat depends on sshbuf-getput-basic.c and ssherr.c
+-- from libssh.a, so just include it in libssh.a.
+lib('libssh.a', [[
+ ssh_api.c
+ ssherr.c
+ sshbuf.c
+ sshkey.c
+ sshbuf-getput-basic.c
+ sshbuf-misc.c
+ sshbuf-getput-crypto.c
+ krl.c
+ bitmap.c
+
+ authfd.c authfile.c bufaux.c bufbn.c bufec.c buffer.c
+ canohost.c channels.c cipher.c cipher-aes.c cipher-aesctr.c
+ cipher-bf1.c cipher-ctr.c cipher-3des1.c cleanup.c
+ compat.c crc32.c deattack.c fatal.c hostfile.c
+ log.c match.c md-sha256.c moduli.c nchan.c packet.c opacket.c
+ readpass.c rsa.c ttymodes.c xmalloc.c addrmatch.c
+ atomicio.c key.c dispatch.c mac.c uidswap.c uuencode.c misc.c utf8.c
+ monitor_fdpass.c rijndael.c ssh-dss.c ssh-ecdsa.c ssh-rsa.c dh.c
+ msg.c progressmeter.c dns.c entropy.c gss-genr.c umac.c umac128.c.o
+ ssh-pkcs11.c smult_curve25519_ref.c
+ poly1305.c chacha.c cipher-chachapoly.c
+ ssh-ed25519.c digest-openssl.c digest-libc.c hmac.c
+ sc25519.c ge25519.c fe25519.c ed25519.c verify.c hash.c blocks.c
+ kex.c kexdh.c kexgex.c kexecdh.c kexc25519.c
+ kexdhc.c kexgexc.c kexecdhc.c kexc25519c.c
+ kexdhs.c kexgexs.c kexecdhs.c kexc25519s.c
+ platform-pledge.c platform-tracing.c
+ openbsd-compat/port-tun.c libopenbsd-compat.a
+ $builddir/pkg/(libressl/libcrypto.a.d zlib/libz.a)
+]])
+
+exe('ssh', [[
+ ssh.c readconf.c clientloop.c sshtty.c
+ sshconnect.c sshconnect1.c sshconnect2.c mux.c
+ libssh.a.d
+]])
+file('bin/ssh', '755', '$outdir/ssh')
+
+cc('sftp-server.c')
+cc('sftp-common.c')
+
+exe('sshd', [[
+ sshd.c auth-rhosts.c auth-passwd.c
+ audit.c audit-bsm.c audit-linux.c platform.c
+ sshpty.c sshlogin.c servconf.c serverloop.c
+ auth.c auth2.c auth-options.c session.c
+ auth2-chall.c groupaccess.c
+ auth-skey.c auth-bsdauth.c auth2-hostbased.c auth2-kbdint.c
+ auth2-none.c auth2-passwd.c auth2-pubkey.c
+ monitor.c monitor_wrap.c auth-krb5.c
+ auth2-gss.c gss-serv.c gss-serv-krb5.c
+ loginrec.c auth-pam.c auth-shadow.c auth-sia.c md5crypt.c
+ sftp-server.c.o sftp-common.c.o
+ sandbox-null.c sandbox-rlimit.c sandbox-systrace.c sandbox-darwin.c
+ sandbox-seccomp-filter.c sandbox-capsicum.c sandbox-pledge.c
+ sandbox-solaris.c
+ libssh.a.d
+]])
+file('bin/sshd', '755', '$outdir/sshd')
+
+exe('scp', {'scp.c', 'libssh.a.d'})
+file('bin/scp', '755', '$outdir/scp')
+
+exe('ssh-add', {'ssh-add.c', 'libssh.a.d'})
+file('bin/ssh-add', '755', '$outdir/ssh-add')
+
+exe('ssh-agent', {'ssh-agent.c', 'ssh-pkcs11-client.c', 'libssh.a.d'})
+file('bin/ssh-agent', '755', '$outdir/ssh-agent')
+
+exe('ssh-keygen', {'ssh-keygen.c', 'libssh.a.d'})
+file('bin/ssh-keygen', '755', '$outdir/ssh-keygen')
+
+exe('sftp-server', {'sftp-common.c.o', 'sftp-server.c.o', 'sftp-server-main.c', 'libssh.a.d'})
+file('libexec/sftp-server', '755', '$outdir/sftp-server')
+
+man{'ssh.1', 'scp.1', 'ssh-add.1', 'ssh-agent.1', 'ssh-keygen.1', 'sshd.8', 'sftp-server.8'}
+
+fetch 'git'
diff --git a/pkg/openssh/gen.rc b/pkg/openssh/gen.rc
@@ -1,121 +0,0 @@
-cflags\
- -D '_XOPEN_SOURCE=600' \
- -D _DEFAULT_SOURCE\
- -I include\
- -I '$dir' \
- -I '$srcdir' \
- -I '$srcdir'/openbsd-compat\
- -I pkg/openbsd/include\
- -I '$builddir'/pkg/libressl/include\
- -I '$builddir'/pkg/zlib/include
-
-phony deps pkg/^(libressl zlib)^/headers
-
-build '$outdir'/umac128.c.o cc '$srcdir'/umac.c '||' '$dir'/deps ; defs=(\
- '-DUMAC_OUTPUT_LEN=16' \
- '-Dumac_new=umac128_new' \
- '-Dumac_update=umac128_update' \
- '-Dumac_final=umac128_final' \
- '-Dumac_delete=umac128_delete' \
- '-Dumac_ctx=umac128_ctx' \
-) with cflags '$cflags '$"defs
-
-lib libopenbsd-compat.a -d '$dir'/deps openbsd-compat/^(\
- base64.c basename.c bcrypt_pbkdf.c bindresvport.c blowfish.c daemon.c\
- dirname.c fmt_scaled.c getcwd.c getgrouplist.c getopt_long.c\
- getrrsetbyname.c glob.c inet_aton.c inet_ntoa.c inet_ntop.c mktemp.c\
- pwcache.c readpassphrase.c reallocarray.c realpath.c rresvport.c\
- setenv.c setproctitle.c sha1.c sha2.c rmd160.c md5.c sigact.c\
- strcasestr.c strlcat.c strlcpy.c strmode.c strnlen.c strptime.c\
- strsep.c strtonum.c strtoll.c strtoul.c strtoull.c timingsafe_bcmp.c\
- vis.c explicit_bzero.c\
- \
- arc4random.c bsd-asprintf.c bsd-closefrom.c bsd-cray.c\
- bsd-cygwin_util.c bsd-getpeereid.c getrrsetbyname-ldns.c bsd-misc.c\
- bsd-nextstep.c bsd-openpty.c bsd-poll.c bsd-setres_id.c bsd-snprintf.c\
- bsd-statvfs.c bsd-waitpid.c fake-rfc2553.c openssl-compat.c xcrypt.c\
- kludge-fd_set.c\
- \
- port-aix.c port-irix.c port-linux.c port-solaris.c port-uw.c\
-)
-
-# port-tun.c from openbsd-compat depends on sshbuf-getput-basic.c and ssherr.c
-# from libssh.a, so just include it in libssh.a.
-lib libssh.a -d '$dir'/deps\
- ssh_api.c\
- ssherr.c\
- sshbuf.c\
- sshkey.c\
- sshbuf-getput-basic.c\
- sshbuf-misc.c\
- sshbuf-getput-crypto.c\
- krl.c\
- bitmap.c\
- \
- authfd.c authfile.c bufaux.c bufbn.c bufec.c buffer.c\
- canohost.c channels.c cipher.c cipher-aes.c cipher-aesctr.c\
- cipher-bf1.c cipher-ctr.c cipher-3des1.c cleanup.c\
- compat.c crc32.c deattack.c fatal.c hostfile.c\
- log.c match.c md-sha256.c moduli.c nchan.c packet.c opacket.c\
- readpass.c rsa.c ttymodes.c xmalloc.c addrmatch.c\
- atomicio.c key.c dispatch.c mac.c uidswap.c uuencode.c misc.c utf8.c\
- monitor_fdpass.c rijndael.c ssh-dss.c ssh-ecdsa.c ssh-rsa.c dh.c\
- msg.c progressmeter.c dns.c entropy.c gss-genr.c umac.c umac128.c.o\
- ssh-pkcs11.c smult_curve25519_ref.c\
- poly1305.c chacha.c cipher-chachapoly.c\
- ssh-ed25519.c digest-openssl.c digest-libc.c hmac.c\
- sc25519.c ge25519.c fe25519.c ed25519.c verify.c hash.c blocks.c\
- kex.c kexdh.c kexgex.c kexecdh.c kexc25519.c\
- kexdhc.c kexgexc.c kexecdhc.c kexc25519c.c\
- kexdhs.c kexgexs.c kexecdhs.c kexc25519s.c\
- platform-pledge.c platform-tracing.c\
- openbsd-compat/port-tun.c libopenbsd-compat.a\
- '$builddir'/pkg/^(libressl/libcrypto.a.d zlib/libz.a)\
-
-exe ssh -d '$dir'/deps\
- ssh.c readconf.c clientloop.c sshtty.c\
- sshconnect.c sshconnect1.c sshconnect2.c mux.c\
- libssh.a.d
-file bin/ssh '$outdir'/ssh 755
-
-cc sftp-server.c '||' $dir/deps
-cc sftp-common.c '||' $dir/deps
-
-exe sshd -d '$dir'/deps\
- sshd.c auth-rhosts.c auth-passwd.c\
- audit.c audit-bsm.c audit-linux.c platform.c\
- sshpty.c sshlogin.c servconf.c serverloop.c\
- auth.c auth2.c auth-options.c session.c\
- auth2-chall.c groupaccess.c\
- auth-skey.c auth-bsdauth.c auth2-hostbased.c auth2-kbdint.c\
- auth2-none.c auth2-passwd.c auth2-pubkey.c\
- monitor.c monitor_wrap.c auth-krb5.c\
- auth2-gss.c gss-serv.c gss-serv-krb5.c\
- loginrec.c auth-pam.c auth-shadow.c auth-sia.c md5crypt.c\
- sftp-server.c.o sftp-common.c.o\
- sandbox-null.c sandbox-rlimit.c sandbox-systrace.c sandbox-darwin.c\
- sandbox-seccomp-filter.c sandbox-capsicum.c sandbox-pledge.c\
- sandbox-solaris.c\
- libssh.a.d
-file bin/sshd '$outdir'/sshd 755
-
-exe scp -d '$dir'/deps scp.c libssh.a.d
-file bin/scp '$outdir'/scp 755
-
-exe ssh-add -d '$dir'/deps ssh-add.c libssh.a.d
-file bin/ssh-add '$outdir'/ssh-add 755
-
-exe ssh-agent -d '$dir'/deps ssh-agent.c ssh-pkcs11-client.c libssh.a.d
-file bin/ssh-agent '$outdir'/ssh-agent 755
-
-exe ssh-keygen -d '$dir'/deps ssh-keygen.c libssh.a.d
-file bin/ssh-keygen '$outdir'/ssh-keygen 755
-
-exe sftp-server -d '$dir'/deps sftp-common.c.o sftp-server.c.o sftp-server-main.c libssh.a.d
-file libexec/sftp-server '$outdir'/sftp-server 755
-
-man\
- 1 ssh.1 scp.1 ssh-add.1 ssh-agent.1 ssh-keygen.1\
- 8 sshd.8 sftp-server.8
-
-fetch git
diff --git a/pkg/pcre/gen.lua b/pkg/pcre/gen.lua
@@ -0,0 +1,44 @@
+cflags{
+ '-D HAVE_CONFIG_H',
+ '-I include',
+ '-I $dir',
+ '-I $srcdir',
+ '-I $outdir/include',
+}
+
+build('sed', '$outdir/include/pcre.h', '$srcdir/pcre.h.in', {
+ expr={
+ '-e s,@PCRE_MAJOR@,8,',
+ '-e s,@PCRE_MINOR@,41,',
+ '-e s,@PCRE_PRERELEASE@,,',
+ '-e s,@PCRE_DATE@,2017-07-05,',
+ },
+})
+pkg.hdrs = {'$outdir/include/pcre.h'}
+
+build('copy', '$outdir/pcre_chartables.c', '$srcdir/pcre_chartables.c.dist')
+lib('libpcre.a', {
+ 'pcre_byte_order.c',
+ 'pcre_compile.c',
+ 'pcre_config.c',
+ 'pcre_dfa_exec.c',
+ 'pcre_exec.c',
+ 'pcre_fullinfo.c',
+ 'pcre_get.c',
+ 'pcre_globals.c',
+ 'pcre_jit_compile.c',
+ 'pcre_maketables.c',
+ 'pcre_newline.c',
+ 'pcre_ord2utf8.c',
+ 'pcre_refcount.c',
+ 'pcre_string_utils.c',
+ 'pcre_study.c',
+ 'pcre_tables.c',
+ 'pcre_ucd.c',
+ 'pcre_valid_utf8.c',
+ 'pcre_version.c',
+ 'pcre_xclass.c',
+ '$outdir/pcre_chartables.c',
+}, {'$dir/headers'})
+
+fetch 'curl'
diff --git a/pkg/pcre/gen.rc b/pkg/pcre/gen.rc
@@ -1,41 +0,0 @@
-cflags\
- -D HAVE_CONFIG_H\
- -I include\
- -I '$dir' \
- -I '$srcdir' \
- -I '$outdir'/include
-
-build '$outdir'/include/pcre.h sed '$srcdir'/pcre.h.in ; exprs=(\
- -e s,@PCRE_MAJOR@,8,\
- -e s,@PCRE_MINOR@,41,\
- -e s,@PCRE_PRERELEASE@,,\
- -e s,@PCRE_DATE@,2017-07-05,\
-) with expr $"exprs
-
-phony headers '$outdir'/include/pcre.h
-
-build '$outdir'/pcre_chartables.c copy '$srcdir'/pcre_chartables.c.dist
-lib libpcre.a -d '$dir'/headers\
- pcre_byte_order.c\
- pcre_compile.c\
- pcre_config.c\
- pcre_dfa_exec.c\
- pcre_exec.c\
- pcre_fullinfo.c\
- pcre_get.c\
- pcre_globals.c\
- pcre_jit_compile.c\
- pcre_maketables.c\
- pcre_newline.c\
- pcre_ord2utf8.c\
- pcre_refcount.c\
- pcre_string_utils.c\
- pcre_study.c\
- pcre_tables.c\
- pcre_ucd.c\
- pcre_valid_utf8.c\
- pcre_version.c\
- pcre_xclass.c\
- '$outdir'/pcre_chartables.c
-
-fetch curl
diff --git a/pkg/perp/gen.lua b/pkg/perp/gen.lua
@@ -0,0 +1,102 @@
+cflags{
+ '-I $srcdir/lasagna',
+ '-I $outdir',
+}
+
+sub('tools.ninja', function()
+ toolchain 'host'
+ exe('mk_outvec', {'lasagna/outvec/mk_outvec.c'})
+ exe('mk_rlimit', {'lasagna/rlimit/mk_rlimit.c'})
+ exe('mksysstr', {'lasagna/sysstr/mksysstr.c'})
+end)
+
+rule('outvec', '$outdir/mk_outvec >$out.tmp && mv $out.tmp $out')
+build('outvec', '$outdir/outvec_STDOUT.h', {'|', '$outdir/mk_outvec'})
+
+rule('rlimit', '$outdir/mk_rlimit >$out.tmp && mv $out.tmp $out')
+build('rlimit', '$outdir/rlimit_defs.c.in', {'|', '$outdir/mk_rlimit'})
+
+rule('sysstr', '$outdir/mksysstr $type >$out.tmp && mv $out.tmp $out')
+build('sysstr', '$outdir/sysstr_errno.c.in', {'|', '$outdir/mksysstr'}, {type='errno'})
+build('sysstr', '$outdir/sysstr_signo.c.in', {'|', '$outdir/mksysstr'}, {type='signo'})
+
+pkg.deps = {
+ '$outdir/outvec_STDOUT.h',
+ '$outdir/rlimit_defs.c.in',
+ '$outdir/sysstr_errno.c.in',
+ '$outdir/sysstr_signo.c.in',
+}
+
+lib('libasagna.a', [[lasagna/(
+ buf/buf_(cmp copy fill ndx rcopy rndx).c
+ cstr/cstr_(cat chop cmp cmpi contains copy dup lcat lcpy len ltrim match matchi ncmp pos rpos rtrim trim vcat_ vcopy_ vlen_).c
+ cdb/(cdb_(find cc clear close distance dynget dynread get hashpart init open read seq) cdbmk_(add addioq addrec clear finish init _update)).c
+ devout/devout.c
+ domsock/domsock_(accept close connect create).c
+ dynbuf/(dynbuf.c dynbuf_(clear copy free freebuf grow need new pack put putb).c)
+ dynstr/(dynstr.c dynstr_(chop clear copy copys free freestr grow need new put putc putn puts set vputs_).c)
+ dynstuf/dynstuf_(find free get grow init isempty items new peek pop push replace reverse set slots sort stuf visit).c
+ execvx/execvx.c
+ fd/fd_(blocking cloexec dupe move nonblock).c
+ hdb/hdb_(find cc clear close distance dynget dynread get hashpart init open read seq).c
+ hdb/hdbmk_(add addioq addrec clear finish start _update).c
+ hfunc/hfunc_(djba djbm djbx elf1 fnva fnvm ghfa ghfm ghfx jsw1 kp37 kr31 kx17 murm oat1 p50a pjw1 rsuh rot1 rotm sax1 sdbm sfh1 postmix32).c
+ ioq/ioq_(get getln init put putfd putfile stderr stdin stdout vputs_).c
+ newenv/newenv.c
+ nextopt/(nextopt nextopt_progname).c
+ nfmt/nfmt_(uint32 uint32_pad uint32_pad_ uint32_pad0 uint32_pad0_ uint32o uint32o_pad0 uint32o_pad0_ uint32x uint32x_pad uint32x_pad_ uint32x_pad0 uint32x_pad0_ uint64 uint64_pad uint64_pad_ uint64_pad0 uint64_pad0_).c
+ nuscan/nuscan_(uint32 uint32o).c
+ outvec/outvec_(STDERR STDOUT flush put puts vputs_).c
+ packet/packet_(read write).c
+ padlock/padlock_(exbyte exlock extest fcntl shbyte shlock shtest unbyte unlock).c
+ pidlock/pidlock_(check set).c
+ pkt/pkt_(load read write).c
+ pollio/pollio.c
+ rlimit/rlimit.c
+ sig/sig_(block catch catchr unblock).c
+ sysstr/sysstr_(errno signal).c
+ tain/tain_(assign iszero less load load_msecs load_utc minus now pack packhex pause plus tai_pack tai_unpack uptime to_float to_msecs to_utc unpack unpackhex).c
+ tx64/(base64_vec tx64_encode).c
+ ufunc/ufunc_(u32add u48add).c
+ upak/upak_vpack.c
+ upak/(upak upak(16 24 32 48 64))_pack.c
+ upak/(upak upak(16 24 32 48 64))_unpack.c
+)]])
+
+exe('perpd', 'perp/(perpd.c perpd_conn.c perpd_svdef.c) libasagna.a')
+file('bin/perpd', '755', '$outdir/perpd')
+man{'perp/man/perpd.8'}
+
+for _, cmd in ipairs{'perpboot', 'perpctl', 'perphup', 'perpls', 'perpok', 'perpstat'} do
+ file('bin/'..cmd, '755', exe(cmd, {'perp/'..cmd..'.c', 'libasagna.a'}))
+ man{'perp/man/'..cmd..'.8'}
+end
+
+cc('perp/tinylog.c', nil, {
+ cflags='$cflags -D \'TINYLOG_ZIP="/bin/gzip"\' -D \'ZIP_EXT=".gz"\'',
+})
+link('tinylog', {'perp/tinylog.c.o', 'libasagna.a'})
+file('bin/tinylog', '755', '$outdir/tinylog')
+man{'perp/man/tinylog.8'}
+
+local tools = {
+ 'runargs', 'runargv0', 'runchoom', 'rundetach', 'rundeux', 'runenv',
+ 'runfile', 'runlimit', 'runlock', 'runpause', 'runsession', 'runtool',
+ 'runtrap', 'runuid',
+
+ 'catargs', 'catenv', 'catlimits', 'catuid',
+}
+for _, tool in ipairs(tools) do
+ file('bin/'..tool, '755', exe(tool, {'runtools/'..tool..'.c', 'libasagna.a'}))
+ if not tool:hasprefix('cat') then
+ man{'runtools/man/'..tool..'.8'}
+ end
+end
+
+man{
+ 'perp/man/perpetrate.5',
+ 'perp/man/perp_intro.8',
+ 'runtools/man/runtools_intro.8',
+}
+
+fetch 'curl'
diff --git a/pkg/perp/gen.rc b/pkg/perp/gen.rc
@@ -1,85 +0,0 @@
-cflags\
- -I '$srcdir'/lasagna\
- -I '$outdir'
-
-{
- toolchain host
- exe mk_outvec lasagna/outvec/mk_outvec.c
- exe mk_rlimit lasagna/rlimit/mk_rlimit.c
- exe mksysstr lasagna/sysstr/mksysstr.c
-} >tools.ninja ; subninja tools.ninja
-
-rule outvec '$outdir/mk_outvec >$out.tmp && mv $out.tmp $out'
-build '$outdir'/outvec_STDOUT.h outvec '|' '$outdir'/mk_outvec
-
-rule rlimit '$outdir/mk_rlimit >$out.tmp && mv $out.tmp $out'
-build '$outdir'/rlimit_defs.c.in rlimit '|' '$outdir'/mk_rlimit
-
-rule sysstr '$outdir/mksysstr $type >$out.tmp && mv $out.tmp $out'
-build '$outdir'/sysstr_errno.c.in sysstr '|' '$outdir'/mksysstr ; with type errno
-build '$outdir'/sysstr_signo.c.in sysstr '|' '$outdir'/mksysstr ; with type signo
-
-phony deps '$outdir'/^(outvec_STDOUT.h rlimit_defs.c.in sysstr_^(errno signo)^.c.in)
-
-lib libasagna.a -d '$dir'/deps lasagna/^(\
- buf/buf_^(cmp copy fill ndx rcopy rndx)^.c\
- cstr/cstr_^(cat chop cmp cmpi contains copy dup lcat lcpy len ltrim match matchi ncmp pos rpos rtrim trim vcat_ vcopy_ vlen_)^.c\
- cdb/^(cdb_^(find cc clear close distance dynget dynread get hashpart init open read seq) cdbmk_^(add addioq addrec clear finish init _update))^.c\
- devout/devout.c\
- domsock/domsock_^(accept close connect create)^.c\
- dynbuf/^(dynbuf.c dynbuf_^(clear copy free freebuf grow need new pack put putb)^.c)\
- dynstr/^(dynstr.c dynstr_^(chop clear copy copys free freestr grow need new put putc putn puts set vputs_)^.c)\
- dynstuf/dynstuf_^(find free get grow init isempty items new peek pop push replace reverse set slots sort stuf visit)^.c\
- execvx/execvx.c\
- fd/fd_^(blocking cloexec dupe move nonblock)^.c\
- hdb/hdb_^(find cc clear close distance dynget dynread get hashpart init open read seq)^.c\
- hdb/hdbmk_^(add addioq addrec clear finish start _update)^.c\
- hfunc/hfunc_^(djba djbm djbx elf1 fnva fnvm ghfa ghfm ghfx jsw1 kp37 kr31 kx17 murm oat1 p50a pjw1 rsuh rot1 rotm sax1 sdbm sfh1 postmix32)^.c\
- ioq/ioq_^(get getln init put putfd putfile stderr stdin stdout vputs_)^.c\
- newenv/newenv.c\
- nextopt/^(nextopt nextopt_progname)^.c\
- nfmt/nfmt_^(uint32 uint32_pad uint32_pad_ uint32_pad0 uint32_pad0_ uint32o uint32o_pad0 uint32o_pad0_ uint32x uint32x_pad uint32x_pad_ uint32x_pad0 uint32x_pad0_ uint64 uint64_pad uint64_pad_ uint64_pad0 uint64_pad0_)^.c\
- nuscan/nuscan_^(uint32 uint32o)^.c\
- outvec/outvec_^(STDERR STDOUT flush put puts vputs_)^.c\
- packet/packet_^(read write)^.c\
- padlock/padlock_^(exbyte exlock extest fcntl shbyte shlock shtest unbyte unlock)^.c\
- pidlock/pidlock_^(check set)^.c\
- pkt/pkt_^(load read write)^.c\
- pollio/pollio.c\
- rlimit/rlimit.c\
- sig/sig_^(block catch catchr unblock)^.c\
- sysstr/sysstr_^(errno signal)^.c\
- tain/tain_^(assign iszero less load load_msecs load_utc minus now pack packhex pause plus tai_pack tai_unpack uptime to_float to_msecs to_utc unpack unpackhex)^.c\
- tx64/^(base64_vec tx64_encode)^.c\
- ufunc/ufunc_^(u32add u48add)^.c\
- upak/upak_vpack.c\
- upak/upak^('' 16 24 32 48 64)^_pack.c\
- upak/upak^('' 16 24 32 48 64)^_unpack.c\
-)
-
-fn x {
- subdir=$1
- exe=$2
- shift 2
- exe $exe $subdir/$* libasagna.a
- if(! ~ $exe cat*)
- man -d $subdir/man 8 $exe.8
- file bin/$exe '$outdir'/$exe 755
-}
-
-x perp perpd perpd.c perpd_conn.c perpd_svdef.c
-
-cc perp/tinylog.c ; with\
- cflags '$cflags -D ''TINYLOG_ZIP="/bin/gzip"'' -D ''ZIP_EXT=".gz"'''
-x perp tinylog tinylog.c.o
-
-for(exe in perp^(boot ctl hup ls ok stat)) x perp $exe $exe.c
-tools=(\
- run^(args argv0 choom detach deux env file limit lock pause session tool trap uid)\
- cat^(args env limits uid)\
-) for(exe in $tools) x runtools $exe $exe.c
-
-man -d perp/man 5 perpetrate.5 8 perp_intro.8
-man -d runtools/man 8 runtools_intro.8
-
-fetch curl
diff --git a/pkg/pigz/gen.lua b/pkg/pigz/gen.lua
@@ -0,0 +1,18 @@
+cflags{
+ '-Wall', '-Wextra',
+ '-I $builddir/pkg/zlib/include',
+}
+
+exe('pigz', [[
+ pigz.c yarn.c try.c
+ zopfli/src/zopfli/(deflate.c blocksplitter.c tree.c lz77.c cache.c hash.c util.c squeeze.c katajainen.c)
+ $builddir/pkg/zlib/libz.a
+]], {'pkg/zlib/headers'})
+file('bin/pigz', '755', '$outdir/pigz')
+man{'pigz.1'}
+for _, alias in ipairs{'gzip', 'gunzip', 'zcat'} do
+ sym('bin/'..alias, 'pigz')
+ sym('share/man/man1/'..alias..'.1.gz', 'pigz.1.gz')
+end
+
+fetch 'git'
diff --git a/pkg/pigz/gen.rc b/pkg/pigz/gen.rc
@@ -1,16 +0,0 @@
-cflags\
- -Wall -Wextra\
- -I '$builddir'/pkg/zlib/include
-
-exe pigz -d pkg/zlib/headers\
- pigz.c yarn.c try.c\
- zopfli/src/zopfli/^(deflate.c blocksplitter.c tree.c lz77.c cache.c hash.c util.c squeeze.c katajainen.c)\
- '$builddir'/pkg/zlib/libz.a
-file bin/pigz '$outdir'/pigz 755
-man 1 pigz.1
-for(alias in gzip gunzip zcat) {
- sym bin/$alias pigz
- sym share/man/man1/$alias.1.gz pigz.1.gz
-}
-
-fetch git
diff --git a/pkg/pixman/gen.lua b/pkg/pixman/gen.lua
@@ -0,0 +1,61 @@
+cflags{
+ '-D HAVE_CONFIG_H',
+ '-I include',
+ '-I $dir',
+ '-I $outdir/include',
+}
+
+build('sed', '$outdir/include/pixman-version.h', '$srcdir/pixman/pixman-version.h.in', {
+ expr={
+ '-e s,@PIXMAN_VERSION_MAJOR@,0,',
+ '-e s,@PIXMAN_VERSION_MINOR@,34,',
+ '-e s,@PIXMAN_VERSION_MICRO@,0,',
+ },
+})
+pkg.hdrs = {
+ copy('$outdir/include', '$srcdir/pixman', {'pixman.h'}),
+ '$outdir/include/pixman-version.h',
+}
+
+-- processor-specific features
+cflags{'-D USE_SSE2=1', '-D USE_SSSE3=1', '-D USE_X86_MMX=1'}
+cc('pixman/pixman-mmx.c', {'$dir/headers'}, {cflags='$cflags -mmmx -Winline'})
+cc('pixman/pixman-sse2.c', {'$dir/headers'}, {cflags='$cflags -msse2 -Winline'})
+cc('pixman/pixman-ssse3.c', {'$dir/headers'}, {cflags='$cflags -mssse3 -Winline'})
+local cpuobjs = {'pixman-mmx.c.o', 'pixman-sse2.c.o', 'pixman-ssse3.c.o'}
+
+lib('libpixman.a', expand{'pixman/', {
+ 'pixman.c',
+ 'pixman-access.c',
+ 'pixman-access-accessors.c',
+ 'pixman-bits-image.c',
+ 'pixman-combine32.c',
+ 'pixman-combine-float.c',
+ 'pixman-conical-gradient.c',
+ 'pixman-filter.c',
+ 'pixman-x86.c',
+ 'pixman-mips.c',
+ 'pixman-arm.c',
+ 'pixman-ppc.c',
+ 'pixman-edge.c',
+ 'pixman-edge-accessors.c',
+ 'pixman-fast-path.c',
+ 'pixman-glyph.c',
+ 'pixman-general.c',
+ 'pixman-gradient-walker.c',
+ 'pixman-image.c',
+ 'pixman-implementation.c',
+ 'pixman-linear-gradient.c',
+ 'pixman-matrix.c',
+ 'pixman-noop.c',
+ 'pixman-radial-gradient.c',
+ 'pixman-region16.c',
+ 'pixman-region32.c',
+ 'pixman-solid-fill.c',
+ 'pixman-timer.c',
+ 'pixman-trap.c',
+ 'pixman-utils.c',
+ cpuobjs,
+}}, {'$dir/headers'})
+
+fetch 'git'
diff --git a/pkg/pixman/gen.rc b/pkg/pixman/gen.rc
@@ -1,57 +0,0 @@
-cflags\
- -D HAVE_CONFIG_H\
- -I include\
- -I '$dir' \
- -I '$outdir'/include
-
-build '$outdir'/include/pixman-version.h sed '$srcdir'/pixman/pixman-version.h.in ; exprs=(\
- -e s,@PIXMAN_VERSION_MAJOR@,0,\
- -e s,@PIXMAN_VERSION_MINOR@,34,\
- -e s,@PIXMAN_VERSION_MICRO@,0,\
-) with expr $"exprs
-build '$outdir'/include/pixman.h copy '$srcdir'/pixman/pixman.h
-
-phony headers '$outdir'/include/^(pixman.h pixman-version.h)
-
-# processor-specific features
-cflags -D 'USE_SSE2=1' -D 'USE_SSSE3=1' -D 'USE_X86_MMX=1'
-cc pixman/pixman-mmx.c '||' '$dir'/headers ; with cflags '$cflags -mmmx -Winline'
-cc pixman/pixman-sse2.c '||' '$dir'/headers ; with cflags '$cflags -msse2 -Winline'
-cc pixman/pixman-ssse3.c '||' '$dir'/headers ; with cflags '$cflags -mssse3 -Winline'
-cpuobjs=(pixman-mmx.c pixman-sse2.c pixman-ssse3.c)^.o
-
-lib libpixman.a -d '$dir'/headers pixman/^(\
- pixman.c\
- pixman-access.c\
- pixman-access-accessors.c\
- pixman-bits-image.c\
- pixman-combine32.c\
- pixman-combine-float.c\
- pixman-conical-gradient.c\
- pixman-filter.c\
- pixman-x86.c\
- pixman-mips.c\
- pixman-arm.c\
- pixman-ppc.c\
- pixman-edge.c\
- pixman-edge-accessors.c\
- pixman-fast-path.c\
- pixman-glyph.c\
- pixman-general.c\
- pixman-gradient-walker.c\
- pixman-image.c\
- pixman-implementation.c\
- pixman-linear-gradient.c\
- pixman-matrix.c\
- pixman-noop.c\
- pixman-radial-gradient.c\
- pixman-region16.c\
- pixman-region32.c\
- pixman-solid-fill.c\
- pixman-timer.c\
- pixman-trap.c\
- pixman-utils.c\
- $cpuobjs\
-)
-
-fetch git
diff --git a/pkg/plan9fonts/gen.lua b/pkg/plan9fonts/gen.lua
@@ -0,0 +1,5 @@
+for f in iterlines('fonts.txt') do
+ file('share/plan9/fonts/'..f, '644', '$srcdir/'..f)
+end
+
+fetch 'git'
diff --git a/pkg/plan9fonts/gen.rc b/pkg/plan9fonts/gen.rc
@@ -1,4 +0,0 @@
-for(f in `{grep -v '^#' fonts.txt})
- file share/plan9/fonts/$f '$srcdir'/$f 644
-
-fetch git
diff --git a/pkg/plan9port/gen.lua b/pkg/plan9port/gen.lua
@@ -0,0 +1,412 @@
+set('arch', 'x86_64')
+
+cflags{
+ '-D __Linux26__',
+ '-D PLAN9PORT',
+ '-I $srcdir/include',
+ '-I $srcdir/src/cmd/rc',
+ '-I $srcdir/src/lib9/fmt',
+ '-I $outdir/rc',
+}
+
+-- src/src/lib9/mkfile:/^OFILES
+lib('lib9.a', [[src/lib9/(
+ fmt/(
+ dofmt.c
+ fltfmt.c
+ fmt.c
+ fmtfd.c
+ fmtfdflush.c
+ fmtlocale.c
+ fmtnull.c
+ fmtprint.c
+ fmtquote.c
+ fmtrune.c
+ fmtstr.c
+ fmtvprint.c
+ fprint.c
+ nan64.c
+ print.c
+ runefmtstr.c
+ runeseprint.c
+ runesmprint.c
+ runesnprint.c
+ runesprint.c
+ runevseprint.c
+ runevsmprint.c
+ runevsnprint.c
+ seprint.c
+ smprint.c
+ snprint.c
+ sprint.c
+ strtod.c
+ vfprint.c
+ vseprint.c
+ vsmprint.c
+ vsnprint.c
+ charstod.c
+ pow10.c
+ )
+ fmtlock2.c
+
+ utf/(
+ rune.c
+ runestrcat.c
+ runestrchr.c
+ runestrcmp.c
+ runestrcpy.c
+ runestrdup.c
+ runestrlen.c
+ runestrecpy.c
+ runestrncat.c
+ runestrncmp.c
+ runestrncpy.c
+ runestrrchr.c
+ runestrstr.c
+ runetype.c
+ utfecpy.c
+ utflen.c
+ utfnlen.c
+ utfrrune.c
+ utfrune.c
+ utfutf.c
+ )
+
+ _exits.c
+ _p9dialparse.c
+ _p9dir.c
+ announce.c
+ argv0.c
+ atexit.c
+ atoi.c
+ atol.c
+ atoll.c
+ atnotify.c
+ await.c
+ cistrcmp.c
+ cistrncmp.c
+ cistrstr.c
+ cleanname.c
+ convD2M.c
+ convM2D.c
+ convM2S.c
+ convS2M.c
+ create.c
+ crypt.c
+ ctime.c
+ dial.c
+ dirfstat.c
+ dirfwstat.c
+ dirmodefmt.c
+ dirread.c
+ dirstat.c
+ dirwstat.c
+ dup.c
+ encodefmt.c
+ errstr.c
+ exec.c
+ execl.c
+ exitcode.c
+ fcallfmt.c
+ get9root.c
+ getcallerpc-$arch.c
+ getenv.c
+ getfields.c
+ getnetconn.c
+ getns.c
+ getuser.c
+ getwd.c
+ jmp.c
+ lrand.c
+ lnrand.c
+ main.c
+ malloc.c
+ malloctag.c
+ mallocz.c
+ nan.c
+ needsrcquote.c
+ needstack.c
+ netcrypt.c
+ netmkaddr.c
+ notify.c
+ nrand.c
+ nulldir.c
+ open.c
+ opentemp.c
+ pin.c
+ pipe.c
+ post9p.c
+ postnote.c
+ qlock.c
+ quote.c
+ rand.c
+ read9pmsg.c
+ readcons.c
+ readn.c
+ rfork.c
+ searchpath.c
+ seek.c
+ sendfd.c
+ sleep.c
+ strdup.c
+ strecpy.c
+ sysfatal.c
+ syslog.c
+ sysname.c
+ time.c
+ tm2sec.c
+ tokenize.c
+ truerand.c
+ u16.c
+ u32.c
+ u64.c
+ unsharp.c
+ wait.c
+ waitpid.c
+ write.c
+ zoneinfo.c
+)]])
+
+-- src/src/lib9p/mkfile:/^OFILES
+lib('lib9p.a', [[src/lib9p/(
+ _post.c
+ dirread.c
+ fid.c
+ file.c
+ intmap.c
+ mem.c
+ req.c
+ parse.c
+ srv.c
+ tpost.c
+ uid.c
+ util.c
+)]])
+
+-- src/src/lib9pclient/mkfile:/^OFILES
+lib('lib9pclient.a', [[src/lib9pclient/(
+ access.c
+ auth.c
+ close.c
+ create.c
+ dirread.c
+ fs.c
+ ns.c
+ open.c
+ openfd.c
+ print.c
+ read.c
+ remove.c
+ seek.c
+ stat.c
+ walk.c
+ write.c
+ wstat.c
+)]])
+
+-- src/src/libbio/mkfile:/^OFILES
+lib('libbio.a', [[src/libbio/(
+ bbuffered.c
+ bfildes.c
+ bflush.c
+ bgetc.c
+ bgetrune.c
+ bgetd.c
+ binit.c
+ boffset.c
+ bprint.c
+ bputc.c
+ bputrune.c
+ brdline.c
+ brdstr.c
+ bread.c
+ bseek.c
+ bvprint.c
+ bwrite.c
+)]])
+
+-- src/src/libcomplete/mkfile:/^OFILES
+lib('libcomplete.a', {'src/libcomplete/complete.c'})
+
+-- src/src/libdraw/mkfile:/^OFILES
+lib('libdraw.a', [[src/libdraw/(
+ alloc.c
+ allocimagemix.c
+ arith.c
+ bezier.c
+ border.c
+ buildfont.c
+ bytesperline.c
+ chan.c
+ cloadimage.c
+ computil.c
+ creadimage.c
+ debug.c
+ defont.c
+ draw.c
+ drawclient.c
+ drawfcall.c
+ drawrepl.c
+ egetrect.c
+ ellipse.c
+ emenuhit.c
+ event.c
+ font.c
+ freesubfont.c
+ getdefont.c
+ getrect.c
+ getsubfont.c
+ icossin.c
+ icossin2.c
+ init.c
+ iprint.c
+ keyboard.c
+ line.c
+ loadimage.c
+ menuhit.c
+ mkfont.c
+ mouse.c
+ openfont.c
+ poly.c
+ readimage.c
+ readsubfont.c
+ rectclip.c
+ replclipr.c
+ rgb.c
+ scroll.c
+ snarf.c
+ string.c
+ stringbg.c
+ stringsubfont.c
+ stringwidth.c
+ subfont.c
+ subfontcache.c
+ subfontname.c
+ unloadimage.c
+ window.c
+ writeimage.c
+ writesubfont.c
+ wsys.c
+ unix.c
+)]])
+
+-- src/src/libframe/mkfile:/^OFILES
+lib('libframe.a', [[src/libframe/(
+ frbox.c
+ frdelete.c
+ frdraw.c
+ frinit.c
+ frinsert.c
+ frptofchar.c
+ frselect.c
+ frstr.c
+ frutil.c
+)]])
+
+-- src/src/libmemdraw/mkfile:/^OFILES
+lib('libmemdraw.a', [[src/libmemdraw/(
+ alloc.c
+ alloc-stub.c
+ arc.c
+ cload.c
+ cload-stub.c
+ cmap.c
+ cread.c
+ defont.c
+ draw.c
+ draw-stub.c
+ ellipse.c
+ fillpoly.c
+ hwdraw.c
+ iprint.c
+ line.c
+ load.c
+ load-stub.c
+ openmemsubfont.c
+ poly.c
+ read.c
+ string.c
+ subfont.c
+ unload.c
+ unload-stub.c
+ write.c
+)]])
+
+-- src/src/libmemlayer/mkfile:/^OFILES
+lib('libmemlayer.a', [[src/libmemlayer/(
+ draw.c
+ lalloc.c
+ layerop.c
+ ldelete.c
+ lhide.c
+ line.c
+ load.c
+ lorigin.c
+ lsetrefresh.c
+ ltofront.c
+ ltorear.c
+ unload.c
+)]])
+
+-- src/src/libmux/mkfile:/^OFILES
+lib('libmux.a', 'src/libmux/(io.c mux.c queue.c thread.c)')
+
+-- src/src/libplumb/mkfile:/^OFILES
+lib('libplumb.a', 'src/libplumb/(event.c fid.c mesg.c)')
+
+-- src/src/cmd/rc/mkfile:/^OFILES
+yacc('rc/x', '$srcdir/src/cmd/rc/syn.y')
+-- remove stdlib.h and string.h includes so that u.h comes first.
+build('grep', '$outdir/rc/syn.c', '$outdir/rc/x.tab.c', {
+ expr=[[-F -x -v -e '#include <stdlib.h>' -e '#include <string.h>']],
+})
+exe('bin/rc', [[$outdir/rc/syn.c src/cmd/rc/(
+ code.c
+ exec.c
+ getflags.c
+ glob.c
+ havefork.c
+ here.c
+ io.c
+ lex.c
+ pcmd.c
+ pfnc.c
+ plan9ish.c
+ simple.c
+ subr.c
+ trap.c
+ tree.c
+ unixcrap.c
+ var.c
+) lib9.a]], {'$outdir/rc/x.tab.h'})
+file('bin/rc', '755', '$outdir/bin/rc')
+file('lib/rcmain', '644', '$srcdir/rcmain')
+
+-- src/src/cmd/sam/mkfile:/^OFILES
+exe('bin/sam', [[src/cmd/sam/(
+ sam.c
+ address.c
+ buff.c
+ cmd.c
+ disk.c
+ error.c
+ file.c
+ io.c
+ list.c
+ mesg.c
+ moveto.c
+ multi.c
+ rasp.c
+ regexp.c
+ shell.c
+ string.c
+ sys.c
+ unix.c
+ util.c
+ xec.c
+) libplumb.a lib9.a]])
+file('bin/sam', '755', '$outdir/bin/sam')
+
+man{'man/man1/rc.1', 'man/man1/sam.1'}
+
+fetch 'git'
diff --git a/pkg/plan9port/gen.rc b/pkg/plan9port/gen.rc
@@ -1,411 +0,0 @@
-arch=x86_64
-
-cflags\
- -D __Linux26__\
- -D PLAN9PORT\
- -I '$srcdir'/include\
- -I '$srcdir'/src/cmd/rc\
- -I '$srcdir'/src/lib9/fmt\
- -I '$outdir'/rc
-
-# src/src/lib9/mkfile:/^OFILES
-lib lib9.a src/lib9/^(\
- fmt/^(\
- dofmt.c\
- fltfmt.c\
- fmt.c\
- fmtfd.c\
- fmtfdflush.c\
- fmtlocale.c\
- fmtnull.c\
- fmtprint.c\
- fmtquote.c\
- fmtrune.c\
- fmtstr.c\
- fmtvprint.c\
- fprint.c\
- nan64.c\
- print.c\
- runefmtstr.c\
- runeseprint.c\
- runesmprint.c\
- runesnprint.c\
- runesprint.c\
- runevseprint.c\
- runevsmprint.c\
- runevsnprint.c\
- seprint.c\
- smprint.c\
- snprint.c\
- sprint.c\
- strtod.c\
- vfprint.c\
- vseprint.c\
- vsmprint.c\
- vsnprint.c\
- charstod.c\
- pow10.c\
- )\
- fmtlock2.c\
- \
- utf/^(\
- rune.c\
- runestrcat.c\
- runestrchr.c\
- runestrcmp.c\
- runestrcpy.c\
- runestrdup.c\
- runestrlen.c\
- runestrecpy.c\
- runestrncat.c\
- runestrncmp.c\
- runestrncpy.c\
- runestrrchr.c\
- runestrstr.c\
- runetype.c\
- utfecpy.c\
- utflen.c\
- utfnlen.c\
- utfrrune.c\
- utfrune.c\
- utfutf.c\
- )\
- \
- _exits.c\
- _p9dialparse.c\
- _p9dir.c\
- announce.c\
- argv0.c\
- atexit.c\
- atoi.c\
- atol.c\
- atoll.c\
- atnotify.c\
- await.c\
- cistrcmp.c\
- cistrncmp.c\
- cistrstr.c\
- cleanname.c\
- convD2M.c\
- convM2D.c\
- convM2S.c\
- convS2M.c\
- create.c\
- crypt.c\
- ctime.c\
- dial.c\
- dirfstat.c\
- dirfwstat.c\
- dirmodefmt.c\
- dirread.c\
- dirstat.c\
- dirwstat.c\
- dup.c\
- encodefmt.c\
- errstr.c\
- exec.c\
- execl.c\
- exitcode.c\
- fcallfmt.c\
- get9root.c\
- getcallerpc-$arch.c\
- getenv.c\
- getfields.c\
- getnetconn.c\
- getns.c\
- getuser.c\
- getwd.c\
- jmp.c\
- lrand.c\
- lnrand.c\
- main.c\
- malloc.c\
- malloctag.c\
- mallocz.c\
- nan.c\
- needsrcquote.c\
- needstack.c\
- netcrypt.c\
- netmkaddr.c\
- notify.c\
- nrand.c\
- nulldir.c\
- open.c\
- opentemp.c\
- pin.c\
- pipe.c\
- post9p.c\
- postnote.c\
- qlock.c\
- quote.c\
- rand.c\
- read9pmsg.c\
- readcons.c\
- readn.c\
- rfork.c\
- searchpath.c\
- seek.c\
- sendfd.c\
- sleep.c\
- strdup.c\
- strecpy.c\
- sysfatal.c\
- syslog.c\
- sysname.c\
- time.c\
- tm2sec.c\
- tokenize.c\
- truerand.c\
- u16.c\
- u32.c\
- u64.c\
- unsharp.c\
- wait.c\
- waitpid.c\
- write.c\
- zoneinfo.c\
-)
-
-# src/src/lib9p/mkfile:/^OFILES
-lib lib9p.a src/lib9p/^(\
- _post.c\
- dirread.c\
- fid.c\
- file.c\
- intmap.c\
- mem.c\
- req.c\
- parse.c\
- srv.c\
- tpost.c\
- uid.c\
- util.c\
-)
-
-# src/src/lib9pclient/mkfile:/^OFILES
-lib lib9pclient.a src/lib9pclient/^(\
- access.c\
- auth.c\
- close.c\
- create.c\
- dirread.c\
- fs.c\
- ns.c\
- open.c\
- openfd.c\
- print.c\
- read.c\
- remove.c\
- seek.c\
- stat.c\
- walk.c\
- write.c\
- wstat.c\
-)
-
-# src/src/libbio/mkfile:/^OFILES
-lib libbio.a src/libbio/^(\
- bbuffered.c\
- bfildes.c\
- bflush.c\
- bgetc.c\
- bgetrune.c\
- bgetd.c\
- binit.c\
- boffset.c\
- bprint.c\
- bputc.c\
- bputrune.c\
- brdline.c\
- brdstr.c\
- bread.c\
- bseek.c\
- bvprint.c\
- bwrite.c\
-)
-
-# src/src/libcomplete/mkfile:/^OFILES
-lib libcomplete.a src/libcomplete/complete.c
-
-# src/src/libdraw/mkfile:/^OFILES
-lib libdraw.a src/libdraw/^(\
- alloc.c\
- allocimagemix.c\
- arith.c\
- bezier.c\
- border.c\
- buildfont.c\
- bytesperline.c\
- chan.c\
- cloadimage.c\
- computil.c\
- creadimage.c\
- debug.c\
- defont.c\
- draw.c\
- drawclient.c\
- drawfcall.c\
- drawrepl.c\
- egetrect.c\
- ellipse.c\
- emenuhit.c\
- event.c\
- font.c\
- freesubfont.c\
- getdefont.c\
- getrect.c\
- getsubfont.c\
- icossin.c\
- icossin2.c\
- init.c\
- iprint.c\
- keyboard.c\
- line.c\
- loadimage.c\
- menuhit.c\
- mkfont.c\
- mouse.c\
- openfont.c\
- poly.c\
- readimage.c\
- readsubfont.c\
- rectclip.c\
- replclipr.c\
- rgb.c\
- scroll.c\
- snarf.c\
- string.c\
- stringbg.c\
- stringsubfont.c\
- stringwidth.c\
- subfont.c\
- subfontcache.c\
- subfontname.c\
- unloadimage.c\
- window.c\
- writeimage.c\
- writesubfont.c\
- wsys.c\
- unix.c\
-)
-
-# src/src/libframe/mkfile:/^OFILES
-lib libframe.a src/libframe/^(\
- frbox.c\
- frdelete.c\
- frdraw.c\
- frinit.c\
- frinsert.c\
- frptofchar.c\
- frselect.c\
- frstr.c\
- frutil.c\
-)
-
-# src/src/libmemdraw/mkfile:/^OFILES
-lib libmemdraw.a src/libmemdraw/^(\
- alloc.c\
- alloc-stub.c\
- arc.c\
- cload.c\
- cload-stub.c\
- cmap.c\
- cread.c\
- defont.c\
- draw.c\
- draw-stub.c\
- ellipse.c\
- fillpoly.c\
- hwdraw.c\
- iprint.c\
- line.c\
- load.c\
- load-stub.c\
- openmemsubfont.c\
- poly.c\
- read.c\
- string.c\
- subfont.c\
- unload.c\
- unload-stub.c\
- write.c\
-)
-
-# src/src/libmemlayer/mkfile:/^OFILES
-lib libmemlayer.a src/libmemlayer/^(\
- draw.c\
- lalloc.c\
- layerop.c\
- ldelete.c\
- lhide.c\
- line.c\
- load.c\
- lorigin.c\
- lsetrefresh.c\
- ltofront.c\
- ltorear.c\
- unload.c\
-)
-
-# src/src/libmux/mkfile:/^OFILES
-lib libmux.a src/libmux/^(io.c mux.c queue.c thread.c)
-
-# src/src/libplumb/mkfile:/^OFILES
-lib libplumb.a src/libplumb/^(event.c fid.c mesg.c)
-
-# src/src/cmd/rc/mkfile:/^OFILES
-yacc rc/x '$srcdir'/src/cmd/rc/syn.y
-# remove stdlib.h and string.h includes so that u.h comes first.
-build '$outdir'/rc/syn.c grep '$outdir'/rc/x.tab.c ; with\
- expr '-F -x -v -e ''#include <stdlib.h>'' -e ''#include <string.h>'''
-exe bin/rc -d '$outdir'/rc/x.tab.h '$outdir'/rc/syn.c src/cmd/rc/^(\
- code.c\
- exec.c\
- getflags.c\
- glob.c\
- havefork.c\
- here.c\
- io.c\
- lex.c\
- pcmd.c\
- pfnc.c\
- plan9ish.c\
- simple.c\
- subr.c\
- trap.c\
- tree.c\
- unixcrap.c\
- var.c\
-) lib9.a
-file bin/rc '$outdir'/bin/rc 755
-
-# src/src/cmd/sam/mkfile:/^OFILES
-exe bin/sam src/cmd/sam/^(\
- sam.c\
- address.c\
- buff.c\
- cmd.c\
- disk.c\
- error.c\
- file.c\
- io.c\
- list.c\
- mesg.c\
- moveto.c\
- multi.c\
- rasp.c\
- regexp.c\
- shell.c\
- string.c\
- sys.c\
- unix.c\
- util.c\
- xec.c\
-) libplumb.a lib9.a
-file bin/sam '$outdir'/bin/sam 755
-
-man -d man man1/^(rc.1 sam.1)
-
-file lib/rcmain '$srcdir'/rcmain 644
-
-fetch git
diff --git a/pkg/python/gen.lua b/pkg/python/gen.lua
@@ -0,0 +1,215 @@
+cflags{
+ '-fwrapv',
+ '-D NDEBUG',
+ '-D Py_BUILD_CORE',
+ '-I include',
+ '-I $dir',
+ '-I $srcdir/Include',
+}
+
+local sources = {}
+local modules = {}
+for line in io.lines(pkg.dir..'/Setup') do
+ if #line > 0 and not line:find('^[*#]') then
+ local i = line:find(' ', 1, true)
+ modules[line:sub(1, i and i - 1)] = true
+ while i do
+ local j = line:find(' ', i + 1, true)
+ sources[line:sub(i + 1, j and j - 1)] = true
+ i = j
+ end
+ end
+end
+sources = table.keys(sources)
+
+pkg.deps = {}
+local libs = {}
+
+if modules['_ctypes'] then
+ cflags{'-I $builddir/pkg/libffi/include'}
+ table.insert(pkg.deps, 'pkg/libffi/headers')
+ table.insert(libs, 'libffi/libffi.a')
+end
+if modules['_hashlib'] or modules['_ssl'] then
+ cflags{'-I $builddir/pkg/libressl/include'}
+ table.insert(pkg.deps, 'pkg/libressl/headers')
+ table.insert(libs, {
+ 'libressl/libssl.a',
+ 'libressl/libcrypto.a',
+ })
+end
+if modules['pyexpat'] then
+ cflags{'-I $builddir/pkg/expat/include'}
+ table.insert(pkg.deps, 'pkg/expat/headers')
+ table.insert(libs, 'expat/libexpat.a.d')
+end
+if modules['zlib'] then
+ cflags{' -I $builddir/pkg/zlib/include'}
+ table.insert(pkg.deps, 'pkg/zlib/headers')
+ table.insert(libs, 'zlib/libz.a')
+end
+
+rule('makesetup', 'cd $outdir && $$OLDPWD/$srcdir/Modules/makesetup -s $$OLDPWD/$srcdir -m - $$OLDPWD/$in')
+build('makesetup', '$outdir/config.c', {
+ '$dir/Setup', '|', '$srcdir/Modules/makesetup', '$srcdir/Modules/config.c.in'
+})
+
+cc('Modules/getbuildinfo.c', nil, {
+ cflags=[[$cflags -D 'DATE="Dec 22 2016"' -D 'TIME="18:38:47"']]
+})
+cc('Modules/getpath.c', nil, {
+ cflags={
+ '$cflags',
+ [[-D 'PYTHONPATH=":plat-linux"']],
+ [[-D 'PREFIX="/"']],
+ [[-D 'EXEC_PREFIX="/"']],
+ [[-D 'VERSION="3.6"']],
+ [[-D 'VPATH=""']],
+ },
+})
+
+local platform = 'linux'
+local abiflags = ''
+for line in io.lines(pkg.dir..'/pyconfig.h') do
+ if line == '#define WITH_PYMALLOC 1' then
+ abiflags = abiflags..'m'
+ elseif line == '#define Py_DEBUG 1' then
+ abiflags = abiflags..'d'
+ end
+end
+
+cc('Python/getplatform.c', nil, {
+ cflags=string.format([[$cflags -D 'PLATFORM="%s"']], platform),
+})
+cc('Python/sysmodule.c', nil, {
+ cflags=string.format([[$cflags -D 'ABIFLAGS="%s"']], abiflags),
+})
+
+lib('libpython.a', {expand{'Modules/', sources}, paths[[
+ Modules/(
+ getbuildinfo.c.o
+ getpath.c.o
+ main.c
+ gcmodule.c
+ )
+ Objects/(
+ abstract.c
+ accu.c
+ boolobject.c
+ bytes_methods.c
+ bytearrayobject.c
+ bytesobject.c
+ cellobject.c
+ classobject.c
+ codeobject.c
+ complexobject.c
+ descrobject.c
+ enumobject.c
+ exceptions.c
+ genobject.c
+ fileobject.c
+ floatobject.c
+ frameobject.c
+ funcobject.c
+ iterobject.c
+ listobject.c
+ longobject.c
+ dictobject.c
+ odictobject.c
+ memoryobject.c
+ methodobject.c
+ moduleobject.c
+ namespaceobject.c
+ object.c
+ obmalloc.c
+ capsule.c
+ rangeobject.c
+ setobject.c
+ sliceobject.c
+ structseq.c
+ tupleobject.c
+ typeobject.c
+ unicodeobject.c
+ unicodectype.c
+ weakrefobject.c
+ )
+ Parser/(
+ acceler.c
+ grammar1.c
+ listnode.c
+ node.c
+ parser.c
+ bitset.c
+ metagrammar.c
+ firstsets.c
+ grammar.c
+ pgen.c
+ myreadline.c parsetok.c tokenizer.c
+ )
+ Python/(
+ _warnings.c
+ Python-ast.c
+ asdl.c
+ ast.c
+ bltinmodule.c
+ ceval.c
+ compile.c
+ codecs.c
+ dynamic_annotations.c
+ errors.c
+ frozenmain.c
+ future.c
+ getargs.c
+ getcompiler.c
+ getcopyright.c
+ getplatform.c.o
+ getversion.c
+ graminit.c
+ import.c
+ importdl.c
+ marshal.c
+ modsupport.c
+ mystrtoul.c
+ mysnprintf.c
+ peephole.c
+ pyarena.c
+ pyctype.c
+ pyfpe.c
+ pyhash.c
+ pylifecycle.c
+ pymath.c
+ pystate.c
+ pythonrun.c
+ pytime.c
+ random.c
+ structmember.c
+ symtable.c
+ sysmodule.c.o
+ traceback.c
+ getopt.c
+ pystrcmp.c
+ pystrtod.c
+ pystrhex.c
+ dtoa.c
+ formatter_unicode.c
+ fileutils.c
+ dynload_stub.c
+ thread.c
+ frozen.c
+ )
+ $outdir/config.c
+]]})
+
+exe('python', {'Programs/python.c', 'libpython.a', expand{'$builddir/pkg/', libs}})
+file('bin/python3', '755', '$outdir/python')
+sym('bin/python', 'python3')
+
+for f in iterlines('pylibs.txt') do
+ file('lib/python3.6/'..f, '644', '$srcdir/Lib/'..f)
+end
+file('lib/python3.6/_sysconfigdata_'..abiflags..'_'..platform..'_.py', '644', '$dir/lib/_sysconfigdata.py')
+file('lib/python3.6/Makefile', '644', '$dir/lib/Makefile')
+dir('lib/python3.6/lib-dynload', '755')
+
+table.insert(pkg.inputs.gen, {'$dir/Setup', '$dir/pyconfig.h'})
+fetch 'curl'
diff --git a/pkg/python/gen.rc b/pkg/python/gen.rc
@@ -1,192 +0,0 @@
-cflags=(\
- -fwrapv\
- -D NDEBUG\
- -D Py_BUILD_CORE\
- -I include\
- -I '$dir' \
- -I '$srcdir'/Include\
-)
-
-srcs=(\
- Modules/^(\
- getbuildinfo.c.o\
- getpath.c.o\
- main.c\
- gcmodule.c\
- `{awk -f modules.awk Setup | sort -u}\
- )\
- Objects/^(\
- abstract.c\
- accu.c\
- boolobject.c\
- bytes_methods.c\
- bytearrayobject.c\
- bytesobject.c\
- cellobject.c\
- classobject.c\
- codeobject.c\
- complexobject.c\
- descrobject.c\
- enumobject.c\
- exceptions.c\
- genobject.c\
- fileobject.c\
- floatobject.c\
- frameobject.c\
- funcobject.c\
- iterobject.c\
- listobject.c\
- longobject.c\
- dictobject.c\
- odictobject.c\
- memoryobject.c\
- methodobject.c\
- moduleobject.c\
- namespaceobject.c\
- object.c\
- obmalloc.c\
- capsule.c\
- rangeobject.c\
- setobject.c\
- sliceobject.c\
- structseq.c\
- tupleobject.c\
- typeobject.c\
- unicodeobject.c\
- unicodectype.c\
- weakrefobject.c\
- )\
- Parser/^(\
- acceler.c\
- grammar1.c\
- listnode.c\
- node.c\
- parser.c\
- bitset.c\
- metagrammar.c\
- firstsets.c\
- grammar.c\
- pgen.c\
- myreadline.c parsetok.c tokenizer.c\
- )\
- Python/^(\
- _warnings.c\
- Python-ast.c\
- asdl.c\
- ast.c\
- bltinmodule.c\
- ceval.c\
- compile.c\
- codecs.c\
- dynamic_annotations.c\
- errors.c\
- frozenmain.c\
- future.c\
- getargs.c\
- getcompiler.c\
- getcopyright.c\
- getplatform.c.o\
- getversion.c\
- graminit.c\
- import.c\
- importdl.c\
- marshal.c\
- modsupport.c\
- mystrtoul.c\
- mysnprintf.c\
- peephole.c\
- pyarena.c\
- pyctype.c\
- pyfpe.c\
- pyhash.c\
- pylifecycle.c\
- pymath.c\
- pystate.c\
- pythonrun.c\
- pytime.c\
- random.c\
- structmember.c\
- symtable.c\
- sysmodule.c.o\
- traceback.c\
- getopt.c\
- pystrcmp.c\
- pystrtod.c\
- pystrhex.c\
- dtoa.c\
- formatter_unicode.c\
- fileutils.c\
- dynload_stub.c\
- thread.c\
- frozen.c\
- )\
- '$outdir'/config.c\
-)
-checkstatus
-
-libs=()
-deps=()
-
-if(grep -q '^_ctypes' Setup) {
- cflags=($cflags -I '$builddir'/pkg/libffi/include)
- deps=($deps pkg/libffi/headers)
- libs=($libs libffi/libffi.a)
-}
-if(grep -qE '^(_hashlib|_ssl)' Setup) {
- cflags=($cflags -I '$builddir'/pkg/libressl/include)
- deps=($deps pkg/libressl/headers)
- libs=($libs (libressl/^(libssl.a libcrypto.a) openbsd/libbsd.a))
-}
-if(grep -q '^pyexpat' Setup) {
- cflags=($cflags -I '$builddir'/pkg/expat/include)
- deps=($deps pkg/expat/headers)
- libs=($libs expat/libexpat.a.d)
-}
-if(grep -q '^zlib' Setup) {
- cflags=($cflags -I '$builddir'/pkg/zlib/include)
- deps=($deps pkg/zlib/headers)
- libs=($libs zlib/libz.a)
-}
-
-rule makesetup 'cd $outdir && $$OLDPWD/$srcdir/Modules/makesetup -s $$OLDPWD/$srcdir -m - $$OLDPWD/$in'
-build '$outdir'/config.c makesetup '$dir'/Setup '|' '$srcdir'/Modules/^(makesetup config.c.in)
-
-cflags $cflags
-
-cc Modules/getbuildinfo.c ; with\
- cflags '$cflags -D ''DATE="Dec 22 2016"'' -D ''TIME="18:38:47"'''
-cc Modules/getpath.c ; defs='-D '''^(\
- 'PYTHONPATH='":plat-linux"\
- 'PREFIX='"/"\
- 'EXEC_PREFIX='"/"\
- 'VERSION='"3.6"\
- 'VPATH='""\
-)^'''' with cflags '$cflags '$"defs
-
-platform=linux
-abiflags=''
-if(grep -q '^#define WITH_PYMALLOC 1' pyconfig.h)
- abiflags=$abiflags^m
-if(grep -q '^#define Py_DEBUG 1' pyconfig.h)
- abiflags=$abiflags^d
-
-cc Python/getplatform.c ; with cflags '$cflags -D PLATFORM=''"'$platform'"'''
-cc Python/sysmodule.c ; with cflags '$cflags -D ABIFLAGS=''"'$abiflags'"'''
-
-phony deps $deps
-lib libpython.a -d '$dir'/deps $srcs
-
-exe python Programs/python.c libpython.a '$builddir'/pkg/$libs
-file bin/python3 '$outdir'/python 755
-sym bin/python python3
-
-pylibs=`{grep -v '^#' pylibs.txt}
-checkstatus
-for(f in $pylibs)
- file lib/python3.6/$f '$srcdir'/Lib/$f 644
-file lib/python3.6/_sysconfigdata_$abiflags^_$platform^_.py '$dir'/lib/_sysconfigdata.py 644
-file lib/python3.6/Makefile '$dir'/lib/Makefile 644
-dir lib/python3.6/lib-dynload 755
-
-gen_inputs='$dir'/^(Setup modules.awk pyconfig.h)
-fetch curl
diff --git a/pkg/python/modules.awk b/pkg/python/modules.awk
@@ -1,7 +0,0 @@
-$0 == "*static*" {static = 1; next}
-$0 == "*shared*" {static = 0; next}
-
-NF && !/^#/ && static {
- for (i = 2; i <= NF; ++i)
- print $i
-}
diff --git a/pkg/qbe/gen.lua b/pkg/qbe/gen.lua
@@ -0,0 +1,14 @@
+cflags{
+ '-Wall', '-Wextra', '-std=c99', '-pedantic',
+ '-I $dir',
+}
+
+exe('qbe', [[
+ main.c util.c parse.c cfg.c mem.c ssa.c alias.c load.c copy.c
+ fold.c live.c spill.c rega.c gas.c
+ amd64/(targ.c sysv.c isel.c emit.c)
+ arm64/(targ.c abi.c isel.c emit.c)
+]])
+file('bin/qbe', '755', '$outdir/qbe')
+
+fetch 'git'
diff --git a/pkg/qbe/gen.rc b/pkg/qbe/gen.rc
@@ -1,12 +0,0 @@
-cflags\
- -Wall -Wextra '-std=c99' -pedantic\
- -I '$dir'
-
-exe qbe\
- main.c util.c parse.c cfg.c mem.c ssa.c alias.c load.c copy.c\
- fold.c live.c spill.c rega.c gas.c\
- amd64/^(targ.c sysv.c isel.c emit.c)\
- arm64/^(targ.c abi.c isel.c emit.c)
-file bin/qbe '$outdir'/qbe 755
-
-fetch git
diff --git a/pkg/samurai/gen.lua b/pkg/samurai/gen.lua
@@ -0,0 +1,10 @@
+cflags{
+ '-Wall', '-Wextra', '-std=c99', '-pedantic',
+ '-D _POSIX_C_SOURCE=200809L',
+}
+
+exe('samu', 'build.c deps.c env.c graph.c htab.c lex.c log.c parse.c samurai.c tool.c util.c')
+file('bin/samu', '755', '$outdir/samu')
+man{'samu.1'}
+
+fetch 'git'
diff --git a/pkg/samurai/gen.rc b/pkg/samurai/gen.rc
@@ -1,9 +0,0 @@
-cflags\
- -Wall -Wextra '-std=c99' -pedantic\
- -D '_POSIX_C_SOURCE=200809L'
-
-exe samu build.c deps.c env.c graph.c htab.c lex.c log.c parse.c samurai.c tool.c util.c
-file bin/samu '$outdir'/samu 755
-man 1 samu.1
-
-fetch git
diff --git a/pkg/sbase/gen.lua b/pkg/sbase/gen.lua
@@ -0,0 +1,191 @@
+cflags{
+ '-std=c99', '-pedantic',
+ '-Wall', '-Wno-maybe-uninitialized',
+ '-D _DEFAULT_SOURCE',
+ '-D _BSD_SOURCE',
+ '-D _XOPEN_SOURCE=700',
+ '-I $outdir',
+}
+
+lib('libutil.a', [[libutil/(
+ concat.c
+ cp.c
+ crypt.c
+ ealloc.c
+ enmasse.c
+ eprintf.c
+ eregcomp.c
+ estrtod.c
+ fnck.c
+ fshut.c
+ getlines.c
+ human.c
+ linecmp.c
+ md5.c
+ memmem.c
+ mkdirp.c
+ mode.c
+ parseoffset.c
+ putword.c
+ reallocarray.c
+ recurse.c
+ rm.c
+ sha1.c
+ sha224.c
+ sha256.c
+ sha384.c
+ sha512.c
+ sha512-224.c
+ sha512-256.c
+ strcasestr.c
+ strlcat.c
+ strlcpy.c
+ strsep.c
+ strtonum.c
+ unescape.c
+ writeall.c
+)]])
+lib('libutf.a', [[libutf/(
+ fgetrune.c
+ fputrune.c
+ isalnumrune.c
+ isalpharune.c
+ isblankrune.c
+ iscntrlrune.c
+ isdigitrune.c
+ isgraphrune.c
+ isprintrune.c
+ ispunctrune.c
+ isspacerune.c
+ istitlerune.c
+ isxdigitrune.c
+ lowerrune.c
+ rune.c
+ runetype.c
+ upperrune.c
+ utf.c
+ utftorunestr.c
+)]])
+
+rule('getconf', '$srcdir/getconf.sh >$out.tmp && mv $out.tmp $out')
+build('getconf', '$outdir/getconf.h', {'|', '$srcdir/getconf.sh'})
+
+local cmds = {
+ 'basename',
+ 'cal',
+ 'cat',
+ 'chgrp',
+ 'chmod',
+ 'chown',
+ 'chroot',
+ 'cksum',
+ 'cmp',
+ 'cols',
+ 'comm',
+ 'cp',
+ 'cron',
+ 'cut',
+ 'date',
+ 'dirname',
+ 'du',
+ 'echo',
+ 'ed',
+ 'env',
+ 'expand',
+ 'expr',
+ 'false',
+ 'find',
+ 'flock',
+ 'fold',
+ 'getconf',
+ 'grep',
+ 'head',
+ 'hostname',
+ 'install',
+ 'join',
+ 'kill',
+ 'link',
+ 'ln',
+ 'logger',
+ 'logname',
+ 'ls',
+ 'md5sum',
+ 'mkdir',
+ 'mkfifo',
+ 'mktemp',
+ 'mv',
+ 'nice',
+ 'nl',
+ 'nohup',
+ 'od',
+ 'paste',
+ 'pathchk',
+ 'printenv',
+ 'printf',
+ 'pwd',
+ 'readlink',
+ 'renice',
+ 'rev',
+ 'rm',
+ 'rmdir',
+ 'sed',
+ 'seq',
+ 'setsid',
+ 'sha1sum',
+ 'sha224sum',
+ 'sha256sum',
+ 'sha384sum',
+ 'sha512-224sum',
+ 'sha512-256sum',
+ 'sha512sum',
+ 'sleep',
+ 'sort',
+ 'split',
+ 'sponge',
+ -- use strings from binutils
+ 'sync',
+ 'tail',
+ -- use tar from OpenBSD
+ 'tee',
+ 'test',
+ 'tftp',
+ 'time',
+ 'touch',
+ 'tr',
+ 'true',
+ 'tsort',
+ 'tty',
+ 'uname',
+ 'unexpand',
+ 'uniq',
+ 'unlink',
+ 'uudecode',
+ 'uuencode',
+ 'wc',
+ 'which',
+ 'whoami',
+ 'xargs',
+ 'yes',
+}
+for _, cmd in ipairs(cmds) do
+ local src = cmd
+ if src == 'install' then
+ src = 'xinstall'
+ end
+ local deps
+ if cmd == 'getconf' then
+ deps = {'$outdir/getconf.h'}
+ end
+ file('bin/'..cmd, '755', exe(cmd, {src..'.c', 'libutil.a', 'libutf.a'}, deps))
+ local out = '$outdir/'..cmd..'.1.gz'
+ build('gzip', out, '$srcdir/'..src..'.1')
+ file('share/man/man1/'..cmd..'.1.gz', '644', out)
+end
+
+sym('bin/[', 'test')
+
+-- TODO: binutils' config/lib-ld.m4 should use AC_REQUIRE([AC_PROG_EGREP]) and
+-- $EGREP instead of egrep.
+file('bin/egrep', '755', '$dir/egrep')
+
+fetch 'git'
diff --git a/pkg/sbase/gen.rc b/pkg/sbase/gen.rc
@@ -1,196 +0,0 @@
-cflags\
- '-std=c99' -pedantic\
- -Wall -Wno-maybe-uninitialized\
- -D _DEFAULT_SOURCE\
- -D _BSD_SOURCE\
- -D '_XOPEN_SOURCE=700' \
- -I '$outdir'
-
-lib libutil.a libutil/^(\
- concat.c\
- cp.c\
- crypt.c\
- ealloc.c\
- enmasse.c\
- eprintf.c\
- eregcomp.c\
- estrtod.c\
- fnck.c\
- fshut.c\
- getlines.c\
- human.c\
- linecmp.c\
- md5.c\
- memmem.c\
- mkdirp.c\
- mode.c\
- parseoffset.c\
- putword.c\
- reallocarray.c\
- recurse.c\
- rm.c\
- sha1.c\
- sha224.c\
- sha256.c\
- sha384.c\
- sha512.c\
- sha512-224.c\
- sha512-256.c\
- strcasestr.c\
- strlcat.c\
- strlcpy.c\
- strsep.c\
- strtonum.c\
- unescape.c\
- writeall.c\
-)
-lib libutf.a libutf/^(\
- fgetrune.c\
- fputrune.c\
- isalnumrune.c\
- isalpharune.c\
- isblankrune.c\
- iscntrlrune.c\
- isdigitrune.c\
- isgraphrune.c\
- isprintrune.c\
- ispunctrune.c\
- isspacerune.c\
- istitlerune.c\
- isxdigitrune.c\
- lowerrune.c\
- rune.c\
- runetype.c\
- upperrune.c\
- utf.c\
- utftorunestr.c\
-)
-
-rule getconf '$srcdir/getconf.sh >$out.tmp && mv $out.tmp $out'
-build '$outdir'/getconf.h getconf '|' '$srcdir/getconf.sh'
-
-fn x {
- exe=$1
- shift
-
- src=$exe
- deps=()
- switch($exe) {
- case install
- src=xinstall
- case getconf
- deps=('||' '$outdir'/getconf.h)
- }
-
- cc $src.c $deps
- link $exe $src.c.o libutil.a libutf.a
-
- file bin/$exe '$outdir'/$exe 755
- build '$outdir'/$exe.1.gz gzip '$srcdir'/$src.1
- man -d '$outdir' 1 $exe.1.gz
-}
-
-x basename
-x cal
-x cat
-x chgrp
-x chmod
-x chown
-x chroot
-x cksum
-x cmp
-x cols
-x comm
-x cp
-x cron
-x cut
-x date
-x dirname
-x du
-x echo
-x ed
-x env
-x expand
-x expr
-x false
-x find
-x flock
-x fold
-x getconf
-x grep
-x head
-x hostname
-x install
-x join
-x kill
-x link
-x ln
-x logger
-x logname
-x ls
-x md5sum
-x mkdir
-x mkfifo
-x mktemp
-x mv
-x nice
-x nl
-x nohup
-x od
-x paste
-x pathchk
-x printenv
-x printf
-x pwd
-x readlink
-x renice
-x rev
-x rm
-x rmdir
-x sed
-x seq
-x setsid
-x sha1sum
-x sha224sum
-x sha256sum
-x sha384sum
-x sha512-224sum
-x sha512-256sum
-x sha512sum
-x sleep
-x sort
-x split
-x sponge
-# use strings from binutils
-x sync
-x tail
-# use tar from OpenBSD
-x tee
-x test
-x tftp
-x time
-x touch
-x tr
-x true
-x tsort
-x tty
-x uname
-x unexpand
-x uniq
-x unlink
-x uudecode
-x uuencode
-x wc
-x which
-x whoami
-x xargs
-x yes
-
-# TODO: Hard links?
-sym bin/[ test
-
-# TODO: binutils' config/lib-ld.m4 should use AC_REQUIRE([AC_PROG_EGREP]) and
-# $EGREP instead of egrep.
-file bin/egrep '$dir'/egrep 755
-
-fetch git
diff --git a/pkg/scc/gen.lua b/pkg/scc/gen.lua
@@ -0,0 +1,45 @@
+set('arch', 'qbe')
+cflags{
+ '-std=c99',
+ [[-D 'SYS="linux"']],
+ [[-D 'ARCH="$arch"']],
+ '-D PREFIX=',
+ '-D NDEBUG',
+ '-I $dir/inc',
+ '-I $srcdir/inc/c99',
+ '-I $outdir/inc',
+}
+
+lib('libcc.a', {
+ 'lib/debug.c',
+ 'lib/die.c',
+ 'lib/newitem.c',
+ 'lib/xcalloc.c',
+ 'lib/xmalloc.c',
+ 'lib/xrealloc.c',
+ 'lib/xstrdup.c',
+})
+
+build('awk', '$outdir/inc/error.h', {'$srcdir/cc2/cc2.h', '|', '$srcdir/cc2/generror.awk'}, {
+ expr='-f $srcdir/cc2/generror.awk',
+})
+
+cflags{[[-D 'ARCH="$arch"']]}
+
+exe('cc1-$arch', [[cc1/(
+ types.c decl.c lex.c error.c symbol.c main.c expr.c
+ code.c stmt.c cpp.c fold.c init.c builtin.c
+ arch/$arch/arch.c
+) $outdir/libcc.a]])
+file('libexec/scc/cc1-$arch', '755', '$outdir/cc1-$arch')
+
+exe('cc2-$arch', [[cc2/(
+ main.c parser.c peep.c symbol.c node.c code.c optm.c
+ arch/$arch/(code.c cgen.c types.c optm.c)
+) $outdir/libcc.a]], {'$outdir/inc/error.h'})
+file('libexec/scc/cc2-$arch', '755', '$outdir/cc2-$arch')
+
+exe('scc', {'driver/posix/scc.c', 'libcc.a'})
+file('bin/scc', '755', '$outdir/scc')
+
+fetch 'git'
diff --git a/pkg/scc/gen.rc b/pkg/scc/gen.rc
@@ -1,42 +0,0 @@
-archs=(qbe)
-std=c99
-cflags\
- '-std=c99' \
- -D 'SYS=''"linux"''' \
- -D 'PREFIX=' \
- -D NDEBUG\
- -I '$dir'/inc\
- -I '$srcdir'/inc/$std\
- -I '$outdir'/inc
-
-lib libcc.a lib/^(debug.c die.c newitem.c xcalloc.c xmalloc.c xrealloc.c xstrdup.c)
-
-build '$outdir'/inc/error.h awk '$srcdir'/cc2/cc2.h '|' '$srcdir'/cc2/generror.awk ; with\
- expr '-f $srcdir/cc2/generror.awk'
-
-set baseoutdir '$outdir'
-for(arch in $archs) {
- {
- set outdir '$outdir'/$arch
- cflags -D 'ARCH=''"'^$arch^'"'''
-
- exe cc1-$arch cc1/^(\
- types.c decl.c lex.c error.c symbol.c main.c expr.c\
- code.c stmt.c cpp.c fold.c init.c builtin.c\
- arch/$arch/arch.c\
- ) '$baseoutdir'/libcc.a
- file libexec/scc/cc1-$arch '$outdir'/cc1-$arch 755
-
- exe cc2-$arch -d '$baseoutdir'/inc/error.h cc2/^(\
- main.c parser.c peep.c symbol.c node.c code.c optm.c\
- arch/$arch/^(code.c cgen.c types.c optm.c)\
- ) '$baseoutdir'/libcc.a
- file libexec/scc/cc2-$arch '$outdir'/cc2-$arch 755
- } >$arch.ninja ; subninja $arch.ninja
-}
-
-cflags -D 'ARCH=''"'^$archs(1)^'"'''
-exe scc driver/posix/scc.c libcc.a
-file bin/scc '$outdir'/scc 755
-
-fetch git
diff --git a/pkg/scron/gen.lua b/pkg/scron/gen.lua
@@ -0,0 +1,11 @@
+cflags{
+ '-std=c99 -Wall -Wextra -pedantic',
+ '-D _BSD_SOURCE',
+ '-D _POSIX_C_SOURCE=200809L',
+}
+
+exe('crond', {'crond.c'})
+file('bin/crond', '755', '$outdir/crond')
+man{'scron.1'}
+
+fetch 'git'
diff --git a/pkg/scron/gen.rc b/pkg/scron/gen.rc
@@ -1,10 +0,0 @@
-cflags\
- '-std=c99' -Wall -Wextra -pedantic\
- -D_BSD_SOURCE\
- '-D_POSIX_C_SOURCE=200809L'
-
-exe crond crond.c
-file bin/crond '$outdir'/crond 755
-man 1 scron.1
-
-fetch git
diff --git a/pkg/sdhcp/gen.lua b/pkg/sdhcp/gen.lua
@@ -0,0 +1,10 @@
+cflags{
+ '-Wall', '-Wextra', '-pedantic', '-std=c99',
+ '-D _BSD_SOURCE',
+}
+
+exe('sdhcp', {'sdhcp.c', 'util/eprintf.c'})
+file('bin/sdhcp', '755', '$outdir/sdhcp')
+man{'sdhcp.1'}
+
+fetch 'git'
diff --git a/pkg/sdhcp/gen.rc b/pkg/sdhcp/gen.rc
@@ -1,9 +0,0 @@
-cflags\
- -Wall -Wextra -pedantic '-std=c99' \
- -D _BSD_SOURCE
-
-exe sdhcp sdhcp.c util/eprintf.c
-file bin/sdhcp '$outdir'/sdhcp 755
-man 1 sdhcp.1
-
-fetch git
diff --git a/pkg/sinit/gen.lua b/pkg/sinit/gen.lua
@@ -0,0 +1,6 @@
+cflags{'-Wall', '-Wextra', '-I $dir'}
+
+file('bin/sinit', '755', exe('sinit', {'sinit.c'}))
+man{'sinit.8'}
+
+fetch'git'
diff --git a/pkg/sinit/gen.rc b/pkg/sinit/gen.rc
@@ -1,7 +0,0 @@
-cflags -Wall -Wextra -I '$dir'
-
-exe sinit sinit.c
-file bin/sinit '$outdir'/sinit 755
-man 8 sinit.8
-
-fetch git
diff --git a/pkg/skeleton/gen.lua b/pkg/skeleton/gen.lua
@@ -0,0 +1,18 @@
+dir('bin', '755')
+dir('boot', '755')
+dir('dev', '755')
+dir('etc', '755')
+dir('home', '755')
+dir('mnt', '755')
+dir('proc', '755')
+dir('root', '700')
+dir('run', '755')
+dir('sys', '755')
+dir('tmp', '755')
+dir('var', '755')
+dir('var/db', '755')
+dir('var/empty', '755')
+dir('var/log', '755')
+sym('usr/bin', '../bin')
+
+file('.gitignore', '644', '$dir/gitignore')
diff --git a/pkg/skeleton/gen.rc b/pkg/skeleton/gen.rc
@@ -1,18 +0,0 @@
-dir bin 755
-dir boot 755
-dir dev 755
-dir etc 755
-dir home 755
-dir mnt 755
-dir proc 755
-dir root 700
-dir run 755
-dir sys 755
-dir tmp 755
-dir var 755
-dir var/db 755
-dir var/empty 755
-dir var/log 755
-sym usr/bin ../bin
-
-file .gitignore '$dir'/gitignore 644
diff --git a/pkg/sshfs/gen.lua b/pkg/sshfs/gen.lua
@@ -0,0 +1,20 @@
+cflags{
+ '-D FUSE_USE_VERSION=31',
+ '-I $dir',
+ '-I pkg/libfuse/src/include',
+}
+
+build('sed', '$outdir/sshfs.1', '$srcdir/sshfs.1.in', {
+ expr={
+ [[-e 's,@UNMOUNT_COMMAND@,fusermount3 -u,']],
+ [[-e 's,@IDMAP_DEFAULT@,"none",']],
+ },
+})
+
+exe('sshfs', {
+ 'sshfs.c', 'nocache.c', '$builddir/pkg/libfuse/libfuse.a',
+}, {'$builddir/pkg/libfuse/fetch.stamp'})
+file('bin/sshfs', '755', '$outdir/sshfs')
+man{'$outdir/sshfs.1'}
+
+fetch 'git'
diff --git a/pkg/sshfs/gen.rc b/pkg/sshfs/gen.rc
@@ -1,16 +0,0 @@
-cflags\
- -D 'FUSE_USE_VERSION=31' \
- -I '$dir' \
- -I pkg/libfuse/src/include
-
-build '$outdir'/sshfs.1 sed '$srcdir'/sshfs.1.in ; exprs=(\
- -e 's,@UNMOUNT_COMMAND@,''fusermount3 -u'',' \
- -e 's,@IDMAP_DEFAULT@,''"none"'',' \
-) with expr $"exprs
-
-exe sshfs -d '$builddir'/pkg/libfuse/fetch.stamp\
- sshfs.c nocache.c '$builddir'/pkg/libfuse/libfuse.a
-file bin/sshfs '$outdir'/sshfs 755
-man -d '$outdir' 1 sshfs.1
-
-fetch git
diff --git a/pkg/st/gen.lua b/pkg/st/gen.lua
@@ -0,0 +1,39 @@
+cflags{
+ [[-D 'VERSION="0.7"']],
+ '-I $dir',
+ '-I pkg/fontconfig/src',
+ '-I pkg/libxkbcommon/src',
+ '-I $builddir/pkg/pixman/include',
+ '-I $builddir/pkg/wayland/include',
+ '-I $builddir/pkg/wayland-protocols/include',
+ '-I $builddir/pkg/wld/include',
+}
+
+pkg.deps = {
+ '$builddir/pkg/fontconfig/fetch.stamp',
+ '$builddir/pkg/libxkbcommon/fetch.stamp',
+ 'pkg/pixman/headers',
+ 'pkg/wayland/headers',
+ 'pkg/wayland-protocols/headers',
+ 'pkg/wld/headers',
+}
+
+exe('st', [[st.c $builddir/pkg/(
+ libxkbcommon/libxkbcommon.a
+ wayland/libwayland-client.a.d
+ wayland/libwayland-cursor.a.d
+ wayland-protocols/xdg-shell-unstable-v5-protocol.c.o
+ wld/libwld.a.d
+)]])
+file('bin/st', '755', '$outdir/st')
+man{'st.1'}
+
+local terminfo = {'s/st', 's/st-256color'}
+build('tic', expand{'$outdir/', terminfo}, '$srcdir/st.info', {
+ ticflags='-x -o $outdir',
+})
+for _, t in ipairs(terminfo) do
+ file('share/terminfo/'..t, '644', '$outdir/'..t)
+end
+
+fetch 'git'
diff --git a/pkg/st/gen.rc b/pkg/st/gen.rc
@@ -1,32 +0,0 @@
-cflags\
- -D 'VERSION=''"0.7"''' \
- -I '$dir' \
- -I pkg/fontconfig/src\
- -I pkg/libxkbcommon/src\
- -I '$builddir'/pkg/pixman/include\
- -I '$builddir'/pkg/wayland/include\
- -I '$builddir'/pkg/wayland-protocols/include\
- -I '$builddir'/pkg/wld/include
-
-phony deps\
- '$builddir'/pkg/^(fontconfig libxkbcommon)^/fetch.stamp\
- pkg/^(pixman wayland wayland-protocols wld)^/headers
-
-exe st -d '$dir'/deps st.c '$builddir'/^(\
- pkg/libxkbcommon/libxkbcommon.a\
- pkg/wayland/libwayland-client.a.d\
- pkg/wayland/libwayland-cursor.a.d\
- pkg/wayland-protocols/xdg-shell-unstable-v5-protocol.c.o\
- pkg/wld/libwld.a.d\
-)
-file bin/st '$outdir'/st 755
-man 1 st.1
-
-terminfo=s/^(st st-256color)
-terminfo_outs='$outdir'/$terminfo
-build $"terminfo_outs tic '$srcdir'/st.info ; with\
- ticflags '-x -o $outdir'
-for(t in $terminfo)
- file share/terminfo/$t '$outdir'/$t 644
-
-fetch git
diff --git a/pkg/strace/gen.lua b/pkg/strace/gen.lua
@@ -0,0 +1,278 @@
+cflags{
+ '-D HAVE_CONFIG_H',
+ '-I include',
+ '-I $dir',
+ -- it is important that the arch-specific directory is searched first
+ '-I $srcdir/linux/x86_64',
+ '-I $srcdir/linux',
+ '-I $srcdir',
+ '-I $outdir',
+}
+
+build('cc', '$outdir/ioctl_iocdef.i', '$srcdir/ioctl_iocdef.c', {
+ cflags='$cflags -P -E -MT $outdir/ioctl_iocdef.i',
+})
+build('sed', '$outdir/ioctl_iocdef.h', '$outdir/ioctl_iocdef.i', {
+ expr=[[-n 's/^DEFINE HOST/#define /p']],
+})
+
+sub('tools.ninja', function()
+ toolchain 'host'
+ cflags{
+ '-D X86_64=1',
+ '-I $srcdir/linux/x86_64',
+ '-I $srcdir/linux',
+ '-I $outdir',
+ }
+
+ for i = 0, 2 do
+ build('cat', '$outdir/ioctls_all'..i..'.h', {
+ '$srcdir/linux/x86_64/ioctls_inc'..i..'.h',
+ '$srcdir/linux/x86_64/ioctls_arch'..i..'.h',
+ })
+ build('cc', '$outdir/ioctlsort'..i..'.c.o', {
+ '$srcdir/ioctlsort.c',
+ '|', '$outdir/ioctl_iocdef.h', '$outdir/ioctls_all'..i..'.h',
+ }, {cflags=string.format([[$cflags -D 'IOCTLSORT_INC="ioctls_all%d.h"']], i)})
+ exe('ioctlsort'..i, {'ioctlsort'..i..'.c.o'})
+ rule('ioctlsort'..i, '$outdir/ioctlsort'..i..' >$out.tmp && mv $out.tmp $out')
+ build('ioctlsort'..i, '$outdir/ioctlent'..i..'.h', {'|', '$outdir/ioctlsort'..i})
+ end
+end)
+
+local mpers = lines('mpers.txt')
+for _, f in ipairs(mpers) do
+ build('cc', '$outdir/'..f..'.mpers.i', '$srcdir/'..f, {
+ cflags='$cflags -P -E -MT $outdir/'..f..'.mpers.i -DIN_MPERS_BOOTSTRAP',
+ })
+end
+
+local function makempers(name, script)
+ build('awk', '$outdir/'..name, {expand{'$outdir/', mpers, '.mpers.i'}, '|', '$dir/'..script}, {
+ expr='-f $dir/'..script,
+ })
+end
+
+makempers('printers.h', 'printers.awk')
+makempers('native_printer_decls.h', 'printerdecls.awk')
+makempers('native_printer_defs.h', 'printerdefs.awk')
+
+build('cc', '$outdir/syscallent.i', '$srcdir/linux/x86_64/syscallent.h', {
+ cflags='$cflags -P -E -MT $outdir/syscallent.i',
+})
+build('awk', '$outdir/scno-syscallent.h', {'$outdir/syscallent.i', '|', '$dir/scno.awk'}, {
+ expr='-f $dir/scno.awk',
+})
+build('cat', '$outdir/scno.h', {'$srcdir/scno.head', '$outdir/scno-syscallent.h'})
+
+-- this seems to be enough syscall headers to build
+local syscalls = expand{'$srcdir/linux/', {
+ 'subcall.h',
+ 'arm/syscallent.h',
+ '32/syscallent.h',
+ '64/syscallent.h',
+ 'i386/syscallent.h',
+ 'x86_64/syscallent.h',
+}}
+build('awk', '$outdir/sen.h', {syscalls, '|', '$dir/sen.awk'}, {
+ expr='-f $dir/sen.awk',
+})
+
+local libsrcs = {
+ 'fstatfs.c',
+ 'fstatfs64.c',
+ 'ipc.c',
+ 'sigreturn.c',
+ 'socketcall.c',
+ 'statfs.c',
+ 'statfs64.c',
+ 'sync_file_range.c',
+ 'sync_file_range2.c',
+ 'upeek.c',
+ 'upoke.c',
+}
+local srcs = {
+ 'access.c',
+ 'affinity.c',
+ 'aio.c',
+ 'alpha.c',
+ 'bjm.c',
+ 'block.c',
+ 'bpf.c',
+ 'btrfs.c',
+ 'cacheflush.c',
+ 'capability.c',
+ 'chdir.c',
+ 'chmod.c',
+ 'clone.c',
+ 'copy_file_range.c',
+ 'count.c',
+ 'desc.c',
+ 'dirent.c',
+ 'dirent64.c',
+ 'dm.c',
+ 'dyxlat.c',
+ 'epoll.c',
+ 'evdev.c',
+ 'eventfd.c',
+ 'execve.c',
+ 'fadvise.c',
+ 'fallocate.c',
+ 'fanotify.c',
+ 'fchownat.c',
+ 'fcntl.c',
+ 'fetch_seccomp_fprog.c',
+ 'fetch_struct_flock.c',
+ 'fetch_struct_mmsghdr.c',
+ 'fetch_struct_msghdr.c',
+ 'fetch_struct_stat.c',
+ 'fetch_struct_stat64.c',
+ 'fetch_struct_statfs.c',
+ 'file_handle.c',
+ 'file_ioctl.c',
+ 'fs_x_ioctl.c',
+ 'flock.c',
+ 'futex.c',
+ 'get_robust_list.c',
+ 'getcpu.c',
+ 'getcwd.c',
+ 'getrandom.c',
+ 'hdio.c',
+ 'hostname.c',
+ 'inotify.c',
+ 'io.c',
+ 'ioctl.c',
+ 'ioperm.c',
+ 'iopl.c',
+ 'ioprio.c',
+ 'ipc_msg.c',
+ 'ipc_msgctl.c',
+ 'ipc_sem.c',
+ 'ipc_shm.c',
+ 'ipc_shmctl.c',
+ 'kcmp.c',
+ 'kexec.c',
+ 'keyctl.c',
+ 'ldt.c',
+ 'link.c',
+ 'lookup_dcookie.c',
+ 'loop.c',
+ 'lseek.c',
+ 'mem.c',
+ 'membarrier.c',
+ 'memfd_create.c',
+ 'mknod.c',
+ 'mmsghdr.c',
+ 'mount.c',
+ 'mq.c',
+ 'msghdr.c',
+ 'mtd.c',
+ 'net.c',
+ 'netlink.c',
+ 'netlink_sock_diag.c',
+ 'nlattr.c',
+ 'nsfs.c',
+ 'numa.c',
+ 'oldstat.c',
+ 'open.c',
+ 'or1k_atomic.c',
+ 'pathtrace.c',
+ 'perf.c',
+ 'personality.c',
+ 'pkeys.c',
+ 'poll.c',
+ 'prctl.c',
+ 'print_dev_t.c',
+ 'print_mq_attr.c',
+ 'print_msgbuf.c',
+ 'print_sg_req_info.c',
+ 'print_sigevent.c',
+ 'print_statfs.c',
+ 'print_struct_stat.c',
+ 'print_time.c',
+ 'print_timespec.c',
+ 'print_timeval.c',
+ 'print_timex.c',
+ 'printmode.c',
+ 'printrusage.c',
+ 'printsiginfo.c',
+ 'process.c',
+ 'process_vm.c',
+ 'ptp.c',
+ 'qualify.c',
+ 'quota.c',
+ 'readahead.c',
+ 'readlink.c',
+ 'reboot.c',
+ 'renameat.c',
+ 'resource.c',
+ 'rt_sigframe.c',
+ 'rt_sigreturn.c',
+ 'rtc.c',
+ 'sched.c',
+ 'scsi.c',
+ 'seccomp.c',
+ 'sendfile.c',
+ 'sg_io_v3.c',
+ 'sg_io_v4.c',
+ 'sigaltstack.c',
+ 'signal.c',
+ 'signalfd.c',
+ 'sock.c',
+ 'sockaddr.c',
+ 'socketutils.c',
+ 'sram_alloc.c',
+ 'stat.c',
+ 'stat64.c',
+ 'statx.c',
+ 'strace.c',
+ 'swapon.c',
+ 'syscall.c',
+ 'sysctl.c',
+ 'sysinfo.c',
+ 'syslog.c',
+ 'sysmips.c',
+ 'term.c',
+ 'time.c',
+ 'times.c',
+ 'truncate.c',
+ 'ubi.c',
+ 'uid.c',
+ 'uid16.c',
+ 'umask.c',
+ 'umount.c',
+ 'uname.c',
+ 'userfaultfd.c',
+ 'ustat.c',
+ 'util.c',
+ 'utime.c',
+ 'utimes.c',
+ 'v4l2.c',
+ 'wait.c',
+ 'xattr.c',
+ 'xlat.c',
+ 'xmalloc.c',
+}
+
+build('sed', '$outdir/sys_func.h', expand{'$srcdir/', {libsrcs, srcs}}, {
+ expr=[[-n 's/^SYS_FUNC(.*/extern &;/p']],
+})
+
+pkg.deps = {
+ '$outdir/ioctlent0.h',
+ '$outdir/ioctlent1.h',
+ '$outdir/ioctlent2.h',
+ '$outdir/native_printer_decls.h',
+ '$outdir/native_printer_defs.h',
+ '$outdir/printers.h',
+ '$outdir/scno.h',
+ '$outdir/sen.h',
+ '$outdir/sys_func.h',
+}
+
+lib('libstrace.a', libsrcs, {'$outdir/printers.h'})
+exe('strace', {srcs, 'libstrace.a'})
+file('bin/strace', '755', '$outdir/strace')
+man{'strace.1'}
+
+fetch 'curl'
diff --git a/pkg/strace/gen.rc b/pkg/strace/gen.rc
@@ -1,255 +0,0 @@
-# it is important that the arch-specific directory is searched first
-cflags\
- -D HAVE_CONFIG_H\
- -I include\
- -I '$dir' \
- -I '$srcdir'/linux/x86_64\
- -I '$srcdir'/linux\
- -I '$srcdir' \
- -I '$outdir'
-
-build '$outdir'/ioctl_iocdef.i cc '$srcdir'/ioctl_iocdef.c ; with\
- cflags '$cflags -P -E -MT $outdir/ioctl_iocdef.i'
-build '$outdir'/ioctl_iocdef.h sed '$outdir'/ioctl_iocdef.i ; with\
- expr '-n ''s/^DEFINE HOST/#define /p'''
-
-{
- toolchain host
- cflags\
- -D 'X86_64=1' \
- -I '$srcdir'/linux/x86_64\
- -I '$srcdir'/linux\
- -I '$outdir'
-
- for(i in 0 1 2) {
- build '$outdir'/ioctls_all$i.h cat '$srcdir'/linux/x86_64/^(ioctls_inc$i.h ioctls_arch$i.h)
- build '$outdir'/ioctlsort$i.c.o cc '$srcdir'/ioctlsort.c '|' '$outdir'/^(ioctl_iocdef.h ioctls_all$i.h) ; with cflags\
- '$cflags -D IOCTLSORT_INC=''"ioctls_all'$i'.h"'''
- exe ioctlsort$i ioctlsort$i.c.o
- rule ioctlsort$i '$outdir/ioctlsort'$i' >$out.tmp && mv $out.tmp $out'
- build '$outdir'/ioctlent$i.h ioctlsort$i '|' '$outdir'/ioctlsort$i
- }
-} >tools.ninja ; subninja tools.ninja
-
-mpers=`{grep -v '^#' mpers.txt} ; checkstatus
-for(f in $mpers) {
- build '$outdir'/$f.mpers.i cc '$srcdir'/$f ; with\
- cflags '$cflags -P -E -MT $outdir/'$f'.mpers.i -DIN_MPERS_BOOTSTRAP'
-}
-
-fn mpers {
- build '$outdir'/$1 awk '$outdir'/$mpers.mpers.i '|' '$dir'/$2 ; with\
- expr '-f $dir/'$2
-}
-
-mpers printers.h printers.awk
-mpers native_printer_decls.h printerdecls.awk
-mpers native_printer_defs.h printerdefs.awk
-
-build '$outdir'/syscallent.i cc '$srcdir'/linux/x86_64/syscallent.h ; with\
- cflags '$cflags -P -E -MT $outdir/syscallent.i'
-build '$outdir'/scno-syscallent.h awk '$outdir'/syscallent.i '|' '$dir'/scno.awk ; with\
- expr '-f $dir/scno.awk'
-build '$outdir'/scno.h cat '$srcdir'/scno.head '$outdir'/scno-syscallent.h
-
-# this seems to be enough syscall headers to build
-syscalls=linux/^(subcall.h (arm 32 64 i386 x86_64)^/syscallent.h)
-build '$outdir'/sen.h awk '$srcdir'/$syscalls '|' '$dir'/sen.awk ; with\
- expr '-f $dir/sen.awk'
-
-libsrcs=(\
- fstatfs.c\
- fstatfs64.c\
- ipc.c\
- sigreturn.c\
- socketcall.c\
- statfs.c\
- statfs64.c\
- sync_file_range.c\
- sync_file_range2.c\
- upeek.c\
- upoke.c\
-)
-srcs=(\
- access.c\
- affinity.c\
- aio.c\
- alpha.c\
- bjm.c\
- block.c\
- bpf.c\
- btrfs.c\
- cacheflush.c\
- capability.c\
- chdir.c\
- chmod.c\
- clone.c\
- copy_file_range.c\
- count.c\
- desc.c\
- dirent.c\
- dirent64.c\
- dm.c\
- dyxlat.c\
- epoll.c\
- evdev.c\
- eventfd.c\
- execve.c\
- fadvise.c\
- fallocate.c\
- fanotify.c\
- fchownat.c\
- fcntl.c\
- fetch_seccomp_fprog.c\
- fetch_struct_flock.c\
- fetch_struct_mmsghdr.c\
- fetch_struct_msghdr.c\
- fetch_struct_stat.c\
- fetch_struct_stat64.c\
- fetch_struct_statfs.c\
- file_handle.c\
- file_ioctl.c\
- fs_x_ioctl.c\
- flock.c\
- futex.c\
- get_robust_list.c\
- getcpu.c\
- getcwd.c\
- getrandom.c\
- hdio.c\
- hostname.c\
- inotify.c\
- io.c\
- ioctl.c\
- ioperm.c\
- iopl.c\
- ioprio.c\
- ipc_msg.c\
- ipc_msgctl.c\
- ipc_sem.c\
- ipc_shm.c\
- ipc_shmctl.c\
- kcmp.c\
- kexec.c\
- keyctl.c\
- ldt.c\
- link.c\
- lookup_dcookie.c\
- loop.c\
- lseek.c\
- mem.c\
- membarrier.c\
- memfd_create.c\
- mknod.c\
- mmsghdr.c\
- mount.c\
- mq.c\
- msghdr.c\
- mtd.c\
- net.c\
- netlink.c\
- netlink_sock_diag.c\
- nlattr.c\
- nsfs.c\
- numa.c\
- oldstat.c\
- open.c\
- or1k_atomic.c\
- pathtrace.c\
- perf.c\
- personality.c\
- pkeys.c\
- poll.c\
- prctl.c\
- print_dev_t.c\
- print_mq_attr.c\
- print_msgbuf.c\
- print_sg_req_info.c\
- print_sigevent.c\
- print_statfs.c\
- print_struct_stat.c\
- print_time.c\
- print_timespec.c\
- print_timeval.c\
- print_timex.c\
- printmode.c\
- printrusage.c\
- printsiginfo.c\
- process.c\
- process_vm.c\
- ptp.c\
- qualify.c\
- quota.c\
- readahead.c\
- readlink.c\
- reboot.c\
- renameat.c\
- resource.c\
- rt_sigframe.c\
- rt_sigreturn.c\
- rtc.c\
- sched.c\
- scsi.c\
- seccomp.c\
- sendfile.c\
- sg_io_v3.c\
- sg_io_v4.c\
- sigaltstack.c\
- signal.c\
- signalfd.c\
- sock.c\
- sockaddr.c\
- socketutils.c\
- sram_alloc.c\
- stat.c\
- stat64.c\
- statx.c\
- strace.c\
- swapon.c\
- syscall.c\
- sysctl.c\
- sysinfo.c\
- syslog.c\
- sysmips.c\
- term.c\
- time.c\
- times.c\
- truncate.c\
- ubi.c\
- uid.c\
- uid16.c\
- umask.c\
- umount.c\
- uname.c\
- userfaultfd.c\
- ustat.c\
- util.c\
- utime.c\
- utimes.c\
- v4l2.c\
- wait.c\
- xattr.c\
- xlat.c\
- xmalloc.c\
-)
-
-build '$outdir'/sys_func.h sed '$srcdir'/^($libsrcs $srcs) ; with\
- expr '-n ''s/^SYS_FUNC(.*/extern &;/p'''
-
-phony deps '$outdir'/^(\
- ioctlent^(0 1 2)^.h\
- native_printer_decls.h\
- native_printer_defs.h\
- printers.h\
- scno.h\
- sen.h\
- sys_func.h\
-)
-
-lib libstrace.a -d '$outdir'/printers.h $libsrcs
-exe strace -d '$dir'/deps $srcs libstrace.a
-file bin/strace '$outdir'/strace 755
-man 1 strace.1
-
-fetch curl
-gen_inputs='$dir'/mpers.txt
diff --git a/pkg/swc/gen.lua b/pkg/swc/gen.lua
@@ -0,0 +1,104 @@
+cflags{
+ '-D _GNU_SOURCE',
+ '-D screen_new=swc__screen_new',
+ '-D remove_resource=swc__remove_resource',
+ '-I $outdir',
+ '-I $outdir/include',
+ '-I $srcdir',
+ '-I pkg/fontconfig/src',
+ '-I pkg/libdrm/src/include/drm',
+ '-I pkg/libdrm/src',
+ '-I pkg/libinput/src/src',
+ '-I pkg/libxkbcommon/src',
+ '-I $builddir/pkg/pixman/include',
+ '-I $builddir/pkg/wayland-protocols/include',
+ '-I $builddir/pkg/wayland/include',
+ '-I $builddir/pkg/wld/include',
+}
+
+cc('launch/protocol.c')
+
+waylandproto('protocol/swc.xml', 'include/swc-client-protocol.h', 'include/swc-server-protocol.h', 'swc-protocol.c')
+
+pkg.hdrs = {
+ copy('$outdir/include', '$srcdir/libswc', {'swc.h'}),
+ '$outdir/include/swc-client-protocol.h',
+ '$outdir/include/swc-server-protocol.h',
+}
+
+copy('$outdir', '$builddir/pkg/wld/protocol', {'wayland-drm-server-protocol.h'})
+
+sub('tools.ninja', function()
+ toolchain 'host'
+ cflags{'-std=c99', '-D _POSIX_C_SOURCE=200809L'}
+ exe('convert_font', {'cursor/convert_font.c'})
+end)
+
+rule('convert_font', '$outdir/convert_font $in $out.tmp 2>/dev/null && mv $out.tmp $out')
+build('convert_font', '$outdir/cursor/cursor_data.h', {'$srcdir/cursor/cursor.pcf', '|', '$outdir/convert_font'})
+
+pkg.deps = {
+ '$outdir/wayland-drm-server-protocol.h',
+ '$outdir/include/swc-server-protocol.h',
+ '$outdir/cursor/cursor_data.h',
+ '$builddir/pkg/fontconfig/fetch.stamp',
+ '$builddir/pkg/libdrm/fetch.stamp',
+ '$builddir/pkg/libinput/fetch.stamp',
+ '$builddir/pkg/libxkbcommon/fetch.stamp',
+ 'pkg/pixman/headers',
+ 'pkg/wayland/headers',
+ 'pkg/wayland-protocols/headers',
+ 'pkg/wld/headers',
+}
+
+lib('libswc.a', [[
+ libswc/(
+ bindings.c
+ compositor.c
+ cursor_plane.c
+ data.c
+ data_device.c
+ data_device_manager.c
+ drm.c
+ input.c
+ keyboard.c
+ launch.c
+ mode.c
+ output.c
+ panel.c
+ panel_manager.c
+ pointer.c
+ primary_plane.c
+ region.c
+ screen.c
+ seat.c
+ shell.c
+ shell_surface.c
+ shm.c
+ subcompositor.c
+ subsurface.c
+ surface.c
+ swc.c
+ util.c
+ view.c
+ wayland_buffer.c
+ window.c
+ xdg_popup.c
+ xdg_shell.c
+ xdg_surface.c
+ )
+ launch/protocol.c.o
+ swc-protocol.c.o
+ $builddir/(
+ pkg/libinput/libinput.a.d
+ pkg/libxkbcommon/libxkbcommon.a
+ pkg/wayland-protocols/xdg-shell-unstable-v5-protocol.c.o
+ pkg/wayland/libwayland-server.a.d
+ pkg/wld/libwld.a.d
+ )
+]])
+
+exe('swc-launch', {'launch/launch.c', 'launch/protocol.c.o', '$builddir/pkg/libdrm/libdrm.a'})
+file('bin/swc-launch', '4755', '$outdir/swc-launch')
+
+fetch 'git'
diff --git a/pkg/swc/gen.rc b/pkg/swc/gen.rc
@@ -1,95 +0,0 @@
-cflags\
- -D _GNU_SOURCE\
- -D 'screen_new=swc__screen_new' \
- -D 'remove_resource=swc__remove_resource' \
- -I '$outdir' \
- -I '$outdir'/include\
- -I '$srcdir' \
- -I pkg/fontconfig/src\
- -I pkg/libdrm/src/include/drm\
- -I pkg/libdrm/src\
- -I pkg/libinput/src/src\
- -I pkg/libxkbcommon/src\
- -I '$builddir'/pkg/pixman/include\
- -I '$builddir'/pkg/wayland-protocols/include\
- -I '$builddir'/pkg/wayland/include\
- -I '$builddir'/pkg/wld/include
-
-cc launch/protocol.c
-
-waylandproto protocol/swc.xml\
- include/swc-^(client server)^-protocol.h swc-protocol.c
-
-build '$outdir'/include/swc.h copy '$srcdir'/libswc/swc.h
-phony headers '$outdir'/include/^(swc.h swc-^(client server)^-protocol.h)
-
-build '$outdir'/wayland-drm-server-protocol.h copy '$builddir'/pkg/wld/protocol/wayland-drm-server-protocol.h
-
-{
- toolchain host
- cflags '-std=c99' -D '_POSIX_C_SOURCE=200809L'
- exe convert_font cursor/convert_font.c
-} >tools.ninja ; subninja tools.ninja
-
-rule convert_font '$outdir/convert_font $in $out.tmp 2>/dev/null && mv $out.tmp $out'
-build '$outdir'/cursor/cursor_data.h convert_font '$srcdir'/cursor/cursor.pcf '|' '$outdir'/convert_font
-
-phony deps\
- '$outdir'/^(\
- wayland-drm-server-protocol.h\
- include/swc-server-protocol.h\
- cursor/cursor_data.h\
- )\
- '$builddir'/pkg/^(fontconfig libdrm libinput libxkbcommon)^/fetch.stamp\
- pkg/^(pixman wayland wayland-protocols wld)^/headers
-
-lib libswc.a -d '$dir'/deps\
- libswc/^(\
- bindings.c\
- compositor.c\
- cursor_plane.c\
- data.c\
- data_device.c\
- data_device_manager.c\
- drm.c\
- input.c\
- keyboard.c\
- launch.c\
- mode.c\
- output.c\
- panel.c\
- panel_manager.c\
- pointer.c\
- primary_plane.c\
- region.c\
- screen.c\
- seat.c\
- shell.c\
- shell_surface.c\
- shm.c\
- subcompositor.c\
- subsurface.c\
- surface.c\
- swc.c\
- util.c\
- view.c\
- wayland_buffer.c\
- window.c\
- xdg_popup.c\
- xdg_shell.c\
- xdg_surface.c\
- )\
- launch/protocol.c.o\
- swc-protocol.c.o\
- '$builddir'/^(\
- pkg/libinput/libinput.a.d\
- pkg/libxkbcommon/libxkbcommon.a\
- pkg/wayland-protocols/xdg-shell-unstable-v5-protocol.c.o\
- pkg/wayland/libwayland-server.a.d\
- pkg/wld/libwld.a.d\
- )
-
-exe swc-launch launch/^(launch.c protocol.c.o) '$builddir'/pkg/libdrm/libdrm.a
-file bin/swc-launch '$outdir'/swc-launch 4755
-
-fetch git
diff --git a/pkg/syslinux/gen.lua b/pkg/syslinux/gen.lua
@@ -0,0 +1,50 @@
+cflags{
+ '-I $dir',
+ '-I $outdir',
+ '-I $srcdir/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.
+ '-I $srcdir/com32/include/syslinux',
+}
+
+build('awk', '$outdir/version.h', {'$srcdir/version', '|', '$dir/version.awk'}, {
+ expr=[[-f $dir/version.awk -v fmt='#define %s %s']],
+})
+
+sub('tools.ninja', function()
+ toolchain 'host'
+ cflags{'-std=c99', '-pedantic', '-Wall', '-Wextra'}
+ set('srcdir', '$dir')
+ exe('bin2c', {'bin2c.c'})
+end)
+
+rule('bin2c', '$outdir/bin2c $args <$in >$out.tmp && mv $out.tmp $out')
+function bin2c(bin, args)
+ local name = args[1]
+ build('bin2c', '$outdir/'..name..'.c', {
+ '$srcdir/'..bin, '|', '$outdir/bin2c',
+ }, {args=args})
+end
+
+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', [[
+ extlinux/(main.c mountinfo.c)
+ libinstaller/(
+ syslxmod.c
+ syslxopt.c
+ syslxcom.c
+ setadv.c
+ advio.c
+ )
+ $outdir/syslinux_(bootsect ldlinux ldlinuxc32).c
+]], {'$outdir/version.h'})
+file('bin/extlinux', '755', '$outdir/bin/extlinux')
+
+file('lib/syslinux/bios/mbr.bin', '644', '$srcdir/bios/mbr/mbr.bin')
+
+fetch 'curl'
diff --git a/pkg/syslinux/gen.rc b/pkg/syslinux/gen.rc
@@ -1,47 +0,0 @@
-cflags\
- -I '$dir' \
- -I '$outdir' \
- -I '$srcdir'/libinstaller\
- -I '$srcdir'/com32/include/syslinux
-# 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
- cflags '-std=c99' -pedantic -Wall -Wextra
- 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 bin/extlinux '$outdir'/bin/extlinux 755
-
-file lib/syslinux/bios/mbr.bin '$srcdir'/bios/mbr/mbr.bin 644
-
-fetch curl
diff --git a/pkg/terminus-font/gen.lua b/pkg/terminus-font/gen.lua
@@ -0,0 +1,12 @@
+for font in iterpaths[[ter-u(12 14 16 20 22 24 28 32)(n b).bdf]] do
+ local srcs = {
+ '$srcdir/uni/x11gr.uni', '$srcdir/uni/10646-1.uni',
+ '|', '$dir/ucstoany.awk', '$srcdir/'..font,
+ }
+ build('awk', '$outdir/'..font, srcs, {
+ expr='-v font=$srcdir/'..font..' -v charset=ISO10646-1 -f $dir/ucstoany.awk',
+ })
+ file('share/fonts/terminus/'..font, '644', '$outdir/'..font)
+end
+
+fetch 'curl'
diff --git a/pkg/terminus-font/gen.rc b/pkg/terminus-font/gen.rc
@@ -1,13 +0,0 @@
-fn ucstox11 {
- maps='$srcdir'/uni/^(x11gr.uni 10646-1.uni)
- build '$outdir'/$1 awk $maps '|' '$dir'/ucstoany.awk '$srcdir'/$1
- with expr '-v font=$srcdir/'$1' -v charset=ISO10646-1 -f $dir/ucstoany.awk'
- file share/fonts/terminus/$1 '$outdir'/$1 644
-}
-
-for(size in (12 14 16 20 22 24 28 32)) {
- for(font in ter-u$size^(n b)^.bdf)
- ucstox11 $font
-}
-
-fetch curl
diff --git a/pkg/the_silver_searcher/gen.lua b/pkg/the_silver_searcher/gen.lua
@@ -0,0 +1,27 @@
+cflags{
+ '-D _GNU_SOURCE',
+ '-I include',
+ '-I $dir',
+ '-I $builddir/pkg/pcre/include',
+ '-I $builddir/pkg/zlib/include',
+}
+
+pkg.deps = {
+ 'pkg/pcre/headers',
+ 'pkg/zlib/headers',
+}
+
+exe('ag', [[
+ src/(
+ ignore.c log.c options.c print.c print_w32.c scandir.c search.c lang.c
+ util.c decompress.c main.c
+ )
+ $builddir/pkg/(
+ pcre/libpcre.a
+ zlib/libz.a
+ )
+]])
+file('bin/ag', '755', '$outdir/ag')
+man{'doc/ag.1'}
+
+fetch 'git'
diff --git a/pkg/the_silver_searcher/gen.rc b/pkg/the_silver_searcher/gen.rc
@@ -1,19 +0,0 @@
-cflags\
- -D _GNU_SOURCE\
- -I include\
- -I '$dir' \
- -I '$builddir'/pkg/pcre/include\
- -I '$builddir'/pkg/zlib/include
-
-phony deps pkg/^(pcre zlib)^/headers
-exe ag -d '$dir'/deps src/^(\
- ignore.c log.c options.c print.c print_w32.c scandir.c search.c lang.c\
- util.c decompress.c main.c\
-) '$builddir'/pkg/^(\
- pcre/libpcre.a\
- zlib/libz.a\
-)
-file bin/ag '$outdir'/ag 755
-man -d doc 1 ag.1
-
-fetch git
diff --git a/pkg/transmission/gen.lua b/pkg/transmission/gen.lua
@@ -0,0 +1,168 @@
+sub('libnatpmp.ninja', function()
+ cflags{'-D ENABLE_STRNATPMPERR'}
+ lib('libnatpmp.a', 'third-party/libnatpmp/(getgateway.c natpmp.c wingettimeofday.c)')
+end)
+sub('libminiupnp.ninja', function()
+ cflags{
+ '-D _GNU_SOURCE',
+ '-I $outdir/miniupnp',
+ '-idirafter pkg/openbsd/src/sys',
+ }
+
+ build('sed', '$outdir/miniupnp/miniupnpcstrings.h', '$srcdir/third-party/miniupnp/miniupnpcstrings.h.in', {
+ expr='-e s,OS/version,Linux, -e s,version,,',
+ })
+
+ lib('libminiupnp.a', [[
+ third-party/miniupnp/(
+ connecthostport.c
+ igd_desc_parse.c
+ minisoap.c
+ minissdpc.c
+ miniupnpc.c
+ miniwget.c
+ minixml.c
+ portlistingparse.c
+ receivedata.c
+ upnpcommands.c
+ upnpreplyparse.c
+ )
+ ]], {'$outdir/miniupnp/miniupnpcstrings.h', '$builddir/pkg/openbsd/fetch.stamp'})
+end)
+sub('libutp.ninja', function()
+ set('cc', '$cxx')
+ set('cflags', {
+ '$cxxflags',
+ '-fno-exceptions',
+ '-fno-rtti',
+ '-ansi',
+ '-D POSIX',
+ '-I $srcdir/third-party/libutp',
+ })
+
+ lib('libutp.a', 'third-party/libutp/(utp.cpp utp_utils.cpp)')
+end)
+
+cflags{
+ '-D __TRANSMISSION__',
+ '-I $builddir/pkg/curl/include',
+ '-I $builddir/pkg/libevent/include',
+ '-I $builddir/pkg/libressl/include',
+ '-I $builddir/pkg/zlib/include',
+ '-I $dir',
+ '-I $srcdir',
+ '-I $srcdir/third-party',
+ '-I $srcdir/third-party/libb64',
+ '-I $srcdir/third-party/libnatpmp',
+ '-I $srcdir/third-party/libutp',
+ '-I pkg/libevent/src/include',
+ '-I include',
+ '-idirafter pkg/openbsd/src/sys',
+ '-include config.h',
+}
+
+pkg.deps = {
+ 'pkg/curl/headers',
+ 'pkg/libevent/headers',
+ 'pkg/libressl/headers',
+ 'pkg/zlib/headers',
+ '$builddir/pkg/openbsd/fetch.stamp',
+}
+
+lib('libtransmission.a', [[
+ libtransmission/(
+ announcer.c
+ announcer-http.c
+ announcer-udp.c
+ bandwidth.c
+ bitfield.c
+ blocklist.c
+ cache.c
+ clients.c
+ completion.c
+ ConvertUTF.c
+ crypto.c
+ crypto-utils.c
+ crypto-utils-fallback.c
+ error.c
+ fdlimit.c
+ file.c
+ handshake.c
+ history.c
+ inout.c
+ list.c
+ log.c
+ magnet.c
+ makemeta.c
+ metainfo.c
+ natpmp.c
+ net.c
+ peer-io.c
+ peer-mgr.c
+ peer-msgs.c
+ platform.c
+ platform-quota.c
+ port-forwarding.c
+ ptrarray.c
+ quark.c
+ resume.c
+ rpcimpl.c
+ rpc-server.c
+ session.c
+ stats.c
+ torrent.c
+ torrent-ctor.c
+ torrent-magnet.c
+ tr-dht.c
+ tr-lpd.c
+ tr-udp.c
+ tr-utp.c
+ tr-getopt.c
+ trevent.c
+ upnp.c
+ utils.c
+ variant.c
+ variant-benc.c
+ variant-json.c
+ verify.c
+ watchdir.c
+ watchdir-generic.c
+ web.c
+ webseed.c
+ wildmat.c
+
+ watchdir-inotify.c
+ file-posix.c
+ crypto-utils-openssl.c
+ )
+ libb64.a libdht.a libminiupnp.a libnatpmp.a libutp.a
+ $builddir/pkg/(
+ curl/libcurl.a.d
+ libevent/libevent.a
+ libressl/libcrypto.a.d
+ zlib/libz.a
+ )
+]])
+
+lib('libb64.a', {'third-party/libb64/cdecode.c', 'third-party/libb64/cencode.c'})
+lib('libdht.a', {'third-party/dht/dht.c'})
+
+exe('transmission-daemon', {
+ 'daemon/daemon.c',
+ 'daemon/daemon-posix.c',
+ 'libtransmission.a.d',
+})
+file('bin/transmission-daemon', '755', '$outdir/transmission-daemon')
+man{'daemon/transmission-daemon.1'}
+
+exe('transmission-remote', {'daemon/remote.c', 'libtransmission.a.d'})
+file('bin/transmission-remote', '755', '$outdir/transmission-remote')
+man{'daemon/transmission-remote.1'}
+
+for _, tool in ipairs{'create', 'edit', 'show'} do
+ exe('transmission-'..tool, {'utils/'..tool..'.c', 'libtransmission.a.d'})
+ file('bin/transmission-'..tool, '755', '$outdir/transmission-'..tool)
+ man{'utils/transmission-'..tool..'.1'}
+end
+
+fetch 'curl'
diff --git a/pkg/transmission/gen.rc b/pkg/transmission/gen.rc
@@ -1,154 +0,0 @@
-set orig_cflags '$cflags'
-cflags\
- -D __TRANSMISSION__\
- -I '$builddir'/pkg/curl/include\
- -I '$builddir'/pkg/libevent/include\
- -I '$builddir'/pkg/libressl/include\
- -I '$builddir'/pkg/zlib/include\
- -I '$dir' \
- -I '$srcdir' \
- -I '$srcdir'/third-party\
- -I '$srcdir'/third-party/libb64\
- -I '$srcdir'/third-party/libnatpmp\
- -I '$srcdir'/third-party/libutp\
- -I pkg/libevent/src/include\
- -I include\
- -idirafter pkg/openbsd/src/sys\
- -include config.h
-
-phony deps\
- pkg/^(curl libevent libressl zlib)^/headers\
- '$builddir'/pkg/openbsd/fetch.stamp
-
-lib libtransmission.a -d '$dir'/deps libtransmission/^(\
- announcer.c\
- announcer-http.c\
- announcer-udp.c\
- bandwidth.c\
- bitfield.c\
- blocklist.c\
- cache.c\
- clients.c\
- completion.c\
- ConvertUTF.c\
- crypto.c\
- crypto-utils.c\
- crypto-utils-fallback.c\
- error.c\
- fdlimit.c\
- file.c\
- handshake.c\
- history.c\
- inout.c\
- list.c\
- log.c\
- magnet.c\
- makemeta.c\
- metainfo.c\
- natpmp.c\
- net.c\
- peer-io.c\
- peer-mgr.c\
- peer-msgs.c\
- platform.c\
- platform-quota.c\
- port-forwarding.c\
- ptrarray.c\
- quark.c\
- resume.c\
- rpcimpl.c\
- rpc-server.c\
- session.c\
- stats.c\
- torrent.c\
- torrent-ctor.c\
- torrent-magnet.c\
- tr-dht.c\
- tr-lpd.c\
- tr-udp.c\
- tr-utp.c\
- tr-getopt.c\
- trevent.c\
- upnp.c\
- utils.c\
- variant.c\
- variant-benc.c\
- variant-json.c\
- verify.c\
- watchdir.c\
- watchdir-generic.c\
- web.c\
- webseed.c\
- wildmat.c\
- \
- watchdir-inotify.c\
- file-posix.c\
- crypto-utils-openssl.c\
-) libb64.a libdht.a libminiupnp.a libnatpmp.a libutp.a '$builddir'/pkg/^(\
- curl/libcurl.a.d\
- libevent/libevent.a\
- libressl/libcrypto.a.d\
- zlib/libz.a\
-)
-
-lib libb64.a third-party/libb64/^(cdecode.c cencode.c)
-lib libdht.a third-party/dht/dht.c
-
-{
- set cflags '$orig_cflags' \
- -D ENABLE_STRNATPMPERR
- lib libnatpmp.a third-party/libnatpmp/^(getgateway.c natpmp.c wingettimeofday.c)
-} >libnatpmp.ninja ; subninja libnatpmp.ninja
-
-{
- set cflags '$orig_cflags' \
- -D _GNU_SOURCE\
- -I '$outdir'/miniupnp\
- -idirafter pkg/openbsd/src/sys
-
- hdr='$outdir'/miniupnp/miniupnpcstrings.h
- build $hdr sed '$srcdir'/third-party/miniupnp/miniupnpcstrings.h.in ; with\
- expr '-e s,OS/version,Linux, -e s,version,,'
-
- lib libminiupnp.a -d '$dir/deps '$hdr third-party/miniupnp/^(\
- connecthostport.c\
- igd_desc_parse.c\
- minisoap.c\
- minissdpc.c\
- miniupnpc.c\
- miniwget.c\
- minixml.c\
- portlistingparse.c\
- receivedata.c\
- upnpcommands.c\
- upnpreplyparse.c\
- )
-} >libminiupnp.ninja ; subninja libminiupnp.ninja
-
-{
- set cc '$cxx'
- set cflags '$cxxflags' \
- -fno-exceptions\
- -fno-rtti\
- -ansi\
- -D POSIX\
- -I '$srcdir'/third-party/libutp
-
- lib libutp.a third-party/libutp/^(utp.cpp utp_utils.cpp)
-} >libutp.ninja ; subninja libutp.ninja
-
-exe transmission-daemon -d '$dir'/deps daemon/^(daemon.c daemon-posix.c) libtransmission.a.d
-file bin/transmission-daemon '$outdir'/transmission-daemon 755
-man -d daemon 1 transmission-daemon.1
-
-exe transmission-remote -d '$dir'/deps daemon/remote.c libtransmission.a.d
-file bin/transmission-remote '$outdir'/transmission-remote 755
-man -d daemon 1 transmission-remote.1
-
-for(tool in create edit show) {
- exe transmission-$tool -d '$dir'/deps utils/$tool.c libtransmission.a.d
- file bin/transmission-$tool '$outdir'/transmission-$tool 755
- man -d utils 1 transmission-$tool.1
-}
-
-fetch curl
diff --git a/pkg/tz/gen.lua b/pkg/tz/gen.lua
@@ -0,0 +1,29 @@
+cflags{'-I $dir'}
+
+exe('zic', {'zic.c'})
+
+rule('zic', 'zic -d $outdir/zoneinfo $in')
+file('bin/zic', '755', '$outdir/zic')
+
+local tzdata = {
+ 'africa',
+ 'antarctica',
+ 'asia',
+ 'australasia',
+ 'europe',
+ 'northamerica',
+ 'southamerica',
+ 'pacificnew',
+ 'etcetera',
+ 'backward',
+ 'systemv',
+ 'factory',
+}
+build('awk', '$outdir/tzdata.index', {
+ expand{'$srcdir/', tzdata},
+ '|', 'scripts/hash.rc', '$dir/tzdata.awk',
+ '||', '$builddir/root.stamp',
+}, {expr='-f $dir/tzdata.awk out=$outdir/zoneinfo repo=$repo'})
+table.insert(pkg.inputs.index, '$outdir/tzdata.index')
+
+fetch 'git'
diff --git a/pkg/tz/gen.rc b/pkg/tz/gen.rc
@@ -1,26 +0,0 @@
-cflags -I '$dir'
-
-exe zic zic.c
-
-rule zic 'zic -d $outdir/zoneinfo $in'
-file bin/zic '$outdir'/zic 755
-
-tzdata=(\
- africa\
- antarctica\
- asia\
- australasia\
- europe\
- northamerica\
- southamerica\
- pacificnew\
- etcetera\
- backward\
- systemv\
- factory\
-)
-build '$outdir'/tzdata.index awk '$srcdir'/$tzdata '|' scripts/hash.rc '$dir'/tzdata.awk '||' '$builddir'/root.stamp ; with\
- expr '-f $dir/tzdata.awk out=$outdir/zoneinfo repo=$repo'
-index_inputs=($index_inputs '$outdir'/tzdata.index)
-
-fetch git
diff --git a/pkg/ubase/gen.lua b/pkg/ubase/gen.lua
@@ -0,0 +1,91 @@
+cflags{
+ '-std=c99', '-pedantic',
+ '-Wall', '-Wno-maybe-uninitialized', '-Wno-overflow',
+ '-D _GNU_SOURCE',
+ '-D _XOPEN_SOURCE=700',
+ '-I $dir',
+}
+
+lib('libutil.a', [[libutil/(
+ agetcwd.c
+ agetline.c
+ apathmax.c
+ concat.c
+ ealloc.c
+ eprintf.c
+ estrtol.c
+ estrtoul.c
+ explicit_bzero.c
+ passwd.c
+ proc.c
+ putword.c
+ recurse.c
+ strlcat.c
+ strlcpy.c
+ strtonum.c
+ tty.c
+)]])
+
+function x(cmd, section, mode)
+ if not mode then
+ mode = '755'
+ end
+ file('bin/'..cmd, mode, exe(cmd, {cmd..'.c', 'libutil.a'}))
+ if section then
+ man{cmd..'.'..section}
+ end
+end
+
+x('chvt', 1)
+x('clear', 1)
+x('ctrlaltdel', 8)
+x('dd', 1)
+x('df', 1)
+x('dmesg', 1)
+x('eject', 1)
+x('fallocate', 1)
+x('free', 1)
+x('freeramdisk', 8)
+x('fsfreeze', 8)
+x('getty', 8)
+x('halt', 8)
+x('hwclock', 8)
+x('id', 1)
+x('insmod', 8)
+x('killall5', 8)
+x('last')
+x('lastlog', 8)
+x('login', 1)
+x('lsmod', 8)
+x('lsusb', 8)
+x('mesg', 1)
+x('mknod', 1)
+x('mkswap', 8)
+x('mount', 8)
+x('mountpoint', 1)
+x('nologin', 8)
+x('pagesize', 1)
+x('passwd', 1, '4755')
+x('pidof', 1)
+x('pivot_root', 8)
+x('ps', 1)
+x('pwdx', 1)
+x('readahead', 8)
+x('respawn', 1)
+x('rmmod', 8)
+x('stat', 1)
+x('stty')
+x('swaplabel', 8)
+x('swapoff', 8)
+x('swapon', 8)
+x('switch_root', 8)
+x('sysctl', 8)
+x('truncate', 1)
+x('umount', 8)
+x('unshare', 1)
+x('uptime', 1)
+x('vtallow', 1)
+x('watch', 1)
+x('who', 1)
+
+fetch 'git'
diff --git a/pkg/ubase/gen.rc b/pkg/ubase/gen.rc
@@ -1,95 +0,0 @@
-cflags\
- '-std=c99' -pedantic\
- -Wall -Wno-maybe-uninitialized -Wno-overflow\
- -D _GNU_SOURCE\
- -D '_XOPEN_SOURCE=700' \
- -I '$dir'
-
-lib libutil.a libutil/^(\
- agetcwd.c\
- agetline.c\
- apathmax.c\
- concat.c\
- ealloc.c\
- eprintf.c\
- estrtol.c\
- estrtoul.c\
- explicit_bzero.c\
- passwd.c\
- proc.c\
- putword.c\
- recurse.c\
- strlcat.c\
- strlcpy.c\
- strtonum.c\
- tty.c\
-)
-
-fn x {
- if(~ $1 -m) {
- mode=$2
- shift 2
- }
- if not mode=755
- exe=$1
- shift
- exe $exe $exe.c libutil.a
- file bin/$exe '$outdir'/$exe $mode
- if(~ $#* 1)
- man $1 $exe.$1
- status=()
-}
-
-x chvt 1
-x clear 1
-x ctrlaltdel 8
-x dd 1
-x df 1
-x dmesg 1
-x eject 1
-x fallocate 1
-x free 1
-x freeramdisk 8
-x fsfreeze 8
-x getty 8
-x halt 8
-x hwclock 8
-x id 1
-x insmod 8
-x killall5 8
-x last
-x lastlog 8
-x login 1
-x lsmod 8
-x lsusb 8
-x mesg 1
-x mknod 1
-x mkswap 8
-x mount 8
-x mountpoint 1
-x nologin 8
-x pagesize 1
-x -m 4755 passwd 1
-x pidof 1
-x pivot_root 8
-x ps 1
-x pwdx 1
-x readahead 8
-x respawn 1
-x rmmod 8
-x stat 1
-x stty
-x swaplabel 8
-x swapoff 8
-x swapon 8
-x switch_root 8
-x sysctl 8
-x truncate 1
-x umount 8
-x unshare 1
-x uptime 1
-x vtallow 1
-x watch 1
-x who 1
-
-fetch git
diff --git a/pkg/unzip/gen.lua b/pkg/unzip/gen.lua
@@ -0,0 +1,17 @@
+cflags{
+ '-include $dir/config.h',
+ '-I $srcdir',
+ '-I pkg/bzip2/src',
+}
+
+exe('unzip', [[
+ unzip.c crc32.c crypt.c envargs.c explode.c
+ extract.c fileio.c globals.c inflate.c list.c match.c
+ process.c ttyio.c ubz2err.c unreduce.c unshrink.c zipinfo.c
+ unix/unix.c
+ $builddir/pkg/bzip2/libbz2.a
+]], {'$builddir/pkg/bzip2/fetch.stamp'})
+file('bin/unzip', '755', '$outdir/unzip')
+man{'man/unzip.1'}
+
+fetch 'curl'
diff --git a/pkg/unzip/gen.rc b/pkg/unzip/gen.rc
@@ -1,15 +0,0 @@
-cflags\
- -include '$dir'/config.h\
- -I '$srcdir' \
- -I pkg/bzip2/src
-
-exe unzip -d '$builddir'/pkg/bzip2/fetch.stamp\
- unzip.c crc32.c crypt.c envargs.c explode.c\
- extract.c fileio.c globals.c inflate.c list.c match.c\
- process.c ttyio.c ubz2err.c unreduce.c unshrink.c zipinfo.c\
- unix/unix.c\
- '$builddir'/pkg/bzip2/libbz2.a
-file bin/unzip '$outdir'/unzip 755
-man -d man 1 unzip.1
-
-fetch curl
diff --git a/pkg/utf8proc/gen.lua b/pkg/utf8proc/gen.lua
@@ -0,0 +1,5 @@
+cflags{'-std=c99', '-Wall', '-pedantic'}
+
+lib('libutf8proc.a', {'utf8proc.c'})
+
+fetch 'git'
diff --git a/pkg/utf8proc/gen.rc b/pkg/utf8proc/gen.rc
@@ -1,5 +0,0 @@
-cflags '-std=c99' -Wall -pedantic
-
-lib libutf8proc.a utf8proc.c
-
-fetch git
diff --git a/pkg/util-linux/gen.lua b/pkg/util-linux/gen.lua
@@ -0,0 +1,125 @@
+set('version', '2.30.1')
+cflags{
+ '-include $dir/config.h',
+ '-I include',
+ '-I $dir',
+ '-I $outdir',
+ '-I $srcdir/include',
+ '-I $srcdir/libuuid/src',
+}
+
+build('sed', '$outdir/libsmartcols.h', '$srcdir/libsmartcols/src/libsmartcols.h.in', {
+ expr='s,@LIBSMARTCOLS_VERSION@,$version,',
+})
+build('sed', '$outdir/libfdisk.h', '$srcdir/libfdisk/src/libfdisk.h.in', {
+ expr={
+ '-e s,@LIBFDISK_VERSION@,$version,',
+ '-e /@LIBFDISK_MAJOR_VERSION@/d',
+ '-e /@LIBFDISK_MINOR_VERSION@/d',
+ '-e /@LIBFDISK_PATCH_VERSION@/d',
+ },
+})
+
+pkg.deps = {
+ '$outdir/libsmartcols.h',
+ '$outdir/libfdisk.h',
+}
+
+lib('libcommon.a', [[
+ lib/(
+ blkdev.c
+ canonicalize.c
+ crc32.c
+ env.c
+ idcache.c
+ fileutils.c
+ ismounted.c
+ mangle.c
+ match.c
+ mbsalign.c
+ md5.c
+ pager.c
+ path.c
+ randutils.c
+ setproctitle.c
+ strutils.c
+ timeutils.c
+ ttyutils.c
+ exec_shell.c
+ strv.c
+
+ linux_version.c
+ loopdev.c
+
+ procutils.c
+ sysfs.c
+ )
+]])
+
+lib('libfdisk.a', [[
+ libfdisk/src/(
+ init.c
+ field.c
+ item.c
+ test.c
+ ask.c
+ alignment.c
+ label.c
+ utils.c
+ context.c
+ parttype.c
+ partition.c
+ table.c
+ iter.c
+ script.c
+ version.c
+ wipe.c
+
+ sun.c
+ sgi.c
+ dos.c
+ bsd.c
+ gpt.c
+ )
+ libuuid.a libcommon.a
+]])
+
+lib('libsmartcols.a', [[
+ libsmartcols/src/(
+ iter.c
+ symbols.c
+ cell.c
+ column.c
+ line.c
+ table.c
+ table_print.c
+ version.c
+ init.c
+ )
+]])
+
+lib('libtcolors.a', 'lib/(colors.c color-names.c)')
+
+lib('libuuid.a', [[
+ libuuid/src/(
+ clear.c
+ compare.c
+ copy.c
+ gen_uuid.c
+ isnull.c
+ pack.c
+ parse.c
+ unpack.c
+ unparse.c
+ uuid_time.c
+ )
+]])
+
+exe('fdisk', [[
+ disk-utils/(fdisk.c fdisk-menu.c fdisk-list.c)
+ libfdisk.a.d libsmartcols.a libtcolors.a
+]])
+file('bin/fdisk', '755', '$outdir/fdisk')
+man{'disk-utils/fdisk.8'}
+
+fetch 'git'
diff --git a/pkg/util-linux/gen.rc b/pkg/util-linux/gen.rc
@@ -1,108 +0,0 @@
-version=2.30.1
-cflags\
- -include '$dir'/config.h\
- -I include\
- -I '$dir' \
- -I '$outdir' \
- -I '$srcdir'/include\
- -I '$srcdir'/libuuid/src
-
-build '$outdir'/libsmartcols.h sed '$srcdir'/libsmartcols/src/libsmartcols.h.in ; with\
- expr s,@LIBSMARTCOLS_VERSION@,$version,
-build '$outdir'/libfdisk.h sed '$srcdir'/libfdisk/src/libfdisk.h.in ; expr=(\
- -e s,@LIBFDISK_VERSION@,$version,\
- -e /@LIBFDISK_MAJOR_VERSION@/d\
- -e /@LIBFDISK_MINOR_VERSION@/d\
- -e /@LIBFDISK_PATCH_VERSION@/d\
-) with expr $"expr
-
-phony deps '$outdir'/^(libsmartcols.h libfdisk.h)
-
-lib libcommon.a lib/^(\
- blkdev.c\
- canonicalize.c\
- crc32.c\
- env.c\
- idcache.c\
- fileutils.c\
- ismounted.c\
- mangle.c\
- match.c\
- mbsalign.c\
- md5.c\
- pager.c\
- path.c\
- randutils.c\
- setproctitle.c\
- strutils.c\
- timeutils.c\
- ttyutils.c\
- exec_shell.c\
- strv.c\
- \
- linux_version.c\
- loopdev.c\
- \
- procutils.c\
- sysfs.c\
-)
-
-lib libfdisk.a -d '$dir'/deps libfdisk/src/^(\
- init.c\
- field.c\
- item.c\
- test.c\
- ask.c\
- alignment.c\
- label.c\
- utils.c\
- context.c\
- parttype.c\
- partition.c\
- table.c\
- iter.c\
- script.c\
- version.c\
- wipe.c\
- \
- sun.c\
- sgi.c\
- dos.c\
- bsd.c\
- gpt.c\
-) libuuid.a libcommon.a
-
-lib libsmartcols.a -d '$dir'/deps libsmartcols/src/^(\
- iter.c\
- symbols.c\
- cell.c\
- column.c\
- line.c\
- table.c\
- table_print.c\
- version.c\
- init.c\
-)
-
-lib libtcolors.a lib/^(colors.c color-names.c)
-
-lib libuuid.a libuuid/src/^(\
- clear.c\
- compare.c\
- copy.c\
- gen_uuid.c\
- isnull.c\
- pack.c\
- parse.c\
- unpack.c\
- unparse.c\
- uuid_time.c\
-)
-
-exe fdisk -d '$dir'/deps\
- disk-utils/^(fdisk.c fdisk-menu.c fdisk-list.c)\
- libfdisk.a.d libsmartcols.a libtcolors.a
-file bin/fdisk '$outdir'/fdisk 755
-man -d disk-utils 8 fdisk.8
-
-fetch git
diff --git a/pkg/velox/gen.lua b/pkg/velox/gen.lua
@@ -0,0 +1,56 @@
+cflags{
+ [[-D 'VELOX_LIBEXEC="/libexec/velox"']],
+ '-I $outdir',
+ '-I pkg/fontconfig/src',
+ '-I pkg/libxkbcommon/src',
+ '-I $builddir/pkg/pixman/include',
+ '-I $builddir/pkg/swc/include',
+ '-I $builddir/pkg/wayland/include',
+ '-I $builddir/pkg/wld/include',
+}
+
+waylandproto('protocol/velox.xml',
+ 'protocol/velox-client-protocol.h',
+ 'protocol/velox-server-protocol.h',
+ 'velox-protocol.c')
+build('copy', '$outdir/protocol/swc-client-protocol.h', '$builddir/pkg/swc/include/swc-client-protocol.h')
+
+pkg.deps = {
+ '$outdir/protocol/swc-client-protocol.h',
+ '$outdir/protocol/velox-client-protocol.h',
+ '$outdir/protocol/velox-server-protocol.h',
+ '$builddir/pkg/fontconfig/fetch.stamp',
+ '$builddir/pkg/libxkbcommon/fetch.stamp',
+ '$builddir/pkg/swc/fetch.stamp',
+ 'pkg/pixman/headers',
+ 'pkg/swc/headers',
+ 'pkg/wayland/headers',
+ 'pkg/wld/headers',
+}
+
+exe('velox', {
+ 'config.c',
+ 'layout.c',
+ 'screen.c',
+ 'tag.c',
+ 'util.c',
+ 'velox.c',
+ 'velox-protocol.c.o',
+ 'window.c',
+ '$builddir/pkg/swc/libswc.a.d',
+ '$builddir/pkg/wayland/libwayland-server.a.d',
+})
+file('bin/velox', '755', '$outdir/velox')
+
+exe('status_bar', {
+ 'clients/status_bar.c',
+ 'velox-protocol.c.o',
+ '$builddir/pkg/swc/swc-protocol.c.o',
+ '$builddir/pkg/wld/libwld.a.d',
+ '$builddir/pkg/wayland/libwayland-client.a.d',
+})
+file('libexec/velox/status_bar', '755', '$outdir/status_bar')
+
+file('share/doc/velox/velox.conf.sample', '644', '$srcdir/velox.conf.sample')
+
+fetch 'git'
diff --git a/pkg/velox/gen.rc b/pkg/velox/gen.rc
@@ -1,44 +0,0 @@
-cflags\
- -D 'VELOX_LIBEXEC=''"/libexec/velox"''' \
- -I '$outdir' \
- -I pkg/fontconfig/src\
- -I pkg/libxkbcommon/src\
- -I '$builddir'/pkg/pixman/include\
- -I '$builddir'/pkg/swc/include\
- -I '$builddir'/pkg/wayland/include\
- -I '$builddir'/pkg/wld/include
-
-waylandproto protocol/velox.xml\
- protocol/velox-^(client server)^-protocol.h velox-protocol.c
-build '$outdir'/protocol/swc-client-protocol.h copy '$builddir'/pkg/swc/include/swc-client-protocol.h
-
-phony deps\
- '$outdir'/protocol/^(swc-client velox-^(client server))^-protocol.h\
- '$builddir'/pkg/^(fontconfig libxkbcommon swc)^/fetch.stamp\
- pkg/^(pixman swc wayland wld)^/headers
-
-exe velox -d '$dir'/deps \
- config.c\
- layout.c\
- screen.c\
- tag.c\
- util.c\
- velox.c\
- velox-protocol.c.o\
- window.c\
- '$builddir'/pkg/^(\
- swc/libswc.a.d\
- wayland/libwayland-server.a.d\
- )
-file bin/velox '$outdir'/velox 755
-
-exe status_bar -d '$dir'/deps clients/status_bar.c velox-protocol.c.o '$builddir'/pkg/^(\
- swc/swc-protocol.c.o\
- wld/libwld.a.d\
- wayland/libwayland-client.a.d\
-)
-file libexec/velox/status_bar '$outdir'/status_bar 755
-
-file share/doc/velox/velox.conf.sample '$srcdir'/velox.conf.sample 644
-
-fetch git
diff --git a/pkg/vis/gen.lua b/pkg/vis/gen.lua
@@ -0,0 +1,66 @@
+set('version', 'v0.4')
+cflags{
+ '-std=c99',
+ '-D CONFIG_HELP=1',
+ '-D CONFIG_CURSES=1',
+ '-D CONFIG_LUA=1',
+ '-D CONFIG_LPEG=1',
+ '-D CONFIG_TRE=0',
+ '-D CONFIG_SELINUX=0',
+ '-D CONFIG_ACL=0',
+ '-D HAVE_MEMRCHR=1',
+ '-D _POSIX_C_SOURCE=200809L',
+ '-D _XOPEN_SOURCE=700',
+ [[-D 'VERSION="$version"']],
+ [[-D 'VIS_PATH="/share/vis"']],
+ '-D NDEBUG',
+ '-I $outdir',
+ '-I pkg/libtermkey/src',
+ '-I pkg/lua/src/src',
+ '-I $builddir/pkg/ncurses/include',
+}
+
+build('copy', '$outdir/config.h', '$srcdir/config.def.h')
+
+pkg.deps = {
+ '$outdir/config.h',
+ '$builddir/pkg/libtermkey/fetch.stamp',
+ '$builddir/pkg/lua/fetch.stamp',
+ 'pkg/ncurses/headers',
+}
+
+exe('vis', [[
+ array.c buffer.c libutf.c main.c map.c
+ sam.c text.c text-motions.c text-objects.c text-util.c
+ ui-terminal.c view.c vis.c vis-lua.c vis-modes.c vis-motions.c
+ vis-operators.c vis-registers.c vis-marks.c vis-prompt.c vis-text-objects.c text-regex.c
+ $builddir/pkg/(
+ libtermkey/libtermkey.a.d
+ lpeg/liblpeg.a
+ lua/liblua.a
+ ncurses/libncurses.a
+ )
+]])
+file('bin/vis', '755', '$outdir/vis')
+
+exe('vis-digraph', {'vis-digraph.c'})
+file('bin/vis-digraph', '755', '$outdir/vis-digraph')
+
+exe('vis-menu', {'vis-menu.c'})
+file('bin/vis-menu', '755', '$outdir/vis-menu')
+
+file('bin/vis-open', '755', '$srcdir/vis-open')
+
+for _, f in ipairs{'vis.1', 'vis-digraph.1', 'vis-menu.1', 'vis-open.1'} do
+ build('sed', '$outdir/'..f, '$srcdir/man/'..f, {expr='s,VERSION,$version,'})
+ man{'$outdir/'..f}
+end
+
+for f in iterlines('lua.txt') do
+ file('share/vis/'..f, '644', '$srcdir/lua/'..f)
+end
+sym('share/vis/lexer.lua', 'lexers/lexer.lua')
+sym('share/vis/themes/default-16.lua', 'dark-16.lua')
+sym('share/vis/themes/default-256.lua', 'dark-16.lua')
+
+fetch 'git'
diff --git a/pkg/vis/gen.rc b/pkg/vis/gen.rc
@@ -1,64 +0,0 @@
-version=v0.4
-cflags\
- '-std=c99' \
- -D 'CONFIG_HELP=1' \
- -D 'CONFIG_CURSES=1' \
- -D 'CONFIG_LUA=1' \
- -D 'CONFIG_LPEG=1' \
- -D 'CONFIG_TRE=0' \
- -D 'CONFIG_SELINUX=0' \
- -D 'CONFIG_ACL=0' \
- -D 'HAVE_MEMRCHR=1' \
- -D '_POSIX_C_SOURCE=200809L' \
- -D '_XOPEN_SOURCE=700' \
- -D 'VERSION=''"'$version'"''' \
- -D 'VIS_PATH=''"/share/vis"''' \
- -D NDEBUG\
- -I '$outdir' \
- -I pkg/libtermkey/src\
- -I pkg/lua/src/src\
- -I '$builddir'/pkg/ncurses/include
-
-build '$outdir'/config.h copy '$srcdir'/config.def.h
-
-phony deps '$outdir'/config.h '$builddir'/pkg/^(\
- libtermkey/fetch.stamp\
- lua/fetch.stamp\
-) pkg/ncurses/headers
-
-exe vis -d '$dir'/deps \
- array.c buffer.c libutf.c main.c map.c\
- sam.c text.c text-motions.c text-objects.c text-util.c\
- ui-terminal.c view.c vis.c vis-lua.c vis-modes.c vis-motions.c\
- vis-operators.c vis-registers.c vis-marks.c vis-prompt.c vis-text-objects.c text-regex.c\
- '$builddir'/pkg/^(\
- libtermkey/libtermkey.a.d\
- lpeg/liblpeg.a\
- lua/liblua.a\
- ncurses/libncurses.a\
- )
-file bin/vis '$outdir'/vis 755
-
-exe vis-digraph vis-digraph.c
-file bin/vis-digraph '$outdir'/vis-digraph 755
-
-exe vis-menu vis-menu.c
-file bin/vis-menu '$outdir'/vis-menu 755
-
-file bin/vis-open '$srcdir'/vis-open 755
-
-for(f in vis.1 vis-digraph.1 vis-menu.1 vis-open.1) {
- build '$outdir'/$f sed '$srcdir'/man/$f ; with\
- expr s,VERSION,$version,
- man -d '$outdir' 1 $f
-}
-
-lua=`{grep -v '^#' lua.txt} ; checkstatus
-for(f in $lua)
- file share/vis/$f '$srcdir'/lua/$f 644
-sym share/vis/lexer.lua lexers/lexer.lua
-sym share/vis/themes/default-16.lua dark-16.lua
-sym share/vis/themes/default-256.lua dark-16.lua
-
-fetch git
-gen_inputs='$dir'/lua.txt
diff --git a/pkg/wayland-protocols/gen.lua b/pkg/wayland-protocols/gen.lua
@@ -0,0 +1,14 @@
+cflags{'-I $builddir/pkg/wayland/include'}
+
+waylandproto('unstable/xdg-shell/xdg-shell-unstable-v5.xml',
+ 'include/xdg-shell-unstable-v5-client-protocol.h',
+ 'include/xdg-shell-unstable-v5-server-protocol.h',
+ 'xdg-shell-unstable-v5-protocol.c'
+)
+
+pkg.hdrs = {
+ '$outdir/include/xdg-shell-unstable-v5-client-protocol.h',
+ '$outdir/include/xdg-shell-unstable-v5-server-protocol.h',
+}
+
+fetch 'git'
diff --git a/pkg/wayland-protocols/gen.rc b/pkg/wayland-protocols/gen.rc
@@ -1,10 +0,0 @@
-cflags\
- -I '$builddir'/pkg/wayland/include
-
-waylandproto unstable/xdg-shell/xdg-shell-unstable-v5.xml\
- include/xdg-shell-unstable-v5-^(client server)^-protocol.h\
- xdg-shell-unstable-v5-protocol.c
-
-phony headers '$outdir'/include/xdg-shell-unstable-v5-^(client server)^-protocol.h
-
-fetch git
diff --git a/pkg/wayland/gen.lua b/pkg/wayland/gen.lua
@@ -0,0 +1,75 @@
+cflags{
+ '-I include',
+ '-I $dir',
+ '-I $outdir/include',
+ '-I $srcdir',
+ '-I $srcdir/src',
+ '-I $builddir/pkg/expat/include',
+ '-I $builddir/pkg/libffi/include',
+}
+
+build('sed', '$outdir/include/wayland-version.h', '$srcdir/src/wayland-version.h.in', {
+ expr={
+ '-e s,@WAYLAND_VERSION_MAJOR@,1,',
+ '-e s,@WAYLAND_VERSION_MINOR@,11,',
+ '-e s,@WAYLAND_VERSION_MICRO@,0,',
+ '-e s,@WAYLAND_VERSION@,1.11.0,',
+ },
+})
+
+cc('src/wayland-util.c')
+cc('src/wayland-os.c')
+cc('src/connection.c', {'pkg/libffi/headers'})
+
+waylandproto('protocol/wayland.xml',
+ 'include/wayland-client-protocol.h',
+ 'include/wayland-server-protocol.h',
+ 'src/wayland-protocol.c'
+)
+
+pkg.hdrs = {
+ copy('$outdir/include', '$srcdir/src', {
+ 'wayland-client-core.h',
+ 'wayland-client.h',
+ 'wayland-egl-core.h',
+ 'wayland-egl.h',
+ 'wayland-server-core.h',
+ 'wayland-server.h',
+ 'wayland-util.h',
+ }),
+ copy('$outdir/include', '$srcdir/cursor', {'wayland-cursor.h'}),
+}
+pkg.deps = {
+ '$dir/headers',
+ '$outdir/include/wayland-version.h',
+ 'pkg/expat/headers',
+}
+
+exe('wayland-scanner', {'src/scanner.c', 'src/wayland-util.c.o', '$builddir/pkg/expat/libexpat.a.d'})
+file('bin/wayland-scanner', '755', '$outdir/wayland-scanner')
+
+lib('libwayland-server.a', [[src/(
+ connection.c.o
+ wayland-os.c.o
+ wayland-protocol.c.o
+ wayland-server.c
+ wayland-shm.c
+ wayland-util.c.o
+ event-loop.c
+) $builddir/pkg/libffi/libffi.a]])
+
+lib('libwayland-client.a', [[src/(
+ connection.c.o
+ wayland-os.c.o
+ wayland-protocol.c.o
+ wayland-client.c
+ wayland-util.c.o
+) $builddir/pkg/libffi/libffi.a]])
+
+lib('libwayland-cursor.a', [[cursor/(
+ os-compatibility.c
+ wayland-cursor.c
+ xcursor.c
+) libwayland-client.a.d]])
+
+fetch 'git'
diff --git a/pkg/wayland/gen.rc b/pkg/wayland/gen.rc
@@ -1,60 +0,0 @@
-cflags\
- -I include\
- -I '$dir' \
- -I '$outdir'/include\
- -I '$srcdir' \
- -I '$srcdir'/src\
- -I '$builddir'/pkg/expat/include\
- -I '$builddir'/pkg/libffi/include
-
-build '$outdir'/include/wayland-version.h sed '$srcdir'/src/wayland-version.h.in ; exprs=(\
- -e s,@WAYLAND_VERSION_MAJOR@,1,\
- -e s,@WAYLAND_VERSION_MINOR@,11,\
- -e s,@WAYLAND_VERSION_MICRO@,0,\
- -e s,@WAYLAND_VERSION@,1.11.0,\
-) with expr $"exprs
-
-cc src/wayland-util.c
-cc src/wayland-os.c
-cc src/connection.c '||' pkg/libffi/headers
-
-exe wayland-scanner -d 'pkg/expat/headers $outdir/include/wayland-version.h' \
- src/^(scanner.c wayland-util.c.o)\
- '$builddir'/pkg/expat/libexpat.a.d
-file bin/wayland-scanner '$outdir'/wayland-scanner 755
-
-waylandproto protocol/wayland.xml\
- include/wayland-^(client server)^-protocol.h\
- src/wayland-protocol.c
-
-hdrs=wayland-^(client-core client egl-core egl server-core server util)^.h
-for(hdr in $hdrs) build '$outdir'/include/$hdr copy '$srcdir'/src/$hdr
-build '$outdir'/include/wayland-cursor.h copy '$srcdir'/cursor/wayland-cursor.h
-
-phony headers '$outdir'/include/^($hdrs wayland-^(cursor.h (client server)^-protocol.h version.h))
-
-lib libwayland-server.a -d '$dir'/headers src/^(\
- connection.c.o\
- wayland-os.c.o\
- wayland-protocol.c.o\
- wayland-server.c\
- wayland-shm.c\
- wayland-util.c.o\
- event-loop.c\
-) '$builddir'/pkg/libffi/libffi.a
-
-lib libwayland-client.a -d '$dir'/headers src/^(\
- connection.c.o\
- wayland-os.c.o\
- wayland-protocol.c.o\
- wayland-client.c\
- wayland-util.c.o\
-) '$builddir'/pkg/libffi/libffi.a
-
-lib libwayland-cursor.a -d '$dir'/headers cursor/^(\
- os-compatibility.c\
- wayland-cursor.c\
- xcursor.c\
-) libwayland-client.a.d
-
-fetch git
diff --git a/pkg/wld/gen.lua b/pkg/wld/gen.lua
@@ -0,0 +1,68 @@
+cflags{
+ '-D WITH_WAYLAND_SHM',
+ '-D WITH_WAYLAND_DRM',
+ '-I $outdir',
+ '-I pkg/fontconfig/src',
+ '-I pkg/freetype/src/include',
+ '-I pkg/libdrm/src',
+ '-I pkg/libdrm/src/include/drm',
+ '-I $builddir/pkg/pixman/include',
+ '-I $builddir/pkg/wayland/include',
+}
+
+pkg.hdrs = copy('$outdir/include/wld', '$srcdir', {'drm.h', 'pixman.h', 'wayland.h', 'wld.h'})
+pkg.hdrs.install = true
+
+local srcs = {
+ 'buffer.c',
+ 'buffered_surface.c',
+ 'color.c',
+ 'context.c',
+ 'drm.c',
+ 'dumb.c',
+ 'font.c',
+ 'renderer.c',
+ 'surface.c',
+ 'pixman.c',
+ 'wayland.c',
+ 'wayland-shm.c',
+ 'wayland-drm.c',
+ 'wayland-drm-protocol.c.o',
+}
+local libs = {
+ 'fontconfig/libfontconfig.a.d',
+ 'freetype/libfreetype.a.d',
+ 'libdrm/libdrm.a',
+ 'pixman/libpixman.a',
+ 'wayland/libwayland-client.a.d',
+}
+
+if config.video_drivers and config.video_drivers['intel'] then
+ cflags{'-D WITH_DRM_INTEL', '-I pkg/libdrm/src/intel'}
+ table.insert(srcs, {'intel.c', 'intel/batch.c'})
+ table.insert(libs, 'libdrm/libdrm_intel.a.d')
+end
+if config.video_drivers and config.video_drivers['nouveau'] then
+ cflags{'-D WITH_DRM_NOUVEAU', '-I pkg/libdrm/src/nouveau'}
+ table.insert(srcs, 'nouveau.c')
+ table.insert(libs, 'libdrm/libdrm_nouveau.a')
+end
+
+waylandproto('protocol/wayland-drm.xml',
+ 'protocol/wayland-drm-client-protocol.h',
+ 'protocol/wayland-drm-server-protocol.h',
+ 'wayland-drm-protocol.c'
+)
+
+pkg.deps = {
+ '$builddir/pkg/fontconfig/fetch.stamp',
+ '$builddir/pkg/freetype/fetch.stamp',
+ '$builddir/pkg/libdrm/fetch.stamp',
+ '$outdir/protocol/wayland-drm-client-protocol.h',
+ 'pkg/pixman/headers',
+ 'pkg/wayland/headers',
+}
+
+lib('libwld.a', {srcs, expand{'$builddir/pkg/', libs}})
+
+fetch 'git'
diff --git a/pkg/wld/gen.rc b/pkg/wld/gen.rc
@@ -1,68 +0,0 @@
-cflags=(\
- -D WITH_WAYLAND_SHM\
- -D WITH_WAYLAND_DRM\
- -I '$outdir' \
- -I pkg/fontconfig/src\
- -I pkg/freetype/src/include\
- -I pkg/libdrm/src\
- -I pkg/libdrm/src/include/drm\
- -I '$builddir'/pkg/pixman/include\
- -I '$builddir'/pkg/wayland/include\
-)
-
-hdrs=(drm.h pixman.h wayland.h wld.h)
-for(hdr in $hdrs) {
- build '$outdir'/include/wld/$hdr copy '$srcdir'/$hdr
- file include/wld/$hdr '$srcdir'/$hdr 644
-}
-phony headers '$outdir'/include/wld/$hdrs
-
-srcs=(\
- buffer.c\
- buffered_surface.c\
- color.c\
- context.c\
- drm.c\
- dumb.c\
- font.c\
- renderer.c\
- surface.c\
- pixman.c\
- wayland.c\
- wayland-shm.c\
- wayland-drm.c\
- wayland-drm-protocol.c.o\
-)
-libs=(\
- fontconfig/libfontconfig.a.d\
- freetype/libfreetype.a.d\
- libdrm/libdrm.a\
- pixman/libpixman.a\
- wayland/libwayland-client.a.d\
-)
-
-if(~ intel $config_video_drivers) {
- cflags=($cflags -D WITH_DRM_INTEL -I pkg/libdrm/src/intel)
- srcs=($srcs intel.c intel/batch.c)
- libs=($libs libdrm/libdrm_intel.a.d)
-}
-if(~ nouveau $config_video_drivers) {
- cflags=($cflags -D WITH_DRM_NOUVEAU -I pkg/libdrm/src/nouveau)
- srcs=($srcs nouveau.c)
- libs=($libs libdrm/libdrm_nouveau.a)
-}
-
-cflags $cflags
-
-waylandproto protocol/wayland-drm.xml\
- protocol/wayland-drm-^(client server)^-protocol.h\
- wayland-drm-protocol.c
-
-phony deps\
- '$outdir'/protocol/wayland-drm-client-protocol.h\
- '$builddir'/pkg/^(fontconfig freetype libdrm)^/fetch.stamp\
- pkg/^(pixman wayland)^/headers
-
-lib libwld.a -d '$dir'/deps $srcs '$builddir'/pkg/$libs
-
-fetch git
diff --git a/pkg/xkeyboard-config/gen.lua b/pkg/xkeyboard-config/gen.lua
@@ -0,0 +1,205 @@
+local data = [[
+ compat/(
+ accessx basic caps complete
+ iso9995
+ japan ledcaps
+ lednum ledscroll level5
+ misc mousekeys
+ olpc pc pc98 xfree86
+ xtest README
+ )
+ geometry/(
+ digital_vndr/(lk pc unix)
+ sgi_vndr/(indigo indy O2)
+ amiga ataritt chicony
+ dell everex fujitsu
+ hhk hp keytronic kinesis
+ macintosh microsoft nec nokia
+ northgate pc sanwa sony thinkpad
+ sun teck steelseries typematrix winbook README
+ )
+ keycodes/(
+ digital_vndr/(lk pc)
+ sgi_vndr/(indigo indy iris)
+ aliases
+ amiga
+ ataritt
+ empty
+ evdev
+ fujitsu
+ hp
+ ibm
+ jolla
+ macintosh
+ olpc
+ sony
+ sun
+ xfree86
+ xfree98
+ README
+ )
+ rules/(
+ xfree98
+ xkb.dtd
+ README
+ )
+ symbols/(
+ digital_vndr/(lk pc us vt)
+ fujitsu_vndr/(jp us)
+ hp_vndr/(us)
+ jolla_vndr/(sbj)
+ macintosh_vndr/(
+ apple ch de dk
+ fi fr
+ gb is it jp
+ latam nl no pt
+ se us
+ )
+ nec_vndr/(jp)
+ nokia_vndr/(rx-44 rx-51 su-8w)
+ sgi_vndr/(jp)
+ sharp_vndr/(sl-c3x00 ws003sh ws007sh ws011sh ws020sh)
+ sony_vndr/(us)
+ sun_vndr/(
+ ara be br ca ch
+ cz de dk ee es
+ fi fr gb gr it
+ jp kr lt lv nl
+ no pl pt ro ru
+ se sk solaris tr
+ tw ua us
+ )
+ xfree68_vndr/(amiga ataritt)
+ af al am apl
+ ara at au az
+ ba bd be
+ bg br brai
+ bt bw by
+ ca cd ch
+ cm cn cz
+ de dk dz
+ ee es et epo eu
+ fi fo fr
+ gb ge gh gn
+ gr hr hu
+ id ie il
+ in iq
+ ir is it
+ jp
+ ke kg kh
+ kr kz
+ la latam latin
+ lk lt lv
+ ma mao md me
+ mk ml mm
+ mn mt mv my
+ ng nl no np
+ parens pc ph pk pl pt
+ ro rs ru
+ se si sk sn
+ sy th
+ terminate tg
+ tj tm tr tw tz
+ ua us uz vn
+ za
+ altwin capslock compose ctrl empty eurosign rupeesign group inet
+ keypad kpdl level3 level5 nbsp olpc shift srvr_ctrl typo
+ )
+ types/(
+ basic cancel caps
+ complete default extra
+ iso9995 level5 mousekeys nokia numpad
+ pc README
+ )
+]]
+for f in iterpaths(data) do
+ file('share/xkb/'..f, '644', '$srcdir/'..f)
+end
+
+rule('merge', 'HDR=$srcdir/rules/HDR ./$srcdir/rules/merge.sh $out.tmp $in && mv $out.tmp $out')
+function merge(out, srcs)
+ build('merge', '$outdir/'..out, {
+ expand{'$srcdir/rules/', paths(srcs)},
+ '|', '$srcdir/rules/HDR', '$srcdir/rules/merge.sh',
+ })
+ file('share/xkb/rules/'..out, '644', '$outdir/'..out)
+end
+
+merge('base', [[
+ base.hdr.part base.lists.part
+ base.lists.base.part
+ HDR base.m_k.part
+ HDR base.l1_k.part
+ HDR base.l_k.part
+ HDR
+ HDR base.ml_g.part
+ HDR base.m_g.part
+ HDR base.mlv_s.part
+ HDR base.ml_s.part
+ HDR base.ml1_s.part
+ HDR
+ HDR base.ml2_s.part
+ HDR base.ml3_s.part
+ HDR base.ml4_s.part
+ HDR
+ HDR
+ HDR
+ HDR base.m_s.part
+ HDR base.ml_s1.part
+ HDR
+ HDR
+ HDR
+ HDR
+ HDR
+ HDR base.ml_c.part
+ HDR base.ml1_c.part
+ HDR base.m_t.part
+ HDR
+ HDR base.l1o_s.part
+ HDR base.l2o_s.part
+ HDR base.l3o_s.part
+ HDR base.l4o_s.part
+ HDR base.o_s.part
+ HDR base.o_c.part
+ HDR base.o_t.part
+]])
+merge('evdev', [[
+ base.hdr.part base.lists.part
+ evdev.lists.part
+ HDR evdev.m_k.part
+ HDR base.l1_k.part
+ HDR base.l_k.part
+ HDR
+ HDR base.ml_g.part
+ HDR base.m_g.part
+ HDR base.mlv_s.part
+ HDR base.ml_s.part
+ HDR base.ml1_s.part
+ HDR
+ HDR base.ml2_s.part
+ HDR base.ml3_s.part
+ HDR base.ml4_s.part
+ HDR
+ HDR
+ HDR
+ HDR evdev.m_s.part
+ HDR
+ HDR
+ HDR
+ HDR
+ HDR
+ HDR
+ HDR base.ml_c.part
+ HDR base.ml1_c.part
+ HDR base.m_t.part
+ HDR
+ HDR base.l1o_s.part
+ HDR base.l2o_s.part
+ HDR base.l3o_s.part
+ HDR base.l4o_s.part
+ HDR base.o_s.part
+ HDR base.o_c.part
+ HDR base.o_t.part
+]])
+
+fetch 'git'
diff --git a/pkg/xkeyboard-config/gen.rc b/pkg/xkeyboard-config/gen.rc
@@ -1,201 +0,0 @@
-data=(\
- compat/^(\
- accessx basic caps complete\
- iso9995\
- japan ledcaps\
- lednum ledscroll level5\
- misc mousekeys\
- olpc pc pc98 xfree86\
- xtest README\
- )\
- geometry/^(\
- digital_vndr/^(lk pc unix)\
- sgi_vndr/^(indigo indy O2)\
- amiga ataritt chicony\
- dell everex fujitsu\
- hhk hp keytronic kinesis\
- macintosh microsoft nec nokia\
- northgate pc sanwa sony thinkpad\
- sun teck steelseries typematrix winbook README\
- )\
- keycodes/^(\
- digital_vndr/^(lk pc)\
- sgi_vndr/^(indigo indy iris)\
- aliases\
- amiga\
- ataritt\
- empty\
- evdev\
- fujitsu\
- hp\
- ibm\
- jolla\
- macintosh\
- olpc\
- sony\
- sun\
- xfree86\
- xfree98\
- README\
- )\
- rules/^(\
- xfree98\
- xkb.dtd\
- README\
- )\
- symbols/^(\
- digital_vndr/^(lk pc us vt)\
- fujitsu_vndr/^(jp us)\
- hp_vndr/^(us)\
- jolla_vndr/^(sbj)\
- macintosh_vndr/^(\
- apple ch de dk\
- fi fr\
- gb is it jp\
- latam nl no pt\
- se us\
- )\
- nec_vndr/^(jp)\
- nokia_vndr/^(rx-44 rx-51 su-8w)\
- sgi_vndr/^(jp)\
- sharp_vndr/^(sl-c3x00 ws003sh ws007sh ws011sh ws020sh)\
- sony_vndr/^(us)\
- sun_vndr/^(\
- ara be br ca ch\
- cz de dk ee es\
- fi fr gb gr it\
- jp kr lt lv nl\
- no pl pt ro ru\
- se sk solaris tr\
- tw ua us\
- )\
- xfree68_vndr/^(amiga ataritt)\
- af al am apl\
- ara at au az\
- ba bd be\
- bg br brai\
- bt bw by\
- ca cd ch\
- cm cn cz\
- de dk dz\
- ee es et epo eu\
- fi fo fr\
- gb ge gh gn\
- gr hr hu\
- id ie il\
- in iq\
- ir is it\
- jp\
- ke kg kh\
- kr kz\
- la latam latin\
- lk lt lv\
- ma mao md me\
- mk ml mm\
- mn mt mv my\
- ng nl no np\
- parens pc ph pk pl pt\
- ro rs ru\
- se si sk sn\
- sy th\
- terminate tg\
- tj tm tr tw tz\
- ua us uz vn\
- za\
- altwin capslock compose ctrl empty eurosign rupeesign group inet\
- keypad kpdl level3 level5 nbsp olpc shift srvr_ctrl typo\
- )\
- types/^(\
- basic cancel caps\
- complete default extra\
- iso9995 level5 mousekeys nokia numpad\
- pc README\
- )\
-)
-for(f in $data) file share/xkb/$f '$srcdir'/$f 644
-
-rule merge 'HDR=$srcdir/rules/HDR ./$srcdir/rules/merge.sh $out.tmp $in && mv $out.tmp $out'
-fn merge {
- out='$outdir'/$1
- shift
- build $out merge '$srcdir'/rules/$* '|' '$srcdir'/rules/^(HDR merge.sh)
-}
-
-merge base\
- base.hdr.part base.lists.part\
- base.lists.base.part\
- HDR base.m_k.part\
- HDR base.l1_k.part\
- HDR base.l_k.part\
- HDR\
- HDR base.ml_g.part\
- HDR base.m_g.part\
- HDR base.mlv_s.part\
- HDR base.ml_s.part\
- HDR base.ml1_s.part\
- HDR\
- HDR base.ml2_s.part\
- HDR base.ml3_s.part\
- HDR base.ml4_s.part\
- HDR\
- HDR\
- HDR\
- HDR base.m_s.part\
- HDR base.ml_s1.part\
- HDR\
- HDR\
- HDR\
- HDR\
- HDR\
- HDR base.ml_c.part\
- HDR base.ml1_c.part\
- HDR base.m_t.part\
- HDR\
- HDR base.l1o_s.part\
- HDR base.l2o_s.part\
- HDR base.l3o_s.part\
- HDR base.l4o_s.part\
- HDR base.o_s.part\
- HDR base.o_c.part\
- HDR base.o_t.part
-merge evdev\
- base.hdr.part base.lists.part\
- evdev.lists.part\
- HDR evdev.m_k.part\
- HDR base.l1_k.part\
- HDR base.l_k.part\
- HDR\
- HDR base.ml_g.part\
- HDR base.m_g.part\
- HDR base.mlv_s.part\
- HDR base.ml_s.part\
- HDR base.ml1_s.part\
- HDR\
- HDR base.ml2_s.part\
- HDR base.ml3_s.part\
- HDR base.ml4_s.part\
- HDR\
- HDR\
- HDR\
- HDR evdev.m_s.part\
- HDR\
- HDR\
- HDR\
- HDR\
- HDR\
- HDR\
- HDR base.ml_c.part\
- HDR base.ml1_c.part\
- HDR base.m_t.part\
- HDR\
- HDR base.l1o_s.part\
- HDR base.l2o_s.part\
- HDR base.l3o_s.part\
- HDR base.l4o_s.part\
- HDR base.o_s.part\
- HDR base.o_c.part\
- HDR base.o_t.part
-
-for(f in base evdev) file share/xkb/rules/$f '$outdir'/$f 644
-
-fetch git
diff --git a/pkg/xz/gen.lua b/pkg/xz/gen.lua
@@ -0,0 +1,143 @@
+cflags{
+ '-D HAVE_CONFIG_H',
+ '-I $dir',
+ '-I $srcdir/src/common',
+ '-I $srcdir/src/liblzma/api',
+ '-I $srcdir/src/liblzma/check',
+ '-I $srcdir/src/liblzma/common',
+ '-I $srcdir/src/liblzma/delta',
+ '-I $srcdir/src/liblzma/lz',
+ '-I $srcdir/src/liblzma/lzma',
+ '-I $srcdir/src/liblzma/rangecoder',
+ '-I $srcdir/src/liblzma/simple',
+ '-I include',
+}
+
+lib('liblzma.a', [[src/(
+ common/(
+ tuklib_physmem.c
+ tuklib_cpucores.c
+ )
+ liblzma/(
+ check/(
+ crc32_tablegen.c
+ crc64_tablegen.c
+ check.c
+ crc32_table.c
+ crc32_fast.c
+ crc64_table.c
+ crc64_fast.c
+ sha256.c
+ )
+ common/(
+ common.c
+ block_util.c
+ easy_preset.c
+ filter_common.c
+ hardware_physmem.c
+ index.c
+ stream_flags_common.c
+ vli_size.c
+
+ hardware_cputhreads.c
+
+ alone_encoder.c
+ block_buffer_encoder.c
+ block_encoder.c
+ block_header_encoder.c
+ easy_buffer_encoder.c
+ easy_encoder.c
+ easy_encoder_memusage.c
+ filter_buffer_encoder.c
+ filter_encoder.c
+ filter_flags_encoder.c
+ index_encoder.c
+ stream_buffer_encoder.c
+ stream_encoder.c
+ stream_flags_encoder.c
+ vli_encoder.c
+
+ outqueue.c
+ stream_encoder_mt.c
+
+ alone_decoder.c
+ auto_decoder.c
+ block_buffer_decoder.c
+ block_decoder.c
+ block_header_decoder.c
+ easy_decoder_memusage.c
+ filter_buffer_decoder.c
+ filter_decoder.c
+ filter_flags_decoder.c
+ index_decoder.c
+ index_hash.c
+ stream_buffer_decoder.c
+ stream_decoder.c
+ stream_flags_decoder.c
+ vli_decoder.c
+ )
+ delta/(
+ delta_common.c
+ delta_encoder.c
+ delta_decoder.c
+ )
+ lz/(
+ lz_encoder.c
+ lz_encoder_mf.c
+ lz_decoder.c
+ )
+ lzma/(
+ lzma_encoder_presets.c
+ lzma_encoder.c
+ lzma_encoder_optimum_fast.c
+ lzma_encoder_optimum_normal.c
+ fastpos_table.c
+ lzma_decoder.c
+ lzma2_encoder.c
+ lzma2_decoder.c
+ )
+ rangecoder/price_table.c
+ simple/(
+ simple_coder.c
+ simple_encoder.c
+ simple_decoder.c
+ x86.c
+ powerpc.c
+ ia64.c
+ arm.c
+ armthumb.c
+ sparc.c
+ )
+ )
+)]])
+
+exe('xz', [[src/(
+ xz/(
+ args.c
+ coder.c
+ file_io.c
+ hardware.c
+ main.c
+ message.c
+ mytime.c
+ options.c
+ signals.c
+ suffix.c
+ util.c
+ list.c
+ )
+ common/(
+ tuklib_open_stdxxx.c
+ tuklib_progname.c
+ tuklib_exit.c
+ tuklib_mbstr_width.c
+ tuklib_mbstr_fw.c
+ )
+) liblzma.a]])
+
+file('bin/xz', '755', '$outdir/xz')
+man{'src/xz/xz.1'}
+sym('bin/unxz', 'xz')
+sym('bin/xzcat', 'xz')
+
+fetch 'git'
diff --git a/pkg/xz/gen.rc b/pkg/xz/gen.rc
@@ -1,141 +0,0 @@
-cflags\
- -D HAVE_CONFIG_H\
- -I '$dir' \
- -I '$srcdir'/src/common\
- -I '$srcdir'/src/liblzma/api\
- -I '$srcdir'/src/liblzma/check\
- -I '$srcdir'/src/liblzma/common\
- -I '$srcdir'/src/liblzma/delta\
- -I '$srcdir'/src/liblzma/lz\
- -I '$srcdir'/src/liblzma/lzma\
- -I '$srcdir'/src/liblzma/rangecoder\
- -I '$srcdir'/src/liblzma/simple\
- -I include
-
-lib liblzma.a src/^(\
- common/^(\
- tuklib_physmem.c\
- tuklib_cpucores.c\
- )\
- liblzma/^(\
- check/^(\
- crc32_tablegen.c\
- crc64_tablegen.c\
- check.c\
- crc32_table.c\
- crc32_fast.c\
- crc64_table.c\
- crc64_fast.c\
- sha256.c\
- )\
- common/^(\
- common.c\
- block_util.c\
- easy_preset.c\
- filter_common.c\
- hardware_physmem.c\
- index.c\
- stream_flags_common.c\
- vli_size.c\
- \
- hardware_cputhreads.c\
- \
- alone_encoder.c\
- block_buffer_encoder.c\
- block_encoder.c\
- block_header_encoder.c\
- easy_buffer_encoder.c\
- easy_encoder.c\
- easy_encoder_memusage.c\
- filter_buffer_encoder.c\
- filter_encoder.c\
- filter_flags_encoder.c\
- index_encoder.c\
- stream_buffer_encoder.c\
- stream_encoder.c\
- stream_flags_encoder.c\
- vli_encoder.c\
- \
- outqueue.c\
- stream_encoder_mt.c\
- \
- alone_decoder.c\
- auto_decoder.c\
- block_buffer_decoder.c\
- block_decoder.c\
- block_header_decoder.c\
- easy_decoder_memusage.c\
- filter_buffer_decoder.c\
- filter_decoder.c\
- filter_flags_decoder.c\
- index_decoder.c\
- index_hash.c\
- stream_buffer_decoder.c\
- stream_decoder.c\
- stream_flags_decoder.c\
- vli_decoder.c\
- )\
- delta/^(\
- delta_common.c\
- delta_encoder.c\
- delta_decoder.c\
- )\
- lz/^(\
- lz_encoder.c\
- lz_encoder_mf.c\
- lz_decoder.c\
- )\
- lzma/^(\
- lzma_encoder_presets.c\
- lzma_encoder.c\
- lzma_encoder_optimum_fast.c\
- lzma_encoder_optimum_normal.c\
- fastpos_table.c\
- lzma_decoder.c\
- lzma2_encoder.c\
- lzma2_decoder.c\
- )\
- rangecoder/price_table.c\
- simple/^(\
- simple_coder.c\
- simple_encoder.c\
- simple_decoder.c\
- x86.c\
- powerpc.c\
- ia64.c\
- arm.c\
- armthumb.c\
- sparc.c\
- )\
- )\
-)
-
-exe xz src/^(\
- xz/^(\
- args.c\
- coder.c\
- file_io.c\
- hardware.c\
- main.c\
- message.c\
- mytime.c\
- options.c\
- signals.c\
- suffix.c\
- util.c\
- list.c\
- )\
- common/^(\
- tuklib_open_stdxxx.c\
- tuklib_progname.c\
- tuklib_exit.c\
- tuklib_mbstr_width.c\
- tuklib_mbstr_fw.c\
- )\
-) liblzma.a
-
-file bin/xz '$outdir'/xz 755
-man -d src/xz 1 xz.1
-for(alias in unxz xzcat) sym bin/$alias xz
-
-fetch git
diff --git a/pkg/youtube-dl/gen.lua b/pkg/youtube-dl/gen.lua
@@ -0,0 +1,6 @@
+file('bin/youtube-dl', '755', '$srcdir/bin/youtube-dl')
+for f in iterlines('pylibs.txt') do
+ file('lib/python3.6/'..f, '644', '$srcdir/'..f)
+end
+
+fetch 'git'
diff --git a/pkg/youtube-dl/gen.rc b/pkg/youtube-dl/gen.rc
@@ -1,7 +0,0 @@
-file bin/youtube-dl '$srcdir'/bin/youtube-dl 755
-pylibs=`{grep -v '^#' pylibs.txt}
-for(f in $pylibs)
- file lib/python3.6/$f '$srcdir'/$f 644
-
-gen_inputs='$dir'/pylibs.txt
-fetch git
diff --git a/pkg/zlib/gen.lua b/pkg/zlib/gen.lua
@@ -0,0 +1,31 @@
+cflags{
+ '-D HAVE_HIDDEN',
+ '-D HAVE_STDARG_H',
+ '-D HAVE_UNISTD_H',
+ '-D _LARGEFILE64_SOURCE',
+}
+
+lib('libz.a', {
+ 'adler32.c',
+ 'crc32.c',
+ 'deflate.c',
+ 'infback.c',
+ 'inffast.c',
+ 'inflate.c',
+ 'inftrees.c',
+ 'trees.c',
+ 'zutil.c',
+
+ 'compress.c',
+ 'uncompr.c',
+ 'gzclose.c',
+ 'gzlib.c',
+ 'gzread.c',
+ 'gzwrite.c',
+})
+file('lib/libz.a', '644', '$outdir/libz.a')
+
+pkg.hdrs = copy('$outdir/include', '$srcdir', {'zlib.h', 'zconf.h'})
+pkg.hdrs.install = true
+
+fetch 'git'
diff --git a/pkg/zlib/gen.rc b/pkg/zlib/gen.rc
@@ -1,33 +0,0 @@
-cflags\
- -D HAVE_HIDDEN\
- -D HAVE_STDARG_H\
- -D HAVE_UNISTD_H\
- -D _LARGEFILE64_SOURCE
-
-lib libz.a\
- adler32.c\
- crc32.c\
- deflate.c\
- infback.c\
- inffast.c\
- inflate.c\
- inftrees.c\
- trees.c\
- zutil.c\
- \
- compress.c\
- uncompr.c\
- gzclose.c\
- gzlib.c\
- gzread.c\
- gzwrite.c
-file lib/libz.a '$outdir'/libz.a 644
-
-hdrs=(zlib.h zconf.h)
-for(hdr in $hdrs) {
- build '$outdir'/include/$hdr copy '$srcdir'/$hdr
- file include/$hdr '$srcdir'/$hdr 644
-}
-phony headers '$outdir'/include/$hdrs
-
-fetch git
diff --git a/rules.ninja b/rules.ninja
@@ -1,5 +1,5 @@
rule gen
- command = rc ./setup.rc $dir
+ command = lua setup.lua $dir
generator = 1
# toolchain
diff --git a/sets.lua b/sets.lua
@@ -0,0 +1,74 @@
+return {
+ core={
+ 'awk',
+ 'bc',
+ 'bzip2',
+ 'curl',
+ 'e2fsprogs',
+ 'git',
+ 'iproute2',
+ 'kbd',
+ 'libressl',
+ 'loksh',
+ 'lua',
+ 'mandoc',
+ 'openbsd',
+ 'openntpd',
+ 'openssh',
+ 'perp',
+ 'pigz',
+ 'plan9port',
+ 'samurai',
+ 'sbase',
+ 'scron',
+ 'sdhcp',
+ 'sinit',
+ 'skeleton',
+ 'tz',
+ 'ubase',
+ 'util-linux',
+ 'xz',
+ },
+ extra={
+ 'file',
+ 'less',
+ 'libfuse',
+ 'ncurses',
+ 'the_silver_searcher',
+ 'unzip',
+ 'vis',
+ },
+ devel={
+ 'make',
+ 'qbe',
+ 'nasm',
+ 'scc',
+ 'strace',
+ 'mc',
+ 'man-pages-posix',
+ },
+ media={
+ 'alsa-utils',
+ 'ffmpeg',
+ 'mpv',
+ 'youtube-dl',
+ },
+ net={
+ 'hostap',
+ 'ii',
+ 'msmtp',
+ 'nginx',
+ 'sshfs',
+ 'transmission',
+ },
+ desktop={
+ 'adobe-source-fonts',
+ 'dmenu',
+ 'netsurf',
+ 'st',
+ 'swc',
+ 'terminus-font',
+ 'velox',
+ 'xkeyboard-config',
+ },
+}
diff --git a/sets.rc b/sets.rc
@@ -1,72 +0,0 @@
-core=(\
- awk\
- bc\
- bzip2\
- curl\
- e2fsprogs\
- git\
- iproute2\
- kbd\
- libressl\
- loksh\
- lua\
- mandoc\
- openbsd\
- openntpd\
- openssh\
- perp\
- pigz\
- plan9port\
- samurai\
- sbase\
- scron\
- sdhcp\
- sinit\
- skeleton\
- tz\
- ubase\
- util-linux\
- xz\
-)
-extra=(\
- file\
- less\
- libfuse\
- ncurses\
- the_silver_searcher\
- unzip\
- vis\
-)
-devel=(\
- make\
- qbe\
- nasm\
- scc\
- strace\
- mc\
- man-pages-posix\
-)
-media=(\
- alsa-utils\
- ffmpeg\
- mpv\
- youtube-dl\
-)
-net=(\
- hostap\
- ii\
- msmtp\
- nginx\
- sshfs\
- transmission\
-)
-desktop=(\
- adobe-source-fonts\
- dmenu\
- netsurf\
- st\
- swc\
- terminus-font\
- velox\
- xkeyboard-config\
-)
diff --git a/setup.lua b/setup.lua
@@ -0,0 +1,97 @@
+#!/bin/lua
+
+if not os.execute('test -f config.lua') then
+ os.execute('cp config.def.lua config.lua')
+end
+
+dofile 'ninja.lua'
+config = dofile 'config.lua'
+
+local recurse = not arg[1]
+
+function subgen(dir)
+ local file = '$dir/'..dir..'/local.ninja'
+ subninja(file)
+ table.insert(pkg.inputs.ninja, '$dir/'..dir..'/ninja')
+ table.insert(pkg.inputs.index, '$outdir/'..dir..'/root.index')
+ table.insert(pkg.inputs.perms, '$outdir/'..dir..'/root.perms')
+ local cmd = string.format('test -f %s/%s/local.ninja', pkg.dir, dir)
+ if recurse or not os.execute(cmd) then
+ local oldpkg, oldout = pkg, io.output()
+ if pkg.dir ~= '.' then
+ dir = pkg.dir..'/'..dir
+ end
+ gen(dir)
+ pkg = oldpkg
+ io.output(oldout)
+ end
+end
+
+function gen(dir)
+ pkg={
+ name=dir:match('[^/]*$'),
+ dir=dir,
+ inputs={
+ perms={},
+ index={},
+ gen={
+ 'setup.lua',
+ 'ninja.lua',
+ 'config.lua',
+ 'sets.lua',
+ '$dir/gen.lua',
+ },
+ ninja={'$dir/local.ninja'},
+ fetch={},
+ },
+ perms={},
+ }
+ io.output(dir..'/local.ninja.tmp')
+ set('dir', dir)
+ set('outdir', '$builddir/$dir')
+ set('srcdir', '$dir/src')
+ dofile(dir..'/gen.lua')
+
+ build('gen', '$dir/local.ninja', {'|', pkg.inputs.gen})
+ phony('ninja', pkg.inputs.ninja)
+
+ if pkg.hdrs then
+ phony('headers', pkg.hdrs)
+ if pkg.hdrs.install then
+ for hdr in iterstrings(pkg.hdrs) do
+ if not hdr:hasprefix('$outdir/include/') then
+ error('header is not in $outdir/include: '..hdr)
+ end
+ file(hdr:sub(9), '644', hdr)
+ end
+ end
+ end
+ if pkg.deps then
+ phony('deps', pkg.deps)
+ end
+
+ if next(pkg.perms) then
+ table.sort(pkg.perms, function(s1, s2)
+ return s1:sub(8) < s2:sub(8)
+ end)
+ local f = io.open(dir..'/local.perms', 'w')
+ table.insert(pkg.perms, '')
+ f:write(table.concat(pkg.perms, '\n'))
+ table.insert(pkg.inputs.perms, '$dir/local.perms')
+ f:close()
+ end
+ if next(pkg.inputs.perms) then
+ build('mergeperms', '$outdir/root.perms', pkg.inputs.perms)
+ else
+ build('empty', '$outdir/root.perms')
+ end
+ if next(pkg.inputs.index) then
+ build('cat', '$outdir/root.index', pkg.inputs.index)
+ else
+ build('empty', '$outdir/root.index')
+ end
+ io.close()
+ os.rename(dir..'/local.ninja.tmp', dir..'/local.ninja')
+end
+
+gen(arg[1] or '.')
diff --git a/setup.rc b/setup.rc
@@ -1,83 +0,0 @@
-#!/bin/rc
-
-fn usage {
- echo 'usage: '$0' [dir]' >[1=2]
- exit 2
-}
-
-if(! ~ $#* 0 1) usage
-
-if(! [ -f config.rc ])
- cp config.def.rc config.rc
-. ./config.rc
-
-flag e +
-
-if(! [ -f config.ninja ])
- cp config.def.ninja config.ninja
-
-# call this after a command capture to ensure it succeeded
-fn checkstatus {}
-
-ifs='
-'
-
-. ./ninja.rc
-
-fn subgen {
- subninja '$dir'/$1/local.ninja
- ninja_inputs=($ninja_inputs '$dir'/$1/ninja)
- index_inputs=($index_inputs '$outdir'/$1/root.index)
- perms_inputs=($perms_inputs '$outdir'/$1/root.perms)
- if(~ $recurse 1 || ! [ -f $1/local.ninja ]) @ gen $1 &
- status=()
-}
-
-fn gen {
- pkg=`{basename $1}
- checkstatus
- if(~ $dir '' .) dir=$1
- if not dir=$dir/$1
-
- cd $1
-
- allsrcs=()
- tree_perms=()
- perms_inputs=()
- index_inputs=()
- gen_inputs=()
- ninja_inputs=()
-
- absdir=`{pwd}
- {
- set dir $dir
- if(~ $dir .) set outdir '$builddir'
- if not set outdir '$builddir/$dir'
-
- if([ -e rev ]) set srcdir '$dir'/src
-
- . $absdir/gen.rc
-
- build '$dir'/local.ninja gen '|' setup.rc config.rc sets.rc ninja.rc '$dir'/gen.rc $gen_inputs
- phony ninja '$dir'/local.ninja $ninja_inputs
-
- if(! ~ $#tree_perms 0) {
- printf '%s\n' $tree_perms | sort -k 2 >$absdir/local.perms
- perms_inputs=($perms_inputs '$dir'/local.perms)
- }
- if(~ $#perms_inputs 0) build '$outdir/root.perms' empty
- if not build '$outdir/root.perms' mergeperms $perms_inputs
- if(~ $#index_inputs 0) build '$outdir/root.index' empty
- if not build '$outdir/root.index' cat $index_inputs
- } >local.ninja.tmp
- mv $absdir/^(local.ninja.tmp local.ninja)
-
- echo 'generated '$dir >[1=2]
-
- wait
-}
-
-if(! ~ $#* 0) {gen $1 ; exit}
-
-recurse=1
-@ gen .
diff --git a/src/gen.lua b/src/gen.lua
@@ -0,0 +1,9 @@
+set('srcdir', '$dir')
+cflags{
+ '-Wall', '-Wextra', '-Wno-unused-parameter', '-pedantic',
+ '-std=c11',
+}
+
+file('libexec/applyperms', '755', exe('applyperms', {'applyperms.c'}))
+file('libexec/shutdown', '755', exe('shutdown', {'shutdown.c'}))
+file('bin/syslogd', '755', exe('syslogd', {'syslogd.c'}))