hare

The Hare programming language
git clone https://git.torresjrjr.com/hare.git
Log | Files | Refs | README | LICENSE

commit 52d70815e4105c68a4518d62436d1ff4d8f53894
parent 96b0ea6d68cfe8251c2992285349d84341770fa8
Author: Drew DeVault <sir@cmpwn.com>
Date:   Sun, 24 Oct 2021 13:00:47 +0200

stdlib.mk: add platform-specific module versions

This allows us to specify the set of supported platforms for each
module, and generate different versions of the module for different
platforms, possibly using different lists of source files.

Signed-off-by: Drew DeVault <sir@cmpwn.com>

Diffstat:
Mscripts/gen-stdlib | 242+++++++++++++++++++++++++++++++++++++++++++------------------------------------
Mscripts/gen-stdlib.sh | 65+++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------
Mstdlib.mk | 1930+++++++++++++++++++++++++++++++++++++++----------------------------------------
3 files changed, 1146 insertions(+), 1091 deletions(-)

diff --git a/scripts/gen-stdlib b/scripts/gen-stdlib @@ -15,20 +15,20 @@ srcdir="$(dirname "$0")" eval ". $srcdir/gen-stdlib.sh" gensrcs_rt() { - gen_srcs rt \ - '+$(PLATFORM)/abort.ha' \ - '+$(PLATFORM)/env.ha' \ - '+$(PLATFORM)/errno.ha' \ - '+$(PLATFORM)/types.ha' \ - '+$(PLATFORM)/segmalloc.ha' \ - '+$(PLATFORM)/platformstart.ha' \ - '+$(PLATFORM)/prctl.ha' \ - '+$(PLATFORM)/+$(ARCH).ha' \ - '+$(PLATFORM)/syscallno+$(ARCH).ha' \ - '+$(PLATFORM)/syscalls.ha' \ - '+$(PLATFORM)/signal.ha' \ - '+$(PLATFORM)/stat.ha' \ - '+$(PLATFORM)/socket.ha' \ + gen_srcs -plinux rt \ + '+linux/abort.ha' \ + '+linux/env.ha' \ + '+linux/errno.ha' \ + '+linux/types.ha' \ + '+linux/segmalloc.ha' \ + '+linux/platformstart.ha' \ + '+linux/prctl.ha' \ + '+linux/+$(ARCH).ha' \ + '+linux/syscallno+$(ARCH).ha' \ + '+linux/syscalls.ha' \ + '+linux/signal.ha' \ + '+linux/stat.ha' \ + '+linux/socket.ha' \ '+$(ARCH)/jmp.ha' \ '+$(ARCH)/backtrace.ha' \ 'types_arch+$(ARCH).ha' \ @@ -60,7 +60,7 @@ rt() { +test/run.ha \ +test/ztos.ha fi - gen_ssa rt + gen_ssa -plinux rt cat <<EOF \$($cache)/rt/start.o: \$(STDLIB)/rt/+\$(PLATFORM)/start+\$(ARCH).s @printf 'AS \t\$@\n' @@ -99,11 +99,11 @@ ${stdlib}_asm=\$($cache)/rt/syscall.o \\ @mkdir -p \$($cache)/rt @\$(AS) -o \$@ \$< -\$($cache)/rt/rt.a: \$($cache)/rt/rt.o \$(${stdlib}_asm) +\$($cache)/rt/rt-linux.a: \$($cache)/rt/rt-linux.o \$(${stdlib}_asm) @printf 'AR\t\$@\n' - @\$(AR) -csr \$@ \$($cache)/rt/rt.o \$(${stdlib}_asm) + @\$(AR) -csr \$@ \$($cache)/rt/rt-linux.o \$(${stdlib}_asm) -${stdlib}_rt=\$($cache)/rt/rt.a +${stdlib}_rt=\$($cache)/rt/rt-\$(PLATFORM).a hare_${stdlib}_deps+=\$(${stdlib}_rt) EOF @@ -180,10 +180,10 @@ crypto_math() { } crypto_random() { - gen_srcs crypto::random \ - '+$(PLATFORM).ha' \ + gen_srcs -plinux crypto::random \ + +linux.ha \ random.ha - gen_ssa crypto::random rt io errors + gen_ssa -plinux crypto::random rt io errors } gensrcs_crypto_sha256() { @@ -543,19 +543,19 @@ hash_fnv() { } gensrcs_io() { - gen_srcs io \ + gen_srcs -plinux io \ 'arch+$(ARCH).ha' \ + println+linux.ha \ + +linux/file.ha \ copy.ha \ drain.ha \ empty.ha \ filestream.ha \ handle.ha \ limit.ha \ - 'println+$(PLATFORM).ha' \ stream.ha \ tee.ha \ types.ha \ - '+$(PLATFORM)/file.ha' \ $* } @@ -569,47 +569,47 @@ io() { +test/limit.ha \ +test/stream.ha fi - gen_ssa io strings errors + gen_ssa -plinux io strings errors } iobus_io_uring() { - gen_srcs iobus::io_uring \ + gen_srcs -plinux iobus::io_uring \ bus.ha \ handle.ha \ ops.ha \ pool.ha \ types.ha - gen_ssa iobus::io_uring errors io linux::io_uring net::ip unix::poll + gen_ssa -plinux iobus::io_uring errors io linux::io_uring net::ip unix::poll } linux() { - gen_srcs linux \ + gen_srcs -plinux linux \ start.ha \ env.ha - gen_ssa linux format::elf + gen_ssa -plinux linux format::elf } linux_signalfd() { - gen_srcs linux::signalfd \ + gen_srcs -plinux linux::signalfd \ signalfd.ha - gen_ssa linux::signalfd errors + gen_ssa -plinux linux::signalfd errors } linux_io_uring() { - gen_srcs linux::io_uring \ + gen_srcs -plinux linux::io_uring \ cqe.ha \ queue.ha \ register.ha \ setup.ha \ sqe.ha \ uring.ha - gen_ssa linux::io_uring errors types + gen_ssa -plinux linux::io_uring errors types } linux_vdso() { - gen_srcs linux::vdso \ + gen_srcs -plinux linux::vdso \ vdso.ha - gen_ssa linux::vdso linux strings format::elf + gen_ssa -plinux linux::vdso linux strings format::elf } gensrcs_math() { @@ -619,7 +619,6 @@ gensrcs_math() { } math() { - printf '# math\n' if [ $testing -eq 0 ]; then gensrcs_math else @@ -629,16 +628,14 @@ math() { } net() { - printf '# net\n' - gen_srcs net \ - '+$(PLATFORM).ha' \ + gen_srcs -plinux net \ + +linux.ha \ errors.ha \ listener.ha - gen_ssa net io os strings net::ip errors rt fmt + gen_ssa -plinux net io os strings net::ip errors rt fmt } net_dial() { - printf '# net::dial\n' gen_srcs net::dial \ registry.ha \ dial.ha \ @@ -649,7 +646,6 @@ net_dial() { } net_dns() { - printf '# net::dns\n' gen_srcs net::dns \ decode.ha \ error.ha \ @@ -661,9 +657,9 @@ net_dns() { } gensrcs_net_ip() { - gen_srcs net::ip \ + gen_srcs -plinux net::ip \ ip.ha \ - '+$(PLATFORM).ha' \ + +linux.ha \ $* } @@ -675,35 +671,32 @@ net_ip() { gensrcs_net_ip \ +test.ha fi - gen_ssa net::ip bytes io strconv strings strio fmt + gen_ssa -plinux net::ip bytes io strconv strings strio fmt } net_tcp() { - printf '# net::tcp\n' - gen_srcs net::tcp \ - '+$(PLATFORM).ha' \ + gen_srcs -plinux net::tcp \ + +linux.ha \ listener.ha \ options.ha - gen_ssa net::tcp io net net::ip os rt + gen_ssa -plinux net::tcp io net net::ip os rt } net_udp() { - printf '# net::udp\n' - gen_srcs net::udp \ - '+$(PLATFORM).ha' \ + gen_srcs -plinux net::udp \ + +linux.ha \ options.ha - gen_ssa net::udp net net::ip errors rt os io + gen_ssa -plinux net::udp net net::ip errors rt os io } net_unix() { - printf '# net::unix\n' - gen_srcs net::unix \ - '+$(PLATFORM).ha' \ + gen_srcs -plinux net::unix \ + +linux.ha \ addr.ha \ dial.ha \ listener.ha \ options.ha - gen_ssa net::unix net errors os io strings types fmt net::dial + gen_ssa -plinux net::unix net errors os io strings types fmt net::dial } math_random() { @@ -713,23 +706,23 @@ math_random() { } os() { - gen_srcs os \ - '+$(PLATFORM)/environ.ha' \ - '+$(PLATFORM)/exit.ha' \ - '+$(PLATFORM)/dirfdfs.ha' \ - '+$(PLATFORM)/stdfd.ha' \ - '+$(PLATFORM)/fs.ha' \ + gen_srcs -plinux os \ + +linux/environ.ha \ + +linux/exit.ha \ + +linux/dirfdfs.ha \ + +linux/stdfd.ha \ + +linux/fs.ha \ fs.ha - gen_ssa os io strings types fs encoding::utf8 bytes bufio errors + gen_ssa -plinux os io strings types fs encoding::utf8 bytes bufio errors } os_exec() { - gen_srcs os::exec \ - 'exec+$(PLATFORM).ha' \ - 'process+$(PLATFORM).ha' \ + gen_srcs -plinux os::exec \ + exec+linux.ha \ + process+linux.ha \ types.ha \ cmd.ha - gen_ssa os::exec os strings fmt bytes path errors + gen_ssa -plinux os::exec os strings fmt bytes path errors } path() { @@ -817,19 +810,19 @@ strio() { gen_ssa strio io strings encoding::utf8 errors } +temp() { + gen_srcs -plinux temp +linux.ha + gen_ssa -plinux temp \ + crypto::random encoding::hex fs io os path strio fmt strings +} + time() { - gen_srcs time \ - '+$(PLATFORM)/functions.ha' \ - '+$(PLATFORM)/+$(ARCH).ha' \ + gen_srcs -plinux time \ + +linux/functions.ha \ + +linux/+'$(ARCH)'.ha \ arithm.ha \ types.ha - gen_ssa time linux::vdso -} - -temp() { - gen_srcs temp \ - '+$(PLATFORM).ha' - gen_ssa temp crypto::random encoding::hex fs io os path strio fmt strings + gen_ssa -plinux time linux::vdso } gensrcs_types() { @@ -854,13 +847,13 @@ types() { unix() { # XXX: getuid and setuid are probably platform-specific too - gen_srcs unix \ - '+$(PLATFORM)/nice.ha' \ - '+$(PLATFORM)/pipe.ha' \ - '+$(PLATFORM)/umask.ha' \ + gen_srcs -plinux unix \ + +linux/nice.ha \ + +linux/pipe.ha \ + +linux/umask.ha \ getuid.ha \ setuid.ha - gen_ssa unix errors fs + gen_ssa -plinux unix errors fs } unix_hosts() { @@ -878,9 +871,8 @@ unix_passwd() { } unix_poll() { - gen_srcs unix::poll \ - '+$(PLATFORM)'.ha - gen_ssa unix::poll rt errors time + gen_srcs -plinux unix::poll +linux.ha + gen_ssa -plinux unix::poll rt errors time } unix_resolvconf() { @@ -890,12 +882,12 @@ unix_resolvconf() { } unix_tty() { - gen_srcs unix::tty \ + gen_srcs -plinux unix::tty \ types.ha \ - '+$(PLATFORM)/isatty.ha' \ - '+$(PLATFORM)/open.ha' \ - '+$(PLATFORM)/winsize.ha' - gen_ssa unix::tty rt fs io os + +linux/isatty.ha \ + +linux/open.ha \ + +linux/winsize.ha + gen_ssa -plinux unix::tty rt fs io os } uuid() { @@ -906,6 +898,9 @@ uuid() { printf '# This file is generated by the gen-stdlib script, do not edit it by hand\n\n' +# List of modules and their supported platforms. Place a tab between the module +# and its platform list, and spaces between each supported platform. Omitting +# the platform list implies all platforms are supported. modules="ascii bufio bytes @@ -913,7 +908,7 @@ compress::flate compress::zlib crypto::blake2b crypto::math -crypto::random +crypto::random linux crypto::md5 crypto::sha1 crypto::sha256 @@ -945,47 +940,72 @@ hash::crc16 hash::crc32 hash::crc64 hash::fnv -io -iobus::io_uring -linux -linux::signalfd -linux::io_uring -linux::vdso +io linux +iobus::io_uring linux +linux linux +linux::signalfd linux +linux::io_uring linux +linux::vdso linux math -net +net linux net::dial net::dns -net::ip -net::tcp -net::udp -net::unix +net::ip linux +net::tcp linux +net::udp linux +net::unix linux math::random -os -os::exec +os linux +os::exec linux path slice sort strconv strings strio -temp -time +temp linux +time linux types -unix +unix linux unix::hosts unix::passwd -unix::poll +unix::poll linux unix::resolvconf -unix::tty +unix::tty linux uuid" stdlib() { rt + IFS=" +" for module in $modules; do - gen_lib "$module" + unset IFS + if [ -z "$(echo "$module" | cut -sf1)" ] + then + gen_lib "$module" + else + platforms="$(echo "$module" | cut -sf2-)" + module="$(echo "$module" | cut -sf1)" + for platform in $platforms + do + gen_lib -p "$platform" "$module" + done + fi + IFS=" +" done + IFS=" +" for module in $modules; do + unset IFS + if [ -n "$(echo "$module" | cut -sf1)" ] + then + module="$(echo "$module" | cut -sf1)" + fi "$(mod_file "$module")" + IFS=" +" done + unset IFS } genrules diff --git a/scripts/gen-stdlib.sh b/scripts/gen-stdlib.sh @@ -9,12 +9,29 @@ mod_var() { } gen_srcs() { + platform=any + while getopts p: name + do + case $name in + p) + platform="$OPTARG" + ;; + ?) + printf 'Invalid use of gen_srcs' >&2 + exit 1 + ;; + esac + done + shift $(($OPTIND - 1)) + mod="$1" + shift + path="$(mod_path "$mod")" var="$(mod_var "$mod")" - shift - printf '# %s\n' "$mod" - printf '%s_srcs= \\\n' "$var" + + printf '# %s (+%s)\n' "$mod" "$platform" + printf '%s_%s_srcs= \\\n' "$var" "$platform" while [ $# -ne 0 ] do if [ $# -eq 1 ] @@ -28,13 +45,29 @@ gen_srcs() { } gen_ssa() { + platform=any + while getopts p: name + do + case $name in + p) + platform="$OPTARG" + ;; + ?) + printf 'Invalid use of gen_srcs' >&2 + exit 1 + ;; + esac + done + shift $(($OPTIND - 1)) + mod="$1" + shift + path=$(mod_path "$mod") file=$(mod_file "$mod") var=$(mod_var "$mod") - shift - printf "\$($cache)/$path/$file.ssa: \$(${var}_srcs) \$(${stdlib}_rt)" + printf "\$($cache)/$path/$file-$platform.ssa: \$(${var}_${platform}_srcs) \$(${stdlib}_rt)" for dep in $* do printf ' $(%s)' "$(mod_var "$dep")" @@ -45,18 +78,34 @@ gen_ssa() { @printf 'HAREC \t\$@\n' @mkdir -p \$($cache)/$path @HARECACHE=\$($cache) \$(HAREC) \$($flags) -o \$@ -N$mod \\ - -t\$($cache)/$path/$file.td \$(${var}_srcs) + -t\$($cache)/$path/$file.td \$(${var}_${platform}_srcs) EOF } gen_lib() { - printf "# gen_lib $1\n" + platform=any + while getopts p: name + do + case $name in + p) + platform="$OPTARG" + ;; + ?) + printf 'Invalid use of gen_srcs' >&2 + exit 1 + ;; + esac + done + shift $(($OPTIND - 1)) + + printf "# gen_lib $1 ($platform)\n" + mod="$1" path=$(mod_path "$mod") file=$(mod_file "$mod") var=$(mod_var "$mod") - printf "%s=\$(%s)/%s/%s.o\n" "$var" "$cache" "$path" "$file" + printf "%s=\$(%s)/%s/%s-%s.o\n" "$var" "$cache" "$path" "$file" "$platform" printf 'hare_%s_deps+=$(%s)\n\n' "$stdlib" "$var" } diff --git a/stdlib.mk b/stdlib.mk @@ -1,21 +1,21 @@ # This file is generated by the gen-stdlib script, do not edit it by hand rtscript=$(STDLIB)/rt/hare.sc -# rt -stdlib_rt_srcs= \ - $(STDLIB)/rt/+$(PLATFORM)/abort.ha \ - $(STDLIB)/rt/+$(PLATFORM)/env.ha \ - $(STDLIB)/rt/+$(PLATFORM)/errno.ha \ - $(STDLIB)/rt/+$(PLATFORM)/types.ha \ - $(STDLIB)/rt/+$(PLATFORM)/segmalloc.ha \ - $(STDLIB)/rt/+$(PLATFORM)/platformstart.ha \ - $(STDLIB)/rt/+$(PLATFORM)/prctl.ha \ - $(STDLIB)/rt/+$(PLATFORM)/+$(ARCH).ha \ - $(STDLIB)/rt/+$(PLATFORM)/syscallno+$(ARCH).ha \ - $(STDLIB)/rt/+$(PLATFORM)/syscalls.ha \ - $(STDLIB)/rt/+$(PLATFORM)/signal.ha \ - $(STDLIB)/rt/+$(PLATFORM)/stat.ha \ - $(STDLIB)/rt/+$(PLATFORM)/socket.ha \ +# rt (+linux) +stdlib_rt_linux_srcs= \ + $(STDLIB)/rt/+linux/abort.ha \ + $(STDLIB)/rt/+linux/env.ha \ + $(STDLIB)/rt/+linux/errno.ha \ + $(STDLIB)/rt/+linux/types.ha \ + $(STDLIB)/rt/+linux/segmalloc.ha \ + $(STDLIB)/rt/+linux/platformstart.ha \ + $(STDLIB)/rt/+linux/prctl.ha \ + $(STDLIB)/rt/+linux/+$(ARCH).ha \ + $(STDLIB)/rt/+linux/syscallno+$(ARCH).ha \ + $(STDLIB)/rt/+linux/syscalls.ha \ + $(STDLIB)/rt/+linux/signal.ha \ + $(STDLIB)/rt/+linux/stat.ha \ + $(STDLIB)/rt/+linux/socket.ha \ $(STDLIB)/rt/+$(ARCH)/jmp.ha \ $(STDLIB)/rt/+$(ARCH)/backtrace.ha \ $(STDLIB)/rt/types_arch+$(ARCH).ha \ @@ -30,11 +30,11 @@ stdlib_rt_srcs= \ $(STDLIB)/rt/abort.ha \ $(STDLIB)/rt/start.ha -$(HARECACHE)/rt/rt.ssa: $(stdlib_rt_srcs) $(stdlib_rt) +$(HARECACHE)/rt/rt-linux.ssa: $(stdlib_rt_linux_srcs) $(stdlib_rt) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/rt @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nrt \ - -t$(HARECACHE)/rt/rt.td $(stdlib_rt_srcs) + -t$(HARECACHE)/rt/rt.td $(stdlib_rt_linux_srcs) $(HARECACHE)/rt/start.o: $(STDLIB)/rt/+$(PLATFORM)/start+$(ARCH).s @printf 'AS \t$@\n' @@ -73,326 +73,326 @@ $(HARECACHE)/rt/getfp.o: $(STDLIB)/rt/+$(ARCH)/getfp.s @mkdir -p $(HARECACHE)/rt @$(AS) -o $@ $< -$(HARECACHE)/rt/rt.a: $(HARECACHE)/rt/rt.o $(stdlib_asm) +$(HARECACHE)/rt/rt-linux.a: $(HARECACHE)/rt/rt-linux.o $(stdlib_asm) @printf 'AR\t$@\n' - @$(AR) -csr $@ $(HARECACHE)/rt/rt.o $(stdlib_asm) + @$(AR) -csr $@ $(HARECACHE)/rt/rt-linux.o $(stdlib_asm) -stdlib_rt=$(HARECACHE)/rt/rt.a +stdlib_rt=$(HARECACHE)/rt/rt-$(PLATFORM).a hare_stdlib_deps+=$(stdlib_rt) -# gen_lib ascii -stdlib_ascii=$(HARECACHE)/ascii/ascii.o +# gen_lib ascii (any) +stdlib_ascii=$(HARECACHE)/ascii/ascii-any.o hare_stdlib_deps+=$(stdlib_ascii) -# gen_lib bufio -stdlib_bufio=$(HARECACHE)/bufio/bufio.o +# gen_lib bufio (any) +stdlib_bufio=$(HARECACHE)/bufio/bufio-any.o hare_stdlib_deps+=$(stdlib_bufio) -# gen_lib bytes -stdlib_bytes=$(HARECACHE)/bytes/bytes.o +# gen_lib bytes (any) +stdlib_bytes=$(HARECACHE)/bytes/bytes-any.o hare_stdlib_deps+=$(stdlib_bytes) -# gen_lib compress::flate -stdlib_compress_flate=$(HARECACHE)/compress/flate/compress_flate.o +# gen_lib compress::flate (any) +stdlib_compress_flate=$(HARECACHE)/compress/flate/compress_flate-any.o hare_stdlib_deps+=$(stdlib_compress_flate) -# gen_lib compress::zlib -stdlib_compress_zlib=$(HARECACHE)/compress/zlib/compress_zlib.o +# gen_lib compress::zlib (any) +stdlib_compress_zlib=$(HARECACHE)/compress/zlib/compress_zlib-any.o hare_stdlib_deps+=$(stdlib_compress_zlib) -# gen_lib crypto::blake2b -stdlib_crypto_blake2b=$(HARECACHE)/crypto/blake2b/crypto_blake2b.o +# gen_lib crypto::blake2b (any) +stdlib_crypto_blake2b=$(HARECACHE)/crypto/blake2b/crypto_blake2b-any.o hare_stdlib_deps+=$(stdlib_crypto_blake2b) -# gen_lib crypto::math -stdlib_crypto_math=$(HARECACHE)/crypto/math/crypto_math.o +# gen_lib crypto::math (any) +stdlib_crypto_math=$(HARECACHE)/crypto/math/crypto_math-any.o hare_stdlib_deps+=$(stdlib_crypto_math) -# gen_lib crypto::random -stdlib_crypto_random=$(HARECACHE)/crypto/random/crypto_random.o +# gen_lib crypto::random (linux) +stdlib_crypto_random=$(HARECACHE)/crypto/random/crypto_random-linux.o hare_stdlib_deps+=$(stdlib_crypto_random) -# gen_lib crypto::md5 -stdlib_crypto_md5=$(HARECACHE)/crypto/md5/crypto_md5.o +# gen_lib crypto::md5 (any) +stdlib_crypto_md5=$(HARECACHE)/crypto/md5/crypto_md5-any.o hare_stdlib_deps+=$(stdlib_crypto_md5) -# gen_lib crypto::sha1 -stdlib_crypto_sha1=$(HARECACHE)/crypto/sha1/crypto_sha1.o +# gen_lib crypto::sha1 (any) +stdlib_crypto_sha1=$(HARECACHE)/crypto/sha1/crypto_sha1-any.o hare_stdlib_deps+=$(stdlib_crypto_sha1) -# gen_lib crypto::sha256 -stdlib_crypto_sha256=$(HARECACHE)/crypto/sha256/crypto_sha256.o +# gen_lib crypto::sha256 (any) +stdlib_crypto_sha256=$(HARECACHE)/crypto/sha256/crypto_sha256-any.o hare_stdlib_deps+=$(stdlib_crypto_sha256) -# gen_lib crypto::sha512 -stdlib_crypto_sha512=$(HARECACHE)/crypto/sha512/crypto_sha512.o +# gen_lib crypto::sha512 (any) +stdlib_crypto_sha512=$(HARECACHE)/crypto/sha512/crypto_sha512-any.o hare_stdlib_deps+=$(stdlib_crypto_sha512) -# gen_lib dirs -stdlib_dirs=$(HARECACHE)/dirs/dirs.o +# gen_lib dirs (any) +stdlib_dirs=$(HARECACHE)/dirs/dirs-any.o hare_stdlib_deps+=$(stdlib_dirs) -# gen_lib encoding::base64 -stdlib_encoding_base64=$(HARECACHE)/encoding/base64/encoding_base64.o +# gen_lib encoding::base64 (any) +stdlib_encoding_base64=$(HARECACHE)/encoding/base64/encoding_base64-any.o hare_stdlib_deps+=$(stdlib_encoding_base64) -# gen_lib encoding::hex -stdlib_encoding_hex=$(HARECACHE)/encoding/hex/encoding_hex.o +# gen_lib encoding::hex (any) +stdlib_encoding_hex=$(HARECACHE)/encoding/hex/encoding_hex-any.o hare_stdlib_deps+=$(stdlib_encoding_hex) -# gen_lib encoding::utf8 -stdlib_encoding_utf8=$(HARECACHE)/encoding/utf8/encoding_utf8.o +# gen_lib encoding::utf8 (any) +stdlib_encoding_utf8=$(HARECACHE)/encoding/utf8/encoding_utf8-any.o hare_stdlib_deps+=$(stdlib_encoding_utf8) -# gen_lib endian -stdlib_endian=$(HARECACHE)/endian/endian.o +# gen_lib endian (any) +stdlib_endian=$(HARECACHE)/endian/endian-any.o hare_stdlib_deps+=$(stdlib_endian) -# gen_lib errors -stdlib_errors=$(HARECACHE)/errors/errors.o +# gen_lib errors (any) +stdlib_errors=$(HARECACHE)/errors/errors-any.o hare_stdlib_deps+=$(stdlib_errors) -# gen_lib fmt -stdlib_fmt=$(HARECACHE)/fmt/fmt.o +# gen_lib fmt (any) +stdlib_fmt=$(HARECACHE)/fmt/fmt-any.o hare_stdlib_deps+=$(stdlib_fmt) -# gen_lib fnmatch -stdlib_fnmatch=$(HARECACHE)/fnmatch/fnmatch.o +# gen_lib fnmatch (any) +stdlib_fnmatch=$(HARECACHE)/fnmatch/fnmatch-any.o hare_stdlib_deps+=$(stdlib_fnmatch) -# gen_lib format::elf -stdlib_format_elf=$(HARECACHE)/format/elf/format_elf.o +# gen_lib format::elf (any) +stdlib_format_elf=$(HARECACHE)/format/elf/format_elf-any.o hare_stdlib_deps+=$(stdlib_format_elf) -# gen_lib format::ini -stdlib_format_ini=$(HARECACHE)/format/ini/format_ini.o +# gen_lib format::ini (any) +stdlib_format_ini=$(HARECACHE)/format/ini/format_ini-any.o hare_stdlib_deps+=$(stdlib_format_ini) -# gen_lib format::xml -stdlib_format_xml=$(HARECACHE)/format/xml/format_xml.o +# gen_lib format::xml (any) +stdlib_format_xml=$(HARECACHE)/format/xml/format_xml-any.o hare_stdlib_deps+=$(stdlib_format_xml) -# gen_lib fs -stdlib_fs=$(HARECACHE)/fs/fs.o +# gen_lib fs (any) +stdlib_fs=$(HARECACHE)/fs/fs-any.o hare_stdlib_deps+=$(stdlib_fs) -# gen_lib fs::mem -stdlib_fs_mem=$(HARECACHE)/fs/mem/fs_mem.o +# gen_lib fs::mem (any) +stdlib_fs_mem=$(HARECACHE)/fs/mem/fs_mem-any.o hare_stdlib_deps+=$(stdlib_fs_mem) -# gen_lib getopt -stdlib_getopt=$(HARECACHE)/getopt/getopt.o +# gen_lib getopt (any) +stdlib_getopt=$(HARECACHE)/getopt/getopt-any.o hare_stdlib_deps+=$(stdlib_getopt) -# gen_lib hare::ast -stdlib_hare_ast=$(HARECACHE)/hare/ast/hare_ast.o +# gen_lib hare::ast (any) +stdlib_hare_ast=$(HARECACHE)/hare/ast/hare_ast-any.o hare_stdlib_deps+=$(stdlib_hare_ast) -# gen_lib hare::lex -stdlib_hare_lex=$(HARECACHE)/hare/lex/hare_lex.o +# gen_lib hare::lex (any) +stdlib_hare_lex=$(HARECACHE)/hare/lex/hare_lex-any.o hare_stdlib_deps+=$(stdlib_hare_lex) -# gen_lib hare::module -stdlib_hare_module=$(HARECACHE)/hare/module/hare_module.o +# gen_lib hare::module (any) +stdlib_hare_module=$(HARECACHE)/hare/module/hare_module-any.o hare_stdlib_deps+=$(stdlib_hare_module) -# gen_lib hare::parse -stdlib_hare_parse=$(HARECACHE)/hare/parse/hare_parse.o +# gen_lib hare::parse (any) +stdlib_hare_parse=$(HARECACHE)/hare/parse/hare_parse-any.o hare_stdlib_deps+=$(stdlib_hare_parse) -# gen_lib hare::types -stdlib_hare_types=$(HARECACHE)/hare/types/hare_types.o +# gen_lib hare::types (any) +stdlib_hare_types=$(HARECACHE)/hare/types/hare_types-any.o hare_stdlib_deps+=$(stdlib_hare_types) -# gen_lib hare::unit -stdlib_hare_unit=$(HARECACHE)/hare/unit/hare_unit.o +# gen_lib hare::unit (any) +stdlib_hare_unit=$(HARECACHE)/hare/unit/hare_unit-any.o hare_stdlib_deps+=$(stdlib_hare_unit) -# gen_lib hare::unparse -stdlib_hare_unparse=$(HARECACHE)/hare/unparse/hare_unparse.o +# gen_lib hare::unparse (any) +stdlib_hare_unparse=$(HARECACHE)/hare/unparse/hare_unparse-any.o hare_stdlib_deps+=$(stdlib_hare_unparse) -# gen_lib hash -stdlib_hash=$(HARECACHE)/hash/hash.o +# gen_lib hash (any) +stdlib_hash=$(HARECACHE)/hash/hash-any.o hare_stdlib_deps+=$(stdlib_hash) -# gen_lib hash::adler32 -stdlib_hash_adler32=$(HARECACHE)/hash/adler32/hash_adler32.o +# gen_lib hash::adler32 (any) +stdlib_hash_adler32=$(HARECACHE)/hash/adler32/hash_adler32-any.o hare_stdlib_deps+=$(stdlib_hash_adler32) -# gen_lib hash::crc16 -stdlib_hash_crc16=$(HARECACHE)/hash/crc16/hash_crc16.o +# gen_lib hash::crc16 (any) +stdlib_hash_crc16=$(HARECACHE)/hash/crc16/hash_crc16-any.o hare_stdlib_deps+=$(stdlib_hash_crc16) -# gen_lib hash::crc32 -stdlib_hash_crc32=$(HARECACHE)/hash/crc32/hash_crc32.o +# gen_lib hash::crc32 (any) +stdlib_hash_crc32=$(HARECACHE)/hash/crc32/hash_crc32-any.o hare_stdlib_deps+=$(stdlib_hash_crc32) -# gen_lib hash::crc64 -stdlib_hash_crc64=$(HARECACHE)/hash/crc64/hash_crc64.o +# gen_lib hash::crc64 (any) +stdlib_hash_crc64=$(HARECACHE)/hash/crc64/hash_crc64-any.o hare_stdlib_deps+=$(stdlib_hash_crc64) -# gen_lib hash::fnv -stdlib_hash_fnv=$(HARECACHE)/hash/fnv/hash_fnv.o +# gen_lib hash::fnv (any) +stdlib_hash_fnv=$(HARECACHE)/hash/fnv/hash_fnv-any.o hare_stdlib_deps+=$(stdlib_hash_fnv) -# gen_lib io -stdlib_io=$(HARECACHE)/io/io.o +# gen_lib io (linux) +stdlib_io=$(HARECACHE)/io/io-linux.o hare_stdlib_deps+=$(stdlib_io) -# gen_lib iobus::io_uring -stdlib_iobus_io_uring=$(HARECACHE)/iobus/io_uring/iobus_io_uring.o +# gen_lib iobus::io_uring (linux) +stdlib_iobus_io_uring=$(HARECACHE)/iobus/io_uring/iobus_io_uring-linux.o hare_stdlib_deps+=$(stdlib_iobus_io_uring) -# gen_lib linux -stdlib_linux=$(HARECACHE)/linux/linux.o +# gen_lib linux (linux) +stdlib_linux=$(HARECACHE)/linux/linux-linux.o hare_stdlib_deps+=$(stdlib_linux) -# gen_lib linux::signalfd -stdlib_linux_signalfd=$(HARECACHE)/linux/signalfd/linux_signalfd.o +# gen_lib linux::signalfd (linux) +stdlib_linux_signalfd=$(HARECACHE)/linux/signalfd/linux_signalfd-linux.o hare_stdlib_deps+=$(stdlib_linux_signalfd) -# gen_lib linux::io_uring -stdlib_linux_io_uring=$(HARECACHE)/linux/io_uring/linux_io_uring.o +# gen_lib linux::io_uring (linux) +stdlib_linux_io_uring=$(HARECACHE)/linux/io_uring/linux_io_uring-linux.o hare_stdlib_deps+=$(stdlib_linux_io_uring) -# gen_lib linux::vdso -stdlib_linux_vdso=$(HARECACHE)/linux/vdso/linux_vdso.o +# gen_lib linux::vdso (linux) +stdlib_linux_vdso=$(HARECACHE)/linux/vdso/linux_vdso-linux.o hare_stdlib_deps+=$(stdlib_linux_vdso) -# gen_lib math -stdlib_math=$(HARECACHE)/math/math.o +# gen_lib math (any) +stdlib_math=$(HARECACHE)/math/math-any.o hare_stdlib_deps+=$(stdlib_math) -# gen_lib net -stdlib_net=$(HARECACHE)/net/net.o +# gen_lib net (linux) +stdlib_net=$(HARECACHE)/net/net-linux.o hare_stdlib_deps+=$(stdlib_net) -# gen_lib net::dial -stdlib_net_dial=$(HARECACHE)/net/dial/net_dial.o +# gen_lib net::dial (any) +stdlib_net_dial=$(HARECACHE)/net/dial/net_dial-any.o hare_stdlib_deps+=$(stdlib_net_dial) -# gen_lib net::dns -stdlib_net_dns=$(HARECACHE)/net/dns/net_dns.o +# gen_lib net::dns (any) +stdlib_net_dns=$(HARECACHE)/net/dns/net_dns-any.o hare_stdlib_deps+=$(stdlib_net_dns) -# gen_lib net::ip -stdlib_net_ip=$(HARECACHE)/net/ip/net_ip.o +# gen_lib net::ip (linux) +stdlib_net_ip=$(HARECACHE)/net/ip/net_ip-linux.o hare_stdlib_deps+=$(stdlib_net_ip) -# gen_lib net::tcp -stdlib_net_tcp=$(HARECACHE)/net/tcp/net_tcp.o +# gen_lib net::tcp (linux) +stdlib_net_tcp=$(HARECACHE)/net/tcp/net_tcp-linux.o hare_stdlib_deps+=$(stdlib_net_tcp) -# gen_lib net::udp -stdlib_net_udp=$(HARECACHE)/net/udp/net_udp.o +# gen_lib net::udp (linux) +stdlib_net_udp=$(HARECACHE)/net/udp/net_udp-linux.o hare_stdlib_deps+=$(stdlib_net_udp) -# gen_lib net::unix -stdlib_net_unix=$(HARECACHE)/net/unix/net_unix.o +# gen_lib net::unix (linux) +stdlib_net_unix=$(HARECACHE)/net/unix/net_unix-linux.o hare_stdlib_deps+=$(stdlib_net_unix) -# gen_lib math::random -stdlib_math_random=$(HARECACHE)/math/random/math_random.o +# gen_lib math::random (any) +stdlib_math_random=$(HARECACHE)/math/random/math_random-any.o hare_stdlib_deps+=$(stdlib_math_random) -# gen_lib os -stdlib_os=$(HARECACHE)/os/os.o +# gen_lib os (linux) +stdlib_os=$(HARECACHE)/os/os-linux.o hare_stdlib_deps+=$(stdlib_os) -# gen_lib os::exec -stdlib_os_exec=$(HARECACHE)/os/exec/os_exec.o +# gen_lib os::exec (linux) +stdlib_os_exec=$(HARECACHE)/os/exec/os_exec-linux.o hare_stdlib_deps+=$(stdlib_os_exec) -# gen_lib path -stdlib_path=$(HARECACHE)/path/path.o +# gen_lib path (any) +stdlib_path=$(HARECACHE)/path/path-any.o hare_stdlib_deps+=$(stdlib_path) -# gen_lib slice -stdlib_slice=$(HARECACHE)/slice/slice.o +# gen_lib slice (any) +stdlib_slice=$(HARECACHE)/slice/slice-any.o hare_stdlib_deps+=$(stdlib_slice) -# gen_lib sort -stdlib_sort=$(HARECACHE)/sort/sort.o +# gen_lib sort (any) +stdlib_sort=$(HARECACHE)/sort/sort-any.o hare_stdlib_deps+=$(stdlib_sort) -# gen_lib strconv -stdlib_strconv=$(HARECACHE)/strconv/strconv.o +# gen_lib strconv (any) +stdlib_strconv=$(HARECACHE)/strconv/strconv-any.o hare_stdlib_deps+=$(stdlib_strconv) -# gen_lib strings -stdlib_strings=$(HARECACHE)/strings/strings.o +# gen_lib strings (any) +stdlib_strings=$(HARECACHE)/strings/strings-any.o hare_stdlib_deps+=$(stdlib_strings) -# gen_lib strio -stdlib_strio=$(HARECACHE)/strio/strio.o +# gen_lib strio (any) +stdlib_strio=$(HARECACHE)/strio/strio-any.o hare_stdlib_deps+=$(stdlib_strio) -# gen_lib temp -stdlib_temp=$(HARECACHE)/temp/temp.o +# gen_lib temp (linux) +stdlib_temp=$(HARECACHE)/temp/temp-linux.o hare_stdlib_deps+=$(stdlib_temp) -# gen_lib time -stdlib_time=$(HARECACHE)/time/time.o +# gen_lib time (linux) +stdlib_time=$(HARECACHE)/time/time-linux.o hare_stdlib_deps+=$(stdlib_time) -# gen_lib types -stdlib_types=$(HARECACHE)/types/types.o +# gen_lib types (any) +stdlib_types=$(HARECACHE)/types/types-any.o hare_stdlib_deps+=$(stdlib_types) -# gen_lib unix -stdlib_unix=$(HARECACHE)/unix/unix.o +# gen_lib unix (linux) +stdlib_unix=$(HARECACHE)/unix/unix-linux.o hare_stdlib_deps+=$(stdlib_unix) -# gen_lib unix::hosts -stdlib_unix_hosts=$(HARECACHE)/unix/hosts/unix_hosts.o +# gen_lib unix::hosts (any) +stdlib_unix_hosts=$(HARECACHE)/unix/hosts/unix_hosts-any.o hare_stdlib_deps+=$(stdlib_unix_hosts) -# gen_lib unix::passwd -stdlib_unix_passwd=$(HARECACHE)/unix/passwd/unix_passwd.o +# gen_lib unix::passwd (any) +stdlib_unix_passwd=$(HARECACHE)/unix/passwd/unix_passwd-any.o hare_stdlib_deps+=$(stdlib_unix_passwd) -# gen_lib unix::poll -stdlib_unix_poll=$(HARECACHE)/unix/poll/unix_poll.o +# gen_lib unix::poll (linux) +stdlib_unix_poll=$(HARECACHE)/unix/poll/unix_poll-linux.o hare_stdlib_deps+=$(stdlib_unix_poll) -# gen_lib unix::resolvconf -stdlib_unix_resolvconf=$(HARECACHE)/unix/resolvconf/unix_resolvconf.o +# gen_lib unix::resolvconf (any) +stdlib_unix_resolvconf=$(HARECACHE)/unix/resolvconf/unix_resolvconf-any.o hare_stdlib_deps+=$(stdlib_unix_resolvconf) -# gen_lib unix::tty -stdlib_unix_tty=$(HARECACHE)/unix/tty/unix_tty.o +# gen_lib unix::tty (linux) +stdlib_unix_tty=$(HARECACHE)/unix/tty/unix_tty-linux.o hare_stdlib_deps+=$(stdlib_unix_tty) -# gen_lib uuid -stdlib_uuid=$(HARECACHE)/uuid/uuid.o +# gen_lib uuid (any) +stdlib_uuid=$(HARECACHE)/uuid/uuid-any.o hare_stdlib_deps+=$(stdlib_uuid) -# ascii -stdlib_ascii_srcs= \ +# ascii (+any) +stdlib_ascii_any_srcs= \ $(STDLIB)/ascii/ctype.ha \ $(STDLIB)/ascii/strcmp.ha -$(HARECACHE)/ascii/ascii.ssa: $(stdlib_ascii_srcs) $(stdlib_rt) $(stdlib_strings) +$(HARECACHE)/ascii/ascii-any.ssa: $(stdlib_ascii_any_srcs) $(stdlib_rt) $(stdlib_strings) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/ascii @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nascii \ - -t$(HARECACHE)/ascii/ascii.td $(stdlib_ascii_srcs) + -t$(HARECACHE)/ascii/ascii.td $(stdlib_ascii_any_srcs) -# bufio -stdlib_bufio_srcs= \ +# bufio (+any) +stdlib_bufio_any_srcs= \ $(STDLIB)/bufio/buffered.ha \ $(STDLIB)/bufio/memstream.ha \ $(STDLIB)/bufio/scanner.ha -$(HARECACHE)/bufio/bufio.ssa: $(stdlib_bufio_srcs) $(stdlib_rt) $(stdlib_io) $(stdlib_bytes) $(stdlib_strings) $(stdlib_encoding_utf8) $(stdlib_errors) $(stdlib_types) +$(HARECACHE)/bufio/bufio-any.ssa: $(stdlib_bufio_any_srcs) $(stdlib_rt) $(stdlib_io) $(stdlib_bytes) $(stdlib_strings) $(stdlib_encoding_utf8) $(stdlib_errors) $(stdlib_types) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/bufio @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nbufio \ - -t$(HARECACHE)/bufio/bufio.td $(stdlib_bufio_srcs) + -t$(HARECACHE)/bufio/bufio.td $(stdlib_bufio_any_srcs) -# bytes -stdlib_bytes_srcs= \ +# bytes (+any) +stdlib_bytes_any_srcs= \ $(STDLIB)/bytes/contains.ha \ $(STDLIB)/bytes/copy.ha \ $(STDLIB)/bytes/equal.ha \ @@ -401,263 +401,263 @@ stdlib_bytes_srcs= \ $(STDLIB)/bytes/tokenize.ha \ $(STDLIB)/bytes/two_way.ha -$(HARECACHE)/bytes/bytes.ssa: $(stdlib_bytes_srcs) $(stdlib_rt) $(stdlib_types) +$(HARECACHE)/bytes/bytes-any.ssa: $(stdlib_bytes_any_srcs) $(stdlib_rt) $(stdlib_types) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/bytes @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nbytes \ - -t$(HARECACHE)/bytes/bytes.td $(stdlib_bytes_srcs) + -t$(HARECACHE)/bytes/bytes.td $(stdlib_bytes_any_srcs) -# compress::flate -stdlib_compress_flate_srcs= \ +# compress::flate (+any) +stdlib_compress_flate_any_srcs= \ $(STDLIB)/compress/flate/inflate.ha -$(HARECACHE)/compress/flate/compress_flate.ssa: $(stdlib_compress_flate_srcs) $(stdlib_rt) $(stdlib_bufio) $(stdlib_bytes) $(stdlib_endian) $(stdlib_errors) $(stdlib_io) $(stdlib_fmt) +$(HARECACHE)/compress/flate/compress_flate-any.ssa: $(stdlib_compress_flate_any_srcs) $(stdlib_rt) $(stdlib_bufio) $(stdlib_bytes) $(stdlib_endian) $(stdlib_errors) $(stdlib_io) $(stdlib_fmt) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/compress/flate @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Ncompress::flate \ - -t$(HARECACHE)/compress/flate/compress_flate.td $(stdlib_compress_flate_srcs) + -t$(HARECACHE)/compress/flate/compress_flate.td $(stdlib_compress_flate_any_srcs) -# compress::zlib -stdlib_compress_zlib_srcs= \ +# compress::zlib (+any) +stdlib_compress_zlib_any_srcs= \ $(STDLIB)/compress/zlib/reader.ha -$(HARECACHE)/compress/zlib/compress_zlib.ssa: $(stdlib_compress_zlib_srcs) $(stdlib_rt) $(stdlib_bufio) $(stdlib_bytes) $(stdlib_compress_flate) $(stdlib_endian) $(stdlib_errors) $(stdlib_hash) $(stdlib_hash_adler32) $(stdlib_io) $(stdlib_fmt) +$(HARECACHE)/compress/zlib/compress_zlib-any.ssa: $(stdlib_compress_zlib_any_srcs) $(stdlib_rt) $(stdlib_bufio) $(stdlib_bytes) $(stdlib_compress_flate) $(stdlib_endian) $(stdlib_errors) $(stdlib_hash) $(stdlib_hash_adler32) $(stdlib_io) $(stdlib_fmt) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/compress/zlib @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Ncompress::zlib \ - -t$(HARECACHE)/compress/zlib/compress_zlib.td $(stdlib_compress_zlib_srcs) + -t$(HARECACHE)/compress/zlib/compress_zlib.td $(stdlib_compress_zlib_any_srcs) -# crypto::blake2b -stdlib_crypto_blake2b_srcs= \ +# crypto::blake2b (+any) +stdlib_crypto_blake2b_any_srcs= \ $(STDLIB)/crypto/blake2b/blake2b.ha -$(HARECACHE)/crypto/blake2b/crypto_blake2b.ssa: $(stdlib_crypto_blake2b_srcs) $(stdlib_rt) $(stdlib_encoding_hex) $(stdlib_fmt) $(stdlib_hash) $(stdlib_io) $(stdlib_strings) $(stdlib_strio) $(stdlib_crypto_math) $(stdlib_endian) +$(HARECACHE)/crypto/blake2b/crypto_blake2b-any.ssa: $(stdlib_crypto_blake2b_any_srcs) $(stdlib_rt) $(stdlib_encoding_hex) $(stdlib_fmt) $(stdlib_hash) $(stdlib_io) $(stdlib_strings) $(stdlib_strio) $(stdlib_crypto_math) $(stdlib_endian) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/crypto/blake2b @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Ncrypto::blake2b \ - -t$(HARECACHE)/crypto/blake2b/crypto_blake2b.td $(stdlib_crypto_blake2b_srcs) + -t$(HARECACHE)/crypto/blake2b/crypto_blake2b.td $(stdlib_crypto_blake2b_any_srcs) -# crypto::math -stdlib_crypto_math_srcs= \ +# crypto::math (+any) +stdlib_crypto_math_any_srcs= \ $(STDLIB)/crypto/math/bits.ha -$(HARECACHE)/crypto/math/crypto_math.ssa: $(stdlib_crypto_math_srcs) $(stdlib_rt) +$(HARECACHE)/crypto/math/crypto_math-any.ssa: $(stdlib_crypto_math_any_srcs) $(stdlib_rt) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/crypto/math @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Ncrypto::math \ - -t$(HARECACHE)/crypto/math/crypto_math.td $(stdlib_crypto_math_srcs) + -t$(HARECACHE)/crypto/math/crypto_math.td $(stdlib_crypto_math_any_srcs) -# crypto::random -stdlib_crypto_random_srcs= \ - $(STDLIB)/crypto/random/+$(PLATFORM).ha \ +# crypto::random (+linux) +stdlib_crypto_random_linux_srcs= \ + $(STDLIB)/crypto/random/+linux.ha \ $(STDLIB)/crypto/random/random.ha -$(HARECACHE)/crypto/random/crypto_random.ssa: $(stdlib_crypto_random_srcs) $(stdlib_rt) $(stdlib_rt) $(stdlib_io) $(stdlib_errors) +$(HARECACHE)/crypto/random/crypto_random-linux.ssa: $(stdlib_crypto_random_linux_srcs) $(stdlib_rt) $(stdlib_rt) $(stdlib_io) $(stdlib_errors) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/crypto/random @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Ncrypto::random \ - -t$(HARECACHE)/crypto/random/crypto_random.td $(stdlib_crypto_random_srcs) + -t$(HARECACHE)/crypto/random/crypto_random.td $(stdlib_crypto_random_linux_srcs) -# crypto::md5 -stdlib_crypto_md5_srcs= \ +# crypto::md5 (+any) +stdlib_crypto_md5_any_srcs= \ $(STDLIB)/crypto/md5/md5.ha -$(HARECACHE)/crypto/md5/crypto_md5.ssa: $(stdlib_crypto_md5_srcs) $(stdlib_rt) $(stdlib_hash) $(stdlib_io) $(stdlib_endian) +$(HARECACHE)/crypto/md5/crypto_md5-any.ssa: $(stdlib_crypto_md5_any_srcs) $(stdlib_rt) $(stdlib_hash) $(stdlib_io) $(stdlib_endian) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/crypto/md5 @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Ncrypto::md5 \ - -t$(HARECACHE)/crypto/md5/crypto_md5.td $(stdlib_crypto_md5_srcs) + -t$(HARECACHE)/crypto/md5/crypto_md5.td $(stdlib_crypto_md5_any_srcs) -# crypto::sha1 -stdlib_crypto_sha1_srcs= \ +# crypto::sha1 (+any) +stdlib_crypto_sha1_any_srcs= \ $(STDLIB)/crypto/sha1/sha1.ha -$(HARECACHE)/crypto/sha1/crypto_sha1.ssa: $(stdlib_crypto_sha1_srcs) $(stdlib_rt) $(stdlib_hash) $(stdlib_io) $(stdlib_endian) +$(HARECACHE)/crypto/sha1/crypto_sha1-any.ssa: $(stdlib_crypto_sha1_any_srcs) $(stdlib_rt) $(stdlib_hash) $(stdlib_io) $(stdlib_endian) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/crypto/sha1 @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Ncrypto::sha1 \ - -t$(HARECACHE)/crypto/sha1/crypto_sha1.td $(stdlib_crypto_sha1_srcs) + -t$(HARECACHE)/crypto/sha1/crypto_sha1.td $(stdlib_crypto_sha1_any_srcs) -# crypto::sha256 -stdlib_crypto_sha256_srcs= \ +# crypto::sha256 (+any) +stdlib_crypto_sha256_any_srcs= \ $(STDLIB)/crypto/sha256/sha256.ha -$(HARECACHE)/crypto/sha256/crypto_sha256.ssa: $(stdlib_crypto_sha256_srcs) $(stdlib_rt) $(stdlib_hash) $(stdlib_io) $(stdlib_endian) +$(HARECACHE)/crypto/sha256/crypto_sha256-any.ssa: $(stdlib_crypto_sha256_any_srcs) $(stdlib_rt) $(stdlib_hash) $(stdlib_io) $(stdlib_endian) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/crypto/sha256 @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Ncrypto::sha256 \ - -t$(HARECACHE)/crypto/sha256/crypto_sha256.td $(stdlib_crypto_sha256_srcs) + -t$(HARECACHE)/crypto/sha256/crypto_sha256.td $(stdlib_crypto_sha256_any_srcs) -# crypto::sha512 -stdlib_crypto_sha512_srcs= \ +# crypto::sha512 (+any) +stdlib_crypto_sha512_any_srcs= \ $(STDLIB)/crypto/sha512/sha512.ha -$(HARECACHE)/crypto/sha512/crypto_sha512.ssa: $(stdlib_crypto_sha512_srcs) $(stdlib_rt) $(stdlib_hash) $(stdlib_io) $(stdlib_endian) +$(HARECACHE)/crypto/sha512/crypto_sha512-any.ssa: $(stdlib_crypto_sha512_any_srcs) $(stdlib_rt) $(stdlib_hash) $(stdlib_io) $(stdlib_endian) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/crypto/sha512 @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Ncrypto::sha512 \ - -t$(HARECACHE)/crypto/sha512/crypto_sha512.td $(stdlib_crypto_sha512_srcs) + -t$(HARECACHE)/crypto/sha512/crypto_sha512.td $(stdlib_crypto_sha512_any_srcs) -# dirs -stdlib_dirs_srcs= \ +# dirs (+any) +stdlib_dirs_any_srcs= \ $(STDLIB)/dirs/xdg.ha -$(HARECACHE)/dirs/dirs.ssa: $(stdlib_dirs_srcs) $(stdlib_rt) $(stdlib_fs) $(stdlib_os) $(stdlib_path) +$(HARECACHE)/dirs/dirs-any.ssa: $(stdlib_dirs_any_srcs) $(stdlib_rt) $(stdlib_fs) $(stdlib_os) $(stdlib_path) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/dirs @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Ndirs \ - -t$(HARECACHE)/dirs/dirs.td $(stdlib_dirs_srcs) + -t$(HARECACHE)/dirs/dirs.td $(stdlib_dirs_any_srcs) -# encoding::base64 -stdlib_encoding_base64_srcs= \ +# encoding::base64 (+any) +stdlib_encoding_base64_any_srcs= \ $(STDLIB)/encoding/base64/base64.ha -$(HARECACHE)/encoding/base64/encoding_base64.ssa: $(stdlib_encoding_base64_srcs) $(stdlib_rt) $(stdlib_bufio) $(stdlib_bytes) $(stdlib_io) $(stdlib_strio) $(stdlib_strings) +$(HARECACHE)/encoding/base64/encoding_base64-any.ssa: $(stdlib_encoding_base64_any_srcs) $(stdlib_rt) $(stdlib_bufio) $(stdlib_bytes) $(stdlib_io) $(stdlib_strio) $(stdlib_strings) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/encoding/base64 @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nencoding::base64 \ - -t$(HARECACHE)/encoding/base64/encoding_base64.td $(stdlib_encoding_base64_srcs) + -t$(HARECACHE)/encoding/base64/encoding_base64.td $(stdlib_encoding_base64_any_srcs) -# encoding::hex -stdlib_encoding_hex_srcs= \ +# encoding::hex (+any) +stdlib_encoding_hex_any_srcs= \ $(STDLIB)/encoding/hex/hex.ha -$(HARECACHE)/encoding/hex/encoding_hex.ssa: $(stdlib_encoding_hex_srcs) $(stdlib_rt) $(stdlib_ascii) $(stdlib_bytes) $(stdlib_fmt) $(stdlib_io) $(stdlib_strconv) $(stdlib_strio) $(stdlib_strings) +$(HARECACHE)/encoding/hex/encoding_hex-any.ssa: $(stdlib_encoding_hex_any_srcs) $(stdlib_rt) $(stdlib_ascii) $(stdlib_bytes) $(stdlib_fmt) $(stdlib_io) $(stdlib_strconv) $(stdlib_strio) $(stdlib_strings) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/encoding/hex @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nencoding::hex \ - -t$(HARECACHE)/encoding/hex/encoding_hex.td $(stdlib_encoding_hex_srcs) + -t$(HARECACHE)/encoding/hex/encoding_hex.td $(stdlib_encoding_hex_any_srcs) -# encoding::utf8 -stdlib_encoding_utf8_srcs= \ +# encoding::utf8 (+any) +stdlib_encoding_utf8_any_srcs= \ $(STDLIB)/encoding/utf8/decode.ha \ $(STDLIB)/encoding/utf8/encode.ha \ $(STDLIB)/encoding/utf8/rune.ha -$(HARECACHE)/encoding/utf8/encoding_utf8.ssa: $(stdlib_encoding_utf8_srcs) $(stdlib_rt) $(stdlib_types) +$(HARECACHE)/encoding/utf8/encoding_utf8-any.ssa: $(stdlib_encoding_utf8_any_srcs) $(stdlib_rt) $(stdlib_types) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/encoding/utf8 @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nencoding::utf8 \ - -t$(HARECACHE)/encoding/utf8/encoding_utf8.td $(stdlib_encoding_utf8_srcs) + -t$(HARECACHE)/encoding/utf8/encoding_utf8.td $(stdlib_encoding_utf8_any_srcs) -# endian -stdlib_endian_srcs= \ +# endian (+any) +stdlib_endian_any_srcs= \ $(STDLIB)/endian/big.ha \ $(STDLIB)/endian/network.ha \ $(STDLIB)/endian/little.ha \ $(STDLIB)/endian/endian.ha \ $(STDLIB)/endian/host+$(ARCH).ha -$(HARECACHE)/endian/endian.ssa: $(stdlib_endian_srcs) $(stdlib_rt) +$(HARECACHE)/endian/endian-any.ssa: $(stdlib_endian_any_srcs) $(stdlib_rt) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/endian @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nendian \ - -t$(HARECACHE)/endian/endian.td $(stdlib_endian_srcs) + -t$(HARECACHE)/endian/endian.td $(stdlib_endian_any_srcs) -# errors -stdlib_errors_srcs= \ +# errors (+any) +stdlib_errors_any_srcs= \ $(STDLIB)/errors/common.ha \ $(STDLIB)/errors/opaque.ha \ $(STDLIB)/errors/string.ha \ $(STDLIB)/errors/rt.ha -$(HARECACHE)/errors/errors.ssa: $(stdlib_errors_srcs) $(stdlib_rt) +$(HARECACHE)/errors/errors-any.ssa: $(stdlib_errors_any_srcs) $(stdlib_rt) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/errors @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nerrors \ - -t$(HARECACHE)/errors/errors.td $(stdlib_errors_srcs) + -t$(HARECACHE)/errors/errors.td $(stdlib_errors_any_srcs) -# fmt -stdlib_fmt_srcs= \ +# fmt (+any) +stdlib_fmt_any_srcs= \ $(STDLIB)/fmt/fmt.ha -$(HARECACHE)/fmt/fmt.ssa: $(stdlib_fmt_srcs) $(stdlib_rt) $(stdlib_bufio) $(stdlib_io) $(stdlib_os) $(stdlib_strconv) $(stdlib_strings) $(stdlib_types) +$(HARECACHE)/fmt/fmt-any.ssa: $(stdlib_fmt_any_srcs) $(stdlib_rt) $(stdlib_bufio) $(stdlib_io) $(stdlib_os) $(stdlib_strconv) $(stdlib_strings) $(stdlib_types) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/fmt @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nfmt \ - -t$(HARECACHE)/fmt/fmt.td $(stdlib_fmt_srcs) + -t$(HARECACHE)/fmt/fmt.td $(stdlib_fmt_any_srcs) -# fnmatch -stdlib_fnmatch_srcs= \ +# fnmatch (+any) +stdlib_fnmatch_any_srcs= \ $(STDLIB)/fnmatch/fnmatch.ha -$(HARECACHE)/fnmatch/fnmatch.ssa: $(stdlib_fnmatch_srcs) $(stdlib_rt) $(stdlib_strings) $(stdlib_bytes) $(stdlib_sort) $(stdlib_ascii) $(stdlib_io) $(stdlib_fmt) +$(HARECACHE)/fnmatch/fnmatch-any.ssa: $(stdlib_fnmatch_any_srcs) $(stdlib_rt) $(stdlib_strings) $(stdlib_bytes) $(stdlib_sort) $(stdlib_ascii) $(stdlib_io) $(stdlib_fmt) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/fnmatch @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nfnmatch \ - -t$(HARECACHE)/fnmatch/fnmatch.td $(stdlib_fnmatch_srcs) + -t$(HARECACHE)/fnmatch/fnmatch.td $(stdlib_fnmatch_any_srcs) -# format::elf -stdlib_format_elf_srcs= \ +# format::elf (+any) +stdlib_format_elf_any_srcs= \ $(STDLIB)/format/elf/+$(ARCH).ha \ $(STDLIB)/format/elf/+$(PLATFORM).ha \ $(STDLIB)/format/elf/types.ha -$(HARECACHE)/format/elf/format_elf.ssa: $(stdlib_format_elf_srcs) $(stdlib_rt) +$(HARECACHE)/format/elf/format_elf-any.ssa: $(stdlib_format_elf_any_srcs) $(stdlib_rt) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/format/elf @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nformat::elf \ - -t$(HARECACHE)/format/elf/format_elf.td $(stdlib_format_elf_srcs) + -t$(HARECACHE)/format/elf/format_elf.td $(stdlib_format_elf_any_srcs) -# format::ini -stdlib_format_ini_srcs= \ +# format::ini (+any) +stdlib_format_ini_any_srcs= \ $(STDLIB)/format/ini/scan.ha \ $(STDLIB)/format/ini/types.ha -$(HARECACHE)/format/ini/format_ini.ssa: $(stdlib_format_ini_srcs) $(stdlib_rt) $(stdlib_bufio) $(stdlib_encoding_utf8) $(stdlib_fmt) $(stdlib_io) $(stdlib_strings) +$(HARECACHE)/format/ini/format_ini-any.ssa: $(stdlib_format_ini_any_srcs) $(stdlib_rt) $(stdlib_bufio) $(stdlib_encoding_utf8) $(stdlib_fmt) $(stdlib_io) $(stdlib_strings) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/format/ini @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nformat::ini \ - -t$(HARECACHE)/format/ini/format_ini.td $(stdlib_format_ini_srcs) + -t$(HARECACHE)/format/ini/format_ini.td $(stdlib_format_ini_any_srcs) -# format::xml -stdlib_format_xml_srcs= \ +# format::xml (+any) +stdlib_format_xml_any_srcs= \ $(STDLIB)/format/xml/types.ha \ $(STDLIB)/format/xml/parser.ha \ $(STDLIB)/format/xml/chars.ha -$(HARECACHE)/format/xml/format_xml.ssa: $(stdlib_format_xml_srcs) $(stdlib_rt) $(stdlib_io) $(stdlib_bufio) $(stdlib_strings) $(stdlib_ascii) $(stdlib_strio) $(stdlib_os) +$(HARECACHE)/format/xml/format_xml-any.ssa: $(stdlib_format_xml_any_srcs) $(stdlib_rt) $(stdlib_io) $(stdlib_bufio) $(stdlib_strings) $(stdlib_ascii) $(stdlib_strio) $(stdlib_os) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/format/xml @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nformat::xml \ - -t$(HARECACHE)/format/xml/format_xml.td $(stdlib_format_xml_srcs) + -t$(HARECACHE)/format/xml/format_xml.td $(stdlib_format_xml_any_srcs) -# fs -stdlib_fs_srcs= \ +# fs (+any) +stdlib_fs_any_srcs= \ $(STDLIB)/fs/types.ha \ $(STDLIB)/fs/fs.ha \ $(STDLIB)/fs/util.ha -$(HARECACHE)/fs/fs.ssa: $(stdlib_fs_srcs) $(stdlib_rt) $(stdlib_io) $(stdlib_strings) $(stdlib_path) $(stdlib_time) $(stdlib_errors) +$(HARECACHE)/fs/fs-any.ssa: $(stdlib_fs_any_srcs) $(stdlib_rt) $(stdlib_io) $(stdlib_strings) $(stdlib_path) $(stdlib_time) $(stdlib_errors) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/fs @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nfs \ - -t$(HARECACHE)/fs/fs.td $(stdlib_fs_srcs) + -t$(HARECACHE)/fs/fs.td $(stdlib_fs_any_srcs) -# fs::mem -stdlib_fs_mem_srcs= \ +# fs::mem (+any) +stdlib_fs_mem_any_srcs= \ $(STDLIB)/fs/mem/mem.ha \ $(STDLIB)/fs/mem/stream.ha \ $(STDLIB)/fs/mem/util.ha -$(HARECACHE)/fs/mem/fs_mem.ssa: $(stdlib_fs_mem_srcs) $(stdlib_rt) $(stdlib_bufio) $(stdlib_errors) $(stdlib_fs) $(stdlib_hash) $(stdlib_hash_fnv) $(stdlib_io) $(stdlib_path) $(stdlib_strconv) $(stdlib_strings) $(stdlib_types) +$(HARECACHE)/fs/mem/fs_mem-any.ssa: $(stdlib_fs_mem_any_srcs) $(stdlib_rt) $(stdlib_bufio) $(stdlib_errors) $(stdlib_fs) $(stdlib_hash) $(stdlib_hash_fnv) $(stdlib_io) $(stdlib_path) $(stdlib_strconv) $(stdlib_strings) $(stdlib_types) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/fs/mem @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nfs::mem \ - -t$(HARECACHE)/fs/mem/fs_mem.td $(stdlib_fs_mem_srcs) + -t$(HARECACHE)/fs/mem/fs_mem.td $(stdlib_fs_mem_any_srcs) -# getopt -stdlib_getopt_srcs= \ +# getopt (+any) +stdlib_getopt_any_srcs= \ $(STDLIB)/getopt/getopts.ha -$(HARECACHE)/getopt/getopt.ssa: $(stdlib_getopt_srcs) $(stdlib_rt) $(stdlib_encoding_utf8) $(stdlib_fmt) $(stdlib_io) $(stdlib_os) $(stdlib_strings) +$(HARECACHE)/getopt/getopt-any.ssa: $(stdlib_getopt_any_srcs) $(stdlib_rt) $(stdlib_encoding_utf8) $(stdlib_fmt) $(stdlib_io) $(stdlib_os) $(stdlib_strings) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/getopt @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Ngetopt \ - -t$(HARECACHE)/getopt/getopt.td $(stdlib_getopt_srcs) + -t$(HARECACHE)/getopt/getopt.td $(stdlib_getopt_any_srcs) -# hare::ast -stdlib_hare_ast_srcs= \ +# hare::ast (+any) +stdlib_hare_ast_any_srcs= \ $(STDLIB)/hare/ast/decl.ha \ $(STDLIB)/hare/ast/expr.ha \ $(STDLIB)/hare/ast/ident.ha \ @@ -665,38 +665,38 @@ stdlib_hare_ast_srcs= \ $(STDLIB)/hare/ast/type.ha \ $(STDLIB)/hare/ast/unit.ha -$(HARECACHE)/hare/ast/hare_ast.ssa: $(stdlib_hare_ast_srcs) $(stdlib_rt) $(stdlib_hare_lex) $(stdlib_strings) +$(HARECACHE)/hare/ast/hare_ast-any.ssa: $(stdlib_hare_ast_any_srcs) $(stdlib_rt) $(stdlib_hare_lex) $(stdlib_strings) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/hare/ast @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nhare::ast \ - -t$(HARECACHE)/hare/ast/hare_ast.td $(stdlib_hare_ast_srcs) + -t$(HARECACHE)/hare/ast/hare_ast.td $(stdlib_hare_ast_any_srcs) -# hare::lex -stdlib_hare_lex_srcs= \ +# hare::lex (+any) +stdlib_hare_lex_any_srcs= \ $(STDLIB)/hare/lex/token.ha \ $(STDLIB)/hare/lex/lex.ha -$(HARECACHE)/hare/lex/hare_lex.ssa: $(stdlib_hare_lex_srcs) $(stdlib_rt) $(stdlib_io) $(stdlib_bufio) $(stdlib_strings) $(stdlib_types) $(stdlib_fmt) $(stdlib_sort) $(stdlib_strio) +$(HARECACHE)/hare/lex/hare_lex-any.ssa: $(stdlib_hare_lex_any_srcs) $(stdlib_rt) $(stdlib_io) $(stdlib_bufio) $(stdlib_strings) $(stdlib_types) $(stdlib_fmt) $(stdlib_sort) $(stdlib_strio) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/hare/lex @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nhare::lex \ - -t$(HARECACHE)/hare/lex/hare_lex.td $(stdlib_hare_lex_srcs) + -t$(HARECACHE)/hare/lex/hare_lex.td $(stdlib_hare_lex_any_srcs) -# hare::module -stdlib_hare_module_srcs= \ +# hare::module (+any) +stdlib_hare_module_any_srcs= \ $(STDLIB)/hare/module/types.ha \ $(STDLIB)/hare/module/context.ha \ $(STDLIB)/hare/module/scan.ha \ $(STDLIB)/hare/module/manifest.ha -$(HARECACHE)/hare/module/hare_module.ssa: $(stdlib_hare_module_srcs) $(stdlib_rt) $(stdlib_hare_ast) $(stdlib_hare_lex) $(stdlib_hare_parse) $(stdlib_hare_unparse) $(stdlib_strio) $(stdlib_fs) $(stdlib_io) $(stdlib_strings) $(stdlib_hash) $(stdlib_crypto_sha256) $(stdlib_dirs) $(stdlib_bytes) $(stdlib_encoding_utf8) $(stdlib_ascii) $(stdlib_fmt) $(stdlib_time) $(stdlib_slice) $(stdlib_bufio) $(stdlib_strconv) $(stdlib_os) $(stdlib_encoding_hex) $(stdlib_sort) $(stdlib_errors) $(stdlib_temp) +$(HARECACHE)/hare/module/hare_module-any.ssa: $(stdlib_hare_module_any_srcs) $(stdlib_rt) $(stdlib_hare_ast) $(stdlib_hare_lex) $(stdlib_hare_parse) $(stdlib_hare_unparse) $(stdlib_strio) $(stdlib_fs) $(stdlib_io) $(stdlib_strings) $(stdlib_hash) $(stdlib_crypto_sha256) $(stdlib_dirs) $(stdlib_bytes) $(stdlib_encoding_utf8) $(stdlib_ascii) $(stdlib_fmt) $(stdlib_time) $(stdlib_slice) $(stdlib_bufio) $(stdlib_strconv) $(stdlib_os) $(stdlib_encoding_hex) $(stdlib_sort) $(stdlib_errors) $(stdlib_temp) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/hare/module @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nhare::module \ - -t$(HARECACHE)/hare/module/hare_module.td $(stdlib_hare_module_srcs) + -t$(HARECACHE)/hare/module/hare_module.td $(stdlib_hare_module_any_srcs) -# hare::parse -stdlib_hare_parse_srcs= \ +# hare::parse (+any) +stdlib_hare_parse_any_srcs= \ $(STDLIB)/hare/parse/decl.ha \ $(STDLIB)/hare/parse/expr.ha \ $(STDLIB)/hare/parse/ident.ha \ @@ -705,14 +705,14 @@ stdlib_hare_parse_srcs= \ $(STDLIB)/hare/parse/type.ha \ $(STDLIB)/hare/parse/unit.ha -$(HARECACHE)/hare/parse/hare_parse.ssa: $(stdlib_hare_parse_srcs) $(stdlib_rt) $(stdlib_hare_ast) $(stdlib_hare_lex) $(stdlib_hare_unparse) $(stdlib_fmt) +$(HARECACHE)/hare/parse/hare_parse-any.ssa: $(stdlib_hare_parse_any_srcs) $(stdlib_rt) $(stdlib_hare_ast) $(stdlib_hare_lex) $(stdlib_hare_unparse) $(stdlib_fmt) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/hare/parse @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nhare::parse \ - -t$(HARECACHE)/hare/parse/hare_parse.td $(stdlib_hare_parse_srcs) + -t$(HARECACHE)/hare/parse/hare_parse.td $(stdlib_hare_parse_any_srcs) -# hare::types -stdlib_hare_types_srcs= \ +# hare::types (+any) +stdlib_hare_types_any_srcs= \ $(STDLIB)/hare/types/arch.ha \ $(STDLIB)/hare/types/builtins.ha \ $(STDLIB)/hare/types/class.ha \ @@ -721,14 +721,14 @@ stdlib_hare_types_srcs= \ $(STDLIB)/hare/types/store.ha \ $(STDLIB)/hare/types/types.ha -$(HARECACHE)/hare/types/hare_types.ssa: $(stdlib_hare_types_srcs) $(stdlib_rt) $(stdlib_hare_ast) $(stdlib_hare_parse) $(stdlib_hash) $(stdlib_hash_fnv) $(stdlib_endian) +$(HARECACHE)/hare/types/hare_types-any.ssa: $(stdlib_hare_types_any_srcs) $(stdlib_rt) $(stdlib_hare_ast) $(stdlib_hare_parse) $(stdlib_hash) $(stdlib_hash_fnv) $(stdlib_endian) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/hare/types @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nhare::types \ - -t$(HARECACHE)/hare/types/hare_types.td $(stdlib_hare_types_srcs) + -t$(HARECACHE)/hare/types/hare_types.td $(stdlib_hare_types_any_srcs) -# hare::unit -stdlib_hare_unit_srcs= \ +# hare::unit (+any) +stdlib_hare_unit_any_srcs= \ $(STDLIB)/hare/unit/check.ha \ $(STDLIB)/hare/unit/context.ha \ $(STDLIB)/hare/unit/errors.ha \ @@ -738,14 +738,14 @@ stdlib_hare_unit_srcs= \ $(STDLIB)/hare/unit/scope.ha \ $(STDLIB)/hare/unit/unit.ha -$(HARECACHE)/hare/unit/hare_unit.ssa: $(stdlib_hare_unit_srcs) $(stdlib_rt) $(stdlib_hare_ast) $(stdlib_hare_types) $(stdlib_hash) $(stdlib_hash_fnv) $(stdlib_strings) $(stdlib_hare_lex) $(stdlib_bufio) $(stdlib_hare_parse) +$(HARECACHE)/hare/unit/hare_unit-any.ssa: $(stdlib_hare_unit_any_srcs) $(stdlib_rt) $(stdlib_hare_ast) $(stdlib_hare_types) $(stdlib_hash) $(stdlib_hash_fnv) $(stdlib_strings) $(stdlib_hare_lex) $(stdlib_bufio) $(stdlib_hare_parse) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/hare/unit @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nhare::unit \ - -t$(HARECACHE)/hare/unit/hare_unit.td $(stdlib_hare_unit_srcs) + -t$(HARECACHE)/hare/unit/hare_unit.td $(stdlib_hare_unit_any_srcs) -# hare::unparse -stdlib_hare_unparse_srcs= \ +# hare::unparse (+any) +stdlib_hare_unparse_any_srcs= \ $(STDLIB)/hare/unparse/expr.ha \ $(STDLIB)/hare/unparse/decl.ha \ $(STDLIB)/hare/unparse/ident.ha \ @@ -754,130 +754,130 @@ stdlib_hare_unparse_srcs= \ $(STDLIB)/hare/unparse/unit.ha \ $(STDLIB)/hare/unparse/util.ha -$(HARECACHE)/hare/unparse/hare_unparse.ssa: $(stdlib_hare_unparse_srcs) $(stdlib_rt) $(stdlib_fmt) $(stdlib_io) $(stdlib_strio) $(stdlib_hare_ast) +$(HARECACHE)/hare/unparse/hare_unparse-any.ssa: $(stdlib_hare_unparse_any_srcs) $(stdlib_rt) $(stdlib_fmt) $(stdlib_io) $(stdlib_strio) $(stdlib_hare_ast) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/hare/unparse @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nhare::unparse \ - -t$(HARECACHE)/hare/unparse/hare_unparse.td $(stdlib_hare_unparse_srcs) + -t$(HARECACHE)/hare/unparse/hare_unparse.td $(stdlib_hare_unparse_any_srcs) -# hash -stdlib_hash_srcs= \ +# hash (+any) +stdlib_hash_any_srcs= \ $(STDLIB)/hash/hash.ha -$(HARECACHE)/hash/hash.ssa: $(stdlib_hash_srcs) $(stdlib_rt) $(stdlib_io) $(stdlib_fmt) +$(HARECACHE)/hash/hash-any.ssa: $(stdlib_hash_any_srcs) $(stdlib_rt) $(stdlib_io) $(stdlib_fmt) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/hash @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nhash \ - -t$(HARECACHE)/hash/hash.td $(stdlib_hash_srcs) + -t$(HARECACHE)/hash/hash.td $(stdlib_hash_any_srcs) -# hash::adler32 -stdlib_hash_adler32_srcs= \ +# hash::adler32 (+any) +stdlib_hash_adler32_any_srcs= \ $(STDLIB)/hash/adler32/adler32.ha -$(HARECACHE)/hash/adler32/hash_adler32.ssa: $(stdlib_hash_adler32_srcs) $(stdlib_rt) $(stdlib_endian) $(stdlib_hash) $(stdlib_io) $(stdlib_strings) +$(HARECACHE)/hash/adler32/hash_adler32-any.ssa: $(stdlib_hash_adler32_any_srcs) $(stdlib_rt) $(stdlib_endian) $(stdlib_hash) $(stdlib_io) $(stdlib_strings) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/hash/adler32 @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nhash::adler32 \ - -t$(HARECACHE)/hash/adler32/hash_adler32.td $(stdlib_hash_adler32_srcs) + -t$(HARECACHE)/hash/adler32/hash_adler32.td $(stdlib_hash_adler32_any_srcs) -# hash::crc16 -stdlib_hash_crc16_srcs= \ +# hash::crc16 (+any) +stdlib_hash_crc16_any_srcs= \ $(STDLIB)/hash/crc16/crc16.ha -$(HARECACHE)/hash/crc16/hash_crc16.ssa: $(stdlib_hash_crc16_srcs) $(stdlib_rt) $(stdlib_endian) $(stdlib_hash) $(stdlib_io) $(stdlib_strings) +$(HARECACHE)/hash/crc16/hash_crc16-any.ssa: $(stdlib_hash_crc16_any_srcs) $(stdlib_rt) $(stdlib_endian) $(stdlib_hash) $(stdlib_io) $(stdlib_strings) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/hash/crc16 @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nhash::crc16 \ - -t$(HARECACHE)/hash/crc16/hash_crc16.td $(stdlib_hash_crc16_srcs) + -t$(HARECACHE)/hash/crc16/hash_crc16.td $(stdlib_hash_crc16_any_srcs) -# hash::crc32 -stdlib_hash_crc32_srcs= \ +# hash::crc32 (+any) +stdlib_hash_crc32_any_srcs= \ $(STDLIB)/hash/crc32/crc32.ha -$(HARECACHE)/hash/crc32/hash_crc32.ssa: $(stdlib_hash_crc32_srcs) $(stdlib_rt) $(stdlib_endian) $(stdlib_hash) $(stdlib_io) $(stdlib_strings) +$(HARECACHE)/hash/crc32/hash_crc32-any.ssa: $(stdlib_hash_crc32_any_srcs) $(stdlib_rt) $(stdlib_endian) $(stdlib_hash) $(stdlib_io) $(stdlib_strings) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/hash/crc32 @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nhash::crc32 \ - -t$(HARECACHE)/hash/crc32/hash_crc32.td $(stdlib_hash_crc32_srcs) + -t$(HARECACHE)/hash/crc32/hash_crc32.td $(stdlib_hash_crc32_any_srcs) -# hash::crc64 -stdlib_hash_crc64_srcs= \ +# hash::crc64 (+any) +stdlib_hash_crc64_any_srcs= \ $(STDLIB)/hash/crc64/crc64.ha -$(HARECACHE)/hash/crc64/hash_crc64.ssa: $(stdlib_hash_crc64_srcs) $(stdlib_rt) $(stdlib_endian) $(stdlib_hash) $(stdlib_io) $(stdlib_strings) +$(HARECACHE)/hash/crc64/hash_crc64-any.ssa: $(stdlib_hash_crc64_any_srcs) $(stdlib_rt) $(stdlib_endian) $(stdlib_hash) $(stdlib_io) $(stdlib_strings) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/hash/crc64 @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nhash::crc64 \ - -t$(HARECACHE)/hash/crc64/hash_crc64.td $(stdlib_hash_crc64_srcs) + -t$(HARECACHE)/hash/crc64/hash_crc64.td $(stdlib_hash_crc64_any_srcs) -# hash::fnv -stdlib_hash_fnv_srcs= \ +# hash::fnv (+any) +stdlib_hash_fnv_any_srcs= \ $(STDLIB)/hash/fnv/fnv.ha -$(HARECACHE)/hash/fnv/hash_fnv.ssa: $(stdlib_hash_fnv_srcs) $(stdlib_rt) $(stdlib_hash) $(stdlib_io) $(stdlib_strings) +$(HARECACHE)/hash/fnv/hash_fnv-any.ssa: $(stdlib_hash_fnv_any_srcs) $(stdlib_rt) $(stdlib_hash) $(stdlib_io) $(stdlib_strings) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/hash/fnv @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nhash::fnv \ - -t$(HARECACHE)/hash/fnv/hash_fnv.td $(stdlib_hash_fnv_srcs) + -t$(HARECACHE)/hash/fnv/hash_fnv.td $(stdlib_hash_fnv_any_srcs) -# io -stdlib_io_srcs= \ +# io (+linux) +stdlib_io_linux_srcs= \ $(STDLIB)/io/arch+$(ARCH).ha \ + $(STDLIB)/io/println+linux.ha \ + $(STDLIB)/io/+linux/file.ha \ $(STDLIB)/io/copy.ha \ $(STDLIB)/io/drain.ha \ $(STDLIB)/io/empty.ha \ $(STDLIB)/io/filestream.ha \ $(STDLIB)/io/handle.ha \ $(STDLIB)/io/limit.ha \ - $(STDLIB)/io/println+$(PLATFORM).ha \ $(STDLIB)/io/stream.ha \ $(STDLIB)/io/tee.ha \ - $(STDLIB)/io/types.ha \ - $(STDLIB)/io/+$(PLATFORM)/file.ha + $(STDLIB)/io/types.ha -$(HARECACHE)/io/io.ssa: $(stdlib_io_srcs) $(stdlib_rt) $(stdlib_strings) $(stdlib_errors) +$(HARECACHE)/io/io-linux.ssa: $(stdlib_io_linux_srcs) $(stdlib_rt) $(stdlib_strings) $(stdlib_errors) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/io @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nio \ - -t$(HARECACHE)/io/io.td $(stdlib_io_srcs) + -t$(HARECACHE)/io/io.td $(stdlib_io_linux_srcs) -# iobus::io_uring -stdlib_iobus_io_uring_srcs= \ +# iobus::io_uring (+linux) +stdlib_iobus_io_uring_linux_srcs= \ $(STDLIB)/iobus/io_uring/bus.ha \ $(STDLIB)/iobus/io_uring/handle.ha \ $(STDLIB)/iobus/io_uring/ops.ha \ $(STDLIB)/iobus/io_uring/pool.ha \ $(STDLIB)/iobus/io_uring/types.ha -$(HARECACHE)/iobus/io_uring/iobus_io_uring.ssa: $(stdlib_iobus_io_uring_srcs) $(stdlib_rt) $(stdlib_errors) $(stdlib_io) $(stdlib_linux_io_uring) $(stdlib_net_ip) $(stdlib_unix_poll) +$(HARECACHE)/iobus/io_uring/iobus_io_uring-linux.ssa: $(stdlib_iobus_io_uring_linux_srcs) $(stdlib_rt) $(stdlib_errors) $(stdlib_io) $(stdlib_linux_io_uring) $(stdlib_net_ip) $(stdlib_unix_poll) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/iobus/io_uring @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Niobus::io_uring \ - -t$(HARECACHE)/iobus/io_uring/iobus_io_uring.td $(stdlib_iobus_io_uring_srcs) + -t$(HARECACHE)/iobus/io_uring/iobus_io_uring.td $(stdlib_iobus_io_uring_linux_srcs) -# linux -stdlib_linux_srcs= \ +# linux (+linux) +stdlib_linux_linux_srcs= \ $(STDLIB)/linux/start.ha \ $(STDLIB)/linux/env.ha -$(HARECACHE)/linux/linux.ssa: $(stdlib_linux_srcs) $(stdlib_rt) $(stdlib_format_elf) +$(HARECACHE)/linux/linux-linux.ssa: $(stdlib_linux_linux_srcs) $(stdlib_rt) $(stdlib_format_elf) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/linux @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nlinux \ - -t$(HARECACHE)/linux/linux.td $(stdlib_linux_srcs) + -t$(HARECACHE)/linux/linux.td $(stdlib_linux_linux_srcs) -# linux::signalfd -stdlib_linux_signalfd_srcs= \ +# linux::signalfd (+linux) +stdlib_linux_signalfd_linux_srcs= \ $(STDLIB)/linux/signalfd/signalfd.ha -$(HARECACHE)/linux/signalfd/linux_signalfd.ssa: $(stdlib_linux_signalfd_srcs) $(stdlib_rt) $(stdlib_errors) +$(HARECACHE)/linux/signalfd/linux_signalfd-linux.ssa: $(stdlib_linux_signalfd_linux_srcs) $(stdlib_rt) $(stdlib_errors) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/linux/signalfd @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nlinux::signalfd \ - -t$(HARECACHE)/linux/signalfd/linux_signalfd.td $(stdlib_linux_signalfd_srcs) + -t$(HARECACHE)/linux/signalfd/linux_signalfd.td $(stdlib_linux_signalfd_linux_srcs) -# linux::io_uring -stdlib_linux_io_uring_srcs= \ +# linux::io_uring (+linux) +stdlib_linux_io_uring_linux_srcs= \ $(STDLIB)/linux/io_uring/cqe.ha \ $(STDLIB)/linux/io_uring/queue.ha \ $(STDLIB)/linux/io_uring/register.ha \ @@ -885,206 +885,199 @@ stdlib_linux_io_uring_srcs= \ $(STDLIB)/linux/io_uring/sqe.ha \ $(STDLIB)/linux/io_uring/uring.ha -$(HARECACHE)/linux/io_uring/linux_io_uring.ssa: $(stdlib_linux_io_uring_srcs) $(stdlib_rt) $(stdlib_errors) $(stdlib_types) +$(HARECACHE)/linux/io_uring/linux_io_uring-linux.ssa: $(stdlib_linux_io_uring_linux_srcs) $(stdlib_rt) $(stdlib_errors) $(stdlib_types) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/linux/io_uring @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nlinux::io_uring \ - -t$(HARECACHE)/linux/io_uring/linux_io_uring.td $(stdlib_linux_io_uring_srcs) + -t$(HARECACHE)/linux/io_uring/linux_io_uring.td $(stdlib_linux_io_uring_linux_srcs) -# linux::vdso -stdlib_linux_vdso_srcs= \ +# linux::vdso (+linux) +stdlib_linux_vdso_linux_srcs= \ $(STDLIB)/linux/vdso/vdso.ha -$(HARECACHE)/linux/vdso/linux_vdso.ssa: $(stdlib_linux_vdso_srcs) $(stdlib_rt) $(stdlib_linux) $(stdlib_strings) $(stdlib_format_elf) +$(HARECACHE)/linux/vdso/linux_vdso-linux.ssa: $(stdlib_linux_vdso_linux_srcs) $(stdlib_rt) $(stdlib_linux) $(stdlib_strings) $(stdlib_format_elf) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/linux/vdso @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nlinux::vdso \ - -t$(HARECACHE)/linux/vdso/linux_vdso.td $(stdlib_linux_vdso_srcs) + -t$(HARECACHE)/linux/vdso/linux_vdso.td $(stdlib_linux_vdso_linux_srcs) -# math -# math -stdlib_math_srcs= \ +# math (+any) +stdlib_math_any_srcs= \ $(STDLIB)/math/math.ha \ $(STDLIB)/math/floats.ha \ $(STDLIB)/math/ints.ha \ $(STDLIB)/math/uints.ha \ $(STDLIB)/math/trig.ha -$(HARECACHE)/math/math.ssa: $(stdlib_math_srcs) $(stdlib_rt) $(stdlib_types) +$(HARECACHE)/math/math-any.ssa: $(stdlib_math_any_srcs) $(stdlib_rt) $(stdlib_types) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/math @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nmath \ - -t$(HARECACHE)/math/math.td $(stdlib_math_srcs) + -t$(HARECACHE)/math/math.td $(stdlib_math_any_srcs) -# net -# net -stdlib_net_srcs= \ - $(STDLIB)/net/+$(PLATFORM).ha \ +# net (+linux) +stdlib_net_linux_srcs= \ + $(STDLIB)/net/+linux.ha \ $(STDLIB)/net/errors.ha \ $(STDLIB)/net/listener.ha -$(HARECACHE)/net/net.ssa: $(stdlib_net_srcs) $(stdlib_rt) $(stdlib_io) $(stdlib_os) $(stdlib_strings) $(stdlib_net_ip) $(stdlib_errors) $(stdlib_rt) $(stdlib_fmt) +$(HARECACHE)/net/net-linux.ssa: $(stdlib_net_linux_srcs) $(stdlib_rt) $(stdlib_io) $(stdlib_os) $(stdlib_strings) $(stdlib_net_ip) $(stdlib_errors) $(stdlib_rt) $(stdlib_fmt) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/net @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nnet \ - -t$(HARECACHE)/net/net.td $(stdlib_net_srcs) + -t$(HARECACHE)/net/net.td $(stdlib_net_linux_srcs) -# net::dial -# net::dial -stdlib_net_dial_srcs= \ +# net::dial (+any) +stdlib_net_dial_any_srcs= \ $(STDLIB)/net/dial/registry.ha \ $(STDLIB)/net/dial/dial.ha \ $(STDLIB)/net/dial/ip.ha \ $(STDLIB)/net/dial/resolve.ha -$(HARECACHE)/net/dial/net_dial.ssa: $(stdlib_net_dial_srcs) $(stdlib_rt) $(stdlib_io) $(stdlib_net) $(stdlib_net_ip) $(stdlib_net_tcp) $(stdlib_net_udp) $(stdlib_net_dns) $(stdlib_crypto_random) $(stdlib_strconv) $(stdlib_strings) $(stdlib_unix_hosts) +$(HARECACHE)/net/dial/net_dial-any.ssa: $(stdlib_net_dial_any_srcs) $(stdlib_rt) $(stdlib_io) $(stdlib_net) $(stdlib_net_ip) $(stdlib_net_tcp) $(stdlib_net_udp) $(stdlib_net_dns) $(stdlib_crypto_random) $(stdlib_strconv) $(stdlib_strings) $(stdlib_unix_hosts) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/net/dial @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nnet::dial \ - -t$(HARECACHE)/net/dial/net_dial.td $(stdlib_net_dial_srcs) + -t$(HARECACHE)/net/dial/net_dial.td $(stdlib_net_dial_any_srcs) -# net::dns -# net::dns -stdlib_net_dns_srcs= \ +# net::dns (+any) +stdlib_net_dns_any_srcs= \ $(STDLIB)/net/dns/decode.ha \ $(STDLIB)/net/dns/error.ha \ $(STDLIB)/net/dns/encode.ha \ $(STDLIB)/net/dns/query.ha \ $(STDLIB)/net/dns/types.ha -$(HARECACHE)/net/dns/net_dns.ssa: $(stdlib_net_dns_srcs) $(stdlib_rt) $(stdlib_ascii) $(stdlib_endian) $(stdlib_net) $(stdlib_net_udp) $(stdlib_net_ip) $(stdlib_fmt) $(stdlib_strings) $(stdlib_unix_resolvconf) $(stdlib_unix_poll) $(stdlib_rt) $(stdlib_time) $(stdlib_errors) +$(HARECACHE)/net/dns/net_dns-any.ssa: $(stdlib_net_dns_any_srcs) $(stdlib_rt) $(stdlib_ascii) $(stdlib_endian) $(stdlib_net) $(stdlib_net_udp) $(stdlib_net_ip) $(stdlib_fmt) $(stdlib_strings) $(stdlib_unix_resolvconf) $(stdlib_unix_poll) $(stdlib_rt) $(stdlib_time) $(stdlib_errors) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/net/dns @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nnet::dns \ - -t$(HARECACHE)/net/dns/net_dns.td $(stdlib_net_dns_srcs) + -t$(HARECACHE)/net/dns/net_dns.td $(stdlib_net_dns_any_srcs) -# net::ip -stdlib_net_ip_srcs= \ +# net::ip (+linux) +stdlib_net_ip_linux_srcs= \ $(STDLIB)/net/ip/ip.ha \ - $(STDLIB)/net/ip/+$(PLATFORM).ha + $(STDLIB)/net/ip/+linux.ha -$(HARECACHE)/net/ip/net_ip.ssa: $(stdlib_net_ip_srcs) $(stdlib_rt) $(stdlib_bytes) $(stdlib_io) $(stdlib_strconv) $(stdlib_strings) $(stdlib_strio) $(stdlib_fmt) +$(HARECACHE)/net/ip/net_ip-linux.ssa: $(stdlib_net_ip_linux_srcs) $(stdlib_rt) $(stdlib_bytes) $(stdlib_io) $(stdlib_strconv) $(stdlib_strings) $(stdlib_strio) $(stdlib_fmt) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/net/ip @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nnet::ip \ - -t$(HARECACHE)/net/ip/net_ip.td $(stdlib_net_ip_srcs) + -t$(HARECACHE)/net/ip/net_ip.td $(stdlib_net_ip_linux_srcs) -# net::tcp -# net::tcp -stdlib_net_tcp_srcs= \ - $(STDLIB)/net/tcp/+$(PLATFORM).ha \ +# net::tcp (+linux) +stdlib_net_tcp_linux_srcs= \ + $(STDLIB)/net/tcp/+linux.ha \ $(STDLIB)/net/tcp/listener.ha \ $(STDLIB)/net/tcp/options.ha -$(HARECACHE)/net/tcp/net_tcp.ssa: $(stdlib_net_tcp_srcs) $(stdlib_rt) $(stdlib_io) $(stdlib_net) $(stdlib_net_ip) $(stdlib_os) $(stdlib_rt) +$(HARECACHE)/net/tcp/net_tcp-linux.ssa: $(stdlib_net_tcp_linux_srcs) $(stdlib_rt) $(stdlib_io) $(stdlib_net) $(stdlib_net_ip) $(stdlib_os) $(stdlib_rt) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/net/tcp @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nnet::tcp \ - -t$(HARECACHE)/net/tcp/net_tcp.td $(stdlib_net_tcp_srcs) + -t$(HARECACHE)/net/tcp/net_tcp.td $(stdlib_net_tcp_linux_srcs) -# net::udp -# net::udp -stdlib_net_udp_srcs= \ - $(STDLIB)/net/udp/+$(PLATFORM).ha \ +# net::udp (+linux) +stdlib_net_udp_linux_srcs= \ + $(STDLIB)/net/udp/+linux.ha \ $(STDLIB)/net/udp/options.ha -$(HARECACHE)/net/udp/net_udp.ssa: $(stdlib_net_udp_srcs) $(stdlib_rt) $(stdlib_net) $(stdlib_net_ip) $(stdlib_errors) $(stdlib_rt) $(stdlib_os) $(stdlib_io) +$(HARECACHE)/net/udp/net_udp-linux.ssa: $(stdlib_net_udp_linux_srcs) $(stdlib_rt) $(stdlib_net) $(stdlib_net_ip) $(stdlib_errors) $(stdlib_rt) $(stdlib_os) $(stdlib_io) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/net/udp @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nnet::udp \ - -t$(HARECACHE)/net/udp/net_udp.td $(stdlib_net_udp_srcs) + -t$(HARECACHE)/net/udp/net_udp.td $(stdlib_net_udp_linux_srcs) -# net::unix -# net::unix -stdlib_net_unix_srcs= \ - $(STDLIB)/net/unix/+$(PLATFORM).ha \ +# net::unix (+linux) +stdlib_net_unix_linux_srcs= \ + $(STDLIB)/net/unix/+linux.ha \ $(STDLIB)/net/unix/addr.ha \ $(STDLIB)/net/unix/dial.ha \ $(STDLIB)/net/unix/listener.ha \ $(STDLIB)/net/unix/options.ha -$(HARECACHE)/net/unix/net_unix.ssa: $(stdlib_net_unix_srcs) $(stdlib_rt) $(stdlib_net) $(stdlib_errors) $(stdlib_os) $(stdlib_io) $(stdlib_strings) $(stdlib_types) $(stdlib_fmt) $(stdlib_net_dial) +$(HARECACHE)/net/unix/net_unix-linux.ssa: $(stdlib_net_unix_linux_srcs) $(stdlib_rt) $(stdlib_net) $(stdlib_errors) $(stdlib_os) $(stdlib_io) $(stdlib_strings) $(stdlib_types) $(stdlib_fmt) $(stdlib_net_dial) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/net/unix @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nnet::unix \ - -t$(HARECACHE)/net/unix/net_unix.td $(stdlib_net_unix_srcs) + -t$(HARECACHE)/net/unix/net_unix.td $(stdlib_net_unix_linux_srcs) -# math::random -stdlib_math_random_srcs= \ +# math::random (+any) +stdlib_math_random_any_srcs= \ $(STDLIB)/math/random/random.ha -$(HARECACHE)/math/random/math_random.ssa: $(stdlib_math_random_srcs) $(stdlib_rt) +$(HARECACHE)/math/random/math_random-any.ssa: $(stdlib_math_random_any_srcs) $(stdlib_rt) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/math/random @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nmath::random \ - -t$(HARECACHE)/math/random/math_random.td $(stdlib_math_random_srcs) - -# os -stdlib_os_srcs= \ - $(STDLIB)/os/+$(PLATFORM)/environ.ha \ - $(STDLIB)/os/+$(PLATFORM)/exit.ha \ - $(STDLIB)/os/+$(PLATFORM)/dirfdfs.ha \ - $(STDLIB)/os/+$(PLATFORM)/stdfd.ha \ - $(STDLIB)/os/+$(PLATFORM)/fs.ha \ + -t$(HARECACHE)/math/random/math_random.td $(stdlib_math_random_any_srcs) + +# os (+linux) +stdlib_os_linux_srcs= \ + $(STDLIB)/os/+linux/environ.ha \ + $(STDLIB)/os/+linux/exit.ha \ + $(STDLIB)/os/+linux/dirfdfs.ha \ + $(STDLIB)/os/+linux/stdfd.ha \ + $(STDLIB)/os/+linux/fs.ha \ $(STDLIB)/os/fs.ha -$(HARECACHE)/os/os.ssa: $(stdlib_os_srcs) $(stdlib_rt) $(stdlib_io) $(stdlib_strings) $(stdlib_types) $(stdlib_fs) $(stdlib_encoding_utf8) $(stdlib_bytes) $(stdlib_bufio) $(stdlib_errors) +$(HARECACHE)/os/os-linux.ssa: $(stdlib_os_linux_srcs) $(stdlib_rt) $(stdlib_io) $(stdlib_strings) $(stdlib_types) $(stdlib_fs) $(stdlib_encoding_utf8) $(stdlib_bytes) $(stdlib_bufio) $(stdlib_errors) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/os @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nos \ - -t$(HARECACHE)/os/os.td $(stdlib_os_srcs) + -t$(HARECACHE)/os/os.td $(stdlib_os_linux_srcs) -# os::exec -stdlib_os_exec_srcs= \ - $(STDLIB)/os/exec/exec+$(PLATFORM).ha \ - $(STDLIB)/os/exec/process+$(PLATFORM).ha \ +# os::exec (+linux) +stdlib_os_exec_linux_srcs= \ + $(STDLIB)/os/exec/exec+linux.ha \ + $(STDLIB)/os/exec/process+linux.ha \ $(STDLIB)/os/exec/types.ha \ $(STDLIB)/os/exec/cmd.ha -$(HARECACHE)/os/exec/os_exec.ssa: $(stdlib_os_exec_srcs) $(stdlib_rt) $(stdlib_os) $(stdlib_strings) $(stdlib_fmt) $(stdlib_bytes) $(stdlib_path) $(stdlib_errors) +$(HARECACHE)/os/exec/os_exec-linux.ssa: $(stdlib_os_exec_linux_srcs) $(stdlib_rt) $(stdlib_os) $(stdlib_strings) $(stdlib_fmt) $(stdlib_bytes) $(stdlib_path) $(stdlib_errors) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/os/exec @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nos::exec \ - -t$(HARECACHE)/os/exec/os_exec.td $(stdlib_os_exec_srcs) + -t$(HARECACHE)/os/exec/os_exec.td $(stdlib_os_exec_linux_srcs) -# path -stdlib_path_srcs= \ +# path (+any) +stdlib_path_any_srcs= \ $(STDLIB)/path/+$(PLATFORM).ha \ $(STDLIB)/path/util.ha \ $(STDLIB)/path/join.ha \ $(STDLIB)/path/names.ha \ $(STDLIB)/path/iter.ha -$(HARECACHE)/path/path.ssa: $(stdlib_path_srcs) $(stdlib_rt) $(stdlib_strings) $(stdlib_bufio) $(stdlib_bytes) +$(HARECACHE)/path/path-any.ssa: $(stdlib_path_any_srcs) $(stdlib_rt) $(stdlib_strings) $(stdlib_bufio) $(stdlib_bytes) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/path @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Npath \ - -t$(HARECACHE)/path/path.td $(stdlib_path_srcs) + -t$(HARECACHE)/path/path.td $(stdlib_path_any_srcs) -# slice -stdlib_slice_srcs= \ +# slice (+any) +stdlib_slice_any_srcs= \ $(STDLIB)/slice/reverse.ha \ $(STDLIB)/slice/void.ha -$(HARECACHE)/slice/slice.ssa: $(stdlib_slice_srcs) $(stdlib_rt) $(stdlib_types) +$(HARECACHE)/slice/slice-any.ssa: $(stdlib_slice_any_srcs) $(stdlib_rt) $(stdlib_types) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/slice @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nslice \ - -t$(HARECACHE)/slice/slice.td $(stdlib_slice_srcs) + -t$(HARECACHE)/slice/slice.td $(stdlib_slice_any_srcs) -# sort -stdlib_sort_srcs= \ +# sort (+any) +stdlib_sort_any_srcs= \ $(STDLIB)/sort/search.ha \ $(STDLIB)/sort/sort.ha -$(HARECACHE)/sort/sort.ssa: $(stdlib_sort_srcs) $(stdlib_rt) +$(HARECACHE)/sort/sort-any.ssa: $(stdlib_sort_any_srcs) $(stdlib_rt) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/sort @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nsort \ - -t$(HARECACHE)/sort/sort.td $(stdlib_sort_srcs) + -t$(HARECACHE)/sort/sort.td $(stdlib_sort_any_srcs) -# strconv -stdlib_strconv_srcs= \ +# strconv (+any) +stdlib_strconv_any_srcs= \ $(STDLIB)/strconv/types.ha \ $(STDLIB)/strconv/itos.ha \ $(STDLIB)/strconv/utos.ha \ @@ -1095,14 +1088,14 @@ stdlib_strconv_srcs= \ $(STDLIB)/strconv/stof.ha \ $(STDLIB)/strconv/stof_data.ha -$(HARECACHE)/strconv/strconv.ssa: $(stdlib_strconv_srcs) $(stdlib_rt) $(stdlib_types) $(stdlib_strings) $(stdlib_ascii) $(stdlib_math) +$(HARECACHE)/strconv/strconv-any.ssa: $(stdlib_strconv_any_srcs) $(stdlib_rt) $(stdlib_types) $(stdlib_strings) $(stdlib_ascii) $(stdlib_math) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/strconv @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nstrconv \ - -t$(HARECACHE)/strconv/strconv.td $(stdlib_strconv_srcs) + -t$(HARECACHE)/strconv/strconv.td $(stdlib_strconv_any_srcs) -# strings -stdlib_strings_srcs= \ +# strings (+any) +stdlib_strings_any_srcs= \ $(STDLIB)/strings/concat.ha \ $(STDLIB)/strings/contains.ha \ $(STDLIB)/strings/cstrings.ha \ @@ -1115,155 +1108,155 @@ stdlib_strings_srcs= \ $(STDLIB)/strings/index.ha \ $(STDLIB)/strings/trim.ha -$(HARECACHE)/strings/strings.ssa: $(stdlib_strings_srcs) $(stdlib_rt) $(stdlib_bytes) $(stdlib_encoding_utf8) $(stdlib_types) +$(HARECACHE)/strings/strings-any.ssa: $(stdlib_strings_any_srcs) $(stdlib_rt) $(stdlib_bytes) $(stdlib_encoding_utf8) $(stdlib_types) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/strings @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nstrings \ - -t$(HARECACHE)/strings/strings.td $(stdlib_strings_srcs) + -t$(HARECACHE)/strings/strings.td $(stdlib_strings_any_srcs) -# strio -stdlib_strio_srcs= \ +# strio (+any) +stdlib_strio_any_srcs= \ $(STDLIB)/strio/dynamic.ha \ $(STDLIB)/strio/fixed.ha \ $(STDLIB)/strio/ops.ha -$(HARECACHE)/strio/strio.ssa: $(stdlib_strio_srcs) $(stdlib_rt) $(stdlib_io) $(stdlib_strings) $(stdlib_encoding_utf8) $(stdlib_errors) +$(HARECACHE)/strio/strio-any.ssa: $(stdlib_strio_any_srcs) $(stdlib_rt) $(stdlib_io) $(stdlib_strings) $(stdlib_encoding_utf8) $(stdlib_errors) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/strio @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nstrio \ - -t$(HARECACHE)/strio/strio.td $(stdlib_strio_srcs) + -t$(HARECACHE)/strio/strio.td $(stdlib_strio_any_srcs) -# temp -stdlib_temp_srcs= \ - $(STDLIB)/temp/+$(PLATFORM).ha +# temp (+linux) +stdlib_temp_linux_srcs= \ + $(STDLIB)/temp/+linux.ha -$(HARECACHE)/temp/temp.ssa: $(stdlib_temp_srcs) $(stdlib_rt) $(stdlib_crypto_random) $(stdlib_encoding_hex) $(stdlib_fs) $(stdlib_io) $(stdlib_os) $(stdlib_path) $(stdlib_strio) $(stdlib_fmt) $(stdlib_strings) +$(HARECACHE)/temp/temp-linux.ssa: $(stdlib_temp_linux_srcs) $(stdlib_rt) $(stdlib_crypto_random) $(stdlib_encoding_hex) $(stdlib_fs) $(stdlib_io) $(stdlib_os) $(stdlib_path) $(stdlib_strio) $(stdlib_fmt) $(stdlib_strings) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/temp @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Ntemp \ - -t$(HARECACHE)/temp/temp.td $(stdlib_temp_srcs) + -t$(HARECACHE)/temp/temp.td $(stdlib_temp_linux_srcs) -# time -stdlib_time_srcs= \ - $(STDLIB)/time/+$(PLATFORM)/functions.ha \ - $(STDLIB)/time/+$(PLATFORM)/+$(ARCH).ha \ +# time (+linux) +stdlib_time_linux_srcs= \ + $(STDLIB)/time/+linux/functions.ha \ + $(STDLIB)/time/+linux/+$(ARCH).ha \ $(STDLIB)/time/arithm.ha \ $(STDLIB)/time/types.ha -$(HARECACHE)/time/time.ssa: $(stdlib_time_srcs) $(stdlib_rt) $(stdlib_linux_vdso) +$(HARECACHE)/time/time-linux.ssa: $(stdlib_time_linux_srcs) $(stdlib_rt) $(stdlib_linux_vdso) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/time @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Ntime \ - -t$(HARECACHE)/time/time.td $(stdlib_time_srcs) + -t$(HARECACHE)/time/time.td $(stdlib_time_linux_srcs) -# types -stdlib_types_srcs= \ +# types (+any) +stdlib_types_any_srcs= \ $(STDLIB)/types/limits.ha \ $(STDLIB)/types/classes.ha \ $(STDLIB)/types/reflect.ha \ $(STDLIB)/types/util.ha \ $(STDLIB)/types/arch+$(ARCH).ha -$(HARECACHE)/types/types.ssa: $(stdlib_types_srcs) $(stdlib_rt) +$(HARECACHE)/types/types-any.ssa: $(stdlib_types_any_srcs) $(stdlib_rt) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/types @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Ntypes \ - -t$(HARECACHE)/types/types.td $(stdlib_types_srcs) + -t$(HARECACHE)/types/types.td $(stdlib_types_any_srcs) -# unix -stdlib_unix_srcs= \ - $(STDLIB)/unix/+$(PLATFORM)/nice.ha \ - $(STDLIB)/unix/+$(PLATFORM)/pipe.ha \ - $(STDLIB)/unix/+$(PLATFORM)/umask.ha \ +# unix (+linux) +stdlib_unix_linux_srcs= \ + $(STDLIB)/unix/+linux/nice.ha \ + $(STDLIB)/unix/+linux/pipe.ha \ + $(STDLIB)/unix/+linux/umask.ha \ $(STDLIB)/unix/getuid.ha \ $(STDLIB)/unix/setuid.ha -$(HARECACHE)/unix/unix.ssa: $(stdlib_unix_srcs) $(stdlib_rt) $(stdlib_errors) $(stdlib_fs) +$(HARECACHE)/unix/unix-linux.ssa: $(stdlib_unix_linux_srcs) $(stdlib_rt) $(stdlib_errors) $(stdlib_fs) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/unix @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nunix \ - -t$(HARECACHE)/unix/unix.td $(stdlib_unix_srcs) + -t$(HARECACHE)/unix/unix.td $(stdlib_unix_linux_srcs) -# unix::hosts -stdlib_unix_hosts_srcs= \ +# unix::hosts (+any) +stdlib_unix_hosts_any_srcs= \ $(STDLIB)/unix/hosts/lookup.ha -$(HARECACHE)/unix/hosts/unix_hosts.ssa: $(stdlib_unix_hosts_srcs) $(stdlib_rt) $(stdlib_os) $(stdlib_io) $(stdlib_bufio) $(stdlib_net_ip) $(stdlib_strings) +$(HARECACHE)/unix/hosts/unix_hosts-any.ssa: $(stdlib_unix_hosts_any_srcs) $(stdlib_rt) $(stdlib_os) $(stdlib_io) $(stdlib_bufio) $(stdlib_net_ip) $(stdlib_strings) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/unix/hosts @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nunix::hosts \ - -t$(HARECACHE)/unix/hosts/unix_hosts.td $(stdlib_unix_hosts_srcs) + -t$(HARECACHE)/unix/hosts/unix_hosts.td $(stdlib_unix_hosts_any_srcs) -# unix::passwd -stdlib_unix_passwd_srcs= \ +# unix::passwd (+any) +stdlib_unix_passwd_any_srcs= \ $(STDLIB)/unix/passwd/group.ha \ $(STDLIB)/unix/passwd/passwd.ha \ $(STDLIB)/unix/passwd/types.ha -$(HARECACHE)/unix/passwd/unix_passwd.ssa: $(stdlib_unix_passwd_srcs) $(stdlib_rt) $(stdlib_bufio) $(stdlib_io) $(stdlib_os) $(stdlib_strconv) $(stdlib_strings) +$(HARECACHE)/unix/passwd/unix_passwd-any.ssa: $(stdlib_unix_passwd_any_srcs) $(stdlib_rt) $(stdlib_bufio) $(stdlib_io) $(stdlib_os) $(stdlib_strconv) $(stdlib_strings) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/unix/passwd @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nunix::passwd \ - -t$(HARECACHE)/unix/passwd/unix_passwd.td $(stdlib_unix_passwd_srcs) + -t$(HARECACHE)/unix/passwd/unix_passwd.td $(stdlib_unix_passwd_any_srcs) -# unix::poll -stdlib_unix_poll_srcs= \ - $(STDLIB)/unix/poll/+$(PLATFORM).ha +# unix::poll (+linux) +stdlib_unix_poll_linux_srcs= \ + $(STDLIB)/unix/poll/+linux.ha -$(HARECACHE)/unix/poll/unix_poll.ssa: $(stdlib_unix_poll_srcs) $(stdlib_rt) $(stdlib_rt) $(stdlib_errors) $(stdlib_time) +$(HARECACHE)/unix/poll/unix_poll-linux.ssa: $(stdlib_unix_poll_linux_srcs) $(stdlib_rt) $(stdlib_rt) $(stdlib_errors) $(stdlib_time) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/unix/poll @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nunix::poll \ - -t$(HARECACHE)/unix/poll/unix_poll.td $(stdlib_unix_poll_srcs) + -t$(HARECACHE)/unix/poll/unix_poll.td $(stdlib_unix_poll_linux_srcs) -# unix::resolvconf -stdlib_unix_resolvconf_srcs= \ +# unix::resolvconf (+any) +stdlib_unix_resolvconf_any_srcs= \ $(STDLIB)/unix/resolvconf/load.ha -$(HARECACHE)/unix/resolvconf/unix_resolvconf.ssa: $(stdlib_unix_resolvconf_srcs) $(stdlib_rt) $(stdlib_os) $(stdlib_io) $(stdlib_bufio) $(stdlib_net_ip) $(stdlib_strings) +$(HARECACHE)/unix/resolvconf/unix_resolvconf-any.ssa: $(stdlib_unix_resolvconf_any_srcs) $(stdlib_rt) $(stdlib_os) $(stdlib_io) $(stdlib_bufio) $(stdlib_net_ip) $(stdlib_strings) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/unix/resolvconf @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nunix::resolvconf \ - -t$(HARECACHE)/unix/resolvconf/unix_resolvconf.td $(stdlib_unix_resolvconf_srcs) + -t$(HARECACHE)/unix/resolvconf/unix_resolvconf.td $(stdlib_unix_resolvconf_any_srcs) -# unix::tty -stdlib_unix_tty_srcs= \ +# unix::tty (+linux) +stdlib_unix_tty_linux_srcs= \ $(STDLIB)/unix/tty/types.ha \ - $(STDLIB)/unix/tty/+$(PLATFORM)/isatty.ha \ - $(STDLIB)/unix/tty/+$(PLATFORM)/open.ha \ - $(STDLIB)/unix/tty/+$(PLATFORM)/winsize.ha + $(STDLIB)/unix/tty/+linux/isatty.ha \ + $(STDLIB)/unix/tty/+linux/open.ha \ + $(STDLIB)/unix/tty/+linux/winsize.ha -$(HARECACHE)/unix/tty/unix_tty.ssa: $(stdlib_unix_tty_srcs) $(stdlib_rt) $(stdlib_rt) $(stdlib_fs) $(stdlib_io) $(stdlib_os) +$(HARECACHE)/unix/tty/unix_tty-linux.ssa: $(stdlib_unix_tty_linux_srcs) $(stdlib_rt) $(stdlib_rt) $(stdlib_fs) $(stdlib_io) $(stdlib_os) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/unix/tty @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nunix::tty \ - -t$(HARECACHE)/unix/tty/unix_tty.td $(stdlib_unix_tty_srcs) + -t$(HARECACHE)/unix/tty/unix_tty.td $(stdlib_unix_tty_linux_srcs) -# uuid -stdlib_uuid_srcs= \ +# uuid (+any) +stdlib_uuid_any_srcs= \ $(STDLIB)/uuid/uuid.ha -$(HARECACHE)/uuid/uuid.ssa: $(stdlib_uuid_srcs) $(stdlib_rt) $(stdlib_crypto_random) $(stdlib_strio) $(stdlib_fmt) $(stdlib_endian) $(stdlib_io) $(stdlib_bytes) $(stdlib_bufio) $(stdlib_strings) $(stdlib_strconv) +$(HARECACHE)/uuid/uuid-any.ssa: $(stdlib_uuid_any_srcs) $(stdlib_rt) $(stdlib_crypto_random) $(stdlib_strio) $(stdlib_fmt) $(stdlib_endian) $(stdlib_io) $(stdlib_bytes) $(stdlib_bufio) $(stdlib_strings) $(stdlib_strconv) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/uuid @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nuuid \ - -t$(HARECACHE)/uuid/uuid.td $(stdlib_uuid_srcs) - -# rt -testlib_rt_srcs= \ - $(STDLIB)/rt/+$(PLATFORM)/abort.ha \ - $(STDLIB)/rt/+$(PLATFORM)/env.ha \ - $(STDLIB)/rt/+$(PLATFORM)/errno.ha \ - $(STDLIB)/rt/+$(PLATFORM)/types.ha \ - $(STDLIB)/rt/+$(PLATFORM)/segmalloc.ha \ - $(STDLIB)/rt/+$(PLATFORM)/platformstart.ha \ - $(STDLIB)/rt/+$(PLATFORM)/prctl.ha \ - $(STDLIB)/rt/+$(PLATFORM)/+$(ARCH).ha \ - $(STDLIB)/rt/+$(PLATFORM)/syscallno+$(ARCH).ha \ - $(STDLIB)/rt/+$(PLATFORM)/syscalls.ha \ - $(STDLIB)/rt/+$(PLATFORM)/signal.ha \ - $(STDLIB)/rt/+$(PLATFORM)/stat.ha \ - $(STDLIB)/rt/+$(PLATFORM)/socket.ha \ + -t$(HARECACHE)/uuid/uuid.td $(stdlib_uuid_any_srcs) + +# rt (+linux) +testlib_rt_linux_srcs= \ + $(STDLIB)/rt/+linux/abort.ha \ + $(STDLIB)/rt/+linux/env.ha \ + $(STDLIB)/rt/+linux/errno.ha \ + $(STDLIB)/rt/+linux/types.ha \ + $(STDLIB)/rt/+linux/segmalloc.ha \ + $(STDLIB)/rt/+linux/platformstart.ha \ + $(STDLIB)/rt/+linux/prctl.ha \ + $(STDLIB)/rt/+linux/+$(ARCH).ha \ + $(STDLIB)/rt/+linux/syscallno+$(ARCH).ha \ + $(STDLIB)/rt/+linux/syscalls.ha \ + $(STDLIB)/rt/+linux/signal.ha \ + $(STDLIB)/rt/+linux/stat.ha \ + $(STDLIB)/rt/+linux/socket.ha \ $(STDLIB)/rt/+$(ARCH)/jmp.ha \ $(STDLIB)/rt/+$(ARCH)/backtrace.ha \ $(STDLIB)/rt/types_arch+$(ARCH).ha \ @@ -1282,11 +1275,11 @@ testlib_rt_srcs= \ $(STDLIB)/rt/+test/run.ha \ $(STDLIB)/rt/+test/ztos.ha -$(TESTCACHE)/rt/rt.ssa: $(testlib_rt_srcs) $(testlib_rt) +$(TESTCACHE)/rt/rt-linux.ssa: $(testlib_rt_linux_srcs) $(testlib_rt) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/rt @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nrt \ - -t$(TESTCACHE)/rt/rt.td $(testlib_rt_srcs) + -t$(TESTCACHE)/rt/rt.td $(testlib_rt_linux_srcs) $(TESTCACHE)/rt/start.o: $(STDLIB)/rt/+$(PLATFORM)/start+$(ARCH).s @printf 'AS \t$@\n' @@ -1325,326 +1318,326 @@ $(TESTCACHE)/rt/getfp.o: $(STDLIB)/rt/+$(ARCH)/getfp.s @mkdir -p $(TESTCACHE)/rt @$(AS) -o $@ $< -$(TESTCACHE)/rt/rt.a: $(TESTCACHE)/rt/rt.o $(testlib_asm) +$(TESTCACHE)/rt/rt-linux.a: $(TESTCACHE)/rt/rt-linux.o $(testlib_asm) @printf 'AR\t$@\n' - @$(AR) -csr $@ $(TESTCACHE)/rt/rt.o $(testlib_asm) + @$(AR) -csr $@ $(TESTCACHE)/rt/rt-linux.o $(testlib_asm) -testlib_rt=$(TESTCACHE)/rt/rt.a +testlib_rt=$(TESTCACHE)/rt/rt-$(PLATFORM).a hare_testlib_deps+=$(testlib_rt) -# gen_lib ascii -testlib_ascii=$(TESTCACHE)/ascii/ascii.o +# gen_lib ascii (any) +testlib_ascii=$(TESTCACHE)/ascii/ascii-any.o hare_testlib_deps+=$(testlib_ascii) -# gen_lib bufio -testlib_bufio=$(TESTCACHE)/bufio/bufio.o +# gen_lib bufio (any) +testlib_bufio=$(TESTCACHE)/bufio/bufio-any.o hare_testlib_deps+=$(testlib_bufio) -# gen_lib bytes -testlib_bytes=$(TESTCACHE)/bytes/bytes.o +# gen_lib bytes (any) +testlib_bytes=$(TESTCACHE)/bytes/bytes-any.o hare_testlib_deps+=$(testlib_bytes) -# gen_lib compress::flate -testlib_compress_flate=$(TESTCACHE)/compress/flate/compress_flate.o +# gen_lib compress::flate (any) +testlib_compress_flate=$(TESTCACHE)/compress/flate/compress_flate-any.o hare_testlib_deps+=$(testlib_compress_flate) -# gen_lib compress::zlib -testlib_compress_zlib=$(TESTCACHE)/compress/zlib/compress_zlib.o +# gen_lib compress::zlib (any) +testlib_compress_zlib=$(TESTCACHE)/compress/zlib/compress_zlib-any.o hare_testlib_deps+=$(testlib_compress_zlib) -# gen_lib crypto::blake2b -testlib_crypto_blake2b=$(TESTCACHE)/crypto/blake2b/crypto_blake2b.o +# gen_lib crypto::blake2b (any) +testlib_crypto_blake2b=$(TESTCACHE)/crypto/blake2b/crypto_blake2b-any.o hare_testlib_deps+=$(testlib_crypto_blake2b) -# gen_lib crypto::math -testlib_crypto_math=$(TESTCACHE)/crypto/math/crypto_math.o +# gen_lib crypto::math (any) +testlib_crypto_math=$(TESTCACHE)/crypto/math/crypto_math-any.o hare_testlib_deps+=$(testlib_crypto_math) -# gen_lib crypto::random -testlib_crypto_random=$(TESTCACHE)/crypto/random/crypto_random.o +# gen_lib crypto::random (linux) +testlib_crypto_random=$(TESTCACHE)/crypto/random/crypto_random-linux.o hare_testlib_deps+=$(testlib_crypto_random) -# gen_lib crypto::md5 -testlib_crypto_md5=$(TESTCACHE)/crypto/md5/crypto_md5.o +# gen_lib crypto::md5 (any) +testlib_crypto_md5=$(TESTCACHE)/crypto/md5/crypto_md5-any.o hare_testlib_deps+=$(testlib_crypto_md5) -# gen_lib crypto::sha1 -testlib_crypto_sha1=$(TESTCACHE)/crypto/sha1/crypto_sha1.o +# gen_lib crypto::sha1 (any) +testlib_crypto_sha1=$(TESTCACHE)/crypto/sha1/crypto_sha1-any.o hare_testlib_deps+=$(testlib_crypto_sha1) -# gen_lib crypto::sha256 -testlib_crypto_sha256=$(TESTCACHE)/crypto/sha256/crypto_sha256.o +# gen_lib crypto::sha256 (any) +testlib_crypto_sha256=$(TESTCACHE)/crypto/sha256/crypto_sha256-any.o hare_testlib_deps+=$(testlib_crypto_sha256) -# gen_lib crypto::sha512 -testlib_crypto_sha512=$(TESTCACHE)/crypto/sha512/crypto_sha512.o +# gen_lib crypto::sha512 (any) +testlib_crypto_sha512=$(TESTCACHE)/crypto/sha512/crypto_sha512-any.o hare_testlib_deps+=$(testlib_crypto_sha512) -# gen_lib dirs -testlib_dirs=$(TESTCACHE)/dirs/dirs.o +# gen_lib dirs (any) +testlib_dirs=$(TESTCACHE)/dirs/dirs-any.o hare_testlib_deps+=$(testlib_dirs) -# gen_lib encoding::base64 -testlib_encoding_base64=$(TESTCACHE)/encoding/base64/encoding_base64.o +# gen_lib encoding::base64 (any) +testlib_encoding_base64=$(TESTCACHE)/encoding/base64/encoding_base64-any.o hare_testlib_deps+=$(testlib_encoding_base64) -# gen_lib encoding::hex -testlib_encoding_hex=$(TESTCACHE)/encoding/hex/encoding_hex.o +# gen_lib encoding::hex (any) +testlib_encoding_hex=$(TESTCACHE)/encoding/hex/encoding_hex-any.o hare_testlib_deps+=$(testlib_encoding_hex) -# gen_lib encoding::utf8 -testlib_encoding_utf8=$(TESTCACHE)/encoding/utf8/encoding_utf8.o +# gen_lib encoding::utf8 (any) +testlib_encoding_utf8=$(TESTCACHE)/encoding/utf8/encoding_utf8-any.o hare_testlib_deps+=$(testlib_encoding_utf8) -# gen_lib endian -testlib_endian=$(TESTCACHE)/endian/endian.o +# gen_lib endian (any) +testlib_endian=$(TESTCACHE)/endian/endian-any.o hare_testlib_deps+=$(testlib_endian) -# gen_lib errors -testlib_errors=$(TESTCACHE)/errors/errors.o +# gen_lib errors (any) +testlib_errors=$(TESTCACHE)/errors/errors-any.o hare_testlib_deps+=$(testlib_errors) -# gen_lib fmt -testlib_fmt=$(TESTCACHE)/fmt/fmt.o +# gen_lib fmt (any) +testlib_fmt=$(TESTCACHE)/fmt/fmt-any.o hare_testlib_deps+=$(testlib_fmt) -# gen_lib fnmatch -testlib_fnmatch=$(TESTCACHE)/fnmatch/fnmatch.o +# gen_lib fnmatch (any) +testlib_fnmatch=$(TESTCACHE)/fnmatch/fnmatch-any.o hare_testlib_deps+=$(testlib_fnmatch) -# gen_lib format::elf -testlib_format_elf=$(TESTCACHE)/format/elf/format_elf.o +# gen_lib format::elf (any) +testlib_format_elf=$(TESTCACHE)/format/elf/format_elf-any.o hare_testlib_deps+=$(testlib_format_elf) -# gen_lib format::ini -testlib_format_ini=$(TESTCACHE)/format/ini/format_ini.o +# gen_lib format::ini (any) +testlib_format_ini=$(TESTCACHE)/format/ini/format_ini-any.o hare_testlib_deps+=$(testlib_format_ini) -# gen_lib format::xml -testlib_format_xml=$(TESTCACHE)/format/xml/format_xml.o +# gen_lib format::xml (any) +testlib_format_xml=$(TESTCACHE)/format/xml/format_xml-any.o hare_testlib_deps+=$(testlib_format_xml) -# gen_lib fs -testlib_fs=$(TESTCACHE)/fs/fs.o +# gen_lib fs (any) +testlib_fs=$(TESTCACHE)/fs/fs-any.o hare_testlib_deps+=$(testlib_fs) -# gen_lib fs::mem -testlib_fs_mem=$(TESTCACHE)/fs/mem/fs_mem.o +# gen_lib fs::mem (any) +testlib_fs_mem=$(TESTCACHE)/fs/mem/fs_mem-any.o hare_testlib_deps+=$(testlib_fs_mem) -# gen_lib getopt -testlib_getopt=$(TESTCACHE)/getopt/getopt.o +# gen_lib getopt (any) +testlib_getopt=$(TESTCACHE)/getopt/getopt-any.o hare_testlib_deps+=$(testlib_getopt) -# gen_lib hare::ast -testlib_hare_ast=$(TESTCACHE)/hare/ast/hare_ast.o +# gen_lib hare::ast (any) +testlib_hare_ast=$(TESTCACHE)/hare/ast/hare_ast-any.o hare_testlib_deps+=$(testlib_hare_ast) -# gen_lib hare::lex -testlib_hare_lex=$(TESTCACHE)/hare/lex/hare_lex.o +# gen_lib hare::lex (any) +testlib_hare_lex=$(TESTCACHE)/hare/lex/hare_lex-any.o hare_testlib_deps+=$(testlib_hare_lex) -# gen_lib hare::module -testlib_hare_module=$(TESTCACHE)/hare/module/hare_module.o +# gen_lib hare::module (any) +testlib_hare_module=$(TESTCACHE)/hare/module/hare_module-any.o hare_testlib_deps+=$(testlib_hare_module) -# gen_lib hare::parse -testlib_hare_parse=$(TESTCACHE)/hare/parse/hare_parse.o +# gen_lib hare::parse (any) +testlib_hare_parse=$(TESTCACHE)/hare/parse/hare_parse-any.o hare_testlib_deps+=$(testlib_hare_parse) -# gen_lib hare::types -testlib_hare_types=$(TESTCACHE)/hare/types/hare_types.o +# gen_lib hare::types (any) +testlib_hare_types=$(TESTCACHE)/hare/types/hare_types-any.o hare_testlib_deps+=$(testlib_hare_types) -# gen_lib hare::unit -testlib_hare_unit=$(TESTCACHE)/hare/unit/hare_unit.o +# gen_lib hare::unit (any) +testlib_hare_unit=$(TESTCACHE)/hare/unit/hare_unit-any.o hare_testlib_deps+=$(testlib_hare_unit) -# gen_lib hare::unparse -testlib_hare_unparse=$(TESTCACHE)/hare/unparse/hare_unparse.o +# gen_lib hare::unparse (any) +testlib_hare_unparse=$(TESTCACHE)/hare/unparse/hare_unparse-any.o hare_testlib_deps+=$(testlib_hare_unparse) -# gen_lib hash -testlib_hash=$(TESTCACHE)/hash/hash.o +# gen_lib hash (any) +testlib_hash=$(TESTCACHE)/hash/hash-any.o hare_testlib_deps+=$(testlib_hash) -# gen_lib hash::adler32 -testlib_hash_adler32=$(TESTCACHE)/hash/adler32/hash_adler32.o +# gen_lib hash::adler32 (any) +testlib_hash_adler32=$(TESTCACHE)/hash/adler32/hash_adler32-any.o hare_testlib_deps+=$(testlib_hash_adler32) -# gen_lib hash::crc16 -testlib_hash_crc16=$(TESTCACHE)/hash/crc16/hash_crc16.o +# gen_lib hash::crc16 (any) +testlib_hash_crc16=$(TESTCACHE)/hash/crc16/hash_crc16-any.o hare_testlib_deps+=$(testlib_hash_crc16) -# gen_lib hash::crc32 -testlib_hash_crc32=$(TESTCACHE)/hash/crc32/hash_crc32.o +# gen_lib hash::crc32 (any) +testlib_hash_crc32=$(TESTCACHE)/hash/crc32/hash_crc32-any.o hare_testlib_deps+=$(testlib_hash_crc32) -# gen_lib hash::crc64 -testlib_hash_crc64=$(TESTCACHE)/hash/crc64/hash_crc64.o +# gen_lib hash::crc64 (any) +testlib_hash_crc64=$(TESTCACHE)/hash/crc64/hash_crc64-any.o hare_testlib_deps+=$(testlib_hash_crc64) -# gen_lib hash::fnv -testlib_hash_fnv=$(TESTCACHE)/hash/fnv/hash_fnv.o +# gen_lib hash::fnv (any) +testlib_hash_fnv=$(TESTCACHE)/hash/fnv/hash_fnv-any.o hare_testlib_deps+=$(testlib_hash_fnv) -# gen_lib io -testlib_io=$(TESTCACHE)/io/io.o +# gen_lib io (linux) +testlib_io=$(TESTCACHE)/io/io-linux.o hare_testlib_deps+=$(testlib_io) -# gen_lib iobus::io_uring -testlib_iobus_io_uring=$(TESTCACHE)/iobus/io_uring/iobus_io_uring.o +# gen_lib iobus::io_uring (linux) +testlib_iobus_io_uring=$(TESTCACHE)/iobus/io_uring/iobus_io_uring-linux.o hare_testlib_deps+=$(testlib_iobus_io_uring) -# gen_lib linux -testlib_linux=$(TESTCACHE)/linux/linux.o +# gen_lib linux (linux) +testlib_linux=$(TESTCACHE)/linux/linux-linux.o hare_testlib_deps+=$(testlib_linux) -# gen_lib linux::signalfd -testlib_linux_signalfd=$(TESTCACHE)/linux/signalfd/linux_signalfd.o +# gen_lib linux::signalfd (linux) +testlib_linux_signalfd=$(TESTCACHE)/linux/signalfd/linux_signalfd-linux.o hare_testlib_deps+=$(testlib_linux_signalfd) -# gen_lib linux::io_uring -testlib_linux_io_uring=$(TESTCACHE)/linux/io_uring/linux_io_uring.o +# gen_lib linux::io_uring (linux) +testlib_linux_io_uring=$(TESTCACHE)/linux/io_uring/linux_io_uring-linux.o hare_testlib_deps+=$(testlib_linux_io_uring) -# gen_lib linux::vdso -testlib_linux_vdso=$(TESTCACHE)/linux/vdso/linux_vdso.o +# gen_lib linux::vdso (linux) +testlib_linux_vdso=$(TESTCACHE)/linux/vdso/linux_vdso-linux.o hare_testlib_deps+=$(testlib_linux_vdso) -# gen_lib math -testlib_math=$(TESTCACHE)/math/math.o +# gen_lib math (any) +testlib_math=$(TESTCACHE)/math/math-any.o hare_testlib_deps+=$(testlib_math) -# gen_lib net -testlib_net=$(TESTCACHE)/net/net.o +# gen_lib net (linux) +testlib_net=$(TESTCACHE)/net/net-linux.o hare_testlib_deps+=$(testlib_net) -# gen_lib net::dial -testlib_net_dial=$(TESTCACHE)/net/dial/net_dial.o +# gen_lib net::dial (any) +testlib_net_dial=$(TESTCACHE)/net/dial/net_dial-any.o hare_testlib_deps+=$(testlib_net_dial) -# gen_lib net::dns -testlib_net_dns=$(TESTCACHE)/net/dns/net_dns.o +# gen_lib net::dns (any) +testlib_net_dns=$(TESTCACHE)/net/dns/net_dns-any.o hare_testlib_deps+=$(testlib_net_dns) -# gen_lib net::ip -testlib_net_ip=$(TESTCACHE)/net/ip/net_ip.o +# gen_lib net::ip (linux) +testlib_net_ip=$(TESTCACHE)/net/ip/net_ip-linux.o hare_testlib_deps+=$(testlib_net_ip) -# gen_lib net::tcp -testlib_net_tcp=$(TESTCACHE)/net/tcp/net_tcp.o +# gen_lib net::tcp (linux) +testlib_net_tcp=$(TESTCACHE)/net/tcp/net_tcp-linux.o hare_testlib_deps+=$(testlib_net_tcp) -# gen_lib net::udp -testlib_net_udp=$(TESTCACHE)/net/udp/net_udp.o +# gen_lib net::udp (linux) +testlib_net_udp=$(TESTCACHE)/net/udp/net_udp-linux.o hare_testlib_deps+=$(testlib_net_udp) -# gen_lib net::unix -testlib_net_unix=$(TESTCACHE)/net/unix/net_unix.o +# gen_lib net::unix (linux) +testlib_net_unix=$(TESTCACHE)/net/unix/net_unix-linux.o hare_testlib_deps+=$(testlib_net_unix) -# gen_lib math::random -testlib_math_random=$(TESTCACHE)/math/random/math_random.o +# gen_lib math::random (any) +testlib_math_random=$(TESTCACHE)/math/random/math_random-any.o hare_testlib_deps+=$(testlib_math_random) -# gen_lib os -testlib_os=$(TESTCACHE)/os/os.o +# gen_lib os (linux) +testlib_os=$(TESTCACHE)/os/os-linux.o hare_testlib_deps+=$(testlib_os) -# gen_lib os::exec -testlib_os_exec=$(TESTCACHE)/os/exec/os_exec.o +# gen_lib os::exec (linux) +testlib_os_exec=$(TESTCACHE)/os/exec/os_exec-linux.o hare_testlib_deps+=$(testlib_os_exec) -# gen_lib path -testlib_path=$(TESTCACHE)/path/path.o +# gen_lib path (any) +testlib_path=$(TESTCACHE)/path/path-any.o hare_testlib_deps+=$(testlib_path) -# gen_lib slice -testlib_slice=$(TESTCACHE)/slice/slice.o +# gen_lib slice (any) +testlib_slice=$(TESTCACHE)/slice/slice-any.o hare_testlib_deps+=$(testlib_slice) -# gen_lib sort -testlib_sort=$(TESTCACHE)/sort/sort.o +# gen_lib sort (any) +testlib_sort=$(TESTCACHE)/sort/sort-any.o hare_testlib_deps+=$(testlib_sort) -# gen_lib strconv -testlib_strconv=$(TESTCACHE)/strconv/strconv.o +# gen_lib strconv (any) +testlib_strconv=$(TESTCACHE)/strconv/strconv-any.o hare_testlib_deps+=$(testlib_strconv) -# gen_lib strings -testlib_strings=$(TESTCACHE)/strings/strings.o +# gen_lib strings (any) +testlib_strings=$(TESTCACHE)/strings/strings-any.o hare_testlib_deps+=$(testlib_strings) -# gen_lib strio -testlib_strio=$(TESTCACHE)/strio/strio.o +# gen_lib strio (any) +testlib_strio=$(TESTCACHE)/strio/strio-any.o hare_testlib_deps+=$(testlib_strio) -# gen_lib temp -testlib_temp=$(TESTCACHE)/temp/temp.o +# gen_lib temp (linux) +testlib_temp=$(TESTCACHE)/temp/temp-linux.o hare_testlib_deps+=$(testlib_temp) -# gen_lib time -testlib_time=$(TESTCACHE)/time/time.o +# gen_lib time (linux) +testlib_time=$(TESTCACHE)/time/time-linux.o hare_testlib_deps+=$(testlib_time) -# gen_lib types -testlib_types=$(TESTCACHE)/types/types.o +# gen_lib types (any) +testlib_types=$(TESTCACHE)/types/types-any.o hare_testlib_deps+=$(testlib_types) -# gen_lib unix -testlib_unix=$(TESTCACHE)/unix/unix.o +# gen_lib unix (linux) +testlib_unix=$(TESTCACHE)/unix/unix-linux.o hare_testlib_deps+=$(testlib_unix) -# gen_lib unix::hosts -testlib_unix_hosts=$(TESTCACHE)/unix/hosts/unix_hosts.o +# gen_lib unix::hosts (any) +testlib_unix_hosts=$(TESTCACHE)/unix/hosts/unix_hosts-any.o hare_testlib_deps+=$(testlib_unix_hosts) -# gen_lib unix::passwd -testlib_unix_passwd=$(TESTCACHE)/unix/passwd/unix_passwd.o +# gen_lib unix::passwd (any) +testlib_unix_passwd=$(TESTCACHE)/unix/passwd/unix_passwd-any.o hare_testlib_deps+=$(testlib_unix_passwd) -# gen_lib unix::poll -testlib_unix_poll=$(TESTCACHE)/unix/poll/unix_poll.o +# gen_lib unix::poll (linux) +testlib_unix_poll=$(TESTCACHE)/unix/poll/unix_poll-linux.o hare_testlib_deps+=$(testlib_unix_poll) -# gen_lib unix::resolvconf -testlib_unix_resolvconf=$(TESTCACHE)/unix/resolvconf/unix_resolvconf.o +# gen_lib unix::resolvconf (any) +testlib_unix_resolvconf=$(TESTCACHE)/unix/resolvconf/unix_resolvconf-any.o hare_testlib_deps+=$(testlib_unix_resolvconf) -# gen_lib unix::tty -testlib_unix_tty=$(TESTCACHE)/unix/tty/unix_tty.o +# gen_lib unix::tty (linux) +testlib_unix_tty=$(TESTCACHE)/unix/tty/unix_tty-linux.o hare_testlib_deps+=$(testlib_unix_tty) -# gen_lib uuid -testlib_uuid=$(TESTCACHE)/uuid/uuid.o +# gen_lib uuid (any) +testlib_uuid=$(TESTCACHE)/uuid/uuid-any.o hare_testlib_deps+=$(testlib_uuid) -# ascii -testlib_ascii_srcs= \ +# ascii (+any) +testlib_ascii_any_srcs= \ $(STDLIB)/ascii/ctype.ha \ $(STDLIB)/ascii/strcmp.ha -$(TESTCACHE)/ascii/ascii.ssa: $(testlib_ascii_srcs) $(testlib_rt) $(testlib_strings) +$(TESTCACHE)/ascii/ascii-any.ssa: $(testlib_ascii_any_srcs) $(testlib_rt) $(testlib_strings) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/ascii @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nascii \ - -t$(TESTCACHE)/ascii/ascii.td $(testlib_ascii_srcs) + -t$(TESTCACHE)/ascii/ascii.td $(testlib_ascii_any_srcs) -# bufio -testlib_bufio_srcs= \ +# bufio (+any) +testlib_bufio_any_srcs= \ $(STDLIB)/bufio/buffered.ha \ $(STDLIB)/bufio/memstream.ha \ $(STDLIB)/bufio/scanner.ha -$(TESTCACHE)/bufio/bufio.ssa: $(testlib_bufio_srcs) $(testlib_rt) $(testlib_io) $(testlib_bytes) $(testlib_strings) $(testlib_encoding_utf8) $(testlib_errors) $(testlib_types) +$(TESTCACHE)/bufio/bufio-any.ssa: $(testlib_bufio_any_srcs) $(testlib_rt) $(testlib_io) $(testlib_bytes) $(testlib_strings) $(testlib_encoding_utf8) $(testlib_errors) $(testlib_types) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/bufio @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nbufio \ - -t$(TESTCACHE)/bufio/bufio.td $(testlib_bufio_srcs) + -t$(TESTCACHE)/bufio/bufio.td $(testlib_bufio_any_srcs) -# bytes -testlib_bytes_srcs= \ +# bytes (+any) +testlib_bytes_any_srcs= \ $(STDLIB)/bytes/contains.ha \ $(STDLIB)/bytes/copy.ha \ $(STDLIB)/bytes/equal.ha \ @@ -1653,274 +1646,274 @@ testlib_bytes_srcs= \ $(STDLIB)/bytes/tokenize.ha \ $(STDLIB)/bytes/two_way.ha -$(TESTCACHE)/bytes/bytes.ssa: $(testlib_bytes_srcs) $(testlib_rt) $(testlib_types) +$(TESTCACHE)/bytes/bytes-any.ssa: $(testlib_bytes_any_srcs) $(testlib_rt) $(testlib_types) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/bytes @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nbytes \ - -t$(TESTCACHE)/bytes/bytes.td $(testlib_bytes_srcs) + -t$(TESTCACHE)/bytes/bytes.td $(testlib_bytes_any_srcs) -# compress::flate -testlib_compress_flate_srcs= \ +# compress::flate (+any) +testlib_compress_flate_any_srcs= \ $(STDLIB)/compress/flate/inflate.ha -$(TESTCACHE)/compress/flate/compress_flate.ssa: $(testlib_compress_flate_srcs) $(testlib_rt) $(testlib_bufio) $(testlib_bytes) $(testlib_endian) $(testlib_errors) $(testlib_io) $(testlib_fmt) +$(TESTCACHE)/compress/flate/compress_flate-any.ssa: $(testlib_compress_flate_any_srcs) $(testlib_rt) $(testlib_bufio) $(testlib_bytes) $(testlib_endian) $(testlib_errors) $(testlib_io) $(testlib_fmt) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/compress/flate @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Ncompress::flate \ - -t$(TESTCACHE)/compress/flate/compress_flate.td $(testlib_compress_flate_srcs) + -t$(TESTCACHE)/compress/flate/compress_flate.td $(testlib_compress_flate_any_srcs) -# compress::zlib -testlib_compress_zlib_srcs= \ +# compress::zlib (+any) +testlib_compress_zlib_any_srcs= \ $(STDLIB)/compress/zlib/data+test.ha \ $(STDLIB)/compress/zlib/reader.ha -$(TESTCACHE)/compress/zlib/compress_zlib.ssa: $(testlib_compress_zlib_srcs) $(testlib_rt) $(testlib_bufio) $(testlib_bytes) $(testlib_compress_flate) $(testlib_endian) $(testlib_errors) $(testlib_hash) $(testlib_hash_adler32) $(testlib_io) $(testlib_fmt) +$(TESTCACHE)/compress/zlib/compress_zlib-any.ssa: $(testlib_compress_zlib_any_srcs) $(testlib_rt) $(testlib_bufio) $(testlib_bytes) $(testlib_compress_flate) $(testlib_endian) $(testlib_errors) $(testlib_hash) $(testlib_hash_adler32) $(testlib_io) $(testlib_fmt) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/compress/zlib @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Ncompress::zlib \ - -t$(TESTCACHE)/compress/zlib/compress_zlib.td $(testlib_compress_zlib_srcs) + -t$(TESTCACHE)/compress/zlib/compress_zlib.td $(testlib_compress_zlib_any_srcs) -# crypto::blake2b -testlib_crypto_blake2b_srcs= \ +# crypto::blake2b (+any) +testlib_crypto_blake2b_any_srcs= \ $(STDLIB)/crypto/blake2b/blake2b.ha \ $(STDLIB)/crypto/blake2b/+test.ha \ $(STDLIB)/crypto/blake2b/vectors+test.ha -$(TESTCACHE)/crypto/blake2b/crypto_blake2b.ssa: $(testlib_crypto_blake2b_srcs) $(testlib_rt) $(testlib_encoding_hex) $(testlib_fmt) $(testlib_hash) $(testlib_io) $(testlib_strings) $(testlib_strio) $(testlib_crypto_math) $(testlib_endian) +$(TESTCACHE)/crypto/blake2b/crypto_blake2b-any.ssa: $(testlib_crypto_blake2b_any_srcs) $(testlib_rt) $(testlib_encoding_hex) $(testlib_fmt) $(testlib_hash) $(testlib_io) $(testlib_strings) $(testlib_strio) $(testlib_crypto_math) $(testlib_endian) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/crypto/blake2b @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Ncrypto::blake2b \ - -t$(TESTCACHE)/crypto/blake2b/crypto_blake2b.td $(testlib_crypto_blake2b_srcs) + -t$(TESTCACHE)/crypto/blake2b/crypto_blake2b.td $(testlib_crypto_blake2b_any_srcs) -# crypto::math -testlib_crypto_math_srcs= \ +# crypto::math (+any) +testlib_crypto_math_any_srcs= \ $(STDLIB)/crypto/math/bits.ha -$(TESTCACHE)/crypto/math/crypto_math.ssa: $(testlib_crypto_math_srcs) $(testlib_rt) +$(TESTCACHE)/crypto/math/crypto_math-any.ssa: $(testlib_crypto_math_any_srcs) $(testlib_rt) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/crypto/math @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Ncrypto::math \ - -t$(TESTCACHE)/crypto/math/crypto_math.td $(testlib_crypto_math_srcs) + -t$(TESTCACHE)/crypto/math/crypto_math.td $(testlib_crypto_math_any_srcs) -# crypto::random -testlib_crypto_random_srcs= \ - $(STDLIB)/crypto/random/+$(PLATFORM).ha \ +# crypto::random (+linux) +testlib_crypto_random_linux_srcs= \ + $(STDLIB)/crypto/random/+linux.ha \ $(STDLIB)/crypto/random/random.ha -$(TESTCACHE)/crypto/random/crypto_random.ssa: $(testlib_crypto_random_srcs) $(testlib_rt) $(testlib_rt) $(testlib_io) $(testlib_errors) +$(TESTCACHE)/crypto/random/crypto_random-linux.ssa: $(testlib_crypto_random_linux_srcs) $(testlib_rt) $(testlib_rt) $(testlib_io) $(testlib_errors) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/crypto/random @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Ncrypto::random \ - -t$(TESTCACHE)/crypto/random/crypto_random.td $(testlib_crypto_random_srcs) + -t$(TESTCACHE)/crypto/random/crypto_random.td $(testlib_crypto_random_linux_srcs) -# crypto::md5 -testlib_crypto_md5_srcs= \ +# crypto::md5 (+any) +testlib_crypto_md5_any_srcs= \ $(STDLIB)/crypto/md5/md5.ha \ $(STDLIB)/crypto/md5/+test.ha -$(TESTCACHE)/crypto/md5/crypto_md5.ssa: $(testlib_crypto_md5_srcs) $(testlib_rt) $(testlib_hash) $(testlib_io) $(testlib_endian) $(testlib_fmt) $(testlib_strio) $(testlib_strings) +$(TESTCACHE)/crypto/md5/crypto_md5-any.ssa: $(testlib_crypto_md5_any_srcs) $(testlib_rt) $(testlib_hash) $(testlib_io) $(testlib_endian) $(testlib_fmt) $(testlib_strio) $(testlib_strings) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/crypto/md5 @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Ncrypto::md5 \ - -t$(TESTCACHE)/crypto/md5/crypto_md5.td $(testlib_crypto_md5_srcs) + -t$(TESTCACHE)/crypto/md5/crypto_md5.td $(testlib_crypto_md5_any_srcs) -# crypto::sha1 -testlib_crypto_sha1_srcs= \ +# crypto::sha1 (+any) +testlib_crypto_sha1_any_srcs= \ $(STDLIB)/crypto/sha1/sha1.ha \ $(STDLIB)/crypto/sha1/+test.ha -$(TESTCACHE)/crypto/sha1/crypto_sha1.ssa: $(testlib_crypto_sha1_srcs) $(testlib_rt) $(testlib_hash) $(testlib_io) $(testlib_endian) $(testlib_fmt) $(testlib_strio) $(testlib_strings) +$(TESTCACHE)/crypto/sha1/crypto_sha1-any.ssa: $(testlib_crypto_sha1_any_srcs) $(testlib_rt) $(testlib_hash) $(testlib_io) $(testlib_endian) $(testlib_fmt) $(testlib_strio) $(testlib_strings) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/crypto/sha1 @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Ncrypto::sha1 \ - -t$(TESTCACHE)/crypto/sha1/crypto_sha1.td $(testlib_crypto_sha1_srcs) + -t$(TESTCACHE)/crypto/sha1/crypto_sha1.td $(testlib_crypto_sha1_any_srcs) -# crypto::sha256 -testlib_crypto_sha256_srcs= \ +# crypto::sha256 (+any) +testlib_crypto_sha256_any_srcs= \ $(STDLIB)/crypto/sha256/sha256.ha \ $(STDLIB)/crypto/sha256/+test.ha -$(TESTCACHE)/crypto/sha256/crypto_sha256.ssa: $(testlib_crypto_sha256_srcs) $(testlib_rt) $(testlib_hash) $(testlib_io) $(testlib_endian) $(testlib_fmt) $(testlib_strio) $(testlib_strings) +$(TESTCACHE)/crypto/sha256/crypto_sha256-any.ssa: $(testlib_crypto_sha256_any_srcs) $(testlib_rt) $(testlib_hash) $(testlib_io) $(testlib_endian) $(testlib_fmt) $(testlib_strio) $(testlib_strings) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/crypto/sha256 @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Ncrypto::sha256 \ - -t$(TESTCACHE)/crypto/sha256/crypto_sha256.td $(testlib_crypto_sha256_srcs) + -t$(TESTCACHE)/crypto/sha256/crypto_sha256.td $(testlib_crypto_sha256_any_srcs) -# crypto::sha512 -testlib_crypto_sha512_srcs= \ +# crypto::sha512 (+any) +testlib_crypto_sha512_any_srcs= \ $(STDLIB)/crypto/sha512/sha512.ha \ $(STDLIB)/crypto/sha512/+test.ha -$(TESTCACHE)/crypto/sha512/crypto_sha512.ssa: $(testlib_crypto_sha512_srcs) $(testlib_rt) $(testlib_hash) $(testlib_io) $(testlib_endian) $(testlib_fmt) $(testlib_strio) $(testlib_strings) +$(TESTCACHE)/crypto/sha512/crypto_sha512-any.ssa: $(testlib_crypto_sha512_any_srcs) $(testlib_rt) $(testlib_hash) $(testlib_io) $(testlib_endian) $(testlib_fmt) $(testlib_strio) $(testlib_strings) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/crypto/sha512 @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Ncrypto::sha512 \ - -t$(TESTCACHE)/crypto/sha512/crypto_sha512.td $(testlib_crypto_sha512_srcs) + -t$(TESTCACHE)/crypto/sha512/crypto_sha512.td $(testlib_crypto_sha512_any_srcs) -# dirs -testlib_dirs_srcs= \ +# dirs (+any) +testlib_dirs_any_srcs= \ $(STDLIB)/dirs/xdg.ha -$(TESTCACHE)/dirs/dirs.ssa: $(testlib_dirs_srcs) $(testlib_rt) $(testlib_fs) $(testlib_os) $(testlib_path) +$(TESTCACHE)/dirs/dirs-any.ssa: $(testlib_dirs_any_srcs) $(testlib_rt) $(testlib_fs) $(testlib_os) $(testlib_path) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/dirs @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Ndirs \ - -t$(TESTCACHE)/dirs/dirs.td $(testlib_dirs_srcs) + -t$(TESTCACHE)/dirs/dirs.td $(testlib_dirs_any_srcs) -# encoding::base64 -testlib_encoding_base64_srcs= \ +# encoding::base64 (+any) +testlib_encoding_base64_any_srcs= \ $(STDLIB)/encoding/base64/base64.ha -$(TESTCACHE)/encoding/base64/encoding_base64.ssa: $(testlib_encoding_base64_srcs) $(testlib_rt) $(testlib_bufio) $(testlib_bytes) $(testlib_io) $(testlib_strio) $(testlib_strings) +$(TESTCACHE)/encoding/base64/encoding_base64-any.ssa: $(testlib_encoding_base64_any_srcs) $(testlib_rt) $(testlib_bufio) $(testlib_bytes) $(testlib_io) $(testlib_strio) $(testlib_strings) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/encoding/base64 @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nencoding::base64 \ - -t$(TESTCACHE)/encoding/base64/encoding_base64.td $(testlib_encoding_base64_srcs) + -t$(TESTCACHE)/encoding/base64/encoding_base64.td $(testlib_encoding_base64_any_srcs) -# encoding::hex -testlib_encoding_hex_srcs= \ +# encoding::hex (+any) +testlib_encoding_hex_any_srcs= \ $(STDLIB)/encoding/hex/hex.ha -$(TESTCACHE)/encoding/hex/encoding_hex.ssa: $(testlib_encoding_hex_srcs) $(testlib_rt) $(testlib_ascii) $(testlib_bytes) $(testlib_fmt) $(testlib_io) $(testlib_strconv) $(testlib_strio) $(testlib_strings) +$(TESTCACHE)/encoding/hex/encoding_hex-any.ssa: $(testlib_encoding_hex_any_srcs) $(testlib_rt) $(testlib_ascii) $(testlib_bytes) $(testlib_fmt) $(testlib_io) $(testlib_strconv) $(testlib_strio) $(testlib_strings) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/encoding/hex @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nencoding::hex \ - -t$(TESTCACHE)/encoding/hex/encoding_hex.td $(testlib_encoding_hex_srcs) + -t$(TESTCACHE)/encoding/hex/encoding_hex.td $(testlib_encoding_hex_any_srcs) -# encoding::utf8 -testlib_encoding_utf8_srcs= \ +# encoding::utf8 (+any) +testlib_encoding_utf8_any_srcs= \ $(STDLIB)/encoding/utf8/decode.ha \ $(STDLIB)/encoding/utf8/encode.ha \ $(STDLIB)/encoding/utf8/rune.ha -$(TESTCACHE)/encoding/utf8/encoding_utf8.ssa: $(testlib_encoding_utf8_srcs) $(testlib_rt) $(testlib_types) +$(TESTCACHE)/encoding/utf8/encoding_utf8-any.ssa: $(testlib_encoding_utf8_any_srcs) $(testlib_rt) $(testlib_types) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/encoding/utf8 @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nencoding::utf8 \ - -t$(TESTCACHE)/encoding/utf8/encoding_utf8.td $(testlib_encoding_utf8_srcs) + -t$(TESTCACHE)/encoding/utf8/encoding_utf8.td $(testlib_encoding_utf8_any_srcs) -# endian -testlib_endian_srcs= \ +# endian (+any) +testlib_endian_any_srcs= \ $(STDLIB)/endian/big.ha \ $(STDLIB)/endian/network.ha \ $(STDLIB)/endian/little.ha \ $(STDLIB)/endian/endian.ha \ $(STDLIB)/endian/host+$(ARCH).ha -$(TESTCACHE)/endian/endian.ssa: $(testlib_endian_srcs) $(testlib_rt) +$(TESTCACHE)/endian/endian-any.ssa: $(testlib_endian_any_srcs) $(testlib_rt) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/endian @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nendian \ - -t$(TESTCACHE)/endian/endian.td $(testlib_endian_srcs) + -t$(TESTCACHE)/endian/endian.td $(testlib_endian_any_srcs) -# errors -testlib_errors_srcs= \ +# errors (+any) +testlib_errors_any_srcs= \ $(STDLIB)/errors/common.ha \ $(STDLIB)/errors/opaque.ha \ $(STDLIB)/errors/string.ha \ $(STDLIB)/errors/rt.ha -$(TESTCACHE)/errors/errors.ssa: $(testlib_errors_srcs) $(testlib_rt) +$(TESTCACHE)/errors/errors-any.ssa: $(testlib_errors_any_srcs) $(testlib_rt) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/errors @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nerrors \ - -t$(TESTCACHE)/errors/errors.td $(testlib_errors_srcs) + -t$(TESTCACHE)/errors/errors.td $(testlib_errors_any_srcs) -# fmt -testlib_fmt_srcs= \ +# fmt (+any) +testlib_fmt_any_srcs= \ $(STDLIB)/fmt/fmt.ha -$(TESTCACHE)/fmt/fmt.ssa: $(testlib_fmt_srcs) $(testlib_rt) $(testlib_bufio) $(testlib_io) $(testlib_os) $(testlib_strconv) $(testlib_strings) $(testlib_types) +$(TESTCACHE)/fmt/fmt-any.ssa: $(testlib_fmt_any_srcs) $(testlib_rt) $(testlib_bufio) $(testlib_io) $(testlib_os) $(testlib_strconv) $(testlib_strings) $(testlib_types) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/fmt @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nfmt \ - -t$(TESTCACHE)/fmt/fmt.td $(testlib_fmt_srcs) + -t$(TESTCACHE)/fmt/fmt.td $(testlib_fmt_any_srcs) -# fnmatch -testlib_fnmatch_srcs= \ +# fnmatch (+any) +testlib_fnmatch_any_srcs= \ $(STDLIB)/fnmatch/fnmatch.ha \ $(STDLIB)/fnmatch/+test.ha -$(TESTCACHE)/fnmatch/fnmatch.ssa: $(testlib_fnmatch_srcs) $(testlib_rt) $(testlib_strings) $(testlib_bytes) $(testlib_sort) $(testlib_ascii) $(testlib_io) $(testlib_fmt) +$(TESTCACHE)/fnmatch/fnmatch-any.ssa: $(testlib_fnmatch_any_srcs) $(testlib_rt) $(testlib_strings) $(testlib_bytes) $(testlib_sort) $(testlib_ascii) $(testlib_io) $(testlib_fmt) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/fnmatch @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nfnmatch \ - -t$(TESTCACHE)/fnmatch/fnmatch.td $(testlib_fnmatch_srcs) + -t$(TESTCACHE)/fnmatch/fnmatch.td $(testlib_fnmatch_any_srcs) -# format::elf -testlib_format_elf_srcs= \ +# format::elf (+any) +testlib_format_elf_any_srcs= \ $(STDLIB)/format/elf/+$(ARCH).ha \ $(STDLIB)/format/elf/+$(PLATFORM).ha \ $(STDLIB)/format/elf/types.ha -$(TESTCACHE)/format/elf/format_elf.ssa: $(testlib_format_elf_srcs) $(testlib_rt) +$(TESTCACHE)/format/elf/format_elf-any.ssa: $(testlib_format_elf_any_srcs) $(testlib_rt) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/format/elf @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nformat::elf \ - -t$(TESTCACHE)/format/elf/format_elf.td $(testlib_format_elf_srcs) + -t$(TESTCACHE)/format/elf/format_elf.td $(testlib_format_elf_any_srcs) -# format::ini -testlib_format_ini_srcs= \ +# format::ini (+any) +testlib_format_ini_any_srcs= \ $(STDLIB)/format/ini/scan.ha \ $(STDLIB)/format/ini/types.ha \ $(STDLIB)/format/ini/+test.ha -$(TESTCACHE)/format/ini/format_ini.ssa: $(testlib_format_ini_srcs) $(testlib_rt) $(testlib_bufio) $(testlib_encoding_utf8) $(testlib_fmt) $(testlib_io) $(testlib_strings) +$(TESTCACHE)/format/ini/format_ini-any.ssa: $(testlib_format_ini_any_srcs) $(testlib_rt) $(testlib_bufio) $(testlib_encoding_utf8) $(testlib_fmt) $(testlib_io) $(testlib_strings) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/format/ini @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nformat::ini \ - -t$(TESTCACHE)/format/ini/format_ini.td $(testlib_format_ini_srcs) + -t$(TESTCACHE)/format/ini/format_ini.td $(testlib_format_ini_any_srcs) -# format::xml -testlib_format_xml_srcs= \ +# format::xml (+any) +testlib_format_xml_any_srcs= \ $(STDLIB)/format/xml/types.ha \ $(STDLIB)/format/xml/parser.ha \ $(STDLIB)/format/xml/chars.ha \ $(STDLIB)/format/xml/+test.ha -$(TESTCACHE)/format/xml/format_xml.ssa: $(testlib_format_xml_srcs) $(testlib_rt) $(testlib_io) $(testlib_bufio) $(testlib_strings) $(testlib_ascii) $(testlib_strio) $(testlib_os) +$(TESTCACHE)/format/xml/format_xml-any.ssa: $(testlib_format_xml_any_srcs) $(testlib_rt) $(testlib_io) $(testlib_bufio) $(testlib_strings) $(testlib_ascii) $(testlib_strio) $(testlib_os) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/format/xml @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nformat::xml \ - -t$(TESTCACHE)/format/xml/format_xml.td $(testlib_format_xml_srcs) + -t$(TESTCACHE)/format/xml/format_xml.td $(testlib_format_xml_any_srcs) -# fs -testlib_fs_srcs= \ +# fs (+any) +testlib_fs_any_srcs= \ $(STDLIB)/fs/types.ha \ $(STDLIB)/fs/fs.ha \ $(STDLIB)/fs/util.ha -$(TESTCACHE)/fs/fs.ssa: $(testlib_fs_srcs) $(testlib_rt) $(testlib_io) $(testlib_strings) $(testlib_path) $(testlib_time) $(testlib_errors) +$(TESTCACHE)/fs/fs-any.ssa: $(testlib_fs_any_srcs) $(testlib_rt) $(testlib_io) $(testlib_strings) $(testlib_path) $(testlib_time) $(testlib_errors) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/fs @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nfs \ - -t$(TESTCACHE)/fs/fs.td $(testlib_fs_srcs) + -t$(TESTCACHE)/fs/fs.td $(testlib_fs_any_srcs) -# fs::mem -testlib_fs_mem_srcs= \ +# fs::mem (+any) +testlib_fs_mem_any_srcs= \ $(STDLIB)/fs/mem/mem.ha \ $(STDLIB)/fs/mem/stream.ha \ $(STDLIB)/fs/mem/util.ha \ $(STDLIB)/fs/mem/+test.ha -$(TESTCACHE)/fs/mem/fs_mem.ssa: $(testlib_fs_mem_srcs) $(testlib_rt) $(testlib_bufio) $(testlib_errors) $(testlib_fs) $(testlib_hash) $(testlib_hash_fnv) $(testlib_io) $(testlib_path) $(testlib_strconv) $(testlib_strings) $(testlib_types) +$(TESTCACHE)/fs/mem/fs_mem-any.ssa: $(testlib_fs_mem_any_srcs) $(testlib_rt) $(testlib_bufio) $(testlib_errors) $(testlib_fs) $(testlib_hash) $(testlib_hash_fnv) $(testlib_io) $(testlib_path) $(testlib_strconv) $(testlib_strings) $(testlib_types) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/fs/mem @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nfs::mem \ - -t$(TESTCACHE)/fs/mem/fs_mem.td $(testlib_fs_mem_srcs) + -t$(TESTCACHE)/fs/mem/fs_mem.td $(testlib_fs_mem_any_srcs) -# getopt -testlib_getopt_srcs= \ +# getopt (+any) +testlib_getopt_any_srcs= \ $(STDLIB)/getopt/getopts.ha -$(TESTCACHE)/getopt/getopt.ssa: $(testlib_getopt_srcs) $(testlib_rt) $(testlib_encoding_utf8) $(testlib_fmt) $(testlib_io) $(testlib_os) $(testlib_strings) +$(TESTCACHE)/getopt/getopt-any.ssa: $(testlib_getopt_any_srcs) $(testlib_rt) $(testlib_encoding_utf8) $(testlib_fmt) $(testlib_io) $(testlib_os) $(testlib_strings) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/getopt @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Ngetopt \ - -t$(TESTCACHE)/getopt/getopt.td $(testlib_getopt_srcs) + -t$(TESTCACHE)/getopt/getopt.td $(testlib_getopt_any_srcs) -# hare::ast -testlib_hare_ast_srcs= \ +# hare::ast (+any) +testlib_hare_ast_any_srcs= \ $(STDLIB)/hare/ast/decl.ha \ $(STDLIB)/hare/ast/expr.ha \ $(STDLIB)/hare/ast/ident.ha \ @@ -1928,39 +1921,39 @@ testlib_hare_ast_srcs= \ $(STDLIB)/hare/ast/type.ha \ $(STDLIB)/hare/ast/unit.ha -$(TESTCACHE)/hare/ast/hare_ast.ssa: $(testlib_hare_ast_srcs) $(testlib_rt) $(testlib_hare_lex) $(testlib_strings) +$(TESTCACHE)/hare/ast/hare_ast-any.ssa: $(testlib_hare_ast_any_srcs) $(testlib_rt) $(testlib_hare_lex) $(testlib_strings) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/hare/ast @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nhare::ast \ - -t$(TESTCACHE)/hare/ast/hare_ast.td $(testlib_hare_ast_srcs) + -t$(TESTCACHE)/hare/ast/hare_ast.td $(testlib_hare_ast_any_srcs) -# hare::lex -testlib_hare_lex_srcs= \ +# hare::lex (+any) +testlib_hare_lex_any_srcs= \ $(STDLIB)/hare/lex/token.ha \ $(STDLIB)/hare/lex/lex.ha \ $(STDLIB)/hare/lex/+test.ha -$(TESTCACHE)/hare/lex/hare_lex.ssa: $(testlib_hare_lex_srcs) $(testlib_rt) $(testlib_io) $(testlib_bufio) $(testlib_strings) $(testlib_types) $(testlib_fmt) $(testlib_sort) $(testlib_strio) +$(TESTCACHE)/hare/lex/hare_lex-any.ssa: $(testlib_hare_lex_any_srcs) $(testlib_rt) $(testlib_io) $(testlib_bufio) $(testlib_strings) $(testlib_types) $(testlib_fmt) $(testlib_sort) $(testlib_strio) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/hare/lex @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nhare::lex \ - -t$(TESTCACHE)/hare/lex/hare_lex.td $(testlib_hare_lex_srcs) + -t$(TESTCACHE)/hare/lex/hare_lex.td $(testlib_hare_lex_any_srcs) -# hare::module -testlib_hare_module_srcs= \ +# hare::module (+any) +testlib_hare_module_any_srcs= \ $(STDLIB)/hare/module/types.ha \ $(STDLIB)/hare/module/context.ha \ $(STDLIB)/hare/module/scan.ha \ $(STDLIB)/hare/module/manifest.ha -$(TESTCACHE)/hare/module/hare_module.ssa: $(testlib_hare_module_srcs) $(testlib_rt) $(testlib_hare_ast) $(testlib_hare_lex) $(testlib_hare_parse) $(testlib_hare_unparse) $(testlib_strio) $(testlib_fs) $(testlib_io) $(testlib_strings) $(testlib_hash) $(testlib_crypto_sha256) $(testlib_dirs) $(testlib_bytes) $(testlib_encoding_utf8) $(testlib_ascii) $(testlib_fmt) $(testlib_time) $(testlib_slice) $(testlib_bufio) $(testlib_strconv) $(testlib_os) $(testlib_encoding_hex) $(testlib_sort) $(testlib_errors) $(testlib_temp) +$(TESTCACHE)/hare/module/hare_module-any.ssa: $(testlib_hare_module_any_srcs) $(testlib_rt) $(testlib_hare_ast) $(testlib_hare_lex) $(testlib_hare_parse) $(testlib_hare_unparse) $(testlib_strio) $(testlib_fs) $(testlib_io) $(testlib_strings) $(testlib_hash) $(testlib_crypto_sha256) $(testlib_dirs) $(testlib_bytes) $(testlib_encoding_utf8) $(testlib_ascii) $(testlib_fmt) $(testlib_time) $(testlib_slice) $(testlib_bufio) $(testlib_strconv) $(testlib_os) $(testlib_encoding_hex) $(testlib_sort) $(testlib_errors) $(testlib_temp) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/hare/module @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nhare::module \ - -t$(TESTCACHE)/hare/module/hare_module.td $(testlib_hare_module_srcs) + -t$(TESTCACHE)/hare/module/hare_module.td $(testlib_hare_module_any_srcs) -# hare::parse -testlib_hare_parse_srcs= \ +# hare::parse (+any) +testlib_hare_parse_any_srcs= \ $(STDLIB)/hare/parse/decl.ha \ $(STDLIB)/hare/parse/expr.ha \ $(STDLIB)/hare/parse/ident.ha \ @@ -1975,14 +1968,14 @@ testlib_hare_parse_srcs= \ $(STDLIB)/hare/parse/+test/types.ha \ $(STDLIB)/hare/parse/+test/unit.ha -$(TESTCACHE)/hare/parse/hare_parse.ssa: $(testlib_hare_parse_srcs) $(testlib_rt) $(testlib_bufio) $(testlib_fmt) $(testlib_hare_ast) $(testlib_hare_lex) $(testlib_hare_unparse) $(testlib_io) $(testlib_strings) $(testlib_strio) $(testlib_fmt) +$(TESTCACHE)/hare/parse/hare_parse-any.ssa: $(testlib_hare_parse_any_srcs) $(testlib_rt) $(testlib_bufio) $(testlib_fmt) $(testlib_hare_ast) $(testlib_hare_lex) $(testlib_hare_unparse) $(testlib_io) $(testlib_strings) $(testlib_strio) $(testlib_fmt) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/hare/parse @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nhare::parse \ - -t$(TESTCACHE)/hare/parse/hare_parse.td $(testlib_hare_parse_srcs) + -t$(TESTCACHE)/hare/parse/hare_parse.td $(testlib_hare_parse_any_srcs) -# hare::types -testlib_hare_types_srcs= \ +# hare::types (+any) +testlib_hare_types_any_srcs= \ $(STDLIB)/hare/types/arch.ha \ $(STDLIB)/hare/types/builtins.ha \ $(STDLIB)/hare/types/class.ha \ @@ -1992,14 +1985,14 @@ testlib_hare_types_srcs= \ $(STDLIB)/hare/types/types.ha \ $(STDLIB)/hare/types/+test.ha -$(TESTCACHE)/hare/types/hare_types.ssa: $(testlib_hare_types_srcs) $(testlib_rt) $(testlib_hare_ast) $(testlib_hare_parse) $(testlib_hash) $(testlib_hash_fnv) $(testlib_endian) +$(TESTCACHE)/hare/types/hare_types-any.ssa: $(testlib_hare_types_any_srcs) $(testlib_rt) $(testlib_hare_ast) $(testlib_hare_parse) $(testlib_hash) $(testlib_hash_fnv) $(testlib_endian) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/hare/types @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nhare::types \ - -t$(TESTCACHE)/hare/types/hare_types.td $(testlib_hare_types_srcs) + -t$(TESTCACHE)/hare/types/hare_types.td $(testlib_hare_types_any_srcs) -# hare::unit -testlib_hare_unit_srcs= \ +# hare::unit (+any) +testlib_hare_unit_any_srcs= \ $(STDLIB)/hare/unit/check.ha \ $(STDLIB)/hare/unit/context.ha \ $(STDLIB)/hare/unit/errors.ha \ @@ -2010,14 +2003,14 @@ testlib_hare_unit_srcs= \ $(STDLIB)/hare/unit/unit.ha \ $(STDLIB)/hare/unit/+test.ha -$(TESTCACHE)/hare/unit/hare_unit.ssa: $(testlib_hare_unit_srcs) $(testlib_rt) $(testlib_hare_ast) $(testlib_hare_types) $(testlib_hash) $(testlib_hash_fnv) $(testlib_strings) $(testlib_hare_lex) $(testlib_bufio) $(testlib_hare_parse) +$(TESTCACHE)/hare/unit/hare_unit-any.ssa: $(testlib_hare_unit_any_srcs) $(testlib_rt) $(testlib_hare_ast) $(testlib_hare_types) $(testlib_hash) $(testlib_hash_fnv) $(testlib_strings) $(testlib_hare_lex) $(testlib_bufio) $(testlib_hare_parse) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/hare/unit @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nhare::unit \ - -t$(TESTCACHE)/hare/unit/hare_unit.td $(testlib_hare_unit_srcs) + -t$(TESTCACHE)/hare/unit/hare_unit.td $(testlib_hare_unit_any_srcs) -# hare::unparse -testlib_hare_unparse_srcs= \ +# hare::unparse (+any) +testlib_hare_unparse_any_srcs= \ $(STDLIB)/hare/unparse/expr.ha \ $(STDLIB)/hare/unparse/decl.ha \ $(STDLIB)/hare/unparse/ident.ha \ @@ -2026,133 +2019,133 @@ testlib_hare_unparse_srcs= \ $(STDLIB)/hare/unparse/unit.ha \ $(STDLIB)/hare/unparse/util.ha -$(TESTCACHE)/hare/unparse/hare_unparse.ssa: $(testlib_hare_unparse_srcs) $(testlib_rt) $(testlib_fmt) $(testlib_io) $(testlib_strio) $(testlib_hare_ast) +$(TESTCACHE)/hare/unparse/hare_unparse-any.ssa: $(testlib_hare_unparse_any_srcs) $(testlib_rt) $(testlib_fmt) $(testlib_io) $(testlib_strio) $(testlib_hare_ast) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/hare/unparse @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nhare::unparse \ - -t$(TESTCACHE)/hare/unparse/hare_unparse.td $(testlib_hare_unparse_srcs) + -t$(TESTCACHE)/hare/unparse/hare_unparse.td $(testlib_hare_unparse_any_srcs) -# hash -testlib_hash_srcs= \ +# hash (+any) +testlib_hash_any_srcs= \ $(STDLIB)/hash/hash.ha -$(TESTCACHE)/hash/hash.ssa: $(testlib_hash_srcs) $(testlib_rt) $(testlib_io) $(testlib_fmt) +$(TESTCACHE)/hash/hash-any.ssa: $(testlib_hash_any_srcs) $(testlib_rt) $(testlib_io) $(testlib_fmt) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/hash @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nhash \ - -t$(TESTCACHE)/hash/hash.td $(testlib_hash_srcs) + -t$(TESTCACHE)/hash/hash.td $(testlib_hash_any_srcs) -# hash::adler32 -testlib_hash_adler32_srcs= \ +# hash::adler32 (+any) +testlib_hash_adler32_any_srcs= \ $(STDLIB)/hash/adler32/adler32.ha -$(TESTCACHE)/hash/adler32/hash_adler32.ssa: $(testlib_hash_adler32_srcs) $(testlib_rt) $(testlib_endian) $(testlib_hash) $(testlib_io) $(testlib_strings) +$(TESTCACHE)/hash/adler32/hash_adler32-any.ssa: $(testlib_hash_adler32_any_srcs) $(testlib_rt) $(testlib_endian) $(testlib_hash) $(testlib_io) $(testlib_strings) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/hash/adler32 @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nhash::adler32 \ - -t$(TESTCACHE)/hash/adler32/hash_adler32.td $(testlib_hash_adler32_srcs) + -t$(TESTCACHE)/hash/adler32/hash_adler32.td $(testlib_hash_adler32_any_srcs) -# hash::crc16 -testlib_hash_crc16_srcs= \ +# hash::crc16 (+any) +testlib_hash_crc16_any_srcs= \ $(STDLIB)/hash/crc16/crc16.ha -$(TESTCACHE)/hash/crc16/hash_crc16.ssa: $(testlib_hash_crc16_srcs) $(testlib_rt) $(testlib_endian) $(testlib_hash) $(testlib_io) $(testlib_strings) +$(TESTCACHE)/hash/crc16/hash_crc16-any.ssa: $(testlib_hash_crc16_any_srcs) $(testlib_rt) $(testlib_endian) $(testlib_hash) $(testlib_io) $(testlib_strings) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/hash/crc16 @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nhash::crc16 \ - -t$(TESTCACHE)/hash/crc16/hash_crc16.td $(testlib_hash_crc16_srcs) + -t$(TESTCACHE)/hash/crc16/hash_crc16.td $(testlib_hash_crc16_any_srcs) -# hash::crc32 -testlib_hash_crc32_srcs= \ +# hash::crc32 (+any) +testlib_hash_crc32_any_srcs= \ $(STDLIB)/hash/crc32/crc32.ha -$(TESTCACHE)/hash/crc32/hash_crc32.ssa: $(testlib_hash_crc32_srcs) $(testlib_rt) $(testlib_endian) $(testlib_hash) $(testlib_io) $(testlib_strings) +$(TESTCACHE)/hash/crc32/hash_crc32-any.ssa: $(testlib_hash_crc32_any_srcs) $(testlib_rt) $(testlib_endian) $(testlib_hash) $(testlib_io) $(testlib_strings) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/hash/crc32 @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nhash::crc32 \ - -t$(TESTCACHE)/hash/crc32/hash_crc32.td $(testlib_hash_crc32_srcs) + -t$(TESTCACHE)/hash/crc32/hash_crc32.td $(testlib_hash_crc32_any_srcs) -# hash::crc64 -testlib_hash_crc64_srcs= \ +# hash::crc64 (+any) +testlib_hash_crc64_any_srcs= \ $(STDLIB)/hash/crc64/crc64.ha -$(TESTCACHE)/hash/crc64/hash_crc64.ssa: $(testlib_hash_crc64_srcs) $(testlib_rt) $(testlib_endian) $(testlib_hash) $(testlib_io) $(testlib_strings) +$(TESTCACHE)/hash/crc64/hash_crc64-any.ssa: $(testlib_hash_crc64_any_srcs) $(testlib_rt) $(testlib_endian) $(testlib_hash) $(testlib_io) $(testlib_strings) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/hash/crc64 @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nhash::crc64 \ - -t$(TESTCACHE)/hash/crc64/hash_crc64.td $(testlib_hash_crc64_srcs) + -t$(TESTCACHE)/hash/crc64/hash_crc64.td $(testlib_hash_crc64_any_srcs) -# hash::fnv -testlib_hash_fnv_srcs= \ +# hash::fnv (+any) +testlib_hash_fnv_any_srcs= \ $(STDLIB)/hash/fnv/fnv.ha -$(TESTCACHE)/hash/fnv/hash_fnv.ssa: $(testlib_hash_fnv_srcs) $(testlib_rt) $(testlib_hash) $(testlib_io) $(testlib_strings) +$(TESTCACHE)/hash/fnv/hash_fnv-any.ssa: $(testlib_hash_fnv_any_srcs) $(testlib_rt) $(testlib_hash) $(testlib_io) $(testlib_strings) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/hash/fnv @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nhash::fnv \ - -t$(TESTCACHE)/hash/fnv/hash_fnv.td $(testlib_hash_fnv_srcs) + -t$(TESTCACHE)/hash/fnv/hash_fnv.td $(testlib_hash_fnv_any_srcs) -# io -testlib_io_srcs= \ +# io (+linux) +testlib_io_linux_srcs= \ $(STDLIB)/io/arch+$(ARCH).ha \ + $(STDLIB)/io/println+linux.ha \ + $(STDLIB)/io/+linux/file.ha \ $(STDLIB)/io/copy.ha \ $(STDLIB)/io/drain.ha \ $(STDLIB)/io/empty.ha \ $(STDLIB)/io/filestream.ha \ $(STDLIB)/io/handle.ha \ $(STDLIB)/io/limit.ha \ - $(STDLIB)/io/println+$(PLATFORM).ha \ $(STDLIB)/io/stream.ha \ $(STDLIB)/io/tee.ha \ $(STDLIB)/io/types.ha \ - $(STDLIB)/io/+$(PLATFORM)/file.ha \ $(STDLIB)/io/+test/copy.ha \ $(STDLIB)/io/+test/limit.ha \ $(STDLIB)/io/+test/stream.ha -$(TESTCACHE)/io/io.ssa: $(testlib_io_srcs) $(testlib_rt) $(testlib_strings) $(testlib_errors) +$(TESTCACHE)/io/io-linux.ssa: $(testlib_io_linux_srcs) $(testlib_rt) $(testlib_strings) $(testlib_errors) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/io @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nio \ - -t$(TESTCACHE)/io/io.td $(testlib_io_srcs) + -t$(TESTCACHE)/io/io.td $(testlib_io_linux_srcs) -# iobus::io_uring -testlib_iobus_io_uring_srcs= \ +# iobus::io_uring (+linux) +testlib_iobus_io_uring_linux_srcs= \ $(STDLIB)/iobus/io_uring/bus.ha \ $(STDLIB)/iobus/io_uring/handle.ha \ $(STDLIB)/iobus/io_uring/ops.ha \ $(STDLIB)/iobus/io_uring/pool.ha \ $(STDLIB)/iobus/io_uring/types.ha -$(TESTCACHE)/iobus/io_uring/iobus_io_uring.ssa: $(testlib_iobus_io_uring_srcs) $(testlib_rt) $(testlib_errors) $(testlib_io) $(testlib_linux_io_uring) $(testlib_net_ip) $(testlib_unix_poll) +$(TESTCACHE)/iobus/io_uring/iobus_io_uring-linux.ssa: $(testlib_iobus_io_uring_linux_srcs) $(testlib_rt) $(testlib_errors) $(testlib_io) $(testlib_linux_io_uring) $(testlib_net_ip) $(testlib_unix_poll) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/iobus/io_uring @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Niobus::io_uring \ - -t$(TESTCACHE)/iobus/io_uring/iobus_io_uring.td $(testlib_iobus_io_uring_srcs) + -t$(TESTCACHE)/iobus/io_uring/iobus_io_uring.td $(testlib_iobus_io_uring_linux_srcs) -# linux -testlib_linux_srcs= \ +# linux (+linux) +testlib_linux_linux_srcs= \ $(STDLIB)/linux/start.ha \ $(STDLIB)/linux/env.ha -$(TESTCACHE)/linux/linux.ssa: $(testlib_linux_srcs) $(testlib_rt) $(testlib_format_elf) +$(TESTCACHE)/linux/linux-linux.ssa: $(testlib_linux_linux_srcs) $(testlib_rt) $(testlib_format_elf) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/linux @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nlinux \ - -t$(TESTCACHE)/linux/linux.td $(testlib_linux_srcs) + -t$(TESTCACHE)/linux/linux.td $(testlib_linux_linux_srcs) -# linux::signalfd -testlib_linux_signalfd_srcs= \ +# linux::signalfd (+linux) +testlib_linux_signalfd_linux_srcs= \ $(STDLIB)/linux/signalfd/signalfd.ha -$(TESTCACHE)/linux/signalfd/linux_signalfd.ssa: $(testlib_linux_signalfd_srcs) $(testlib_rt) $(testlib_errors) +$(TESTCACHE)/linux/signalfd/linux_signalfd-linux.ssa: $(testlib_linux_signalfd_linux_srcs) $(testlib_rt) $(testlib_errors) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/linux/signalfd @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nlinux::signalfd \ - -t$(TESTCACHE)/linux/signalfd/linux_signalfd.td $(testlib_linux_signalfd_srcs) + -t$(TESTCACHE)/linux/signalfd/linux_signalfd.td $(testlib_linux_signalfd_linux_srcs) -# linux::io_uring -testlib_linux_io_uring_srcs= \ +# linux::io_uring (+linux) +testlib_linux_io_uring_linux_srcs= \ $(STDLIB)/linux/io_uring/cqe.ha \ $(STDLIB)/linux/io_uring/queue.ha \ $(STDLIB)/linux/io_uring/register.ha \ @@ -2160,25 +2153,24 @@ testlib_linux_io_uring_srcs= \ $(STDLIB)/linux/io_uring/sqe.ha \ $(STDLIB)/linux/io_uring/uring.ha -$(TESTCACHE)/linux/io_uring/linux_io_uring.ssa: $(testlib_linux_io_uring_srcs) $(testlib_rt) $(testlib_errors) $(testlib_types) +$(TESTCACHE)/linux/io_uring/linux_io_uring-linux.ssa: $(testlib_linux_io_uring_linux_srcs) $(testlib_rt) $(testlib_errors) $(testlib_types) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/linux/io_uring @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nlinux::io_uring \ - -t$(TESTCACHE)/linux/io_uring/linux_io_uring.td $(testlib_linux_io_uring_srcs) + -t$(TESTCACHE)/linux/io_uring/linux_io_uring.td $(testlib_linux_io_uring_linux_srcs) -# linux::vdso -testlib_linux_vdso_srcs= \ +# linux::vdso (+linux) +testlib_linux_vdso_linux_srcs= \ $(STDLIB)/linux/vdso/vdso.ha -$(TESTCACHE)/linux/vdso/linux_vdso.ssa: $(testlib_linux_vdso_srcs) $(testlib_rt) $(testlib_linux) $(testlib_strings) $(testlib_format_elf) +$(TESTCACHE)/linux/vdso/linux_vdso-linux.ssa: $(testlib_linux_vdso_linux_srcs) $(testlib_rt) $(testlib_linux) $(testlib_strings) $(testlib_format_elf) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/linux/vdso @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nlinux::vdso \ - -t$(TESTCACHE)/linux/vdso/linux_vdso.td $(testlib_linux_vdso_srcs) + -t$(TESTCACHE)/linux/vdso/linux_vdso.td $(testlib_linux_vdso_linux_srcs) -# math -# math -testlib_math_srcs= \ +# math (+any) +testlib_math_any_srcs= \ $(STDLIB)/math/math.ha \ $(STDLIB)/math/floats.ha \ $(STDLIB)/math/ints.ha \ @@ -2186,183 +2178,177 @@ testlib_math_srcs= \ $(STDLIB)/math/trig.ha \ $(STDLIB)/math/data+test.ha -$(TESTCACHE)/math/math.ssa: $(testlib_math_srcs) $(testlib_rt) $(testlib_types) +$(TESTCACHE)/math/math-any.ssa: $(testlib_math_any_srcs) $(testlib_rt) $(testlib_types) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/math @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nmath \ - -t$(TESTCACHE)/math/math.td $(testlib_math_srcs) + -t$(TESTCACHE)/math/math.td $(testlib_math_any_srcs) -# net -# net -testlib_net_srcs= \ - $(STDLIB)/net/+$(PLATFORM).ha \ +# net (+linux) +testlib_net_linux_srcs= \ + $(STDLIB)/net/+linux.ha \ $(STDLIB)/net/errors.ha \ $(STDLIB)/net/listener.ha -$(TESTCACHE)/net/net.ssa: $(testlib_net_srcs) $(testlib_rt) $(testlib_io) $(testlib_os) $(testlib_strings) $(testlib_net_ip) $(testlib_errors) $(testlib_rt) $(testlib_fmt) +$(TESTCACHE)/net/net-linux.ssa: $(testlib_net_linux_srcs) $(testlib_rt) $(testlib_io) $(testlib_os) $(testlib_strings) $(testlib_net_ip) $(testlib_errors) $(testlib_rt) $(testlib_fmt) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/net @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nnet \ - -t$(TESTCACHE)/net/net.td $(testlib_net_srcs) + -t$(TESTCACHE)/net/net.td $(testlib_net_linux_srcs) -# net::dial -# net::dial -testlib_net_dial_srcs= \ +# net::dial (+any) +testlib_net_dial_any_srcs= \ $(STDLIB)/net/dial/registry.ha \ $(STDLIB)/net/dial/dial.ha \ $(STDLIB)/net/dial/ip.ha \ $(STDLIB)/net/dial/resolve.ha -$(TESTCACHE)/net/dial/net_dial.ssa: $(testlib_net_dial_srcs) $(testlib_rt) $(testlib_io) $(testlib_net) $(testlib_net_ip) $(testlib_net_tcp) $(testlib_net_udp) $(testlib_net_dns) $(testlib_crypto_random) $(testlib_strconv) $(testlib_strings) $(testlib_unix_hosts) +$(TESTCACHE)/net/dial/net_dial-any.ssa: $(testlib_net_dial_any_srcs) $(testlib_rt) $(testlib_io) $(testlib_net) $(testlib_net_ip) $(testlib_net_tcp) $(testlib_net_udp) $(testlib_net_dns) $(testlib_crypto_random) $(testlib_strconv) $(testlib_strings) $(testlib_unix_hosts) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/net/dial @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nnet::dial \ - -t$(TESTCACHE)/net/dial/net_dial.td $(testlib_net_dial_srcs) + -t$(TESTCACHE)/net/dial/net_dial.td $(testlib_net_dial_any_srcs) -# net::dns -# net::dns -testlib_net_dns_srcs= \ +# net::dns (+any) +testlib_net_dns_any_srcs= \ $(STDLIB)/net/dns/decode.ha \ $(STDLIB)/net/dns/error.ha \ $(STDLIB)/net/dns/encode.ha \ $(STDLIB)/net/dns/query.ha \ $(STDLIB)/net/dns/types.ha -$(TESTCACHE)/net/dns/net_dns.ssa: $(testlib_net_dns_srcs) $(testlib_rt) $(testlib_ascii) $(testlib_endian) $(testlib_net) $(testlib_net_udp) $(testlib_net_ip) $(testlib_fmt) $(testlib_strings) $(testlib_unix_resolvconf) $(testlib_unix_poll) $(testlib_rt) $(testlib_time) $(testlib_errors) +$(TESTCACHE)/net/dns/net_dns-any.ssa: $(testlib_net_dns_any_srcs) $(testlib_rt) $(testlib_ascii) $(testlib_endian) $(testlib_net) $(testlib_net_udp) $(testlib_net_ip) $(testlib_fmt) $(testlib_strings) $(testlib_unix_resolvconf) $(testlib_unix_poll) $(testlib_rt) $(testlib_time) $(testlib_errors) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/net/dns @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nnet::dns \ - -t$(TESTCACHE)/net/dns/net_dns.td $(testlib_net_dns_srcs) + -t$(TESTCACHE)/net/dns/net_dns.td $(testlib_net_dns_any_srcs) -# net::ip -testlib_net_ip_srcs= \ +# net::ip (+linux) +testlib_net_ip_linux_srcs= \ $(STDLIB)/net/ip/ip.ha \ - $(STDLIB)/net/ip/+$(PLATFORM).ha \ + $(STDLIB)/net/ip/+linux.ha \ $(STDLIB)/net/ip/+test.ha -$(TESTCACHE)/net/ip/net_ip.ssa: $(testlib_net_ip_srcs) $(testlib_rt) $(testlib_bytes) $(testlib_io) $(testlib_strconv) $(testlib_strings) $(testlib_strio) $(testlib_fmt) +$(TESTCACHE)/net/ip/net_ip-linux.ssa: $(testlib_net_ip_linux_srcs) $(testlib_rt) $(testlib_bytes) $(testlib_io) $(testlib_strconv) $(testlib_strings) $(testlib_strio) $(testlib_fmt) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/net/ip @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nnet::ip \ - -t$(TESTCACHE)/net/ip/net_ip.td $(testlib_net_ip_srcs) + -t$(TESTCACHE)/net/ip/net_ip.td $(testlib_net_ip_linux_srcs) -# net::tcp -# net::tcp -testlib_net_tcp_srcs= \ - $(STDLIB)/net/tcp/+$(PLATFORM).ha \ +# net::tcp (+linux) +testlib_net_tcp_linux_srcs= \ + $(STDLIB)/net/tcp/+linux.ha \ $(STDLIB)/net/tcp/listener.ha \ $(STDLIB)/net/tcp/options.ha -$(TESTCACHE)/net/tcp/net_tcp.ssa: $(testlib_net_tcp_srcs) $(testlib_rt) $(testlib_io) $(testlib_net) $(testlib_net_ip) $(testlib_os) $(testlib_rt) +$(TESTCACHE)/net/tcp/net_tcp-linux.ssa: $(testlib_net_tcp_linux_srcs) $(testlib_rt) $(testlib_io) $(testlib_net) $(testlib_net_ip) $(testlib_os) $(testlib_rt) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/net/tcp @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nnet::tcp \ - -t$(TESTCACHE)/net/tcp/net_tcp.td $(testlib_net_tcp_srcs) + -t$(TESTCACHE)/net/tcp/net_tcp.td $(testlib_net_tcp_linux_srcs) -# net::udp -# net::udp -testlib_net_udp_srcs= \ - $(STDLIB)/net/udp/+$(PLATFORM).ha \ +# net::udp (+linux) +testlib_net_udp_linux_srcs= \ + $(STDLIB)/net/udp/+linux.ha \ $(STDLIB)/net/udp/options.ha -$(TESTCACHE)/net/udp/net_udp.ssa: $(testlib_net_udp_srcs) $(testlib_rt) $(testlib_net) $(testlib_net_ip) $(testlib_errors) $(testlib_rt) $(testlib_os) $(testlib_io) +$(TESTCACHE)/net/udp/net_udp-linux.ssa: $(testlib_net_udp_linux_srcs) $(testlib_rt) $(testlib_net) $(testlib_net_ip) $(testlib_errors) $(testlib_rt) $(testlib_os) $(testlib_io) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/net/udp @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nnet::udp \ - -t$(TESTCACHE)/net/udp/net_udp.td $(testlib_net_udp_srcs) + -t$(TESTCACHE)/net/udp/net_udp.td $(testlib_net_udp_linux_srcs) -# net::unix -# net::unix -testlib_net_unix_srcs= \ - $(STDLIB)/net/unix/+$(PLATFORM).ha \ +# net::unix (+linux) +testlib_net_unix_linux_srcs= \ + $(STDLIB)/net/unix/+linux.ha \ $(STDLIB)/net/unix/addr.ha \ $(STDLIB)/net/unix/dial.ha \ $(STDLIB)/net/unix/listener.ha \ $(STDLIB)/net/unix/options.ha -$(TESTCACHE)/net/unix/net_unix.ssa: $(testlib_net_unix_srcs) $(testlib_rt) $(testlib_net) $(testlib_errors) $(testlib_os) $(testlib_io) $(testlib_strings) $(testlib_types) $(testlib_fmt) $(testlib_net_dial) +$(TESTCACHE)/net/unix/net_unix-linux.ssa: $(testlib_net_unix_linux_srcs) $(testlib_rt) $(testlib_net) $(testlib_errors) $(testlib_os) $(testlib_io) $(testlib_strings) $(testlib_types) $(testlib_fmt) $(testlib_net_dial) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/net/unix @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nnet::unix \ - -t$(TESTCACHE)/net/unix/net_unix.td $(testlib_net_unix_srcs) + -t$(TESTCACHE)/net/unix/net_unix.td $(testlib_net_unix_linux_srcs) -# math::random -testlib_math_random_srcs= \ +# math::random (+any) +testlib_math_random_any_srcs= \ $(STDLIB)/math/random/random.ha -$(TESTCACHE)/math/random/math_random.ssa: $(testlib_math_random_srcs) $(testlib_rt) +$(TESTCACHE)/math/random/math_random-any.ssa: $(testlib_math_random_any_srcs) $(testlib_rt) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/math/random @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nmath::random \ - -t$(TESTCACHE)/math/random/math_random.td $(testlib_math_random_srcs) - -# os -testlib_os_srcs= \ - $(STDLIB)/os/+$(PLATFORM)/environ.ha \ - $(STDLIB)/os/+$(PLATFORM)/exit.ha \ - $(STDLIB)/os/+$(PLATFORM)/dirfdfs.ha \ - $(STDLIB)/os/+$(PLATFORM)/stdfd.ha \ - $(STDLIB)/os/+$(PLATFORM)/fs.ha \ + -t$(TESTCACHE)/math/random/math_random.td $(testlib_math_random_any_srcs) + +# os (+linux) +testlib_os_linux_srcs= \ + $(STDLIB)/os/+linux/environ.ha \ + $(STDLIB)/os/+linux/exit.ha \ + $(STDLIB)/os/+linux/dirfdfs.ha \ + $(STDLIB)/os/+linux/stdfd.ha \ + $(STDLIB)/os/+linux/fs.ha \ $(STDLIB)/os/fs.ha -$(TESTCACHE)/os/os.ssa: $(testlib_os_srcs) $(testlib_rt) $(testlib_io) $(testlib_strings) $(testlib_types) $(testlib_fs) $(testlib_encoding_utf8) $(testlib_bytes) $(testlib_bufio) $(testlib_errors) +$(TESTCACHE)/os/os-linux.ssa: $(testlib_os_linux_srcs) $(testlib_rt) $(testlib_io) $(testlib_strings) $(testlib_types) $(testlib_fs) $(testlib_encoding_utf8) $(testlib_bytes) $(testlib_bufio) $(testlib_errors) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/os @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nos \ - -t$(TESTCACHE)/os/os.td $(testlib_os_srcs) + -t$(TESTCACHE)/os/os.td $(testlib_os_linux_srcs) -# os::exec -testlib_os_exec_srcs= \ - $(STDLIB)/os/exec/exec+$(PLATFORM).ha \ - $(STDLIB)/os/exec/process+$(PLATFORM).ha \ +# os::exec (+linux) +testlib_os_exec_linux_srcs= \ + $(STDLIB)/os/exec/exec+linux.ha \ + $(STDLIB)/os/exec/process+linux.ha \ $(STDLIB)/os/exec/types.ha \ $(STDLIB)/os/exec/cmd.ha -$(TESTCACHE)/os/exec/os_exec.ssa: $(testlib_os_exec_srcs) $(testlib_rt) $(testlib_os) $(testlib_strings) $(testlib_fmt) $(testlib_bytes) $(testlib_path) $(testlib_errors) +$(TESTCACHE)/os/exec/os_exec-linux.ssa: $(testlib_os_exec_linux_srcs) $(testlib_rt) $(testlib_os) $(testlib_strings) $(testlib_fmt) $(testlib_bytes) $(testlib_path) $(testlib_errors) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/os/exec @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nos::exec \ - -t$(TESTCACHE)/os/exec/os_exec.td $(testlib_os_exec_srcs) + -t$(TESTCACHE)/os/exec/os_exec.td $(testlib_os_exec_linux_srcs) -# path -testlib_path_srcs= \ +# path (+any) +testlib_path_any_srcs= \ $(STDLIB)/path/+$(PLATFORM).ha \ $(STDLIB)/path/util.ha \ $(STDLIB)/path/join.ha \ $(STDLIB)/path/names.ha \ $(STDLIB)/path/iter.ha -$(TESTCACHE)/path/path.ssa: $(testlib_path_srcs) $(testlib_rt) $(testlib_strings) $(testlib_bufio) $(testlib_bytes) +$(TESTCACHE)/path/path-any.ssa: $(testlib_path_any_srcs) $(testlib_rt) $(testlib_strings) $(testlib_bufio) $(testlib_bytes) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/path @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Npath \ - -t$(TESTCACHE)/path/path.td $(testlib_path_srcs) + -t$(TESTCACHE)/path/path.td $(testlib_path_any_srcs) -# slice -testlib_slice_srcs= \ +# slice (+any) +testlib_slice_any_srcs= \ $(STDLIB)/slice/reverse.ha \ $(STDLIB)/slice/void.ha -$(TESTCACHE)/slice/slice.ssa: $(testlib_slice_srcs) $(testlib_rt) $(testlib_types) +$(TESTCACHE)/slice/slice-any.ssa: $(testlib_slice_any_srcs) $(testlib_rt) $(testlib_types) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/slice @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nslice \ - -t$(TESTCACHE)/slice/slice.td $(testlib_slice_srcs) + -t$(TESTCACHE)/slice/slice.td $(testlib_slice_any_srcs) -# sort -testlib_sort_srcs= \ +# sort (+any) +testlib_sort_any_srcs= \ $(STDLIB)/sort/search.ha \ $(STDLIB)/sort/sort.ha \ $(STDLIB)/sort/+test.ha -$(TESTCACHE)/sort/sort.ssa: $(testlib_sort_srcs) $(testlib_rt) +$(TESTCACHE)/sort/sort-any.ssa: $(testlib_sort_any_srcs) $(testlib_rt) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/sort @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nsort \ - -t$(TESTCACHE)/sort/sort.td $(testlib_sort_srcs) + -t$(TESTCACHE)/sort/sort.td $(testlib_sort_any_srcs) -# strconv -testlib_strconv_srcs= \ +# strconv (+any) +testlib_strconv_any_srcs= \ $(STDLIB)/strconv/types.ha \ $(STDLIB)/strconv/itos.ha \ $(STDLIB)/strconv/utos.ha \ @@ -2375,14 +2361,14 @@ testlib_strconv_srcs= \ $(STDLIB)/strconv/+test/stou.ha \ $(STDLIB)/strconv/+test/stoi.ha -$(TESTCACHE)/strconv/strconv.ssa: $(testlib_strconv_srcs) $(testlib_rt) $(testlib_types) $(testlib_strings) $(testlib_ascii) $(testlib_math) +$(TESTCACHE)/strconv/strconv-any.ssa: $(testlib_strconv_any_srcs) $(testlib_rt) $(testlib_types) $(testlib_strings) $(testlib_ascii) $(testlib_math) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/strconv @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nstrconv \ - -t$(TESTCACHE)/strconv/strconv.td $(testlib_strconv_srcs) + -t$(TESTCACHE)/strconv/strconv.td $(testlib_strconv_any_srcs) -# strings -testlib_strings_srcs= \ +# strings (+any) +testlib_strings_any_srcs= \ $(STDLIB)/strings/concat.ha \ $(STDLIB)/strings/contains.ha \ $(STDLIB)/strings/cstrings.ha \ @@ -2395,49 +2381,49 @@ testlib_strings_srcs= \ $(STDLIB)/strings/index.ha \ $(STDLIB)/strings/trim.ha -$(TESTCACHE)/strings/strings.ssa: $(testlib_strings_srcs) $(testlib_rt) $(testlib_bytes) $(testlib_encoding_utf8) $(testlib_types) +$(TESTCACHE)/strings/strings-any.ssa: $(testlib_strings_any_srcs) $(testlib_rt) $(testlib_bytes) $(testlib_encoding_utf8) $(testlib_types) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/strings @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nstrings \ - -t$(TESTCACHE)/strings/strings.td $(testlib_strings_srcs) + -t$(TESTCACHE)/strings/strings.td $(testlib_strings_any_srcs) -# strio -testlib_strio_srcs= \ +# strio (+any) +testlib_strio_any_srcs= \ $(STDLIB)/strio/dynamic.ha \ $(STDLIB)/strio/fixed.ha \ $(STDLIB)/strio/ops.ha -$(TESTCACHE)/strio/strio.ssa: $(testlib_strio_srcs) $(testlib_rt) $(testlib_io) $(testlib_strings) $(testlib_encoding_utf8) $(testlib_errors) +$(TESTCACHE)/strio/strio-any.ssa: $(testlib_strio_any_srcs) $(testlib_rt) $(testlib_io) $(testlib_strings) $(testlib_encoding_utf8) $(testlib_errors) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/strio @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nstrio \ - -t$(TESTCACHE)/strio/strio.td $(testlib_strio_srcs) + -t$(TESTCACHE)/strio/strio.td $(testlib_strio_any_srcs) -# temp -testlib_temp_srcs= \ - $(STDLIB)/temp/+$(PLATFORM).ha +# temp (+linux) +testlib_temp_linux_srcs= \ + $(STDLIB)/temp/+linux.ha -$(TESTCACHE)/temp/temp.ssa: $(testlib_temp_srcs) $(testlib_rt) $(testlib_crypto_random) $(testlib_encoding_hex) $(testlib_fs) $(testlib_io) $(testlib_os) $(testlib_path) $(testlib_strio) $(testlib_fmt) $(testlib_strings) +$(TESTCACHE)/temp/temp-linux.ssa: $(testlib_temp_linux_srcs) $(testlib_rt) $(testlib_crypto_random) $(testlib_encoding_hex) $(testlib_fs) $(testlib_io) $(testlib_os) $(testlib_path) $(testlib_strio) $(testlib_fmt) $(testlib_strings) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/temp @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Ntemp \ - -t$(TESTCACHE)/temp/temp.td $(testlib_temp_srcs) + -t$(TESTCACHE)/temp/temp.td $(testlib_temp_linux_srcs) -# time -testlib_time_srcs= \ - $(STDLIB)/time/+$(PLATFORM)/functions.ha \ - $(STDLIB)/time/+$(PLATFORM)/+$(ARCH).ha \ +# time (+linux) +testlib_time_linux_srcs= \ + $(STDLIB)/time/+linux/functions.ha \ + $(STDLIB)/time/+linux/+$(ARCH).ha \ $(STDLIB)/time/arithm.ha \ $(STDLIB)/time/types.ha -$(TESTCACHE)/time/time.ssa: $(testlib_time_srcs) $(testlib_rt) $(testlib_linux_vdso) +$(TESTCACHE)/time/time-linux.ssa: $(testlib_time_linux_srcs) $(testlib_rt) $(testlib_linux_vdso) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/time @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Ntime \ - -t$(TESTCACHE)/time/time.td $(testlib_time_srcs) + -t$(TESTCACHE)/time/time.td $(testlib_time_linux_srcs) -# types -testlib_types_srcs= \ +# types (+any) +testlib_types_any_srcs= \ $(STDLIB)/types/limits.ha \ $(STDLIB)/types/classes.ha \ $(STDLIB)/types/reflect.ha \ @@ -2445,88 +2431,88 @@ testlib_types_srcs= \ $(STDLIB)/types/arch+$(ARCH).ha \ $(STDLIB)/types/util+test.ha -$(TESTCACHE)/types/types.ssa: $(testlib_types_srcs) $(testlib_rt) +$(TESTCACHE)/types/types-any.ssa: $(testlib_types_any_srcs) $(testlib_rt) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/types @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Ntypes \ - -t$(TESTCACHE)/types/types.td $(testlib_types_srcs) + -t$(TESTCACHE)/types/types.td $(testlib_types_any_srcs) -# unix -testlib_unix_srcs= \ - $(STDLIB)/unix/+$(PLATFORM)/nice.ha \ - $(STDLIB)/unix/+$(PLATFORM)/pipe.ha \ - $(STDLIB)/unix/+$(PLATFORM)/umask.ha \ +# unix (+linux) +testlib_unix_linux_srcs= \ + $(STDLIB)/unix/+linux/nice.ha \ + $(STDLIB)/unix/+linux/pipe.ha \ + $(STDLIB)/unix/+linux/umask.ha \ $(STDLIB)/unix/getuid.ha \ $(STDLIB)/unix/setuid.ha -$(TESTCACHE)/unix/unix.ssa: $(testlib_unix_srcs) $(testlib_rt) $(testlib_errors) $(testlib_fs) +$(TESTCACHE)/unix/unix-linux.ssa: $(testlib_unix_linux_srcs) $(testlib_rt) $(testlib_errors) $(testlib_fs) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/unix @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nunix \ - -t$(TESTCACHE)/unix/unix.td $(testlib_unix_srcs) + -t$(TESTCACHE)/unix/unix.td $(testlib_unix_linux_srcs) -# unix::hosts -testlib_unix_hosts_srcs= \ +# unix::hosts (+any) +testlib_unix_hosts_any_srcs= \ $(STDLIB)/unix/hosts/lookup.ha -$(TESTCACHE)/unix/hosts/unix_hosts.ssa: $(testlib_unix_hosts_srcs) $(testlib_rt) $(testlib_os) $(testlib_io) $(testlib_bufio) $(testlib_net_ip) $(testlib_strings) +$(TESTCACHE)/unix/hosts/unix_hosts-any.ssa: $(testlib_unix_hosts_any_srcs) $(testlib_rt) $(testlib_os) $(testlib_io) $(testlib_bufio) $(testlib_net_ip) $(testlib_strings) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/unix/hosts @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nunix::hosts \ - -t$(TESTCACHE)/unix/hosts/unix_hosts.td $(testlib_unix_hosts_srcs) + -t$(TESTCACHE)/unix/hosts/unix_hosts.td $(testlib_unix_hosts_any_srcs) -# unix::passwd -testlib_unix_passwd_srcs= \ +# unix::passwd (+any) +testlib_unix_passwd_any_srcs= \ $(STDLIB)/unix/passwd/group.ha \ $(STDLIB)/unix/passwd/passwd.ha \ $(STDLIB)/unix/passwd/types.ha -$(TESTCACHE)/unix/passwd/unix_passwd.ssa: $(testlib_unix_passwd_srcs) $(testlib_rt) $(testlib_bufio) $(testlib_io) $(testlib_os) $(testlib_strconv) $(testlib_strings) +$(TESTCACHE)/unix/passwd/unix_passwd-any.ssa: $(testlib_unix_passwd_any_srcs) $(testlib_rt) $(testlib_bufio) $(testlib_io) $(testlib_os) $(testlib_strconv) $(testlib_strings) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/unix/passwd @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nunix::passwd \ - -t$(TESTCACHE)/unix/passwd/unix_passwd.td $(testlib_unix_passwd_srcs) + -t$(TESTCACHE)/unix/passwd/unix_passwd.td $(testlib_unix_passwd_any_srcs) -# unix::poll -testlib_unix_poll_srcs= \ - $(STDLIB)/unix/poll/+$(PLATFORM).ha +# unix::poll (+linux) +testlib_unix_poll_linux_srcs= \ + $(STDLIB)/unix/poll/+linux.ha -$(TESTCACHE)/unix/poll/unix_poll.ssa: $(testlib_unix_poll_srcs) $(testlib_rt) $(testlib_rt) $(testlib_errors) $(testlib_time) +$(TESTCACHE)/unix/poll/unix_poll-linux.ssa: $(testlib_unix_poll_linux_srcs) $(testlib_rt) $(testlib_rt) $(testlib_errors) $(testlib_time) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/unix/poll @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nunix::poll \ - -t$(TESTCACHE)/unix/poll/unix_poll.td $(testlib_unix_poll_srcs) + -t$(TESTCACHE)/unix/poll/unix_poll.td $(testlib_unix_poll_linux_srcs) -# unix::resolvconf -testlib_unix_resolvconf_srcs= \ +# unix::resolvconf (+any) +testlib_unix_resolvconf_any_srcs= \ $(STDLIB)/unix/resolvconf/load.ha -$(TESTCACHE)/unix/resolvconf/unix_resolvconf.ssa: $(testlib_unix_resolvconf_srcs) $(testlib_rt) $(testlib_os) $(testlib_io) $(testlib_bufio) $(testlib_net_ip) $(testlib_strings) +$(TESTCACHE)/unix/resolvconf/unix_resolvconf-any.ssa: $(testlib_unix_resolvconf_any_srcs) $(testlib_rt) $(testlib_os) $(testlib_io) $(testlib_bufio) $(testlib_net_ip) $(testlib_strings) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/unix/resolvconf @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nunix::resolvconf \ - -t$(TESTCACHE)/unix/resolvconf/unix_resolvconf.td $(testlib_unix_resolvconf_srcs) + -t$(TESTCACHE)/unix/resolvconf/unix_resolvconf.td $(testlib_unix_resolvconf_any_srcs) -# unix::tty -testlib_unix_tty_srcs= \ +# unix::tty (+linux) +testlib_unix_tty_linux_srcs= \ $(STDLIB)/unix/tty/types.ha \ - $(STDLIB)/unix/tty/+$(PLATFORM)/isatty.ha \ - $(STDLIB)/unix/tty/+$(PLATFORM)/open.ha \ - $(STDLIB)/unix/tty/+$(PLATFORM)/winsize.ha + $(STDLIB)/unix/tty/+linux/isatty.ha \ + $(STDLIB)/unix/tty/+linux/open.ha \ + $(STDLIB)/unix/tty/+linux/winsize.ha -$(TESTCACHE)/unix/tty/unix_tty.ssa: $(testlib_unix_tty_srcs) $(testlib_rt) $(testlib_rt) $(testlib_fs) $(testlib_io) $(testlib_os) +$(TESTCACHE)/unix/tty/unix_tty-linux.ssa: $(testlib_unix_tty_linux_srcs) $(testlib_rt) $(testlib_rt) $(testlib_fs) $(testlib_io) $(testlib_os) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/unix/tty @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nunix::tty \ - -t$(TESTCACHE)/unix/tty/unix_tty.td $(testlib_unix_tty_srcs) + -t$(TESTCACHE)/unix/tty/unix_tty.td $(testlib_unix_tty_linux_srcs) -# uuid -testlib_uuid_srcs= \ +# uuid (+any) +testlib_uuid_any_srcs= \ $(STDLIB)/uuid/uuid.ha -$(TESTCACHE)/uuid/uuid.ssa: $(testlib_uuid_srcs) $(testlib_rt) $(testlib_crypto_random) $(testlib_strio) $(testlib_fmt) $(testlib_endian) $(testlib_io) $(testlib_bytes) $(testlib_bufio) $(testlib_strings) $(testlib_strconv) +$(TESTCACHE)/uuid/uuid-any.ssa: $(testlib_uuid_any_srcs) $(testlib_rt) $(testlib_crypto_random) $(testlib_strio) $(testlib_fmt) $(testlib_endian) $(testlib_io) $(testlib_bytes) $(testlib_bufio) $(testlib_strings) $(testlib_strconv) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/uuid @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nuuid \ - -t$(TESTCACHE)/uuid/uuid.td $(testlib_uuid_srcs) + -t$(TESTCACHE)/uuid/uuid.td $(testlib_uuid_any_srcs)