logo

oasis

Own branch of Oasis Linux (upstream: <https://git.sr.ht/~mcf/oasis/>) git clone https://anongit.hacktivis.me/git/oasis.git
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:

M.gitignore2+-
M.travis.yml3++-
Aconfig.def.lua13+++++++++++++
Dconfig.def.rc19-------------------
Agen.lua15+++++++++++++++
Dgen.rc14--------------
Aninja.lua452+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dninja.rc246-------------------------------------------------------------------------------
Apkg/acme-client/gen.lua33+++++++++++++++++++++++++++++++++
Dpkg/acme-client/gen.rc29-----------------------------
Apkg/adobe-source-fonts/gen.lua50++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/adobe-source-fonts/gen.rc46----------------------------------------------
Apkg/alsa-lib/gen.lua165+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/alsa-lib/gen.rc151------------------------------------------------------------------------------
Apkg/alsa-utils/gen.lua22++++++++++++++++++++++
Dpkg/alsa-utils/gen.rc21---------------------
Apkg/awk/gen.lua29+++++++++++++++++++++++++++++
Dpkg/awk/gen.rc25-------------------------
Apkg/bc/gen.lua16++++++++++++++++
Dpkg/bc/gen.rc12------------
Apkg/bearssl/gen.lua276+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/bearssl/gen.rc273-------------------------------------------------------------------------------
Apkg/blind/gen.lua64++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/blind/gen.rc65-----------------------------------------------------------------
Apkg/bzip2/gen.lua18++++++++++++++++++
Dpkg/bzip2/gen.rc10----------
Apkg/curl/gen.lua122+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/curl/gen.rc107-------------------------------------------------------------------------------
Apkg/discount/gen.lua40++++++++++++++++++++++++++++++++++++++++
Dpkg/discount/gen.rc35-----------------------------------
Apkg/dmenu/gen.lua41+++++++++++++++++++++++++++++++++++++++++
Dpkg/dmenu/gen.rc32--------------------------------
Apkg/dosfstools/gen.lua23+++++++++++++++++++++++
Dpkg/dosfstools/gen.rc21---------------------
Apkg/e2fsprogs/gen.lua226+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/e2fsprogs/gen.rc207-------------------------------------------------------------------------------
Apkg/efibootmgr/gen.lua15+++++++++++++++
Dpkg/efibootmgr/gen.rc13-------------
Apkg/efivar/gen.lua54++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/efivar/gen.rc41-----------------------------------------
Apkg/expat/gen.lua18++++++++++++++++++
Dpkg/expat/gen.rc14--------------
Apkg/farbfeld/gen.lua23+++++++++++++++++++++++
Dpkg/farbfeld/gen.rc25-------------------------
Apkg/ffmpeg/gen.lua342+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/ffmpeg/gen.rc258-------------------------------------------------------------------------------
Dpkg/ffmpeg/sources.awk14--------------
Apkg/file/gen.lua61+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/file/gen.rc59-----------------------------------------------------------
Apkg/fontconfig/gen.lua63+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/fontconfig/gen.rc58----------------------------------------------------------
Apkg/freetype/gen.lua51+++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/freetype/gen.rc46----------------------------------------------
Apkg/fribidi/gen.lua84+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/fribidi/gen.rc63---------------------------------------------------------------
Apkg/gen.lua100+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/gen.rc100-------------------------------------------------------------------------------
Apkg/git/gen.lua410+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/git/gen.rc397-------------------------------------------------------------------------------
Apkg/hostap/gen.lua94+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/hostap/gen.rc88-------------------------------------------------------------------------------
Apkg/ii/gen.lua13+++++++++++++
Dpkg/ii/gen.rc13-------------
Apkg/iproute2/gen.lua60++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/iproute2/gen.rc54------------------------------------------------------
Apkg/jbig2dec/gen.lua14++++++++++++++
Dpkg/jbig2dec/gen.rc12------------
Apkg/kbd/gen.lua76++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/kbd/gen.rc75---------------------------------------------------------------------------
Apkg/less/gen.lua31+++++++++++++++++++++++++++++++
Dpkg/less/gen.rc29-----------------------------
Apkg/libass/gen.lua43+++++++++++++++++++++++++++++++++++++++++++
Dpkg/libass/gen.rc39---------------------------------------
Apkg/libdrm/gen.lua44++++++++++++++++++++++++++++++++++++++++++++
Dpkg/libdrm/gen.rc38--------------------------------------
Apkg/libevdev/gen.lua19+++++++++++++++++++
Dpkg/libevdev/gen.rc19-------------------
Apkg/libevent/gen.lua46++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/libevent/gen.rc38--------------------------------------
Apkg/libffi/gen.lua30++++++++++++++++++++++++++++++
Dpkg/libffi/gen.rc26--------------------------
Apkg/libfuse/gen.lua24++++++++++++++++++++++++
Dpkg/libfuse/gen.rc23-----------------------
Apkg/libinput/gen.lua40++++++++++++++++++++++++++++++++++++++++
Dpkg/libinput/gen.rc33---------------------------------
Apkg/libjpeg-turbo/gen.lua20++++++++++++++++++++
Dpkg/libjpeg-turbo/gen.rc20--------------------
Apkg/libnl/gen.lua61+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/libnl/gen.rc55-------------------------------------------------------
Apkg/libpciaccess/gen.lua22++++++++++++++++++++++
Dpkg/libpciaccess/gen.rc21---------------------
Apkg/libpng/gen.lua41+++++++++++++++++++++++++++++++++++++++++
Dpkg/libpng/gen.rc34----------------------------------
Apkg/libressl/gen.lua315+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/libressl/gen.rc312-------------------------------------------------------------------------------
Apkg/libtermkey/gen.lua13+++++++++++++
Dpkg/libtermkey/gen.rc9---------
Apkg/libusb/gen.lua14++++++++++++++
Dpkg/libusb/gen.rc14--------------
Apkg/libxkbcommon/gen.lua42++++++++++++++++++++++++++++++++++++++++++
Dpkg/libxkbcommon/gen.rc41-----------------------------------------
Apkg/loksh/gen.lua41+++++++++++++++++++++++++++++++++++++++++
Dpkg/loksh/gen.rc39---------------------------------------
Apkg/lpeg/gen.lua14++++++++++++++
Dpkg/lpeg/gen.rc8--------
Apkg/lua/gen.lua19+++++++++++++++++++
Dpkg/lua/gen.rc18------------------
Apkg/make/gen.lua22++++++++++++++++++++++
Dpkg/make/gen.rc20--------------------
Apkg/man-pages-posix/gen.lua2++
Dpkg/man-pages-posix/gen.rc4----
Apkg/mandoc/gen.lua116+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/mandoc/gen.rc90-------------------------------------------------------------------------------
Apkg/mc/gen.lua78++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/mc/gen.rc68--------------------------------------------------------------------
Apkg/mpv/gen.lua123+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/mpv/gen.rc94-------------------------------------------------------------------------------
Dpkg/mpv/sources.awk19-------------------
Apkg/msmtp/gen.lua33+++++++++++++++++++++++++++++++++
Dpkg/msmtp/gen.rc29-----------------------------
Apkg/mtdev/gen.lua11+++++++++++
Dpkg/mtdev/gen.rc5-----
Apkg/mupdf/gen.lua102+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/mupdf/gen.rc86-------------------------------------------------------------------------------
Mpkg/mupdf/sources.txt3+--
Apkg/nasm/gen.lua65+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/nasm/gen.rc63---------------------------------------------------------------
Apkg/ncurses/gen.lua166+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/ncurses/gen.rc128-------------------------------------------------------------------------------
Apkg/netsurf/gen.lua197+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/netsurf/gen.rc170-------------------------------------------------------------------------------
Apkg/netsurf/libcss/gen.lua191+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/netsurf/libcss/gen.rc185-------------------------------------------------------------------------------
Apkg/netsurf/libdom/gen.lua72++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/netsurf/libdom/gen.rc67-------------------------------------------------------------------
Apkg/netsurf/libhubbub/gen.lua38++++++++++++++++++++++++++++++++++++++
Dpkg/netsurf/libhubbub/gen.rc33---------------------------------
Apkg/netsurf/libnsbmp/gen.lua2++
Dpkg/netsurf/libnsbmp/gen.rc2--
Apkg/netsurf/libnsgif/gen.lua2++
Dpkg/netsurf/libnsgif/gen.rc2--
Apkg/netsurf/libnsutils/gen.lua7+++++++
Dpkg/netsurf/libnsutils/gen.rc2--
Apkg/netsurf/libparserutils/gen.lua20++++++++++++++++++++
Dpkg/netsurf/libparserutils/gen.rc18------------------
Apkg/netsurf/libsvgtiny/gen.lua21+++++++++++++++++++++
Dpkg/netsurf/libsvgtiny/gen.rc17-----------------
Apkg/netsurf/libwapcaplet/gen.lua2++
Dpkg/netsurf/libwapcaplet/gen.rc2--
Apkg/netsurf/nsgenbind/gen.lua23+++++++++++++++++++++++
Dpkg/netsurf/nsgenbind/gen.rc16----------------
Apkg/nginx/gen.lua161+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/nginx/gen.rc129-------------------------------------------------------------------------------
Dpkg/nginx/sources.awk13-------------
Apkg/openbsd/gen.lua99+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/openbsd/gen.rc96-------------------------------------------------------------------------------
Apkg/openntpd/gen.lua47+++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/openntpd/gen.rc45---------------------------------------------
Apkg/openssh/gen.lua129+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/openssh/gen.rc121-------------------------------------------------------------------------------
Apkg/pcre/gen.lua44++++++++++++++++++++++++++++++++++++++++++++
Dpkg/pcre/gen.rc41-----------------------------------------
Apkg/perp/gen.lua102+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/perp/gen.rc85-------------------------------------------------------------------------------
Apkg/pigz/gen.lua18++++++++++++++++++
Dpkg/pigz/gen.rc16----------------
Apkg/pixman/gen.lua61+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/pixman/gen.rc57---------------------------------------------------------
Apkg/plan9fonts/gen.lua5+++++
Dpkg/plan9fonts/gen.rc4----
Apkg/plan9port/gen.lua412+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/plan9port/gen.rc411-------------------------------------------------------------------------------
Apkg/python/gen.lua215+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/python/gen.rc192-------------------------------------------------------------------------------
Dpkg/python/modules.awk7-------
Apkg/qbe/gen.lua14++++++++++++++
Dpkg/qbe/gen.rc12------------
Apkg/samurai/gen.lua10++++++++++
Dpkg/samurai/gen.rc9---------
Apkg/sbase/gen.lua191+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/sbase/gen.rc196-------------------------------------------------------------------------------
Apkg/scc/gen.lua45+++++++++++++++++++++++++++++++++++++++++++++
Dpkg/scc/gen.rc42------------------------------------------
Apkg/scron/gen.lua11+++++++++++
Dpkg/scron/gen.rc10----------
Apkg/sdhcp/gen.lua10++++++++++
Dpkg/sdhcp/gen.rc9---------
Apkg/sinit/gen.lua6++++++
Dpkg/sinit/gen.rc7-------
Apkg/skeleton/gen.lua18++++++++++++++++++
Dpkg/skeleton/gen.rc18------------------
Apkg/sshfs/gen.lua20++++++++++++++++++++
Dpkg/sshfs/gen.rc16----------------
Apkg/st/gen.lua39+++++++++++++++++++++++++++++++++++++++
Dpkg/st/gen.rc32--------------------------------
Apkg/strace/gen.lua278+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/strace/gen.rc255-------------------------------------------------------------------------------
Apkg/swc/gen.lua104+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/swc/gen.rc95-------------------------------------------------------------------------------
Apkg/syslinux/gen.lua50++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/syslinux/gen.rc47-----------------------------------------------
Apkg/terminus-font/gen.lua12++++++++++++
Dpkg/terminus-font/gen.rc13-------------
Apkg/the_silver_searcher/gen.lua27+++++++++++++++++++++++++++
Dpkg/the_silver_searcher/gen.rc19-------------------
Apkg/transmission/gen.lua168+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/transmission/gen.rc154-------------------------------------------------------------------------------
Apkg/tz/gen.lua29+++++++++++++++++++++++++++++
Dpkg/tz/gen.rc26--------------------------
Apkg/ubase/gen.lua91+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/ubase/gen.rc95-------------------------------------------------------------------------------
Apkg/unzip/gen.lua17+++++++++++++++++
Dpkg/unzip/gen.rc15---------------
Apkg/utf8proc/gen.lua5+++++
Dpkg/utf8proc/gen.rc5-----
Apkg/util-linux/gen.lua125+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/util-linux/gen.rc108-------------------------------------------------------------------------------
Apkg/velox/gen.lua56++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/velox/gen.rc44--------------------------------------------
Apkg/vis/gen.lua66++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/vis/gen.rc64----------------------------------------------------------------
Apkg/wayland-protocols/gen.lua14++++++++++++++
Dpkg/wayland-protocols/gen.rc10----------
Apkg/wayland/gen.lua75+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/wayland/gen.rc60------------------------------------------------------------
Apkg/wld/gen.lua68++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/wld/gen.rc68--------------------------------------------------------------------
Apkg/xkeyboard-config/gen.lua205+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/xkeyboard-config/gen.rc201-------------------------------------------------------------------------------
Apkg/xz/gen.lua143+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/xz/gen.rc141-------------------------------------------------------------------------------
Apkg/youtube-dl/gen.lua6++++++
Dpkg/youtube-dl/gen.rc7-------
Apkg/zlib/gen.lua31+++++++++++++++++++++++++++++++
Dpkg/zlib/gen.rc33---------------------------------
Mrules.ninja2+-
Asets.lua74++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dsets.rc72------------------------------------------------------------------------
Asetup.lua97+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dsetup.rc83-------------------------------------------------------------------------------
Asrc/gen.lua9+++++++++
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'}))