linux-qubasis
linux oasis port as a qubes template
git clone https://9o.is/git/linux-qubasis.git
commit 7bc9c222f4e35342649204f99318d9922fa5f894 parent a61e750b35ca1479dd3be3aba74408eee77d399e Author: Jul <jul@9o.is> Date: Fri, 7 Nov 2025 04:26:02 -0500 ninja prefix in build function Diffstat:
| M | ninja/functions.sh | | | 56 | ++++++++++++++------------------------------------------ |
| M | ninja/rules.ninja | | | 4 | ---- |
| M | pkg/awk/gen.sh | | | 30 | ++++++++++++++++++++++++++---- |
| M | pkg/e2fsprogs/gen.sh | | | 17 | +++++++---------- |
| M | pkg/libpng/gen.sh | | | 8 | ++++---- |
| M | pkg/linux-headers/gen.sh | | | 8 | +++----- |
| M | pkg/luaposix/gen.sh | | | 2 | +- |
| M | pkg/netbsd-curses/gen.sh | | | 2 | +- |
| M | pkg/pcre/gen.sh | | | 4 | ++-- |
| M | pkg/perp/gen.sh | | | 8 | ++++---- |
| M | pkg/probe/gen.sh | | | 4 | ++-- |
| M | pkg/rc/gen.sh | | | 4 | ++-- |
| M | pkg/sbase/gen.sh | | | 2 | +- |
| M | pkg/st/gen.sh | | | 6 | +++--- |
| M | pkg/util-linux/gen.sh | | | 8 | ++++---- |
| M | pkg/vis/gen.sh | | | 12 | ++++++------ |
| M | pkg/xz/gen.sh | | | 2 | +- |
| M | pkg/yajl/gen.sh | | | 25 | +++++++------------------ |
18 files changed, 88 insertions(+), 114 deletions(-)
diff --git a/ninja/functions.sh b/ninja/functions.sh @@ -32,11 +32,13 @@ rule() { } build() { - _v1=$1; shift - _v2=$1; shift - _vs= - for _v in $*; do _vs="$_vs $_v"; done + _v1=$1 + _ninja_prefix _v2 $outdir $2 + shift 2 + + _ninja_prefix _vs $srcdir $* _ninja_sync $_vs + printf 'build %s: %s %s\n' "$_v2" "$_v1" "$_vs" >> "$_ninja_writepath" } @@ -48,22 +50,6 @@ ldflags() { setv ldflags '$ldflags' "$*" } -yacc() { - _out=${2-} - - if [ ! $_out ]; then - _out=${1##*/} - _out=${_out%.*} - fi - - _ninja_prefix _src $srcdir $1 - _ninja_prefix _out $yaccdir $_out - - setv yaccdir $outdir/_yacc - build yacc "$_out.tab.c $_out.tab.h" $_src '|' $hostdir/yacc - bind yaccflags "-d -b $_out" -} - bin() { _fn=${1##*/} _out=$outdir/$_fn @@ -82,7 +68,7 @@ dir() { } sym() { - _ninja_fspec $2 sym 0777 0 0 $1 + _ninja_fspec $2 sym 0777 0 0 ./$1 } reg() { @@ -119,27 +105,23 @@ man() { fi _ninja_fspec $MANDIR/man$_sec/${_out##*/} reg 0644 0 0 $_out - build $_rule $_out $_src ${_rule_dep-} + build $_rule $_out $_src } exe() { _ninja_flush_exe _out=$1; shift - _ninja_prefix _out $outdir $_out - _ninja_prefix _srcs $srcdir $* - _ninja_build $_out - _ninja_buffer_exe="$_out $_srcs" + _ninja_buffer_build="$_ninja_buffer_build $outdir/$_out" + _ninja_buffer_exe="$_out $*" } lib() { _ninja_flush_lib _out=$1; shift - _ninja_prefix _out $outdir $_out - _ninja_prefix _srcs $srcdir $* - _ninja_build $_out - _ninja_buffer_lib="$_out $_srcs" + _ninja_buffer_build="$_ninja_buffer_build $outdir/$_out" + _ninja_buffer_lib="$_out $*" } dep() { @@ -334,7 +316,6 @@ _ninja_setv_init() { srcdir='$srcdir' rootdir='$rootdir' pkgdir='$pkgdir' - yaccdir='$yaccdir' objdir='$objdir' etcdir='$etcdir' @@ -363,7 +344,7 @@ _ninja_prefix() { for _v in $*; do case $_v in - \$*) ;; + \$* | \|* | /*) ;; *) _v=$_prefix/$_v;; esac @@ -386,15 +367,6 @@ _ninja_sync() { done } -_ninja_build() { - for _v in $*; do - case $_v in - \$outdir/*) - _ninja_buffer_build="$_ninja_buffer_build $_v" - esac - done -} - _ninja_fspec() { # path type mode uid gid src _ninja_buffer_fspec="$_ninja_buffer_fspec$PREFIX$1 $2 $3 ${4-0} ${5-0} ${6-}\n" @@ -490,7 +462,7 @@ _ninja_flush_lib() { if [ "$_objs" ]; then build ar $_out $_objs $_libs - build rsp $_out.d $_out $_libs + build rsp $_out.d $outdir/$_out $_libs fi } diff --git a/ninja/rules.ninja b/ninja/rules.ninja @@ -67,10 +67,6 @@ rule fspec-tar command = $hostdir/fspec-tar <$outdir/_fspec/ALL | zstd >$out description = FSPEC-TAR $out -rule yacc - command = $hostdir/yacc $yaccflags $in >/dev/null - description = YACC $out - rule fetch-curl command = rm -f $out && curl -L# -o $out $url description = FETCH CURL $out diff --git a/pkg/awk/gen.sh b/pkg/awk/gen.sh @@ -1,22 +1,44 @@ fetch git +setv yaccdir $outdir/_yacc +yaccdir='$yaccdir' + cflags " -std=c11 -I $srcdir + -I $yaccdir -D _XOPEN_SOURCE=700 -Wno-implicit-function-declaration -Wno-int-conversion -Wno-unused-parameter " -yacc awkgram.y -cflags -I $yaccdir -dep $yaccdir/awkgram.tab.h +rule yacc '$hostdir/yacc $yaccflags $in >/dev/null' +bind description 'YACC $out' rule maketab '$hostdir/maketab $in >$out' bind description 'MAKETAB $out' -build maketab $yaccdir/proctab.c $yaccdir/awkgram.tab.h '|' $hostdir/maketab +yacc() { + _out=${2-} + + if [ ! $_out ]; then + _out=${1##*/} + _out=${_out%.*} + fi + + build yacc "$yaccdir/$_out.tab.c $yaccdir/$_out.tab.h" $1 '|' $hostdir/yacc + bind yaccflags "-d -b $yaccdir/$_out" +} + +maketab() { + build maketab $1 $2 '|' $hostdir/maketab +} + +dep $yaccdir/awkgram.tab.h + +yacc awkgram.y +maketab $yaccdir/proctab.c $yaccdir/awkgram.tab.h host() { cflags -I $yaccdir diff --git a/pkg/e2fsprogs/gen.sh b/pkg/e2fsprogs/gen.sh @@ -19,7 +19,7 @@ cflags " -Wno-unused-parameter " -build cat $outdir/_include/config.h " +build cat _include/config.h " $pkgdir/probe/HAVE__THREAD_LOCAL $pkgdir/probe/SIZEOF_LONG $pkgdir/probe/SIZEOF_TIME_T @@ -34,10 +34,7 @@ setv subst " " subst() { - out=$outdir/$1 - in=$srcdir/$2 - - build sed $out $in + build sed $1 $2 bind expr '$subst' } @@ -48,9 +45,9 @@ substman() { } et() { - build awk $outdir/$2 $1 '|' $srcdir/lib/et/et_c.awk + build awk $2 $1 '|' lib/et/et_c.awk bind expr "-f $srcdir/lib/et/et_c.awk -v outfile=/dev/stdout outfn=${2##*/}" - build awk $outdir/$3 $1 '|' $srcdir/lib/et/et_c.awk + build awk $3 $1 '|' lib/et/et_c.awk bind expr "-f $srcdir/lib/et/et_h.awk -v outfile=/dev/stdout outfn=${3##*/}" } @@ -58,14 +55,14 @@ subst _et/ext2_err.et lib/ext2fs/ext2_err.et.in et $outdir/_et/ext2_err.et _c/ext2_err.c include/ext2fs/ext2_err.h et $srcdir/lib/support/prof_err.et _c/prof_err.c _include/support/prof_err.h -build copy $outdir/include/ext2fs/ext2_types.h $dir/ext2_types.h +build copy include/ext2fs/ext2_types.h $dir/ext2_types.h host() { exe gen_crc32ctable lib/ext2fs/gen_crc32ctable.c } rule gen_crc32ctable '$hostdir/gen_crc32ctable >$out' -build gen_crc32ctable $outdir/_include/crc32c_table.h '|' $hostdir/gen_crc32ctable +build gen_crc32ctable _include/crc32c_table.h '|' $hostdir/gen_crc32ctable include --prefix ext2fs $dir/ext2_types.h include $outdir/include/ext2fs/ext2_err.h @@ -260,7 +257,7 @@ exe resize2fs " $outdir/libcomm_err.a " -build awk $outdir/_c/default_profile.c $srcdir/misc/mke2fs.conf.in '|' $srcdir/misc/profile-to-c.awk +build awk _c/default_profile.c misc/mke2fs.conf.in '|' misc/profile-to-c.awk bind expr '-f $srcdir/misc/profile-to-c.awk' exe mke2fs " diff --git a/pkg/libpng/gen.sh b/pkg/libpng/gen.sh @@ -7,15 +7,15 @@ cflags " -isystem $pkgdir/zlib/include " -build awk $outdir/pnglibconf.tf4 '$srcdir/pngconf.h $srcdir/scripts/pnglibconf.dfa $srcdir/pngusr.dfa' '|' $srcdir/scripts/options.awk +build awk pnglibconf.tf4 pngconf.h scripts/pnglibconf.dfa pngusr.dfa '|' scripts/options.awk bind expr '-f $srcdir/scripts/options.awk out=/dev/stdout version=search' -build awk $outdir/pnglibconf.c $outdir/pnglibconf.tf4 +build awk pnglibconf.c $outdir/pnglibconf.tf4 '|' scripts/options.awk bind expr '-f $srcdir/scripts/options.awk out=/dev/stdout' -build cpp $outdir/pnglibconf.tf1 $outdir/pnglibconf.c '||' pkg/zlib/headers +build cpp pnglibconf.tf1 $outdir/pnglibconf.c '||' pkg/zlib/headers -build awk $outdir/include/pnglibconf.h $outdir/pnglibconf.tf1 +build awk include/pnglibconf.h $outdir/pnglibconf.tf1 bind expr '-f $srcdir/scripts/dfn.awk out=/dev/stdout' include " diff --git a/pkg/linux-headers/gen.sh b/pkg/linux-headers/gen.sh @@ -25,8 +25,7 @@ host() { uapi_headers() { while read -r src; do outfile=$outdir/include/${src#*/uapi/} - srcfile=$srcdir/$src - build header $outfile $srcfile '|' $dir/header.sed $hostdir/unifdef + build header $outfile $src '|' $dir/header.sed $hostdir/unifdef include $outfile done <$DIR/$1 } @@ -42,8 +41,7 @@ asm_headers() { unistd_header() { out=$outdir/include/asm/$1 - src=$srcdir/$2 - build awk $out $src '|' $dir/unistd.awk + build awk $out $2 '|' $dir/unistd.awk bind expr "-f $dir/unistd.awk -v arch=x86 -v file='$1' -v spec='${4-}' -v abi='$3'" include $out } @@ -55,7 +53,7 @@ uapi_headers base uapi_headers $linux_headers_arch asm_headers mandatory -build awk $outdir/include/linux/version.h $srcdir/Makefile '|' $dir/version.awk +build awk include/linux/version.h Makefile '|' $dir/version.awk bind expr '-f $dir/version.awk' include $outdir/include/linux/version.h diff --git a/pkg/luaposix/gen.sh b/pkg/luaposix/gen.sh @@ -14,7 +14,7 @@ cflags " dep lua/headers -build sed $outdir/version.lua $srcdir/lib/posix/version.lua.in +build sed version.lua lib/posix/version.lua.in bind expr '-e s,@package@,luaposix, -e s,@version2,36.2.1,' lib libluaposix.a " diff --git a/pkg/netbsd-curses/gen.sh b/pkg/netbsd-curses/gen.sh @@ -31,7 +31,7 @@ rule nbperf 'TOOL_NBPERF=$hostdir/nbperf $in >$out' bind description 'NBPERF $out' nbperf() { - build nbperf $outdir/$2 $srcdir/lib/libterminfo/$1 $srcdir/$3 '|' $hostdir/nbperf + build nbperf $2 lib/libterminfo/$1 $3 '|' $hostdir/nbperf dep $outdir/$2 } diff --git a/pkg/pcre/gen.sh b/pkg/pcre/gen.sh @@ -14,11 +14,11 @@ dep " $outdir/include/pcre.h " -build sed $outdir/include/pcre.h $srcdir/pcre.h.in +build sed include/pcre.h pcre.h.in bind expr '-e s,@PCRE_MAJOR@,8, -e s,@PCRE_MINOR@,43, -e s,@PCRE_PRERELEASE@,, -e s,@PCRE_DATE@,2019-02-23,' include $outdir/include/pcre.h -build copy $outdir/pcre_chartables.c $srcdir/pcre_chartables.c.dist +build copy pcre_chartables.c pcre_chartables.c.dist lib libpcre.a " pcre_byte_order.c diff --git a/pkg/perp/gen.sh b/pkg/perp/gen.sh @@ -32,13 +32,13 @@ host() { exe mksysstr lasagna/sysstr/mksysstr.c } -build outvec $outdir/_include/outvec_STDOUT.h '|' $hostdir/mk_outvec -build rlimit $outdir/_include/rlimit_defs.c.in '|' $hostdir/mk_rlimit +build outvec _include/outvec_STDOUT.h '|' $hostdir/mk_outvec +build rlimit _include/rlimit_defs.c.in '|' $hostdir/mk_rlimit -build sysstr $outdir/_include/sysstr_errno.c.in '|' $hostdir/mksysstr +build sysstr _include/sysstr_errno.c.in '|' $hostdir/mksysstr bind type errno -build sysstr $outdir/_include/sysstr_signo.c.in '|' $hostdir/mksysstr +build sysstr _include/sysstr_signo.c.in '|' $hostdir/mksysstr bind type signo dep " diff --git a/pkg/probe/gen.sh b/pkg/probe/gen.sh @@ -5,12 +5,12 @@ rule probe-size 'sh $dir/probe-size.sh $var $out $cc $cflags -c -x c -o /dev/nul bind description 'PROBE SIZE $var' probe() { - build probe $outdir/$1 $dir/$1 '|' $dir/probe.sh + build probe $1 $dir/$1 '|' $dir/probe.sh bind var $1 } probesize() { - build probe-size $outdir/$1 $dir/$1 '|' $dir/probe-size.sh + build probe-size $1 $dir/$1 '|' $dir/probe-size.sh bind var $1 } diff --git a/pkg/rc/gen.sh b/pkg/rc/gen.sh @@ -24,8 +24,8 @@ host() { exe mkstatval mkstatval.c } -build mksignal '$outdir/_include/sigmsgs.h $outdir/_c/sigmsgs.c' '|' $hostdir/mksignal -build mkstatval $outdir/_include/statval.h '|' $hostdir/mkstatval +build mksignal '_include/sigmsgs.h _c/sigmsgs.c' '|' $hostdir/mksignal +build mkstatval _include/statval.h '|' $hostdir/mkstatval dep " bestline/headers diff --git a/pkg/sbase/gen.sh b/pkg/sbase/gen.sh @@ -83,7 +83,7 @@ lib libutf.a " " rule getconf '$srcdir/scripts/getconf.sh >$out' -build getconf $outdir/include/getconf.h '|' $srcdir/scripts/getconf.sh +build getconf include/getconf.h '|' scripts/getconf.sh dep $outdir/include/getconf.h diff --git a/pkg/st/gen.sh b/pkg/st/gen.sh @@ -31,11 +31,11 @@ setv ldflags " rule tic '$hostdir/tic -x -o $out $in' bind description 'TIC $out' -build tic $outdir/terminfo $srcdir/st.info '|' $hostdir/tic +build tic terminfo st.info '|' $hostdir/tic exe st " - $srcdir/st.c - $srcdir/x.c + st.c + x.c " bin st diff --git a/pkg/util-linux/gen.sh b/pkg/util-linux/gen.sh @@ -21,15 +21,15 @@ cflags " -Wno-maybe-uninitialized " -build cat $outdir/internal/config.h " +build cat internal/config.h " $pkgdir/probe/HAVE__THREAD_LOCAL $dir/config.h " -build sed $outdir/internal/libsmartcols.h $srcdir/libsmartcols/src/libsmartcols.h.in +build sed internal/libsmartcols.h libsmartcols/src/libsmartcols.h.in bind expr 's,@LIBSMARTCOLS_VERSION@,$version,' -build sed $outdir/internal/libfdisk.h $srcdir/libfdisk/src/libfdisk.h.in +build sed internal/libfdisk.h libfdisk/src/libfdisk.h.in bind expr " -e s,@LIBFDISK_VERSION@,\$version, -e /@LIBFDISK_MAJOR_VERSION@/d @@ -37,7 +37,7 @@ bind expr " -e /@LIBFDISK_PATCH_VERSION@/d " -build sed $outdir/include/blkid/blkid.h $srcdir/libblkid/src/blkid.h.in +build sed include/blkid/blkid.h libblkid/src/blkid.h.in bind expr '-e /@LIBBLKID_VERSION@/d -e /@LIBBLKID_DATE@/d' include --prefix uuid libuuid/src/uuid.h diff --git a/pkg/vis/gen.sh b/pkg/vis/gen.sh @@ -25,7 +25,7 @@ cflags " -Wno-missing-field-initializers " -build copy $outdir/_include/config.h $srcdir/config.def.h +build copy _include/config.h config.def.h dep " $outdir/_include/config.h @@ -71,12 +71,12 @@ exe vis " exe vis-digraph vis-digraph.c exe vis-menu vis-menu.c -build copy $outdir/vis-complete $srcdir/vis-complete -build copy $outdir/vis-clipboard $srcdir/vis-clipboard -build copy $outdir/vis-open $srcdir/vis-open +build copy vis-complete vis-complete +build copy vis-clipboard vis-clipboard +build copy vis-open vis-open visman() { - build sed $outdir/_man/$1 $srcdir/man/$1 + build sed _man/$1 man/$1 bind expr 's,VERSION,$version,' man $outdir/_man/$1 } @@ -96,7 +96,7 @@ visman vis-menu.1 visman vis-open.1 for f in $(cat $DIR/lua.txt | xargs); do - build copy $outdir/lua/$f $srcdir/lua/$f + build copy lua/$f lua/$f reg $outdir/lua/$f /share/vis/$f done diff --git a/pkg/xz/gen.sh b/pkg/xz/gen.sh @@ -37,7 +37,7 @@ include --prefix lzma --src-prefix src/liblzma/api/lzma " vli.h " -build cat $outdir/config.h " +build cat config.h " $pkgdir/probe/HAVE_IMMINTRIN_H $pkgdir/probe/HAVE__MM_CLMULEPI64_SI128 $pkgdir/probe/HAVE__MM_MOVEMASK_EPI8 diff --git a/pkg/yajl/gen.sh b/pkg/yajl/gen.sh @@ -1,8 +1,8 @@ fetch git -YAJL_MAJOR=2 -YAJL_MINOR=1 -YAJL_MICRO=1 +setv major 2 +setv minor 1 +setv micro 1 cflags " -std=c99 @@ -13,27 +13,16 @@ cflags " dep $tgtdir/headers -yajl_headers() { - for v in $*; do - in=$srcdir/src/api/$v - out=$outdir/include/yajl/$v - build copy $out $in - sync $in - headers $out - done -} - -yajl_headers " +include --prefix yajl --src-prefix src/api " yajl_common.h yajl_gen.h yajl_parse.h yajl_tree.h " -build awk $outdir/include/yajl/yajl_version.h $srcdir/src/api/yajl_version.h.cmake '|' $dir/version.awk -bind expr "-f $dir/version.awk -v major=$YAJL_MAJOR -v minor=$YAJL_MINOR -v micro=$YAJL_MICRO" -sync $srcdir/src/api/yajl_version.h.cmake -headers $outdir/include/yajl/yajl_version.h +build awk include/yajl/yajl_version.h src/api/yajl_version.h.cmake '|' $dir/version.awk +bind expr '-f $dir/version.awk -v major=$major -v minor=$minor -v micro=$micro' +include $outdir/include/yajl/yajl_version.h lib yajl.a " src/yajl.c