hare

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

commit 668dfaead1995e66d8bee6d3045222a248befdd2
parent cda5dc501bd4cee08fd24d08208a16547ba44bc1
Author: Ember Sawady <ecs@d2evs.net>
Date:   Fri, 29 Sep 2023 23:30:09 +0000

replace scripts/gen-stdlib with cmd/genbootstrap

- uses hare::module to automatically generate the makefiles, so keeping
  the bootstrap makefiles up-to-date only requires running
  make bootstrap (or scripts/genbootstrap if merge conflicts temporarily
  break the makefiles)
- the ci also verifies that you've done this, so it's impossible for it
  to get out of sync
- tests are run with `hare test` rather than reimplementing that in
  make
- dependencies of a module are only forcibly recompiled when the
  module's public interface changes, rather than on any changes anywhere
  in the dependency tree, making it much more pleasant to work on eg.
  rt::

Co-authored-by: Autumn! <autumnull@posteo.net>
Co-authored-by: Sebastian <sebastian@sebsite.pw>
Signed-off-by: Ember Sawady <ecs@d2evs.net>

Diffstat:
M.builds/alpine.yml | 16+++++++++-------
M.builds/freebsd.yml | 3---
MMakefile | 194+++++++++++++++++++++++++++++++++++++------------------------------------------
Acmd/genbootstrap/main.ha | 99+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mconfig.example.mk | 31+++++++++++++------------------
Amakefiles/freebsd.aarch64.mk | 256+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Amakefiles/freebsd.riscv64.mk | 256+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Amakefiles/freebsd.x86_64.mk | 256+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Amakefiles/linux.aarch64.mk | 274+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Amakefiles/linux.riscv64.mk | 274+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Amakefiles/linux.x86_64.mk | 274+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dscripts/gen-docs.sh | 32--------------------------------
Dscripts/gen-stdlib | 1781-------------------------------------------------------------------------------
Dscripts/gen-stdlib.sh | 138-------------------------------------------------------------------------------
Ascripts/genbootstrap | 11+++++++++++
Dscripts/install-mods | 45---------------------------------------------
Ascripts/moddirs | 7+++++++
Dscripts/modules | 27---------------------------
Dstdlib.mk | 4996-------------------------------------------------------------------------------
Dtargets.mk | 17-----------------
20 files changed, 1819 insertions(+), 7168 deletions(-)

diff --git a/.builds/alpine.yml b/.builds/alpine.yml @@ -32,21 +32,23 @@ tasks: cp config.example.mk config.mk make -j2 sudo make install -- tests: | - cd hare - make -j2 .bin/hare-tests - check: | cd hare make -j2 check -- tests_with_libc: | - cd hare - hare test -T+libc -lc -o .bin/hare-tests-libc - check_with_libc: | cd hare - .bin/hare-tests-libc + hare test -lc - copyright: | cd hare ./scripts/copyright.sh +- bootstrap: | + cd hare + make -j2 bootstrap + if [ -n "$(git status --porcelain)" ] + then + echo "bootstrap makefiles out of date, run make bootstrap to regenerate" + exit 1 + fi - docs: | if [ $BUILD_SUBMITTER != "git.sr.ht" ] then diff --git a/.builds/freebsd.yml b/.builds/freebsd.yml @@ -22,9 +22,6 @@ tasks: sed -e 's/linux/freebsd/g' < config.example.mk > config.mk make -j2 sudo make install -- tests: | - cd hare - make -j2 .bin/hare-tests - check: | cd hare make -j2 check diff --git a/Makefile b/Makefile @@ -1,96 +1,75 @@ .POSIX: -.SUFFIXES: -include config.mk -TESTCACHE = $(HARECACHE)/+test -TESTHARECFLAGS = $(HARECFLAGS) -T -STDLIB = . -stdlib_env = env -testlib_env = env all: -.SUFFIXES: .ha .ssa .s .o .scd +include config.mk +include makefiles/$(PLATFORM).$(ARCH).mk + +all: $(BINOUT)/hare $(BINOUT)/harec2 $(BINOUT)/haredoc docs + +HARE_DEFINES = \ + -D PLATFORM:str='"$(PLATFORM)"' \ + -D ARCH:str='"$(ARCH)"' \ + -D VERSION:str='"$(VERSION)"' \ + -D HAREPATH:str='"$(HAREPATH)"' \ + -D AARCH64_AS:str='"$(AARCH64_AS)"' \ + -D AARCH64_CC:str='"$(AARCH64_CC)"' \ + -D AARCH64_LD:str='"$(AARCH64_LD)"' \ + -D RISCV64_AS:str='"$(RISCV64_AS)"' \ + -D RISCV64_CC:str='"$(RISCV64_CC)"' \ + -D RISCV64_LD:str='"$(RISCV64_LD)"' \ + -D X86_64_AS:str='"$(X86_64_AS)"' \ + -D X86_64_CC:str='"$(X86_64_CC)"' \ + -D X86_64_LD:str='"$(X86_64_LD)"' + +.SUFFIXES: +.SUFFIXES: .ha .ssa .td .s .o .scd +.ssa.td: + @cmp -s '$@' '$@.tmp' 2>/dev/null || cp '$@.tmp' '$@' + .ssa.s: - @printf 'QBE\t%s\n' "$@" - @$(QBE) -o $@ $< + @printf 'QBE\t%s\n' '$@' + @$(QBE) $(QBEFLAGS) -o '$@' '$<' .s.o: - @printf 'AS\t%s\n' "$@" - @$(AS) -g -o $@ $< + @printf 'AS\t%s\n' '$@' + @$(AS) $(ASFLAGS) -o '$@' '$<' .scd: - @printf 'SCDOC\t%s\n' "$@" - @$(SCDOC) < $< > $@ - - -include stdlib.mk - -hare_srcs = \ - ./cmd/hare/arch.ha \ - ./cmd/hare/build.ha \ - ./cmd/hare/cache.ha \ - ./cmd/hare/deps.ha \ - ./cmd/hare/error.ha \ - ./cmd/hare/main.ha \ - ./cmd/hare/util.ha \ - ./cmd/hare/version.ha - -harec_srcs = \ - ./cmd/harec/main.ha \ - ./cmd/harec/errors.ha - -haredoc_srcs = \ - ./cmd/haredoc/main.ha \ - ./cmd/haredoc/arch.ha \ - ./cmd/haredoc/error.ha \ - ./cmd/haredoc/util.ha \ - ./cmd/haredoc/doc/color.ha \ - ./cmd/haredoc/doc/hare.ha \ - ./cmd/haredoc/doc/html.ha \ - ./cmd/haredoc/doc/resolve.ha \ - ./cmd/haredoc/doc/sort.ha \ - ./cmd/haredoc/doc/tty.ha \ - ./cmd/haredoc/doc/types.ha \ - ./cmd/haredoc/doc/util.ha - -include targets.mk - -$(HARECACHE)/hare.ssa: $(hare_srcs) $(stdlib_deps_any) $(stdlib_deps_$(PLATFORM)) scripts/version - @printf 'HAREC\t%s\n' "$@" - @$(stdlib_env) $(HAREC) $(HARECFLAGS) \ - $(HARE_DEFINES) -o $@ $(hare_srcs) - -$(TESTCACHE)/hare.ssa: $(hare_srcs) $(testlib_deps_any) $(testlib_deps_$(PLATFORM)) scripts/version - @printf 'HAREC\t%s\n' "$@" - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) \ - $(HARE_DEFINES) -o $@ $(hare_srcs) - -$(BINOUT)/hare: $(HARECACHE)/hare.o - @mkdir -p $(BINOUT) - @printf 'LD\t%s\n' "$@" - @$(LD) $(LDLINKFLAGS) --gc-sections -z noexecstack -T $(rtscript) -o $@ \ - $(HARECACHE)/hare.o $(stdlib_deps_any) $(stdlib_deps_$(PLATFORM)) + @printf 'SCDOC\t%s\n' '$@' + @$(SCDOC) < '$<' > '$@' -$(BINOUT)/hare-tests: $(TESTCACHE)/hare.o - @mkdir -p $(BINOUT) +$(BINOUT)/hare: $(OBJS) + @mkdir -p -- "$(BINOUT)" @printf 'LD\t%s\n' "$@" - @$(LD) $(LDLINKFLAGS) -T $(rtscript) -o $@ \ - $(testlib_deps_any) $(testlib_deps_$(PLATFORM)) + @$(LD) $(LDLINKFLAGS) --gc-sections -z noexecstack -T $(RTSCRIPT) -o $@ $(OBJS) -$(BINOUT)/harec2: $(BINOUT)/hare $(harec_srcs) - @mkdir -p $(BINOUT) +$(BINOUT)/harec2: $(BINOUT)/hare @printf 'HARE\t%s\n' "$@" - @env HAREPATH=. HAREC=$(HAREC) QBE=$(QBE) $(BINOUT)/hare build \ - $(HARE_DEFINES) -o $(BINOUT)/harec2 cmd/harec + @env HAREPATH=. HAREC=$(HAREC) QBE=$(QBE) AS=$(AS) LD=$(LD) \ + HAREFLAGS=$(HAREFLAGS) HARECFLAGS=$(HARECFLAGS) \ + QBEFLAGS=$(QBEFLAGS) ASFLAGS=$(ASFLAGS) \ + LDLINKFLAGS=$(LDLINKFLAGS) \ + $(BINOUT)/hare build $(HARE_DEFINES) -o $(BINOUT)/harec2 cmd/harec -$(BINOUT)/haredoc: $(BINOUT)/hare $(haredoc_srcs) +$(BINOUT)/haredoc: $(BINOUT)/hare @mkdir -p $(BINOUT) @printf 'HARE\t%s\n' "$@" @env HAREPATH=. HAREC=$(HAREC) QBE=$(QBE) $(BINOUT)/hare build \ $(HARE_DEFINES) -o $(BINOUT)/haredoc ./cmd/haredoc -docs/html: $(BINOUT)/haredoc scripts/gen-docs.sh - BINOUT=$(BINOUT) $(SHELL) ./scripts/gen-docs.sh +docs/html: $(BINOUT)/haredoc + mkdir -p docs/html + $(BINOUT)/haredoc -Fhtml > docs/html/index.html + for d in $$(scripts/moddirs); do \ + find $$d -type d | sed -E '/(\+|-)/d'; \ + done \ + | while read path; do \ + mod=$$(echo $$path | sed -E 's@/@::@g'); \ + echo $$mod; \ + mkdir -p docs/html/$$path; \ + $(BINOUT)/haredoc -Fhtml $$mod > docs/html/$$path/index.html; \ + done docs/hare.1: docs/hare.1.scd docs/haredoc.1: docs/haredoc.1.scd @@ -98,36 +77,43 @@ docs/hare-doc.5: docs/hare-doc.5.scd docs: docs/hare.1 docs/haredoc.1 docs/hare-doc.5 -clean: - rm -rf $(HARECACHE) $(BINOUT) docs/hare.1 docs/haredoc.1 docs/hare-doc.5 \ - docs/html - -check: $(BINOUT)/hare-tests - @$(BINOUT)/hare-tests - -scripts/gen-docs.sh: scripts/gen-stdlib -scripts/gen-stdlib: scripts/gen-stdlib.sh +bootstrap: + @BINOUT=$(BINOUT) ./scripts/genbootstrap -all: $(BINOUT)/hare $(BINOUT)/harec2 $(BINOUT)/haredoc docs - -install: docs scripts/install-mods - mkdir -p \ - $(DESTDIR)$(BINDIR) $(DESTDIR)$(MANDIR)/man1 \ - $(DESTDIR)$(BINDIR) $(DESTDIR)$(MANDIR)/man5 \ - $(DESTDIR)$(SRCDIR)/hare/stdlib - install -m755 $(BINOUT)/hare $(DESTDIR)$(BINDIR)/hare - install -m755 $(BINOUT)/haredoc $(DESTDIR)$(BINDIR)/haredoc - install -m644 docs/hare.1 $(DESTDIR)$(MANDIR)/man1/hare.1 - install -m644 docs/haredoc.1 $(DESTDIR)$(MANDIR)/man1/haredoc.1 - install -m644 docs/hare-doc.5 $(DESTDIR)$(MANDIR)/man5/hare-doc.5 - ./scripts/install-mods "$(DESTDIR)$(SRCDIR)/hare/stdlib" +clean: + $(RM) -rf '$(HARECACHE)' '$(BINOUT)' docs/hare.1 docs/haredoc.1 \ + docs/hare-doc.5 docs/html + +check: $(BINOUT)/hare + @env HAREPATH=. HAREC=$(HAREC) QBE=$(QBE) AS=$(AS) LD=$(LD) \ + HAREFLAGS=$(HAREFLAGS) HARECFLAGS=$(HARECFLAGS) \ + QBEFLAGS=$(QBEFLAGS) ASFLAGS=$(ASFLAGS) \ + LDLINKFLAGS=$(LDLINKFLAGS) $(BINOUT)/hare test + +install: install-cmd install-mods + +install-cmd: + mkdir -p -- \ + '$(DESTDIR)$(BINDIR)' '$(DESTDIR)$(MANDIR)/man1' \ + '$(DESTDIR)$(BINDIR)' '$(DESTDIR)$(MANDIR)/man5' + install -m755 '$(BINOUT)/hare' '$(DESTDIR)$(BINDIR)/hare' + install -m755 '$(BINOUT)/haredoc' '$(DESTDIR)$(BINDIR)/haredoc' + install -m644 docs/hare.1 '$(DESTDIR)$(MANDIR)/man1/hare.1' + install -m644 docs/haredoc.1 '$(DESTDIR)$(MANDIR)/man1/haredoc.1' + install -m644 docs/hare-doc.5 '$(DESTDIR)$(MANDIR)/man5/hare-doc.5' + +install-mods: + $(RM) -rf -- '$(DESTDIR)$(STDLIB)' + mkdir -p -- '$(DESTDIR)$(STDLIB)' + cp -R -- $$(scripts/moddirs) '$(DESTDIR)$(STDLIB)' uninstall: - $(RM) $(DESTDIR)$(BINDIR)/hare - $(RM) $(DESTDIR)$(BINDIR)/haredoc - $(RM) $(DESTDIR)$(MANDIR)/man1/hare.1 - $(RM) $(DESTDIR)$(MANDIR)/man1/haredoc.1 - $(RM) $(DESTDIR)$(MANDIR)/man5/hare-doc.5 - $(RM) -r $(DESTDIR)$(SRCDIR)/hare/stdlib - -.PHONY: all clean check docs install uninstall + $(RM) -- '$(DESTDIR)$(BINDIR)/hare' + $(RM) -- '$(DESTDIR)$(BINDIR)/haredoc' + $(RM) -- '$(DESTDIR)$(MANDIR)/man1/hare.1' + $(RM) -- '$(DESTDIR)$(MANDIR)/man1/haredoc.1' + $(RM) -- '$(DESTDIR)$(MANDIR)/man5/hare-doc.5' + $(RM) -r -- '$(DESTDIR)$(STDLIB)' + +.PHONY: all $(BINOUT)/harec2 $(BINOUT)/haredoc bootstrap clean check docs \ + docs/html install start uninstall diff --git a/cmd/genbootstrap/main.ha b/cmd/genbootstrap/main.ha @@ -0,0 +1,99 @@ +// SPDX-License-Identifier: GPL-3.0 +// (c) Hare authors <https://harelang.org> + +use fmt; +use hare::module; +use hare::unparse; +use io; +use memio; +use os; +use path; +use strings; + +export fn main() void = { + if (len(os::args) > 1 && os::args[1] == "-h") { + fmt::errorln("usage:", os::args[0], "[<tag>...]")!; + os::exit(0); + }; + + const ctx = module::context { + harepath = os::tryenv("HAREPATH", "."), + harecache = os::tryenv("HARECACHE", ".cache"), + tags = os::args[1..], + }; + let mods: []module::module = []; + defer module::free_slice(mods); + module::gather(&ctx, &mods, ["rt"])!; + module::gather(&ctx, &mods, ["cmd", "hare"])!; + + let ids: [](str, str) = []; + defer free(ids); + defer for (let i = 0z; i < len(ids); i += 1) { + free(ids[i].0); + free(ids[i].1); + }; + + let tds = memio::dynamic(); + defer io::close(&tds)!; + let objs = memio::dynamic(); + defer io::close(&objs)!; + for (let i = 0z; i < len(mods); i += 1) { + append(ids, (strings::join("_", mods[i].ns...), + unparse::identstr(mods[i].ns))); + fmt::fprintf(&tds, ` HARE_TD_{}=$(HARECACHE)/{}.td`, + ids[i].1, ids[i].0)!; + fmt::fprintf(&objs, ` $(HARECACHE)/{}.o`, ids[i].0)!; + }; + + let cwd = os::getcwd(); + let buf = path::init(mods[0].srcs.sc[0])!; + fmt::println(`# generated by cmd/genbootstrap`)!; + fmt::println(`# DO NOT EDIT BY HAND. run 'make bootstrap' to update`)!; + fmt::printfln(`TDENV = env{}`, memio::string(&tds)!)!; + fmt::printfln(`RTSCRIPT = {}`, path::trimprefix(&buf, cwd)!)!; + fmt::printfln(`OBJS ={}`, memio::string(&objs)!)!; + + let deps = memio::dynamic(); + defer io::close(&deps)!; + let sources = memio::dynamic(); + defer io::close(&sources)!; + for (let i = 0z; i < len(mods); i += 1) { + memio::reset(&deps); + for (let j = 0z; j < len(mods[i].deps); j += 1) { + fmt::fprintf(&deps, ` $(HARECACHE)/{}.td`, + ids[mods[i].deps[j].0].0)!; + }; + memio::reset(&sources); + for (let j = 0z; j < len(mods[i].srcs.ha); j += 1) { + path::set(&buf, mods[i].srcs.ha[j])!; + fmt::fprint(&sources, "", path::trimprefix(&buf, cwd)!)!; + }; + + fmt::println()!; + fmt::printfln(`{}_ha ={}`, ids[i].0, memio::string(&sources)!)!; + fmt::printfln(`$(HARECACHE)/{}.ssa: $({}_ha){}`, + ids[i].0, ids[i].0, memio::string(&deps)!)!; + fmt::println("\t" `@mkdir -p -- "$(HARECACHE)"`)!; + fmt::println("\t" `@printf 'HAREC\t%s\n' "$@"`)!; + fmt::printfln("\t" `@$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/{}.ssa -t $(HARECACHE)/{}.td.tmp {} {} $({}_ha)`, + ids[i].0, ids[i].0, + if (i == len(mods) - 1) `$(HARE_DEFINES)` else `-N`, + if (i == len(mods) - 1) `` else ids[i].1, ids[i].0)!; + if (len(mods[i].srcs.s) == 0) { + continue; + }; + + memio::reset(&sources); + for (let j = 0z; j < len(mods[i].srcs.s); j += 1) { + path::set(&buf, mods[i].srcs.s[j])!; + fmt::fprint(&sources, "", path::trimprefix(&buf, cwd)!)!; + }; + + fmt::println()!; + fmt::printfln(`{}_s = $(HARECACHE)/{}.s{}`, + ids[i].0, ids[i].0, memio::string(&sources)!)!; + fmt::printfln(`$(HARECACHE)/{}.o: $({}_s)`, ids[i].0, ids[i].0)!; + fmt::println("\t" `@printf 'AS\t%s\n' "$@"`)!; + fmt::printfln("\t" `@$(AS) $(ASFLAGS) -o $@ $({}_s)`, ids[i].0)!; + }; +}; diff --git a/config.example.mk b/config.example.mk @@ -1,47 +1,42 @@ -## Install configuration - +# install locations PREFIX = /usr/local BINDIR = $(PREFIX)/bin MANDIR = $(PREFIX)/share/man SRCDIR = $(PREFIX)/src - -# Where to install the stdlib tree STDLIB = $(SRCDIR)/hare/stdlib -# Default HAREPATH -HAREPATH = $(SRCDIR)/hare/stdlib:$(SRCDIR)/hare/third-party - -## Build configuration - -# Platform to build for +# variables used during build PLATFORM = linux ARCH = x86_64 +HAREFLAGS = +HARECFLAGS = +QBEFLAGS = +ASFLAGS = +LDLINKFLAGS = -# External tools and flags +# commands used by the build script HAREC = harec -HAREFLAGS = QBE = qbe AS = as LD = ld -AR = ar SCDOC = scdoc -# Where to store build artifacts +# build locations HARECACHE = .cache BINOUT = .bin -# Cross-compiler toolchains +# variables that will be embedded in the binary with -D definitions +HAREPATH = $(SRCDIR)/hare/stdlib:$(SRCDIR)/hare/third-party +VERSION=$$(./scripts/version) + AARCH64_AS=aarch64-as -AARCH64_AR=aarch64-ar AARCH64_CC=aarch64-cc AARCH64_LD=aarch64-ld RISCV64_AS=riscv64-as -RISCV64_AR=riscv64-ar RISCV64_CC=riscv64-cc RISCV64_LD=riscv64-ld X86_64_AS=as -X86_64_AR=ar X86_64_CC=cc X86_64_LD=ld diff --git a/makefiles/freebsd.aarch64.mk b/makefiles/freebsd.aarch64.mk @@ -0,0 +1,256 @@ +# generated by cmd/genbootstrap +# DO NOT EDIT BY HAND. run 'make bootstrap' to update +TDENV = env HARE_TD_rt=$(HARECACHE)/rt.td HARE_TD_encoding::utf8=$(HARECACHE)/encoding_utf8.td HARE_TD_types=$(HARECACHE)/types.td HARE_TD_bytes=$(HARECACHE)/bytes.td HARE_TD_strings=$(HARECACHE)/strings.td HARE_TD_ascii=$(HARECACHE)/ascii.td HARE_TD_errors=$(HARECACHE)/errors.td HARE_TD_io=$(HARECACHE)/io.td HARE_TD_bufio=$(HARECACHE)/bufio.td HARE_TD_crypto::math=$(HARECACHE)/crypto_math.td HARE_TD_endian=$(HARECACHE)/endian.td HARE_TD_math=$(HARECACHE)/math.td HARE_TD_memio=$(HARECACHE)/memio.td HARE_TD_path=$(HARECACHE)/path.td HARE_TD_time=$(HARECACHE)/time.td HARE_TD_fs=$(HARECACHE)/fs.td HARE_TD_types::c=$(HARECACHE)/types_c.td HARE_TD_os=$(HARECACHE)/os.td HARE_TD_strconv=$(HARECACHE)/strconv.td HARE_TD_fmt=$(HARECACHE)/fmt.td HARE_TD_hash=$(HARECACHE)/hash.td HARE_TD_crypto::sha256=$(HARECACHE)/crypto_sha256.td HARE_TD_encoding::hex=$(HARECACHE)/encoding_hex.td HARE_TD_sort=$(HARECACHE)/sort.td HARE_TD_sort::cmp=$(HARECACHE)/sort_cmp.td HARE_TD_hare::lex=$(HARECACHE)/hare_lex.td HARE_TD_hare::ast=$(HARECACHE)/hare_ast.td HARE_TD_hare::parse=$(HARECACHE)/hare_parse.td HARE_TD_hare::unparse=$(HARECACHE)/hare_unparse.td HARE_TD_time::chrono=$(HARECACHE)/time_chrono.td HARE_TD_time::date=$(HARECACHE)/time_date.td HARE_TD_hare::module=$(HARECACHE)/hare_module.td HARE_TD_unix=$(HARECACHE)/unix.td HARE_TD_unix::signal=$(HARECACHE)/unix_signal.td HARE_TD_os::exec=$(HARECACHE)/os_exec.td HARE_TD_shlex=$(HARECACHE)/shlex.td HARE_TD_unix::tty=$(HARECACHE)/unix_tty.td HARE_TD_cmd::hare::build=$(HARECACHE)/cmd_hare_build.td HARE_TD_dirs=$(HARECACHE)/dirs.td HARE_TD_getopt=$(HARECACHE)/getopt.td HARE_TD_cmd::hare=$(HARECACHE)/cmd_hare.td +RTSCRIPT = rt/hare.sc +OBJS = $(HARECACHE)/rt.o $(HARECACHE)/encoding_utf8.o $(HARECACHE)/types.o $(HARECACHE)/bytes.o $(HARECACHE)/strings.o $(HARECACHE)/ascii.o $(HARECACHE)/errors.o $(HARECACHE)/io.o $(HARECACHE)/bufio.o $(HARECACHE)/crypto_math.o $(HARECACHE)/endian.o $(HARECACHE)/math.o $(HARECACHE)/memio.o $(HARECACHE)/path.o $(HARECACHE)/time.o $(HARECACHE)/fs.o $(HARECACHE)/types_c.o $(HARECACHE)/os.o $(HARECACHE)/strconv.o $(HARECACHE)/fmt.o $(HARECACHE)/hash.o $(HARECACHE)/crypto_sha256.o $(HARECACHE)/encoding_hex.o $(HARECACHE)/sort.o $(HARECACHE)/sort_cmp.o $(HARECACHE)/hare_lex.o $(HARECACHE)/hare_ast.o $(HARECACHE)/hare_parse.o $(HARECACHE)/hare_unparse.o $(HARECACHE)/time_chrono.o $(HARECACHE)/time_date.o $(HARECACHE)/hare_module.o $(HARECACHE)/unix.o $(HARECACHE)/unix_signal.o $(HARECACHE)/os_exec.o $(HARECACHE)/shlex.o $(HARECACHE)/unix_tty.o $(HARECACHE)/cmd_hare_build.o $(HARECACHE)/dirs.o $(HARECACHE)/getopt.o $(HARECACHE)/cmd_hare.o + +rt_ha = rt/+aarch64/arch_jmp.ha rt/+aarch64/backtrace.ha rt/+aarch64/cpuid.ha rt/+freebsd/+aarch64.ha rt/+freebsd/env.ha rt/+freebsd/errno.ha rt/+freebsd/platform_abort.ha rt/+freebsd/platformstart.ha rt/+freebsd/segmalloc.ha rt/+freebsd/signal.ha rt/+freebsd/socket.ha rt/+freebsd/syscallno.ha rt/+freebsd/syscalls.ha rt/+freebsd/types.ha rt/abort.ha rt/ensure.ha rt/fenv_defs.ha rt/jmp.ha rt/malloc.ha rt/memcpy.ha rt/memfunc_ptr.ha rt/memmove.ha rt/memset.ha rt/start.ha rt/strcmp.ha rt/u64tos.ha rt/unknown_errno.ha +$(HARECACHE)/rt.ssa: $(rt_ha) + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/rt.ssa -t $(HARECACHE)/rt.td.tmp -N rt $(rt_ha) + +rt_s = $(HARECACHE)/rt.s rt/+aarch64/cpuid.s rt/+aarch64/fenv.s rt/+aarch64/getfp.s rt/+aarch64/longjmp.s rt/+aarch64/restore.s rt/+aarch64/setjmp.s rt/+freebsd/start+aarch64-libc.s rt/+freebsd/syscall+aarch64.s +$(HARECACHE)/rt.o: $(rt_s) + @printf 'AS\t%s\n' "$@" + @$(AS) $(ASFLAGS) -o $@ $(rt_s) + +encoding_utf8_ha = encoding/utf8/decode.ha encoding/utf8/decodetable.ha encoding/utf8/encode.ha encoding/utf8/rune.ha +$(HARECACHE)/encoding_utf8.ssa: $(encoding_utf8_ha) + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/encoding_utf8.ssa -t $(HARECACHE)/encoding_utf8.td.tmp -N encoding::utf8 $(encoding_utf8_ha) + +types_ha = types/arch+aarch64.ha types/classes.ha types/limits.ha +$(HARECACHE)/types.ssa: $(types_ha) + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/types.ssa -t $(HARECACHE)/types.td.tmp -N types $(types_ha) + +bytes_ha = bytes/contains.ha bytes/equal.ha bytes/index.ha bytes/reverse.ha bytes/tokenize.ha bytes/trim.ha bytes/two_way.ha bytes/zero.ha +$(HARECACHE)/bytes.ssa: $(bytes_ha) $(HARECACHE)/rt.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/bytes.ssa -t $(HARECACHE)/bytes.td.tmp -N bytes $(bytes_ha) + +strings_ha = strings/compare.ha strings/concat.ha strings/contains.ha strings/dup.ha strings/index.ha strings/iter.ha strings/pad.ha strings/replace.ha strings/runes.ha strings/sub.ha strings/suffix.ha strings/tokenize.ha strings/trim.ha strings/utf8.ha +$(HARECACHE)/strings.ssa: $(strings_ha) $(HARECACHE)/bytes.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/strings.ssa -t $(HARECACHE)/strings.td.tmp -N strings $(strings_ha) + +ascii_ha = ascii/ctype.ha ascii/string.ha ascii/valid.ha +$(HARECACHE)/ascii.ssa: $(ascii_ha) $(HARECACHE)/encoding_utf8.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/ascii.ssa -t $(HARECACHE)/ascii.td.tmp -N ascii $(ascii_ha) + +errors_ha = errors/common.ha errors/opaque.ha errors/rt.ha errors/string.ha +$(HARECACHE)/errors.ssa: $(errors_ha) $(HARECACHE)/rt.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/errors.ssa -t $(HARECACHE)/errors.td.tmp -N errors $(errors_ha) + +io_ha = io/+freebsd/mmap.ha io/+freebsd/platform_file.ha io/+freebsd/vector.ha io/arch+aarch64.ha io/copy.ha io/drain.ha io/empty.ha io/file.ha io/handle.ha io/limit.ha io/stream.ha io/tee.ha io/types.ha io/util.ha io/zero.ha +$(HARECACHE)/io.ssa: $(io_ha) $(HARECACHE)/bytes.td $(HARECACHE)/errors.td $(HARECACHE)/rt.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/io.ssa -t $(HARECACHE)/io.td.tmp -N io $(io_ha) + +bufio_ha = bufio/scanner.ha bufio/stream.ha +$(HARECACHE)/bufio.ssa: $(bufio_ha) $(HARECACHE)/bytes.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/errors.td $(HARECACHE)/io.td $(HARECACHE)/strings.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/bufio.ssa -t $(HARECACHE)/bufio.td.tmp -N bufio $(bufio_ha) + +crypto_math_ha = crypto/math/arithm.ha crypto/math/bits.ha +$(HARECACHE)/crypto_math.ssa: $(crypto_math_ha) + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/crypto_math.ssa -t $(HARECACHE)/crypto_math.td.tmp -N crypto::math $(crypto_math_ha) + +endian_ha = endian/big.ha endian/endian.ha endian/host+aarch64.ha endian/little.ha endian/network.ha +$(HARECACHE)/endian.ssa: $(endian_ha) + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/endian.ssa -t $(HARECACHE)/endian.td.tmp -N endian $(endian_ha) + +math_ha = math/fenv+aarch64.ha math/fenv_func.ha math/floats.ha math/ints.ha math/math.ha math/trig.ha math/uints.ha +$(HARECACHE)/math.ssa: $(math_ha) $(HARECACHE)/rt.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/math.ssa -t $(HARECACHE)/math.td.tmp -N math $(math_ha) + +memio_ha = memio/ops.ha memio/stream.ha +$(HARECACHE)/memio.ssa: $(memio_ha) $(HARECACHE)/bytes.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/errors.td $(HARECACHE)/io.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/memio.ssa -t $(HARECACHE)/memio.td.tmp -N memio $(memio_ha) + +path_ha = path/+freebsd.ha path/buffer.ha path/error.ha path/ext_stack.ha path/iter.ha path/posix.ha path/prefix.ha path/stack.ha +$(HARECACHE)/path.ssa: $(path_ha) $(HARECACHE)/bytes.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/path.ssa -t $(HARECACHE)/path.td.tmp -N path $(path_ha) + +time_ha = time/+freebsd/functions.ha time/arithm.ha time/conv.ha time/types.ha +$(HARECACHE)/time.ssa: $(time_ha) $(HARECACHE)/math.td $(HARECACHE)/rt.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/time.ssa -t $(HARECACHE)/time.td.tmp -N time $(time_ha) + +fs_ha = fs/fs.ha fs/types.ha fs/util.ha +$(HARECACHE)/fs.ssa: $(fs_ha) $(HARECACHE)/errors.td $(HARECACHE)/io.td $(HARECACHE)/path.td $(HARECACHE)/strings.td $(HARECACHE)/time.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/fs.ssa -t $(HARECACHE)/fs.td.tmp -N fs $(fs_ha) + +types_c_ha = types/c/arch+aarch64.ha types/c/strings.ha types/c/types.ha +$(HARECACHE)/types_c.ssa: $(types_c_ha) $(HARECACHE)/encoding_utf8.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/types_c.ssa -t $(HARECACHE)/types_c.td.tmp -N types::c $(types_c_ha) + +os_ha = os/+freebsd/dirfdfs.ha os/+freebsd/exit.ha os/+freebsd/fs.ha os/+freebsd/platform_environ.ha os/+freebsd/status.ha os/+freebsd/stdfd.ha os/environ.ha os/os.ha +$(HARECACHE)/os.ssa: $(os_ha) $(HARECACHE)/bufio.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/errors.td $(HARECACHE)/fs.td $(HARECACHE)/io.td $(HARECACHE)/path.td $(HARECACHE)/rt.td $(HARECACHE)/strings.td $(HARECACHE)/time.td $(HARECACHE)/types_c.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/os.ssa -t $(HARECACHE)/os.td.tmp -N os $(os_ha) + +strconv_ha = strconv/ftos.ha strconv/itos.ha strconv/numeric.ha strconv/stof.ha strconv/stof_data.ha strconv/stoi.ha strconv/stou.ha strconv/types.ha strconv/utos.ha +$(HARECACHE)/strconv.ssa: $(strconv_ha) $(HARECACHE)/ascii.td $(HARECACHE)/bytes.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/math.td $(HARECACHE)/strings.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/strconv.ssa -t $(HARECACHE)/strconv.td.tmp -N strconv $(strconv_ha) + +fmt_ha = fmt/fmt.ha +$(HARECACHE)/fmt.ssa: $(fmt_ha) $(HARECACHE)/ascii.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/io.td $(HARECACHE)/math.td $(HARECACHE)/memio.td $(HARECACHE)/os.td $(HARECACHE)/strconv.td $(HARECACHE)/strings.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/fmt.ssa -t $(HARECACHE)/fmt.td.tmp -N fmt $(fmt_ha) + +hash_ha = hash/hash.ha +$(HARECACHE)/hash.ssa: $(hash_ha) $(HARECACHE)/fmt.td $(HARECACHE)/io.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/hash.ssa -t $(HARECACHE)/hash.td.tmp -N hash $(hash_ha) + +crypto_sha256_ha = crypto/sha256/sha256.ha +$(HARECACHE)/crypto_sha256.ssa: $(crypto_sha256_ha) $(HARECACHE)/bytes.td $(HARECACHE)/crypto_math.td $(HARECACHE)/endian.td $(HARECACHE)/hash.td $(HARECACHE)/io.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/crypto_sha256.ssa -t $(HARECACHE)/crypto_sha256.td.tmp -N crypto::sha256 $(crypto_sha256_ha) + +encoding_hex_ha = encoding/hex/hex.ha +$(HARECACHE)/encoding_hex.ssa: $(encoding_hex_ha) $(HARECACHE)/ascii.td $(HARECACHE)/bytes.td $(HARECACHE)/errors.td $(HARECACHE)/fmt.td $(HARECACHE)/io.td $(HARECACHE)/memio.td $(HARECACHE)/os.td $(HARECACHE)/strconv.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/encoding_hex.ssa -t $(HARECACHE)/encoding_hex.td.tmp -N encoding::hex $(encoding_hex_ha) + +sort_ha = sort/bisect.ha sort/search.ha sort/sort.ha sort/types.ha +$(HARECACHE)/sort.ssa: $(sort_ha) $(HARECACHE)/math.td $(HARECACHE)/rt.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/sort.ssa -t $(HARECACHE)/sort.td.tmp -N sort $(sort_ha) + +sort_cmp_ha = sort/cmp/cmp.ha +$(HARECACHE)/sort_cmp.ssa: $(sort_cmp_ha) $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/sort_cmp.ssa -t $(HARECACHE)/sort_cmp.td.tmp -N sort::cmp $(sort_cmp_ha) + +hare_lex_ha = hare/lex/lex.ha hare/lex/token.ha +$(HARECACHE)/hare_lex.ssa: $(hare_lex_ha) $(HARECACHE)/ascii.td $(HARECACHE)/bufio.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/fmt.td $(HARECACHE)/io.td $(HARECACHE)/memio.td $(HARECACHE)/os.td $(HARECACHE)/path.td $(HARECACHE)/sort.td $(HARECACHE)/sort_cmp.td $(HARECACHE)/strconv.td $(HARECACHE)/strings.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/hare_lex.ssa -t $(HARECACHE)/hare_lex.td.tmp -N hare::lex $(hare_lex_ha) + +hare_ast_ha = hare/ast/decl.ha hare/ast/expr.ha hare/ast/ident.ha hare/ast/import.ha hare/ast/type.ha hare/ast/unit.ha +$(HARECACHE)/hare_ast.ssa: $(hare_ast_ha) $(HARECACHE)/hare_lex.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/hare_ast.ssa -t $(HARECACHE)/hare_ast.td.tmp -N hare::ast $(hare_ast_ha) + +hare_parse_ha = hare/parse/decl.ha hare/parse/expr.ha hare/parse/ident.ha hare/parse/import.ha hare/parse/parse.ha hare/parse/type.ha hare/parse/unit.ha +$(HARECACHE)/hare_parse.ssa: $(hare_parse_ha) $(HARECACHE)/ascii.td $(HARECACHE)/fmt.td $(HARECACHE)/hare_ast.td $(HARECACHE)/hare_lex.td $(HARECACHE)/io.td $(HARECACHE)/math.td $(HARECACHE)/memio.td $(HARECACHE)/strings.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/hare_parse.ssa -t $(HARECACHE)/hare_parse.td.tmp -N hare::parse $(hare_parse_ha) + +hare_unparse_ha = hare/unparse/decl.ha hare/unparse/expr.ha hare/unparse/ident.ha hare/unparse/import.ha hare/unparse/type.ha hare/unparse/unit.ha hare/unparse/util.ha +$(HARECACHE)/hare_unparse.ssa: $(hare_unparse_ha) $(HARECACHE)/fmt.td $(HARECACHE)/hare_ast.td $(HARECACHE)/hare_lex.td $(HARECACHE)/io.td $(HARECACHE)/memio.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/hare_unparse.ssa -t $(HARECACHE)/hare_unparse.td.tmp -N hare::unparse $(hare_unparse_ha) + +time_chrono_ha = time/chrono/+freebsd.ha time/chrono/arithmetic.ha time/chrono/chronology.ha time/chrono/error.ha time/chrono/leapsec.ha time/chrono/timescale.ha time/chrono/timezone.ha time/chrono/tzdb.ha +$(HARECACHE)/time_chrono.ssa: $(time_chrono_ha) $(HARECACHE)/bufio.td $(HARECACHE)/bytes.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/endian.td $(HARECACHE)/fmt.td $(HARECACHE)/fs.td $(HARECACHE)/io.td $(HARECACHE)/os.td $(HARECACHE)/path.td $(HARECACHE)/strconv.td $(HARECACHE)/strings.td $(HARECACHE)/time.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/time_chrono.ssa -t $(HARECACHE)/time_chrono.td.tmp -N time::chrono $(time_chrono_ha) + +time_date_ha = time/date/date.ha time/date/daydate.ha time/date/daytime.ha time/date/error.ha time/date/format.ha time/date/locality.ha time/date/observe.ha time/date/parithm.ha time/date/parse.ha time/date/period.ha time/date/reckon.ha time/date/tarithm.ha time/date/virtual.ha +$(HARECACHE)/time_date.ssa: $(time_date_ha) $(HARECACHE)/ascii.td $(HARECACHE)/fmt.td $(HARECACHE)/io.td $(HARECACHE)/math.td $(HARECACHE)/memio.td $(HARECACHE)/strconv.td $(HARECACHE)/strings.td $(HARECACHE)/time.td $(HARECACHE)/time_chrono.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/time_date.ssa -t $(HARECACHE)/time_date.td.tmp -N time::date $(time_date_ha) + +hare_module_ha = hare/module/cache.ha hare/module/deps.ha hare/module/format.ha hare/module/srcs.ha hare/module/types.ha hare/module/util.ha +$(HARECACHE)/hare_module.ssa: $(hare_module_ha) $(HARECACHE)/ascii.td $(HARECACHE)/bufio.td $(HARECACHE)/bytes.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/fmt.td $(HARECACHE)/fs.td $(HARECACHE)/hare_ast.td $(HARECACHE)/hare_lex.td $(HARECACHE)/hare_parse.td $(HARECACHE)/hare_unparse.td $(HARECACHE)/io.td $(HARECACHE)/memio.td $(HARECACHE)/os.td $(HARECACHE)/path.td $(HARECACHE)/sort.td $(HARECACHE)/sort_cmp.td $(HARECACHE)/strings.td $(HARECACHE)/time.td $(HARECACHE)/time_chrono.td $(HARECACHE)/time_date.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/hare_module.ssa -t $(HARECACHE)/hare_module.td.tmp -N hare::module $(hare_module_ha) + +unix_ha = unix/+freebsd/getuid.ha unix/+freebsd/groups.ha unix/+freebsd/nice.ha unix/+freebsd/pipe.ha unix/+freebsd/setuid.ha unix/+freebsd/umask.ha +$(HARECACHE)/unix.ssa: $(unix_ha) $(HARECACHE)/errors.td $(HARECACHE)/fs.td $(HARECACHE)/io.td $(HARECACHE)/rt.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/unix.ssa -t $(HARECACHE)/unix.td.tmp -N unix $(unix_ha) + +unix_signal_ha = unix/signal/+freebsd.ha unix/signal/types.ha +$(HARECACHE)/unix_signal.ssa: $(unix_signal_ha) $(HARECACHE)/io.td $(HARECACHE)/rt.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/unix_signal.ssa -t $(HARECACHE)/unix_signal.td.tmp -N unix::signal $(unix_signal_ha) + +os_exec_ha = os/exec/cmd.ha os/exec/exec+freebsd.ha os/exec/process+freebsd.ha os/exec/types.ha +$(HARECACHE)/os_exec.ssa: $(os_exec_ha) $(HARECACHE)/ascii.td $(HARECACHE)/errors.td $(HARECACHE)/fmt.td $(HARECACHE)/fs.td $(HARECACHE)/io.td $(HARECACHE)/os.td $(HARECACHE)/rt.td $(HARECACHE)/strings.td $(HARECACHE)/time.td $(HARECACHE)/types_c.td $(HARECACHE)/unix.td $(HARECACHE)/unix_signal.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/os_exec.ssa -t $(HARECACHE)/os_exec.td.tmp -N os::exec $(os_exec_ha) + +shlex_ha = shlex/escape.ha shlex/split.ha +$(HARECACHE)/shlex.ssa: $(shlex_ha) $(HARECACHE)/ascii.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/io.td $(HARECACHE)/memio.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/shlex.ssa -t $(HARECACHE)/shlex.td.tmp -N shlex $(shlex_ha) + +unix_tty_ha = unix/tty/+freebsd/isatty.ha unix/tty/+freebsd/open.ha unix/tty/+freebsd/pty.ha unix/tty/+freebsd/termios.ha unix/tty/+freebsd/winsize.ha unix/tty/pty_common.ha unix/tty/types.ha +$(HARECACHE)/unix_tty.ssa: $(unix_tty_ha) $(HARECACHE)/bufio.td $(HARECACHE)/errors.td $(HARECACHE)/fmt.td $(HARECACHE)/fs.td $(HARECACHE)/io.td $(HARECACHE)/os.td $(HARECACHE)/rt.td $(HARECACHE)/strings.td $(HARECACHE)/types_c.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/unix_tty.ssa -t $(HARECACHE)/unix_tty.td.tmp -N unix::tty $(unix_tty_ha) + +cmd_hare_build_ha = cmd/hare/build/gather.ha cmd/hare/build/queue.ha cmd/hare/build/types.ha cmd/hare/build/util.ha +$(HARECACHE)/cmd_hare_build.ssa: $(cmd_hare_build_ha) $(HARECACHE)/crypto_sha256.td $(HARECACHE)/encoding_hex.td $(HARECACHE)/errors.td $(HARECACHE)/fmt.td $(HARECACHE)/fs.td $(HARECACHE)/hare_ast.td $(HARECACHE)/hare_module.td $(HARECACHE)/hare_unparse.td $(HARECACHE)/hash.td $(HARECACHE)/io.td $(HARECACHE)/memio.td $(HARECACHE)/os.td $(HARECACHE)/os_exec.td $(HARECACHE)/path.td $(HARECACHE)/shlex.td $(HARECACHE)/sort.td $(HARECACHE)/strings.td $(HARECACHE)/unix_tty.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/cmd_hare_build.ssa -t $(HARECACHE)/cmd_hare_build.td.tmp -N cmd::hare::build $(cmd_hare_build_ha) + +dirs_ha = dirs/xdg.ha +$(HARECACHE)/dirs.ssa: $(dirs_ha) $(HARECACHE)/errors.td $(HARECACHE)/fmt.td $(HARECACHE)/fs.td $(HARECACHE)/os.td $(HARECACHE)/path.td $(HARECACHE)/unix.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/dirs.ssa -t $(HARECACHE)/dirs.td.tmp -N dirs $(dirs_ha) + +getopt_ha = getopt/getopts.ha +$(HARECACHE)/getopt.ssa: $(getopt_ha) $(HARECACHE)/fmt.td $(HARECACHE)/io.td $(HARECACHE)/os.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/getopt.ssa -t $(HARECACHE)/getopt.td.tmp -N getopt $(getopt_ha) + +cmd_hare_ha = cmd/hare/arch.ha cmd/hare/build.ha cmd/hare/cache.ha cmd/hare/deps.ha cmd/hare/error.ha cmd/hare/main.ha cmd/hare/util.ha cmd/hare/version.ha +$(HARECACHE)/cmd_hare.ssa: $(cmd_hare_ha) $(HARECACHE)/ascii.td $(HARECACHE)/bufio.td $(HARECACHE)/cmd_hare_build.td $(HARECACHE)/dirs.td $(HARECACHE)/errors.td $(HARECACHE)/fmt.td $(HARECACHE)/fs.td $(HARECACHE)/getopt.td $(HARECACHE)/hare_ast.td $(HARECACHE)/hare_lex.td $(HARECACHE)/hare_module.td $(HARECACHE)/hare_parse.td $(HARECACHE)/io.td $(HARECACHE)/memio.td $(HARECACHE)/os.td $(HARECACHE)/os_exec.td $(HARECACHE)/path.td $(HARECACHE)/sort.td $(HARECACHE)/sort_cmp.td $(HARECACHE)/strconv.td $(HARECACHE)/strings.td $(HARECACHE)/unix_tty.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/cmd_hare.ssa -t $(HARECACHE)/cmd_hare.td.tmp $(HARE_DEFINES) $(cmd_hare_ha) diff --git a/makefiles/freebsd.riscv64.mk b/makefiles/freebsd.riscv64.mk @@ -0,0 +1,256 @@ +# generated by cmd/genbootstrap +# DO NOT EDIT BY HAND. run 'make bootstrap' to update +TDENV = env HARE_TD_rt=$(HARECACHE)/rt.td HARE_TD_encoding::utf8=$(HARECACHE)/encoding_utf8.td HARE_TD_types=$(HARECACHE)/types.td HARE_TD_bytes=$(HARECACHE)/bytes.td HARE_TD_strings=$(HARECACHE)/strings.td HARE_TD_ascii=$(HARECACHE)/ascii.td HARE_TD_errors=$(HARECACHE)/errors.td HARE_TD_io=$(HARECACHE)/io.td HARE_TD_bufio=$(HARECACHE)/bufio.td HARE_TD_crypto::math=$(HARECACHE)/crypto_math.td HARE_TD_endian=$(HARECACHE)/endian.td HARE_TD_math=$(HARECACHE)/math.td HARE_TD_memio=$(HARECACHE)/memio.td HARE_TD_path=$(HARECACHE)/path.td HARE_TD_time=$(HARECACHE)/time.td HARE_TD_fs=$(HARECACHE)/fs.td HARE_TD_types::c=$(HARECACHE)/types_c.td HARE_TD_os=$(HARECACHE)/os.td HARE_TD_strconv=$(HARECACHE)/strconv.td HARE_TD_fmt=$(HARECACHE)/fmt.td HARE_TD_hash=$(HARECACHE)/hash.td HARE_TD_crypto::sha256=$(HARECACHE)/crypto_sha256.td HARE_TD_encoding::hex=$(HARECACHE)/encoding_hex.td HARE_TD_sort=$(HARECACHE)/sort.td HARE_TD_sort::cmp=$(HARECACHE)/sort_cmp.td HARE_TD_hare::lex=$(HARECACHE)/hare_lex.td HARE_TD_hare::ast=$(HARECACHE)/hare_ast.td HARE_TD_hare::parse=$(HARECACHE)/hare_parse.td HARE_TD_hare::unparse=$(HARECACHE)/hare_unparse.td HARE_TD_time::chrono=$(HARECACHE)/time_chrono.td HARE_TD_time::date=$(HARECACHE)/time_date.td HARE_TD_hare::module=$(HARECACHE)/hare_module.td HARE_TD_unix=$(HARECACHE)/unix.td HARE_TD_unix::signal=$(HARECACHE)/unix_signal.td HARE_TD_os::exec=$(HARECACHE)/os_exec.td HARE_TD_shlex=$(HARECACHE)/shlex.td HARE_TD_unix::tty=$(HARECACHE)/unix_tty.td HARE_TD_cmd::hare::build=$(HARECACHE)/cmd_hare_build.td HARE_TD_dirs=$(HARECACHE)/dirs.td HARE_TD_getopt=$(HARECACHE)/getopt.td HARE_TD_cmd::hare=$(HARECACHE)/cmd_hare.td +RTSCRIPT = rt/hare.sc +OBJS = $(HARECACHE)/rt.o $(HARECACHE)/encoding_utf8.o $(HARECACHE)/types.o $(HARECACHE)/bytes.o $(HARECACHE)/strings.o $(HARECACHE)/ascii.o $(HARECACHE)/errors.o $(HARECACHE)/io.o $(HARECACHE)/bufio.o $(HARECACHE)/crypto_math.o $(HARECACHE)/endian.o $(HARECACHE)/math.o $(HARECACHE)/memio.o $(HARECACHE)/path.o $(HARECACHE)/time.o $(HARECACHE)/fs.o $(HARECACHE)/types_c.o $(HARECACHE)/os.o $(HARECACHE)/strconv.o $(HARECACHE)/fmt.o $(HARECACHE)/hash.o $(HARECACHE)/crypto_sha256.o $(HARECACHE)/encoding_hex.o $(HARECACHE)/sort.o $(HARECACHE)/sort_cmp.o $(HARECACHE)/hare_lex.o $(HARECACHE)/hare_ast.o $(HARECACHE)/hare_parse.o $(HARECACHE)/hare_unparse.o $(HARECACHE)/time_chrono.o $(HARECACHE)/time_date.o $(HARECACHE)/hare_module.o $(HARECACHE)/unix.o $(HARECACHE)/unix_signal.o $(HARECACHE)/os_exec.o $(HARECACHE)/shlex.o $(HARECACHE)/unix_tty.o $(HARECACHE)/cmd_hare_build.o $(HARECACHE)/dirs.o $(HARECACHE)/getopt.o $(HARECACHE)/cmd_hare.o + +rt_ha = rt/+freebsd/+riscv64.ha rt/+freebsd/env.ha rt/+freebsd/errno.ha rt/+freebsd/platform_abort.ha rt/+freebsd/platformstart.ha rt/+freebsd/segmalloc.ha rt/+freebsd/signal.ha rt/+freebsd/socket.ha rt/+freebsd/syscallno.ha rt/+freebsd/syscalls.ha rt/+freebsd/types.ha rt/+riscv64/arch_jmp.ha rt/+riscv64/backtrace.ha rt/+riscv64/cpuid.ha rt/abort.ha rt/ensure.ha rt/fenv_defs.ha rt/jmp.ha rt/malloc.ha rt/memcpy.ha rt/memfunc_ptr.ha rt/memmove.ha rt/memset.ha rt/start.ha rt/strcmp.ha rt/u64tos.ha rt/unknown_errno.ha +$(HARECACHE)/rt.ssa: $(rt_ha) + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/rt.ssa -t $(HARECACHE)/rt.td.tmp -N rt $(rt_ha) + +rt_s = $(HARECACHE)/rt.s rt/+freebsd/start+riscv64-libc.s rt/+freebsd/syscall+riscv64.s rt/+riscv64/cpuid.s rt/+riscv64/fenv.s rt/+riscv64/getfp.s rt/+riscv64/longjmp.s rt/+riscv64/restore.s rt/+riscv64/setjmp.s +$(HARECACHE)/rt.o: $(rt_s) + @printf 'AS\t%s\n' "$@" + @$(AS) $(ASFLAGS) -o $@ $(rt_s) + +encoding_utf8_ha = encoding/utf8/decode.ha encoding/utf8/decodetable.ha encoding/utf8/encode.ha encoding/utf8/rune.ha +$(HARECACHE)/encoding_utf8.ssa: $(encoding_utf8_ha) + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/encoding_utf8.ssa -t $(HARECACHE)/encoding_utf8.td.tmp -N encoding::utf8 $(encoding_utf8_ha) + +types_ha = types/arch+riscv64.ha types/classes.ha types/limits.ha +$(HARECACHE)/types.ssa: $(types_ha) + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/types.ssa -t $(HARECACHE)/types.td.tmp -N types $(types_ha) + +bytes_ha = bytes/contains.ha bytes/equal.ha bytes/index.ha bytes/reverse.ha bytes/tokenize.ha bytes/trim.ha bytes/two_way.ha bytes/zero.ha +$(HARECACHE)/bytes.ssa: $(bytes_ha) $(HARECACHE)/rt.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/bytes.ssa -t $(HARECACHE)/bytes.td.tmp -N bytes $(bytes_ha) + +strings_ha = strings/compare.ha strings/concat.ha strings/contains.ha strings/dup.ha strings/index.ha strings/iter.ha strings/pad.ha strings/replace.ha strings/runes.ha strings/sub.ha strings/suffix.ha strings/tokenize.ha strings/trim.ha strings/utf8.ha +$(HARECACHE)/strings.ssa: $(strings_ha) $(HARECACHE)/bytes.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/strings.ssa -t $(HARECACHE)/strings.td.tmp -N strings $(strings_ha) + +ascii_ha = ascii/ctype.ha ascii/string.ha ascii/valid.ha +$(HARECACHE)/ascii.ssa: $(ascii_ha) $(HARECACHE)/encoding_utf8.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/ascii.ssa -t $(HARECACHE)/ascii.td.tmp -N ascii $(ascii_ha) + +errors_ha = errors/common.ha errors/opaque.ha errors/rt.ha errors/string.ha +$(HARECACHE)/errors.ssa: $(errors_ha) $(HARECACHE)/rt.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/errors.ssa -t $(HARECACHE)/errors.td.tmp -N errors $(errors_ha) + +io_ha = io/+freebsd/mmap.ha io/+freebsd/platform_file.ha io/+freebsd/vector.ha io/arch+riscv64.ha io/copy.ha io/drain.ha io/empty.ha io/file.ha io/handle.ha io/limit.ha io/stream.ha io/tee.ha io/types.ha io/util.ha io/zero.ha +$(HARECACHE)/io.ssa: $(io_ha) $(HARECACHE)/bytes.td $(HARECACHE)/errors.td $(HARECACHE)/rt.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/io.ssa -t $(HARECACHE)/io.td.tmp -N io $(io_ha) + +bufio_ha = bufio/scanner.ha bufio/stream.ha +$(HARECACHE)/bufio.ssa: $(bufio_ha) $(HARECACHE)/bytes.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/errors.td $(HARECACHE)/io.td $(HARECACHE)/strings.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/bufio.ssa -t $(HARECACHE)/bufio.td.tmp -N bufio $(bufio_ha) + +crypto_math_ha = crypto/math/arithm.ha crypto/math/bits.ha +$(HARECACHE)/crypto_math.ssa: $(crypto_math_ha) + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/crypto_math.ssa -t $(HARECACHE)/crypto_math.td.tmp -N crypto::math $(crypto_math_ha) + +endian_ha = endian/big.ha endian/endian.ha endian/host+riscv64.ha endian/little.ha endian/network.ha +$(HARECACHE)/endian.ssa: $(endian_ha) + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/endian.ssa -t $(HARECACHE)/endian.td.tmp -N endian $(endian_ha) + +math_ha = math/fenv+riscv64.ha math/fenv_func.ha math/floats.ha math/ints.ha math/math.ha math/trig.ha math/uints.ha +$(HARECACHE)/math.ssa: $(math_ha) $(HARECACHE)/rt.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/math.ssa -t $(HARECACHE)/math.td.tmp -N math $(math_ha) + +memio_ha = memio/ops.ha memio/stream.ha +$(HARECACHE)/memio.ssa: $(memio_ha) $(HARECACHE)/bytes.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/errors.td $(HARECACHE)/io.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/memio.ssa -t $(HARECACHE)/memio.td.tmp -N memio $(memio_ha) + +path_ha = path/+freebsd.ha path/buffer.ha path/error.ha path/ext_stack.ha path/iter.ha path/posix.ha path/prefix.ha path/stack.ha +$(HARECACHE)/path.ssa: $(path_ha) $(HARECACHE)/bytes.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/path.ssa -t $(HARECACHE)/path.td.tmp -N path $(path_ha) + +time_ha = time/+freebsd/functions.ha time/arithm.ha time/conv.ha time/types.ha +$(HARECACHE)/time.ssa: $(time_ha) $(HARECACHE)/math.td $(HARECACHE)/rt.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/time.ssa -t $(HARECACHE)/time.td.tmp -N time $(time_ha) + +fs_ha = fs/fs.ha fs/types.ha fs/util.ha +$(HARECACHE)/fs.ssa: $(fs_ha) $(HARECACHE)/errors.td $(HARECACHE)/io.td $(HARECACHE)/path.td $(HARECACHE)/strings.td $(HARECACHE)/time.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/fs.ssa -t $(HARECACHE)/fs.td.tmp -N fs $(fs_ha) + +types_c_ha = types/c/arch+riscv64.ha types/c/strings.ha types/c/types.ha +$(HARECACHE)/types_c.ssa: $(types_c_ha) $(HARECACHE)/encoding_utf8.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/types_c.ssa -t $(HARECACHE)/types_c.td.tmp -N types::c $(types_c_ha) + +os_ha = os/+freebsd/dirfdfs.ha os/+freebsd/exit.ha os/+freebsd/fs.ha os/+freebsd/platform_environ.ha os/+freebsd/status.ha os/+freebsd/stdfd.ha os/environ.ha os/os.ha +$(HARECACHE)/os.ssa: $(os_ha) $(HARECACHE)/bufio.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/errors.td $(HARECACHE)/fs.td $(HARECACHE)/io.td $(HARECACHE)/path.td $(HARECACHE)/rt.td $(HARECACHE)/strings.td $(HARECACHE)/time.td $(HARECACHE)/types_c.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/os.ssa -t $(HARECACHE)/os.td.tmp -N os $(os_ha) + +strconv_ha = strconv/ftos.ha strconv/itos.ha strconv/numeric.ha strconv/stof.ha strconv/stof_data.ha strconv/stoi.ha strconv/stou.ha strconv/types.ha strconv/utos.ha +$(HARECACHE)/strconv.ssa: $(strconv_ha) $(HARECACHE)/ascii.td $(HARECACHE)/bytes.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/math.td $(HARECACHE)/strings.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/strconv.ssa -t $(HARECACHE)/strconv.td.tmp -N strconv $(strconv_ha) + +fmt_ha = fmt/fmt.ha +$(HARECACHE)/fmt.ssa: $(fmt_ha) $(HARECACHE)/ascii.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/io.td $(HARECACHE)/math.td $(HARECACHE)/memio.td $(HARECACHE)/os.td $(HARECACHE)/strconv.td $(HARECACHE)/strings.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/fmt.ssa -t $(HARECACHE)/fmt.td.tmp -N fmt $(fmt_ha) + +hash_ha = hash/hash.ha +$(HARECACHE)/hash.ssa: $(hash_ha) $(HARECACHE)/fmt.td $(HARECACHE)/io.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/hash.ssa -t $(HARECACHE)/hash.td.tmp -N hash $(hash_ha) + +crypto_sha256_ha = crypto/sha256/sha256.ha +$(HARECACHE)/crypto_sha256.ssa: $(crypto_sha256_ha) $(HARECACHE)/bytes.td $(HARECACHE)/crypto_math.td $(HARECACHE)/endian.td $(HARECACHE)/hash.td $(HARECACHE)/io.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/crypto_sha256.ssa -t $(HARECACHE)/crypto_sha256.td.tmp -N crypto::sha256 $(crypto_sha256_ha) + +encoding_hex_ha = encoding/hex/hex.ha +$(HARECACHE)/encoding_hex.ssa: $(encoding_hex_ha) $(HARECACHE)/ascii.td $(HARECACHE)/bytes.td $(HARECACHE)/errors.td $(HARECACHE)/fmt.td $(HARECACHE)/io.td $(HARECACHE)/memio.td $(HARECACHE)/os.td $(HARECACHE)/strconv.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/encoding_hex.ssa -t $(HARECACHE)/encoding_hex.td.tmp -N encoding::hex $(encoding_hex_ha) + +sort_ha = sort/bisect.ha sort/search.ha sort/sort.ha sort/types.ha +$(HARECACHE)/sort.ssa: $(sort_ha) $(HARECACHE)/math.td $(HARECACHE)/rt.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/sort.ssa -t $(HARECACHE)/sort.td.tmp -N sort $(sort_ha) + +sort_cmp_ha = sort/cmp/cmp.ha +$(HARECACHE)/sort_cmp.ssa: $(sort_cmp_ha) $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/sort_cmp.ssa -t $(HARECACHE)/sort_cmp.td.tmp -N sort::cmp $(sort_cmp_ha) + +hare_lex_ha = hare/lex/lex.ha hare/lex/token.ha +$(HARECACHE)/hare_lex.ssa: $(hare_lex_ha) $(HARECACHE)/ascii.td $(HARECACHE)/bufio.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/fmt.td $(HARECACHE)/io.td $(HARECACHE)/memio.td $(HARECACHE)/os.td $(HARECACHE)/path.td $(HARECACHE)/sort.td $(HARECACHE)/sort_cmp.td $(HARECACHE)/strconv.td $(HARECACHE)/strings.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/hare_lex.ssa -t $(HARECACHE)/hare_lex.td.tmp -N hare::lex $(hare_lex_ha) + +hare_ast_ha = hare/ast/decl.ha hare/ast/expr.ha hare/ast/ident.ha hare/ast/import.ha hare/ast/type.ha hare/ast/unit.ha +$(HARECACHE)/hare_ast.ssa: $(hare_ast_ha) $(HARECACHE)/hare_lex.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/hare_ast.ssa -t $(HARECACHE)/hare_ast.td.tmp -N hare::ast $(hare_ast_ha) + +hare_parse_ha = hare/parse/decl.ha hare/parse/expr.ha hare/parse/ident.ha hare/parse/import.ha hare/parse/parse.ha hare/parse/type.ha hare/parse/unit.ha +$(HARECACHE)/hare_parse.ssa: $(hare_parse_ha) $(HARECACHE)/ascii.td $(HARECACHE)/fmt.td $(HARECACHE)/hare_ast.td $(HARECACHE)/hare_lex.td $(HARECACHE)/io.td $(HARECACHE)/math.td $(HARECACHE)/memio.td $(HARECACHE)/strings.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/hare_parse.ssa -t $(HARECACHE)/hare_parse.td.tmp -N hare::parse $(hare_parse_ha) + +hare_unparse_ha = hare/unparse/decl.ha hare/unparse/expr.ha hare/unparse/ident.ha hare/unparse/import.ha hare/unparse/type.ha hare/unparse/unit.ha hare/unparse/util.ha +$(HARECACHE)/hare_unparse.ssa: $(hare_unparse_ha) $(HARECACHE)/fmt.td $(HARECACHE)/hare_ast.td $(HARECACHE)/hare_lex.td $(HARECACHE)/io.td $(HARECACHE)/memio.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/hare_unparse.ssa -t $(HARECACHE)/hare_unparse.td.tmp -N hare::unparse $(hare_unparse_ha) + +time_chrono_ha = time/chrono/+freebsd.ha time/chrono/arithmetic.ha time/chrono/chronology.ha time/chrono/error.ha time/chrono/leapsec.ha time/chrono/timescale.ha time/chrono/timezone.ha time/chrono/tzdb.ha +$(HARECACHE)/time_chrono.ssa: $(time_chrono_ha) $(HARECACHE)/bufio.td $(HARECACHE)/bytes.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/endian.td $(HARECACHE)/fmt.td $(HARECACHE)/fs.td $(HARECACHE)/io.td $(HARECACHE)/os.td $(HARECACHE)/path.td $(HARECACHE)/strconv.td $(HARECACHE)/strings.td $(HARECACHE)/time.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/time_chrono.ssa -t $(HARECACHE)/time_chrono.td.tmp -N time::chrono $(time_chrono_ha) + +time_date_ha = time/date/date.ha time/date/daydate.ha time/date/daytime.ha time/date/error.ha time/date/format.ha time/date/locality.ha time/date/observe.ha time/date/parithm.ha time/date/parse.ha time/date/period.ha time/date/reckon.ha time/date/tarithm.ha time/date/virtual.ha +$(HARECACHE)/time_date.ssa: $(time_date_ha) $(HARECACHE)/ascii.td $(HARECACHE)/fmt.td $(HARECACHE)/io.td $(HARECACHE)/math.td $(HARECACHE)/memio.td $(HARECACHE)/strconv.td $(HARECACHE)/strings.td $(HARECACHE)/time.td $(HARECACHE)/time_chrono.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/time_date.ssa -t $(HARECACHE)/time_date.td.tmp -N time::date $(time_date_ha) + +hare_module_ha = hare/module/cache.ha hare/module/deps.ha hare/module/format.ha hare/module/srcs.ha hare/module/types.ha hare/module/util.ha +$(HARECACHE)/hare_module.ssa: $(hare_module_ha) $(HARECACHE)/ascii.td $(HARECACHE)/bufio.td $(HARECACHE)/bytes.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/fmt.td $(HARECACHE)/fs.td $(HARECACHE)/hare_ast.td $(HARECACHE)/hare_lex.td $(HARECACHE)/hare_parse.td $(HARECACHE)/hare_unparse.td $(HARECACHE)/io.td $(HARECACHE)/memio.td $(HARECACHE)/os.td $(HARECACHE)/path.td $(HARECACHE)/sort.td $(HARECACHE)/sort_cmp.td $(HARECACHE)/strings.td $(HARECACHE)/time.td $(HARECACHE)/time_chrono.td $(HARECACHE)/time_date.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/hare_module.ssa -t $(HARECACHE)/hare_module.td.tmp -N hare::module $(hare_module_ha) + +unix_ha = unix/+freebsd/getuid.ha unix/+freebsd/groups.ha unix/+freebsd/nice.ha unix/+freebsd/pipe.ha unix/+freebsd/setuid.ha unix/+freebsd/umask.ha +$(HARECACHE)/unix.ssa: $(unix_ha) $(HARECACHE)/errors.td $(HARECACHE)/fs.td $(HARECACHE)/io.td $(HARECACHE)/rt.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/unix.ssa -t $(HARECACHE)/unix.td.tmp -N unix $(unix_ha) + +unix_signal_ha = unix/signal/+freebsd.ha unix/signal/types.ha +$(HARECACHE)/unix_signal.ssa: $(unix_signal_ha) $(HARECACHE)/io.td $(HARECACHE)/rt.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/unix_signal.ssa -t $(HARECACHE)/unix_signal.td.tmp -N unix::signal $(unix_signal_ha) + +os_exec_ha = os/exec/cmd.ha os/exec/exec+freebsd.ha os/exec/process+freebsd.ha os/exec/types.ha +$(HARECACHE)/os_exec.ssa: $(os_exec_ha) $(HARECACHE)/ascii.td $(HARECACHE)/errors.td $(HARECACHE)/fmt.td $(HARECACHE)/fs.td $(HARECACHE)/io.td $(HARECACHE)/os.td $(HARECACHE)/rt.td $(HARECACHE)/strings.td $(HARECACHE)/time.td $(HARECACHE)/types_c.td $(HARECACHE)/unix.td $(HARECACHE)/unix_signal.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/os_exec.ssa -t $(HARECACHE)/os_exec.td.tmp -N os::exec $(os_exec_ha) + +shlex_ha = shlex/escape.ha shlex/split.ha +$(HARECACHE)/shlex.ssa: $(shlex_ha) $(HARECACHE)/ascii.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/io.td $(HARECACHE)/memio.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/shlex.ssa -t $(HARECACHE)/shlex.td.tmp -N shlex $(shlex_ha) + +unix_tty_ha = unix/tty/+freebsd/isatty.ha unix/tty/+freebsd/open.ha unix/tty/+freebsd/pty.ha unix/tty/+freebsd/termios.ha unix/tty/+freebsd/winsize.ha unix/tty/pty_common.ha unix/tty/types.ha +$(HARECACHE)/unix_tty.ssa: $(unix_tty_ha) $(HARECACHE)/bufio.td $(HARECACHE)/errors.td $(HARECACHE)/fmt.td $(HARECACHE)/fs.td $(HARECACHE)/io.td $(HARECACHE)/os.td $(HARECACHE)/rt.td $(HARECACHE)/strings.td $(HARECACHE)/types_c.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/unix_tty.ssa -t $(HARECACHE)/unix_tty.td.tmp -N unix::tty $(unix_tty_ha) + +cmd_hare_build_ha = cmd/hare/build/gather.ha cmd/hare/build/queue.ha cmd/hare/build/types.ha cmd/hare/build/util.ha +$(HARECACHE)/cmd_hare_build.ssa: $(cmd_hare_build_ha) $(HARECACHE)/crypto_sha256.td $(HARECACHE)/encoding_hex.td $(HARECACHE)/errors.td $(HARECACHE)/fmt.td $(HARECACHE)/fs.td $(HARECACHE)/hare_ast.td $(HARECACHE)/hare_module.td $(HARECACHE)/hare_unparse.td $(HARECACHE)/hash.td $(HARECACHE)/io.td $(HARECACHE)/memio.td $(HARECACHE)/os.td $(HARECACHE)/os_exec.td $(HARECACHE)/path.td $(HARECACHE)/shlex.td $(HARECACHE)/sort.td $(HARECACHE)/strings.td $(HARECACHE)/unix_tty.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/cmd_hare_build.ssa -t $(HARECACHE)/cmd_hare_build.td.tmp -N cmd::hare::build $(cmd_hare_build_ha) + +dirs_ha = dirs/xdg.ha +$(HARECACHE)/dirs.ssa: $(dirs_ha) $(HARECACHE)/errors.td $(HARECACHE)/fmt.td $(HARECACHE)/fs.td $(HARECACHE)/os.td $(HARECACHE)/path.td $(HARECACHE)/unix.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/dirs.ssa -t $(HARECACHE)/dirs.td.tmp -N dirs $(dirs_ha) + +getopt_ha = getopt/getopts.ha +$(HARECACHE)/getopt.ssa: $(getopt_ha) $(HARECACHE)/fmt.td $(HARECACHE)/io.td $(HARECACHE)/os.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/getopt.ssa -t $(HARECACHE)/getopt.td.tmp -N getopt $(getopt_ha) + +cmd_hare_ha = cmd/hare/arch.ha cmd/hare/build.ha cmd/hare/cache.ha cmd/hare/deps.ha cmd/hare/error.ha cmd/hare/main.ha cmd/hare/util.ha cmd/hare/version.ha +$(HARECACHE)/cmd_hare.ssa: $(cmd_hare_ha) $(HARECACHE)/ascii.td $(HARECACHE)/bufio.td $(HARECACHE)/cmd_hare_build.td $(HARECACHE)/dirs.td $(HARECACHE)/errors.td $(HARECACHE)/fmt.td $(HARECACHE)/fs.td $(HARECACHE)/getopt.td $(HARECACHE)/hare_ast.td $(HARECACHE)/hare_lex.td $(HARECACHE)/hare_module.td $(HARECACHE)/hare_parse.td $(HARECACHE)/io.td $(HARECACHE)/memio.td $(HARECACHE)/os.td $(HARECACHE)/os_exec.td $(HARECACHE)/path.td $(HARECACHE)/sort.td $(HARECACHE)/sort_cmp.td $(HARECACHE)/strconv.td $(HARECACHE)/strings.td $(HARECACHE)/unix_tty.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/cmd_hare.ssa -t $(HARECACHE)/cmd_hare.td.tmp $(HARE_DEFINES) $(cmd_hare_ha) diff --git a/makefiles/freebsd.x86_64.mk b/makefiles/freebsd.x86_64.mk @@ -0,0 +1,256 @@ +# generated by cmd/genbootstrap +# DO NOT EDIT BY HAND. run 'make bootstrap' to update +TDENV = env HARE_TD_rt=$(HARECACHE)/rt.td HARE_TD_encoding::utf8=$(HARECACHE)/encoding_utf8.td HARE_TD_types=$(HARECACHE)/types.td HARE_TD_bytes=$(HARECACHE)/bytes.td HARE_TD_strings=$(HARECACHE)/strings.td HARE_TD_ascii=$(HARECACHE)/ascii.td HARE_TD_errors=$(HARECACHE)/errors.td HARE_TD_io=$(HARECACHE)/io.td HARE_TD_bufio=$(HARECACHE)/bufio.td HARE_TD_crypto::math=$(HARECACHE)/crypto_math.td HARE_TD_endian=$(HARECACHE)/endian.td HARE_TD_math=$(HARECACHE)/math.td HARE_TD_memio=$(HARECACHE)/memio.td HARE_TD_path=$(HARECACHE)/path.td HARE_TD_time=$(HARECACHE)/time.td HARE_TD_fs=$(HARECACHE)/fs.td HARE_TD_types::c=$(HARECACHE)/types_c.td HARE_TD_os=$(HARECACHE)/os.td HARE_TD_strconv=$(HARECACHE)/strconv.td HARE_TD_fmt=$(HARECACHE)/fmt.td HARE_TD_hash=$(HARECACHE)/hash.td HARE_TD_crypto::sha256=$(HARECACHE)/crypto_sha256.td HARE_TD_encoding::hex=$(HARECACHE)/encoding_hex.td HARE_TD_sort=$(HARECACHE)/sort.td HARE_TD_sort::cmp=$(HARECACHE)/sort_cmp.td HARE_TD_hare::lex=$(HARECACHE)/hare_lex.td HARE_TD_hare::ast=$(HARECACHE)/hare_ast.td HARE_TD_hare::parse=$(HARECACHE)/hare_parse.td HARE_TD_hare::unparse=$(HARECACHE)/hare_unparse.td HARE_TD_time::chrono=$(HARECACHE)/time_chrono.td HARE_TD_time::date=$(HARECACHE)/time_date.td HARE_TD_hare::module=$(HARECACHE)/hare_module.td HARE_TD_unix=$(HARECACHE)/unix.td HARE_TD_unix::signal=$(HARECACHE)/unix_signal.td HARE_TD_os::exec=$(HARECACHE)/os_exec.td HARE_TD_shlex=$(HARECACHE)/shlex.td HARE_TD_unix::tty=$(HARECACHE)/unix_tty.td HARE_TD_cmd::hare::build=$(HARECACHE)/cmd_hare_build.td HARE_TD_dirs=$(HARECACHE)/dirs.td HARE_TD_getopt=$(HARECACHE)/getopt.td HARE_TD_cmd::hare=$(HARECACHE)/cmd_hare.td +RTSCRIPT = rt/hare.sc +OBJS = $(HARECACHE)/rt.o $(HARECACHE)/encoding_utf8.o $(HARECACHE)/types.o $(HARECACHE)/bytes.o $(HARECACHE)/strings.o $(HARECACHE)/ascii.o $(HARECACHE)/errors.o $(HARECACHE)/io.o $(HARECACHE)/bufio.o $(HARECACHE)/crypto_math.o $(HARECACHE)/endian.o $(HARECACHE)/math.o $(HARECACHE)/memio.o $(HARECACHE)/path.o $(HARECACHE)/time.o $(HARECACHE)/fs.o $(HARECACHE)/types_c.o $(HARECACHE)/os.o $(HARECACHE)/strconv.o $(HARECACHE)/fmt.o $(HARECACHE)/hash.o $(HARECACHE)/crypto_sha256.o $(HARECACHE)/encoding_hex.o $(HARECACHE)/sort.o $(HARECACHE)/sort_cmp.o $(HARECACHE)/hare_lex.o $(HARECACHE)/hare_ast.o $(HARECACHE)/hare_parse.o $(HARECACHE)/hare_unparse.o $(HARECACHE)/time_chrono.o $(HARECACHE)/time_date.o $(HARECACHE)/hare_module.o $(HARECACHE)/unix.o $(HARECACHE)/unix_signal.o $(HARECACHE)/os_exec.o $(HARECACHE)/shlex.o $(HARECACHE)/unix_tty.o $(HARECACHE)/cmd_hare_build.o $(HARECACHE)/dirs.o $(HARECACHE)/getopt.o $(HARECACHE)/cmd_hare.o + +rt_ha = rt/+freebsd/+x86_64.ha rt/+freebsd/env.ha rt/+freebsd/errno.ha rt/+freebsd/platform_abort.ha rt/+freebsd/platformstart.ha rt/+freebsd/segmalloc.ha rt/+freebsd/signal.ha rt/+freebsd/socket.ha rt/+freebsd/syscallno.ha rt/+freebsd/syscalls.ha rt/+freebsd/types.ha rt/+x86_64/arch_jmp.ha rt/+x86_64/backtrace.ha rt/+x86_64/cpuid.ha rt/abort.ha rt/ensure.ha rt/fenv_defs.ha rt/jmp.ha rt/malloc.ha rt/memcpy.ha rt/memfunc_ptr.ha rt/memmove.ha rt/memset.ha rt/start.ha rt/strcmp.ha rt/u64tos.ha rt/unknown_errno.ha +$(HARECACHE)/rt.ssa: $(rt_ha) + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/rt.ssa -t $(HARECACHE)/rt.td.tmp -N rt $(rt_ha) + +rt_s = $(HARECACHE)/rt.s rt/+freebsd/start+x86_64-libc.s rt/+freebsd/syscall+x86_64.s rt/+x86_64/cpuid.s rt/+x86_64/fenv.s rt/+x86_64/getfp.s rt/+x86_64/longjmp.s rt/+x86_64/restore.s rt/+x86_64/setjmp.s +$(HARECACHE)/rt.o: $(rt_s) + @printf 'AS\t%s\n' "$@" + @$(AS) $(ASFLAGS) -o $@ $(rt_s) + +encoding_utf8_ha = encoding/utf8/decode.ha encoding/utf8/decodetable.ha encoding/utf8/encode.ha encoding/utf8/rune.ha +$(HARECACHE)/encoding_utf8.ssa: $(encoding_utf8_ha) + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/encoding_utf8.ssa -t $(HARECACHE)/encoding_utf8.td.tmp -N encoding::utf8 $(encoding_utf8_ha) + +types_ha = types/arch+x86_64.ha types/classes.ha types/limits.ha +$(HARECACHE)/types.ssa: $(types_ha) + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/types.ssa -t $(HARECACHE)/types.td.tmp -N types $(types_ha) + +bytes_ha = bytes/contains.ha bytes/equal.ha bytes/index.ha bytes/reverse.ha bytes/tokenize.ha bytes/trim.ha bytes/two_way.ha bytes/zero.ha +$(HARECACHE)/bytes.ssa: $(bytes_ha) $(HARECACHE)/rt.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/bytes.ssa -t $(HARECACHE)/bytes.td.tmp -N bytes $(bytes_ha) + +strings_ha = strings/compare.ha strings/concat.ha strings/contains.ha strings/dup.ha strings/index.ha strings/iter.ha strings/pad.ha strings/replace.ha strings/runes.ha strings/sub.ha strings/suffix.ha strings/tokenize.ha strings/trim.ha strings/utf8.ha +$(HARECACHE)/strings.ssa: $(strings_ha) $(HARECACHE)/bytes.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/strings.ssa -t $(HARECACHE)/strings.td.tmp -N strings $(strings_ha) + +ascii_ha = ascii/ctype.ha ascii/string.ha ascii/valid.ha +$(HARECACHE)/ascii.ssa: $(ascii_ha) $(HARECACHE)/encoding_utf8.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/ascii.ssa -t $(HARECACHE)/ascii.td.tmp -N ascii $(ascii_ha) + +errors_ha = errors/common.ha errors/opaque.ha errors/rt.ha errors/string.ha +$(HARECACHE)/errors.ssa: $(errors_ha) $(HARECACHE)/rt.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/errors.ssa -t $(HARECACHE)/errors.td.tmp -N errors $(errors_ha) + +io_ha = io/+freebsd/mmap.ha io/+freebsd/platform_file.ha io/+freebsd/vector.ha io/arch+x86_64.ha io/copy.ha io/drain.ha io/empty.ha io/file.ha io/handle.ha io/limit.ha io/stream.ha io/tee.ha io/types.ha io/util.ha io/zero.ha +$(HARECACHE)/io.ssa: $(io_ha) $(HARECACHE)/bytes.td $(HARECACHE)/errors.td $(HARECACHE)/rt.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/io.ssa -t $(HARECACHE)/io.td.tmp -N io $(io_ha) + +bufio_ha = bufio/scanner.ha bufio/stream.ha +$(HARECACHE)/bufio.ssa: $(bufio_ha) $(HARECACHE)/bytes.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/errors.td $(HARECACHE)/io.td $(HARECACHE)/strings.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/bufio.ssa -t $(HARECACHE)/bufio.td.tmp -N bufio $(bufio_ha) + +crypto_math_ha = crypto/math/arithm.ha crypto/math/bits.ha +$(HARECACHE)/crypto_math.ssa: $(crypto_math_ha) + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/crypto_math.ssa -t $(HARECACHE)/crypto_math.td.tmp -N crypto::math $(crypto_math_ha) + +endian_ha = endian/big.ha endian/endian.ha endian/host+x86_64.ha endian/little.ha endian/network.ha +$(HARECACHE)/endian.ssa: $(endian_ha) + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/endian.ssa -t $(HARECACHE)/endian.td.tmp -N endian $(endian_ha) + +math_ha = math/fenv+x86_64.ha math/fenv_func.ha math/floats.ha math/ints.ha math/math.ha math/trig.ha math/uints.ha +$(HARECACHE)/math.ssa: $(math_ha) $(HARECACHE)/rt.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/math.ssa -t $(HARECACHE)/math.td.tmp -N math $(math_ha) + +memio_ha = memio/ops.ha memio/stream.ha +$(HARECACHE)/memio.ssa: $(memio_ha) $(HARECACHE)/bytes.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/errors.td $(HARECACHE)/io.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/memio.ssa -t $(HARECACHE)/memio.td.tmp -N memio $(memio_ha) + +path_ha = path/+freebsd.ha path/buffer.ha path/error.ha path/ext_stack.ha path/iter.ha path/posix.ha path/prefix.ha path/stack.ha +$(HARECACHE)/path.ssa: $(path_ha) $(HARECACHE)/bytes.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/path.ssa -t $(HARECACHE)/path.td.tmp -N path $(path_ha) + +time_ha = time/+freebsd/functions.ha time/arithm.ha time/conv.ha time/types.ha +$(HARECACHE)/time.ssa: $(time_ha) $(HARECACHE)/math.td $(HARECACHE)/rt.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/time.ssa -t $(HARECACHE)/time.td.tmp -N time $(time_ha) + +fs_ha = fs/fs.ha fs/types.ha fs/util.ha +$(HARECACHE)/fs.ssa: $(fs_ha) $(HARECACHE)/errors.td $(HARECACHE)/io.td $(HARECACHE)/path.td $(HARECACHE)/strings.td $(HARECACHE)/time.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/fs.ssa -t $(HARECACHE)/fs.td.tmp -N fs $(fs_ha) + +types_c_ha = types/c/arch+x86_64.ha types/c/strings.ha types/c/types.ha +$(HARECACHE)/types_c.ssa: $(types_c_ha) $(HARECACHE)/encoding_utf8.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/types_c.ssa -t $(HARECACHE)/types_c.td.tmp -N types::c $(types_c_ha) + +os_ha = os/+freebsd/dirfdfs.ha os/+freebsd/exit.ha os/+freebsd/fs.ha os/+freebsd/platform_environ.ha os/+freebsd/status.ha os/+freebsd/stdfd.ha os/environ.ha os/os.ha +$(HARECACHE)/os.ssa: $(os_ha) $(HARECACHE)/bufio.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/errors.td $(HARECACHE)/fs.td $(HARECACHE)/io.td $(HARECACHE)/path.td $(HARECACHE)/rt.td $(HARECACHE)/strings.td $(HARECACHE)/time.td $(HARECACHE)/types_c.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/os.ssa -t $(HARECACHE)/os.td.tmp -N os $(os_ha) + +strconv_ha = strconv/ftos.ha strconv/itos.ha strconv/numeric.ha strconv/stof.ha strconv/stof_data.ha strconv/stoi.ha strconv/stou.ha strconv/types.ha strconv/utos.ha +$(HARECACHE)/strconv.ssa: $(strconv_ha) $(HARECACHE)/ascii.td $(HARECACHE)/bytes.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/math.td $(HARECACHE)/strings.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/strconv.ssa -t $(HARECACHE)/strconv.td.tmp -N strconv $(strconv_ha) + +fmt_ha = fmt/fmt.ha +$(HARECACHE)/fmt.ssa: $(fmt_ha) $(HARECACHE)/ascii.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/io.td $(HARECACHE)/math.td $(HARECACHE)/memio.td $(HARECACHE)/os.td $(HARECACHE)/strconv.td $(HARECACHE)/strings.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/fmt.ssa -t $(HARECACHE)/fmt.td.tmp -N fmt $(fmt_ha) + +hash_ha = hash/hash.ha +$(HARECACHE)/hash.ssa: $(hash_ha) $(HARECACHE)/fmt.td $(HARECACHE)/io.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/hash.ssa -t $(HARECACHE)/hash.td.tmp -N hash $(hash_ha) + +crypto_sha256_ha = crypto/sha256/sha256.ha +$(HARECACHE)/crypto_sha256.ssa: $(crypto_sha256_ha) $(HARECACHE)/bytes.td $(HARECACHE)/crypto_math.td $(HARECACHE)/endian.td $(HARECACHE)/hash.td $(HARECACHE)/io.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/crypto_sha256.ssa -t $(HARECACHE)/crypto_sha256.td.tmp -N crypto::sha256 $(crypto_sha256_ha) + +encoding_hex_ha = encoding/hex/hex.ha +$(HARECACHE)/encoding_hex.ssa: $(encoding_hex_ha) $(HARECACHE)/ascii.td $(HARECACHE)/bytes.td $(HARECACHE)/errors.td $(HARECACHE)/fmt.td $(HARECACHE)/io.td $(HARECACHE)/memio.td $(HARECACHE)/os.td $(HARECACHE)/strconv.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/encoding_hex.ssa -t $(HARECACHE)/encoding_hex.td.tmp -N encoding::hex $(encoding_hex_ha) + +sort_ha = sort/bisect.ha sort/search.ha sort/sort.ha sort/types.ha +$(HARECACHE)/sort.ssa: $(sort_ha) $(HARECACHE)/math.td $(HARECACHE)/rt.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/sort.ssa -t $(HARECACHE)/sort.td.tmp -N sort $(sort_ha) + +sort_cmp_ha = sort/cmp/cmp.ha +$(HARECACHE)/sort_cmp.ssa: $(sort_cmp_ha) $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/sort_cmp.ssa -t $(HARECACHE)/sort_cmp.td.tmp -N sort::cmp $(sort_cmp_ha) + +hare_lex_ha = hare/lex/lex.ha hare/lex/token.ha +$(HARECACHE)/hare_lex.ssa: $(hare_lex_ha) $(HARECACHE)/ascii.td $(HARECACHE)/bufio.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/fmt.td $(HARECACHE)/io.td $(HARECACHE)/memio.td $(HARECACHE)/os.td $(HARECACHE)/path.td $(HARECACHE)/sort.td $(HARECACHE)/sort_cmp.td $(HARECACHE)/strconv.td $(HARECACHE)/strings.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/hare_lex.ssa -t $(HARECACHE)/hare_lex.td.tmp -N hare::lex $(hare_lex_ha) + +hare_ast_ha = hare/ast/decl.ha hare/ast/expr.ha hare/ast/ident.ha hare/ast/import.ha hare/ast/type.ha hare/ast/unit.ha +$(HARECACHE)/hare_ast.ssa: $(hare_ast_ha) $(HARECACHE)/hare_lex.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/hare_ast.ssa -t $(HARECACHE)/hare_ast.td.tmp -N hare::ast $(hare_ast_ha) + +hare_parse_ha = hare/parse/decl.ha hare/parse/expr.ha hare/parse/ident.ha hare/parse/import.ha hare/parse/parse.ha hare/parse/type.ha hare/parse/unit.ha +$(HARECACHE)/hare_parse.ssa: $(hare_parse_ha) $(HARECACHE)/ascii.td $(HARECACHE)/fmt.td $(HARECACHE)/hare_ast.td $(HARECACHE)/hare_lex.td $(HARECACHE)/io.td $(HARECACHE)/math.td $(HARECACHE)/memio.td $(HARECACHE)/strings.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/hare_parse.ssa -t $(HARECACHE)/hare_parse.td.tmp -N hare::parse $(hare_parse_ha) + +hare_unparse_ha = hare/unparse/decl.ha hare/unparse/expr.ha hare/unparse/ident.ha hare/unparse/import.ha hare/unparse/type.ha hare/unparse/unit.ha hare/unparse/util.ha +$(HARECACHE)/hare_unparse.ssa: $(hare_unparse_ha) $(HARECACHE)/fmt.td $(HARECACHE)/hare_ast.td $(HARECACHE)/hare_lex.td $(HARECACHE)/io.td $(HARECACHE)/memio.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/hare_unparse.ssa -t $(HARECACHE)/hare_unparse.td.tmp -N hare::unparse $(hare_unparse_ha) + +time_chrono_ha = time/chrono/+freebsd.ha time/chrono/arithmetic.ha time/chrono/chronology.ha time/chrono/error.ha time/chrono/leapsec.ha time/chrono/timescale.ha time/chrono/timezone.ha time/chrono/tzdb.ha +$(HARECACHE)/time_chrono.ssa: $(time_chrono_ha) $(HARECACHE)/bufio.td $(HARECACHE)/bytes.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/endian.td $(HARECACHE)/fmt.td $(HARECACHE)/fs.td $(HARECACHE)/io.td $(HARECACHE)/os.td $(HARECACHE)/path.td $(HARECACHE)/strconv.td $(HARECACHE)/strings.td $(HARECACHE)/time.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/time_chrono.ssa -t $(HARECACHE)/time_chrono.td.tmp -N time::chrono $(time_chrono_ha) + +time_date_ha = time/date/date.ha time/date/daydate.ha time/date/daytime.ha time/date/error.ha time/date/format.ha time/date/locality.ha time/date/observe.ha time/date/parithm.ha time/date/parse.ha time/date/period.ha time/date/reckon.ha time/date/tarithm.ha time/date/virtual.ha +$(HARECACHE)/time_date.ssa: $(time_date_ha) $(HARECACHE)/ascii.td $(HARECACHE)/fmt.td $(HARECACHE)/io.td $(HARECACHE)/math.td $(HARECACHE)/memio.td $(HARECACHE)/strconv.td $(HARECACHE)/strings.td $(HARECACHE)/time.td $(HARECACHE)/time_chrono.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/time_date.ssa -t $(HARECACHE)/time_date.td.tmp -N time::date $(time_date_ha) + +hare_module_ha = hare/module/cache.ha hare/module/deps.ha hare/module/format.ha hare/module/srcs.ha hare/module/types.ha hare/module/util.ha +$(HARECACHE)/hare_module.ssa: $(hare_module_ha) $(HARECACHE)/ascii.td $(HARECACHE)/bufio.td $(HARECACHE)/bytes.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/fmt.td $(HARECACHE)/fs.td $(HARECACHE)/hare_ast.td $(HARECACHE)/hare_lex.td $(HARECACHE)/hare_parse.td $(HARECACHE)/hare_unparse.td $(HARECACHE)/io.td $(HARECACHE)/memio.td $(HARECACHE)/os.td $(HARECACHE)/path.td $(HARECACHE)/sort.td $(HARECACHE)/sort_cmp.td $(HARECACHE)/strings.td $(HARECACHE)/time.td $(HARECACHE)/time_chrono.td $(HARECACHE)/time_date.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/hare_module.ssa -t $(HARECACHE)/hare_module.td.tmp -N hare::module $(hare_module_ha) + +unix_ha = unix/+freebsd/getuid.ha unix/+freebsd/groups.ha unix/+freebsd/nice.ha unix/+freebsd/pipe.ha unix/+freebsd/setuid.ha unix/+freebsd/umask.ha +$(HARECACHE)/unix.ssa: $(unix_ha) $(HARECACHE)/errors.td $(HARECACHE)/fs.td $(HARECACHE)/io.td $(HARECACHE)/rt.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/unix.ssa -t $(HARECACHE)/unix.td.tmp -N unix $(unix_ha) + +unix_signal_ha = unix/signal/+freebsd.ha unix/signal/types.ha +$(HARECACHE)/unix_signal.ssa: $(unix_signal_ha) $(HARECACHE)/io.td $(HARECACHE)/rt.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/unix_signal.ssa -t $(HARECACHE)/unix_signal.td.tmp -N unix::signal $(unix_signal_ha) + +os_exec_ha = os/exec/cmd.ha os/exec/exec+freebsd.ha os/exec/process+freebsd.ha os/exec/types.ha +$(HARECACHE)/os_exec.ssa: $(os_exec_ha) $(HARECACHE)/ascii.td $(HARECACHE)/errors.td $(HARECACHE)/fmt.td $(HARECACHE)/fs.td $(HARECACHE)/io.td $(HARECACHE)/os.td $(HARECACHE)/rt.td $(HARECACHE)/strings.td $(HARECACHE)/time.td $(HARECACHE)/types_c.td $(HARECACHE)/unix.td $(HARECACHE)/unix_signal.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/os_exec.ssa -t $(HARECACHE)/os_exec.td.tmp -N os::exec $(os_exec_ha) + +shlex_ha = shlex/escape.ha shlex/split.ha +$(HARECACHE)/shlex.ssa: $(shlex_ha) $(HARECACHE)/ascii.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/io.td $(HARECACHE)/memio.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/shlex.ssa -t $(HARECACHE)/shlex.td.tmp -N shlex $(shlex_ha) + +unix_tty_ha = unix/tty/+freebsd/isatty.ha unix/tty/+freebsd/open.ha unix/tty/+freebsd/pty.ha unix/tty/+freebsd/termios.ha unix/tty/+freebsd/winsize.ha unix/tty/pty_common.ha unix/tty/types.ha +$(HARECACHE)/unix_tty.ssa: $(unix_tty_ha) $(HARECACHE)/bufio.td $(HARECACHE)/errors.td $(HARECACHE)/fmt.td $(HARECACHE)/fs.td $(HARECACHE)/io.td $(HARECACHE)/os.td $(HARECACHE)/rt.td $(HARECACHE)/strings.td $(HARECACHE)/types_c.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/unix_tty.ssa -t $(HARECACHE)/unix_tty.td.tmp -N unix::tty $(unix_tty_ha) + +cmd_hare_build_ha = cmd/hare/build/gather.ha cmd/hare/build/queue.ha cmd/hare/build/types.ha cmd/hare/build/util.ha +$(HARECACHE)/cmd_hare_build.ssa: $(cmd_hare_build_ha) $(HARECACHE)/crypto_sha256.td $(HARECACHE)/encoding_hex.td $(HARECACHE)/errors.td $(HARECACHE)/fmt.td $(HARECACHE)/fs.td $(HARECACHE)/hare_ast.td $(HARECACHE)/hare_module.td $(HARECACHE)/hare_unparse.td $(HARECACHE)/hash.td $(HARECACHE)/io.td $(HARECACHE)/memio.td $(HARECACHE)/os.td $(HARECACHE)/os_exec.td $(HARECACHE)/path.td $(HARECACHE)/shlex.td $(HARECACHE)/sort.td $(HARECACHE)/strings.td $(HARECACHE)/unix_tty.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/cmd_hare_build.ssa -t $(HARECACHE)/cmd_hare_build.td.tmp -N cmd::hare::build $(cmd_hare_build_ha) + +dirs_ha = dirs/xdg.ha +$(HARECACHE)/dirs.ssa: $(dirs_ha) $(HARECACHE)/errors.td $(HARECACHE)/fmt.td $(HARECACHE)/fs.td $(HARECACHE)/os.td $(HARECACHE)/path.td $(HARECACHE)/unix.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/dirs.ssa -t $(HARECACHE)/dirs.td.tmp -N dirs $(dirs_ha) + +getopt_ha = getopt/getopts.ha +$(HARECACHE)/getopt.ssa: $(getopt_ha) $(HARECACHE)/fmt.td $(HARECACHE)/io.td $(HARECACHE)/os.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/getopt.ssa -t $(HARECACHE)/getopt.td.tmp -N getopt $(getopt_ha) + +cmd_hare_ha = cmd/hare/arch.ha cmd/hare/build.ha cmd/hare/cache.ha cmd/hare/deps.ha cmd/hare/error.ha cmd/hare/main.ha cmd/hare/util.ha cmd/hare/version.ha +$(HARECACHE)/cmd_hare.ssa: $(cmd_hare_ha) $(HARECACHE)/ascii.td $(HARECACHE)/bufio.td $(HARECACHE)/cmd_hare_build.td $(HARECACHE)/dirs.td $(HARECACHE)/errors.td $(HARECACHE)/fmt.td $(HARECACHE)/fs.td $(HARECACHE)/getopt.td $(HARECACHE)/hare_ast.td $(HARECACHE)/hare_lex.td $(HARECACHE)/hare_module.td $(HARECACHE)/hare_parse.td $(HARECACHE)/io.td $(HARECACHE)/memio.td $(HARECACHE)/os.td $(HARECACHE)/os_exec.td $(HARECACHE)/path.td $(HARECACHE)/sort.td $(HARECACHE)/sort_cmp.td $(HARECACHE)/strconv.td $(HARECACHE)/strings.td $(HARECACHE)/unix_tty.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/cmd_hare.ssa -t $(HARECACHE)/cmd_hare.td.tmp $(HARE_DEFINES) $(cmd_hare_ha) diff --git a/makefiles/linux.aarch64.mk b/makefiles/linux.aarch64.mk @@ -0,0 +1,274 @@ +# generated by cmd/genbootstrap +# DO NOT EDIT BY HAND. run 'make bootstrap' to update +TDENV = env HARE_TD_rt=$(HARECACHE)/rt.td HARE_TD_encoding::utf8=$(HARECACHE)/encoding_utf8.td HARE_TD_types=$(HARECACHE)/types.td HARE_TD_bytes=$(HARECACHE)/bytes.td HARE_TD_strings=$(HARECACHE)/strings.td HARE_TD_ascii=$(HARECACHE)/ascii.td HARE_TD_errors=$(HARECACHE)/errors.td HARE_TD_io=$(HARECACHE)/io.td HARE_TD_bufio=$(HARECACHE)/bufio.td HARE_TD_crypto::math=$(HARECACHE)/crypto_math.td HARE_TD_endian=$(HARECACHE)/endian.td HARE_TD_math=$(HARECACHE)/math.td HARE_TD_memio=$(HARECACHE)/memio.td HARE_TD_path=$(HARECACHE)/path.td HARE_TD_format::elf=$(HARECACHE)/format_elf.td HARE_TD_linux=$(HARECACHE)/linux.td HARE_TD_types::c=$(HARECACHE)/types_c.td HARE_TD_linux::vdso=$(HARECACHE)/linux_vdso.td HARE_TD_time=$(HARECACHE)/time.td HARE_TD_fs=$(HARECACHE)/fs.td HARE_TD_os=$(HARECACHE)/os.td HARE_TD_strconv=$(HARECACHE)/strconv.td HARE_TD_fmt=$(HARECACHE)/fmt.td HARE_TD_hash=$(HARECACHE)/hash.td HARE_TD_crypto::sha256=$(HARECACHE)/crypto_sha256.td HARE_TD_encoding::hex=$(HARECACHE)/encoding_hex.td HARE_TD_sort=$(HARECACHE)/sort.td HARE_TD_sort::cmp=$(HARECACHE)/sort_cmp.td HARE_TD_hare::lex=$(HARECACHE)/hare_lex.td HARE_TD_hare::ast=$(HARECACHE)/hare_ast.td HARE_TD_hare::parse=$(HARECACHE)/hare_parse.td HARE_TD_hare::unparse=$(HARECACHE)/hare_unparse.td HARE_TD_time::chrono=$(HARECACHE)/time_chrono.td HARE_TD_time::date=$(HARECACHE)/time_date.td HARE_TD_hare::module=$(HARECACHE)/hare_module.td HARE_TD_unix=$(HARECACHE)/unix.td HARE_TD_unix::signal=$(HARECACHE)/unix_signal.td HARE_TD_os::exec=$(HARECACHE)/os_exec.td HARE_TD_shlex=$(HARECACHE)/shlex.td HARE_TD_unix::tty=$(HARECACHE)/unix_tty.td HARE_TD_cmd::hare::build=$(HARECACHE)/cmd_hare_build.td HARE_TD_dirs=$(HARECACHE)/dirs.td HARE_TD_getopt=$(HARECACHE)/getopt.td HARE_TD_cmd::hare=$(HARECACHE)/cmd_hare.td +RTSCRIPT = rt/hare.sc +OBJS = $(HARECACHE)/rt.o $(HARECACHE)/encoding_utf8.o $(HARECACHE)/types.o $(HARECACHE)/bytes.o $(HARECACHE)/strings.o $(HARECACHE)/ascii.o $(HARECACHE)/errors.o $(HARECACHE)/io.o $(HARECACHE)/bufio.o $(HARECACHE)/crypto_math.o $(HARECACHE)/endian.o $(HARECACHE)/math.o $(HARECACHE)/memio.o $(HARECACHE)/path.o $(HARECACHE)/format_elf.o $(HARECACHE)/linux.o $(HARECACHE)/types_c.o $(HARECACHE)/linux_vdso.o $(HARECACHE)/time.o $(HARECACHE)/fs.o $(HARECACHE)/os.o $(HARECACHE)/strconv.o $(HARECACHE)/fmt.o $(HARECACHE)/hash.o $(HARECACHE)/crypto_sha256.o $(HARECACHE)/encoding_hex.o $(HARECACHE)/sort.o $(HARECACHE)/sort_cmp.o $(HARECACHE)/hare_lex.o $(HARECACHE)/hare_ast.o $(HARECACHE)/hare_parse.o $(HARECACHE)/hare_unparse.o $(HARECACHE)/time_chrono.o $(HARECACHE)/time_date.o $(HARECACHE)/hare_module.o $(HARECACHE)/unix.o $(HARECACHE)/unix_signal.o $(HARECACHE)/os_exec.o $(HARECACHE)/shlex.o $(HARECACHE)/unix_tty.o $(HARECACHE)/cmd_hare_build.o $(HARECACHE)/dirs.o $(HARECACHE)/getopt.o $(HARECACHE)/cmd_hare.o + +rt_ha = rt/+aarch64/arch_jmp.ha rt/+aarch64/backtrace.ha rt/+aarch64/cpuid.ha rt/+linux/+aarch64.ha rt/+linux/env.ha rt/+linux/errno.ha rt/+linux/platform_abort.ha rt/+linux/platformstart-libc.ha rt/+linux/prctl.ha rt/+linux/segmalloc.ha rt/+linux/signal.ha rt/+linux/socket.ha rt/+linux/stat.ha rt/+linux/syscallno+aarch64.ha rt/+linux/syscalls.ha rt/+linux/types.ha rt/abort.ha rt/ensure.ha rt/fenv_defs.ha rt/jmp.ha rt/malloc.ha rt/memcpy.ha rt/memfunc_ptr.ha rt/memmove.ha rt/memset.ha rt/start.ha rt/strcmp.ha rt/u64tos.ha rt/unknown_errno.ha +$(HARECACHE)/rt.ssa: $(rt_ha) + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/rt.ssa -t $(HARECACHE)/rt.td.tmp -N rt $(rt_ha) + +rt_s = $(HARECACHE)/rt.s rt/+aarch64/cpuid.s rt/+aarch64/fenv.s rt/+aarch64/getfp.s rt/+aarch64/longjmp.s rt/+aarch64/restore.s rt/+aarch64/setjmp.s rt/+linux/start+aarch64-libc.s rt/+linux/syscall+aarch64.s +$(HARECACHE)/rt.o: $(rt_s) + @printf 'AS\t%s\n' "$@" + @$(AS) $(ASFLAGS) -o $@ $(rt_s) + +encoding_utf8_ha = encoding/utf8/decode.ha encoding/utf8/decodetable.ha encoding/utf8/encode.ha encoding/utf8/rune.ha +$(HARECACHE)/encoding_utf8.ssa: $(encoding_utf8_ha) + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/encoding_utf8.ssa -t $(HARECACHE)/encoding_utf8.td.tmp -N encoding::utf8 $(encoding_utf8_ha) + +types_ha = types/arch+aarch64.ha types/classes.ha types/limits.ha +$(HARECACHE)/types.ssa: $(types_ha) + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/types.ssa -t $(HARECACHE)/types.td.tmp -N types $(types_ha) + +bytes_ha = bytes/contains.ha bytes/equal.ha bytes/index.ha bytes/reverse.ha bytes/tokenize.ha bytes/trim.ha bytes/two_way.ha bytes/zero.ha +$(HARECACHE)/bytes.ssa: $(bytes_ha) $(HARECACHE)/rt.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/bytes.ssa -t $(HARECACHE)/bytes.td.tmp -N bytes $(bytes_ha) + +strings_ha = strings/compare.ha strings/concat.ha strings/contains.ha strings/dup.ha strings/index.ha strings/iter.ha strings/pad.ha strings/replace.ha strings/runes.ha strings/sub.ha strings/suffix.ha strings/tokenize.ha strings/trim.ha strings/utf8.ha +$(HARECACHE)/strings.ssa: $(strings_ha) $(HARECACHE)/bytes.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/strings.ssa -t $(HARECACHE)/strings.td.tmp -N strings $(strings_ha) + +ascii_ha = ascii/ctype.ha ascii/string.ha ascii/valid.ha +$(HARECACHE)/ascii.ssa: $(ascii_ha) $(HARECACHE)/encoding_utf8.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/ascii.ssa -t $(HARECACHE)/ascii.td.tmp -N ascii $(ascii_ha) + +errors_ha = errors/common.ha errors/opaque.ha errors/rt.ha errors/string.ha +$(HARECACHE)/errors.ssa: $(errors_ha) $(HARECACHE)/rt.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/errors.ssa -t $(HARECACHE)/errors.td.tmp -N errors $(errors_ha) + +io_ha = io/+linux/mmap.ha io/+linux/platform_file.ha io/+linux/vector.ha io/arch+aarch64.ha io/copy.ha io/drain.ha io/empty.ha io/file.ha io/handle.ha io/limit.ha io/stream.ha io/tee.ha io/types.ha io/util.ha io/zero.ha +$(HARECACHE)/io.ssa: $(io_ha) $(HARECACHE)/bytes.td $(HARECACHE)/errors.td $(HARECACHE)/rt.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/io.ssa -t $(HARECACHE)/io.td.tmp -N io $(io_ha) + +bufio_ha = bufio/scanner.ha bufio/stream.ha +$(HARECACHE)/bufio.ssa: $(bufio_ha) $(HARECACHE)/bytes.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/errors.td $(HARECACHE)/io.td $(HARECACHE)/strings.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/bufio.ssa -t $(HARECACHE)/bufio.td.tmp -N bufio $(bufio_ha) + +crypto_math_ha = crypto/math/arithm.ha crypto/math/bits.ha +$(HARECACHE)/crypto_math.ssa: $(crypto_math_ha) + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/crypto_math.ssa -t $(HARECACHE)/crypto_math.td.tmp -N crypto::math $(crypto_math_ha) + +endian_ha = endian/big.ha endian/endian.ha endian/host+aarch64.ha endian/little.ha endian/network.ha +$(HARECACHE)/endian.ssa: $(endian_ha) + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/endian.ssa -t $(HARECACHE)/endian.td.tmp -N endian $(endian_ha) + +math_ha = math/fenv+aarch64.ha math/fenv_func.ha math/floats.ha math/ints.ha math/math.ha math/trig.ha math/uints.ha +$(HARECACHE)/math.ssa: $(math_ha) $(HARECACHE)/rt.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/math.ssa -t $(HARECACHE)/math.td.tmp -N math $(math_ha) + +memio_ha = memio/ops.ha memio/stream.ha +$(HARECACHE)/memio.ssa: $(memio_ha) $(HARECACHE)/bytes.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/errors.td $(HARECACHE)/io.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/memio.ssa -t $(HARECACHE)/memio.td.tmp -N memio $(memio_ha) + +path_ha = path/+linux.ha path/buffer.ha path/error.ha path/ext_stack.ha path/iter.ha path/posix.ha path/prefix.ha path/stack.ha +$(HARECACHE)/path.ssa: $(path_ha) $(HARECACHE)/bytes.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/path.ssa -t $(HARECACHE)/path.td.tmp -N path $(path_ha) + +format_elf_ha = format/elf/arch+aarch64.ha format/elf/platform+linux.ha format/elf/types.ha +$(HARECACHE)/format_elf.ssa: $(format_elf_ha) + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/format_elf.ssa -t $(HARECACHE)/format_elf.td.tmp -N format::elf $(format_elf_ha) + +linux_ha = linux/env.ha linux/start.ha +$(HARECACHE)/linux.ssa: $(linux_ha) $(HARECACHE)/format_elf.td $(HARECACHE)/rt.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/linux.ssa -t $(HARECACHE)/linux.td.tmp -N linux $(linux_ha) + +types_c_ha = types/c/arch+aarch64.ha types/c/strings.ha types/c/types.ha +$(HARECACHE)/types_c.ssa: $(types_c_ha) $(HARECACHE)/encoding_utf8.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/types_c.ssa -t $(HARECACHE)/types_c.td.tmp -N types::c $(types_c_ha) + +linux_vdso_ha = linux/vdso/vdso.ha +$(HARECACHE)/linux_vdso.ssa: $(linux_vdso_ha) $(HARECACHE)/format_elf.td $(HARECACHE)/linux.td $(HARECACHE)/types_c.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/linux_vdso.ssa -t $(HARECACHE)/linux_vdso.td.tmp -N linux::vdso $(linux_vdso_ha) + +time_ha = time/+linux/+aarch64.ha time/+linux/functions.ha time/arithm.ha time/conv.ha time/types.ha +$(HARECACHE)/time.ssa: $(time_ha) $(HARECACHE)/linux_vdso.td $(HARECACHE)/math.td $(HARECACHE)/rt.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/time.ssa -t $(HARECACHE)/time.td.tmp -N time $(time_ha) + +fs_ha = fs/fs.ha fs/types.ha fs/util.ha +$(HARECACHE)/fs.ssa: $(fs_ha) $(HARECACHE)/errors.td $(HARECACHE)/io.td $(HARECACHE)/path.td $(HARECACHE)/strings.td $(HARECACHE)/time.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/fs.ssa -t $(HARECACHE)/fs.td.tmp -N fs $(fs_ha) + +os_ha = os/+linux/dirfdfs.ha os/+linux/exit.ha os/+linux/fs.ha os/+linux/memory.ha os/+linux/platform_environ.ha os/+linux/status.ha os/+linux/stdfd.ha os/environ.ha os/os.ha +$(HARECACHE)/os.ssa: $(os_ha) $(HARECACHE)/bufio.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/errors.td $(HARECACHE)/fs.td $(HARECACHE)/io.td $(HARECACHE)/math.td $(HARECACHE)/path.td $(HARECACHE)/rt.td $(HARECACHE)/strings.td $(HARECACHE)/time.td $(HARECACHE)/types_c.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/os.ssa -t $(HARECACHE)/os.td.tmp -N os $(os_ha) + +strconv_ha = strconv/ftos.ha strconv/itos.ha strconv/numeric.ha strconv/stof.ha strconv/stof_data.ha strconv/stoi.ha strconv/stou.ha strconv/types.ha strconv/utos.ha +$(HARECACHE)/strconv.ssa: $(strconv_ha) $(HARECACHE)/ascii.td $(HARECACHE)/bytes.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/math.td $(HARECACHE)/strings.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/strconv.ssa -t $(HARECACHE)/strconv.td.tmp -N strconv $(strconv_ha) + +fmt_ha = fmt/fmt.ha +$(HARECACHE)/fmt.ssa: $(fmt_ha) $(HARECACHE)/ascii.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/io.td $(HARECACHE)/math.td $(HARECACHE)/memio.td $(HARECACHE)/os.td $(HARECACHE)/strconv.td $(HARECACHE)/strings.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/fmt.ssa -t $(HARECACHE)/fmt.td.tmp -N fmt $(fmt_ha) + +hash_ha = hash/hash.ha +$(HARECACHE)/hash.ssa: $(hash_ha) $(HARECACHE)/fmt.td $(HARECACHE)/io.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/hash.ssa -t $(HARECACHE)/hash.td.tmp -N hash $(hash_ha) + +crypto_sha256_ha = crypto/sha256/sha256.ha +$(HARECACHE)/crypto_sha256.ssa: $(crypto_sha256_ha) $(HARECACHE)/bytes.td $(HARECACHE)/crypto_math.td $(HARECACHE)/endian.td $(HARECACHE)/hash.td $(HARECACHE)/io.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/crypto_sha256.ssa -t $(HARECACHE)/crypto_sha256.td.tmp -N crypto::sha256 $(crypto_sha256_ha) + +encoding_hex_ha = encoding/hex/hex.ha +$(HARECACHE)/encoding_hex.ssa: $(encoding_hex_ha) $(HARECACHE)/ascii.td $(HARECACHE)/bytes.td $(HARECACHE)/errors.td $(HARECACHE)/fmt.td $(HARECACHE)/io.td $(HARECACHE)/memio.td $(HARECACHE)/os.td $(HARECACHE)/strconv.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/encoding_hex.ssa -t $(HARECACHE)/encoding_hex.td.tmp -N encoding::hex $(encoding_hex_ha) + +sort_ha = sort/bisect.ha sort/search.ha sort/sort.ha sort/types.ha +$(HARECACHE)/sort.ssa: $(sort_ha) $(HARECACHE)/math.td $(HARECACHE)/rt.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/sort.ssa -t $(HARECACHE)/sort.td.tmp -N sort $(sort_ha) + +sort_cmp_ha = sort/cmp/cmp.ha +$(HARECACHE)/sort_cmp.ssa: $(sort_cmp_ha) $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/sort_cmp.ssa -t $(HARECACHE)/sort_cmp.td.tmp -N sort::cmp $(sort_cmp_ha) + +hare_lex_ha = hare/lex/lex.ha hare/lex/token.ha +$(HARECACHE)/hare_lex.ssa: $(hare_lex_ha) $(HARECACHE)/ascii.td $(HARECACHE)/bufio.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/fmt.td $(HARECACHE)/io.td $(HARECACHE)/memio.td $(HARECACHE)/os.td $(HARECACHE)/path.td $(HARECACHE)/sort.td $(HARECACHE)/sort_cmp.td $(HARECACHE)/strconv.td $(HARECACHE)/strings.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/hare_lex.ssa -t $(HARECACHE)/hare_lex.td.tmp -N hare::lex $(hare_lex_ha) + +hare_ast_ha = hare/ast/decl.ha hare/ast/expr.ha hare/ast/ident.ha hare/ast/import.ha hare/ast/type.ha hare/ast/unit.ha +$(HARECACHE)/hare_ast.ssa: $(hare_ast_ha) $(HARECACHE)/hare_lex.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/hare_ast.ssa -t $(HARECACHE)/hare_ast.td.tmp -N hare::ast $(hare_ast_ha) + +hare_parse_ha = hare/parse/decl.ha hare/parse/expr.ha hare/parse/ident.ha hare/parse/import.ha hare/parse/parse.ha hare/parse/type.ha hare/parse/unit.ha +$(HARECACHE)/hare_parse.ssa: $(hare_parse_ha) $(HARECACHE)/ascii.td $(HARECACHE)/fmt.td $(HARECACHE)/hare_ast.td $(HARECACHE)/hare_lex.td $(HARECACHE)/io.td $(HARECACHE)/math.td $(HARECACHE)/memio.td $(HARECACHE)/strings.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/hare_parse.ssa -t $(HARECACHE)/hare_parse.td.tmp -N hare::parse $(hare_parse_ha) + +hare_unparse_ha = hare/unparse/decl.ha hare/unparse/expr.ha hare/unparse/ident.ha hare/unparse/import.ha hare/unparse/type.ha hare/unparse/unit.ha hare/unparse/util.ha +$(HARECACHE)/hare_unparse.ssa: $(hare_unparse_ha) $(HARECACHE)/fmt.td $(HARECACHE)/hare_ast.td $(HARECACHE)/hare_lex.td $(HARECACHE)/io.td $(HARECACHE)/memio.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/hare_unparse.ssa -t $(HARECACHE)/hare_unparse.td.tmp -N hare::unparse $(hare_unparse_ha) + +time_chrono_ha = time/chrono/+linux.ha time/chrono/arithmetic.ha time/chrono/chronology.ha time/chrono/error.ha time/chrono/leapsec.ha time/chrono/timescale.ha time/chrono/timezone.ha time/chrono/tzdb.ha +$(HARECACHE)/time_chrono.ssa: $(time_chrono_ha) $(HARECACHE)/bufio.td $(HARECACHE)/bytes.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/endian.td $(HARECACHE)/fmt.td $(HARECACHE)/fs.td $(HARECACHE)/io.td $(HARECACHE)/os.td $(HARECACHE)/path.td $(HARECACHE)/strconv.td $(HARECACHE)/strings.td $(HARECACHE)/time.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/time_chrono.ssa -t $(HARECACHE)/time_chrono.td.tmp -N time::chrono $(time_chrono_ha) + +time_date_ha = time/date/date.ha time/date/daydate.ha time/date/daytime.ha time/date/error.ha time/date/format.ha time/date/locality.ha time/date/observe.ha time/date/parithm.ha time/date/parse.ha time/date/period.ha time/date/reckon.ha time/date/tarithm.ha time/date/virtual.ha +$(HARECACHE)/time_date.ssa: $(time_date_ha) $(HARECACHE)/ascii.td $(HARECACHE)/fmt.td $(HARECACHE)/io.td $(HARECACHE)/math.td $(HARECACHE)/memio.td $(HARECACHE)/strconv.td $(HARECACHE)/strings.td $(HARECACHE)/time.td $(HARECACHE)/time_chrono.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/time_date.ssa -t $(HARECACHE)/time_date.td.tmp -N time::date $(time_date_ha) + +hare_module_ha = hare/module/cache.ha hare/module/deps.ha hare/module/format.ha hare/module/srcs.ha hare/module/types.ha hare/module/util.ha +$(HARECACHE)/hare_module.ssa: $(hare_module_ha) $(HARECACHE)/ascii.td $(HARECACHE)/bufio.td $(HARECACHE)/bytes.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/fmt.td $(HARECACHE)/fs.td $(HARECACHE)/hare_ast.td $(HARECACHE)/hare_lex.td $(HARECACHE)/hare_parse.td $(HARECACHE)/hare_unparse.td $(HARECACHE)/io.td $(HARECACHE)/memio.td $(HARECACHE)/os.td $(HARECACHE)/path.td $(HARECACHE)/sort.td $(HARECACHE)/sort_cmp.td $(HARECACHE)/strings.td $(HARECACHE)/time.td $(HARECACHE)/time_chrono.td $(HARECACHE)/time_date.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/hare_module.ssa -t $(HARECACHE)/hare_module.td.tmp -N hare::module $(hare_module_ha) + +unix_ha = unix/+linux/getuid.ha unix/+linux/groups.ha unix/+linux/nice.ha unix/+linux/pipe.ha unix/+linux/setuid.ha unix/+linux/umask.ha +$(HARECACHE)/unix.ssa: $(unix_ha) $(HARECACHE)/errors.td $(HARECACHE)/fs.td $(HARECACHE)/io.td $(HARECACHE)/rt.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/unix.ssa -t $(HARECACHE)/unix.td.tmp -N unix $(unix_ha) + +unix_signal_ha = unix/signal/+linux.ha unix/signal/types.ha +$(HARECACHE)/unix_signal.ssa: $(unix_signal_ha) $(HARECACHE)/errors.td $(HARECACHE)/io.td $(HARECACHE)/rt.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/unix_signal.ssa -t $(HARECACHE)/unix_signal.td.tmp -N unix::signal $(unix_signal_ha) + +os_exec_ha = os/exec/cmd.ha os/exec/exec+linux.ha os/exec/process+linux.ha os/exec/types.ha +$(HARECACHE)/os_exec.ssa: $(os_exec_ha) $(HARECACHE)/ascii.td $(HARECACHE)/errors.td $(HARECACHE)/fmt.td $(HARECACHE)/fs.td $(HARECACHE)/io.td $(HARECACHE)/os.td $(HARECACHE)/rt.td $(HARECACHE)/strings.td $(HARECACHE)/time.td $(HARECACHE)/types_c.td $(HARECACHE)/unix.td $(HARECACHE)/unix_signal.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/os_exec.ssa -t $(HARECACHE)/os_exec.td.tmp -N os::exec $(os_exec_ha) + +shlex_ha = shlex/escape.ha shlex/split.ha +$(HARECACHE)/shlex.ssa: $(shlex_ha) $(HARECACHE)/ascii.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/io.td $(HARECACHE)/memio.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/shlex.ssa -t $(HARECACHE)/shlex.td.tmp -N shlex $(shlex_ha) + +unix_tty_ha = unix/tty/+linux/isatty.ha unix/tty/+linux/open.ha unix/tty/+linux/pty.ha unix/tty/+linux/termios.ha unix/tty/+linux/winsize.ha unix/tty/pty_common.ha unix/tty/types.ha +$(HARECACHE)/unix_tty.ssa: $(unix_tty_ha) $(HARECACHE)/bufio.td $(HARECACHE)/errors.td $(HARECACHE)/fmt.td $(HARECACHE)/fs.td $(HARECACHE)/io.td $(HARECACHE)/os.td $(HARECACHE)/rt.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/unix_tty.ssa -t $(HARECACHE)/unix_tty.td.tmp -N unix::tty $(unix_tty_ha) + +cmd_hare_build_ha = cmd/hare/build/gather.ha cmd/hare/build/queue.ha cmd/hare/build/types.ha cmd/hare/build/util.ha +$(HARECACHE)/cmd_hare_build.ssa: $(cmd_hare_build_ha) $(HARECACHE)/crypto_sha256.td $(HARECACHE)/encoding_hex.td $(HARECACHE)/errors.td $(HARECACHE)/fmt.td $(HARECACHE)/fs.td $(HARECACHE)/hare_ast.td $(HARECACHE)/hare_module.td $(HARECACHE)/hare_unparse.td $(HARECACHE)/hash.td $(HARECACHE)/io.td $(HARECACHE)/memio.td $(HARECACHE)/os.td $(HARECACHE)/os_exec.td $(HARECACHE)/path.td $(HARECACHE)/shlex.td $(HARECACHE)/sort.td $(HARECACHE)/strings.td $(HARECACHE)/unix_tty.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/cmd_hare_build.ssa -t $(HARECACHE)/cmd_hare_build.td.tmp -N cmd::hare::build $(cmd_hare_build_ha) + +dirs_ha = dirs/xdg.ha +$(HARECACHE)/dirs.ssa: $(dirs_ha) $(HARECACHE)/errors.td $(HARECACHE)/fmt.td $(HARECACHE)/fs.td $(HARECACHE)/os.td $(HARECACHE)/path.td $(HARECACHE)/unix.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/dirs.ssa -t $(HARECACHE)/dirs.td.tmp -N dirs $(dirs_ha) + +getopt_ha = getopt/getopts.ha +$(HARECACHE)/getopt.ssa: $(getopt_ha) $(HARECACHE)/fmt.td $(HARECACHE)/io.td $(HARECACHE)/os.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/getopt.ssa -t $(HARECACHE)/getopt.td.tmp -N getopt $(getopt_ha) + +cmd_hare_ha = cmd/hare/arch.ha cmd/hare/build.ha cmd/hare/cache.ha cmd/hare/deps.ha cmd/hare/error.ha cmd/hare/main.ha cmd/hare/util.ha cmd/hare/version.ha +$(HARECACHE)/cmd_hare.ssa: $(cmd_hare_ha) $(HARECACHE)/ascii.td $(HARECACHE)/bufio.td $(HARECACHE)/cmd_hare_build.td $(HARECACHE)/dirs.td $(HARECACHE)/errors.td $(HARECACHE)/fmt.td $(HARECACHE)/fs.td $(HARECACHE)/getopt.td $(HARECACHE)/hare_ast.td $(HARECACHE)/hare_lex.td $(HARECACHE)/hare_module.td $(HARECACHE)/hare_parse.td $(HARECACHE)/io.td $(HARECACHE)/memio.td $(HARECACHE)/os.td $(HARECACHE)/os_exec.td $(HARECACHE)/path.td $(HARECACHE)/sort.td $(HARECACHE)/sort_cmp.td $(HARECACHE)/strconv.td $(HARECACHE)/strings.td $(HARECACHE)/unix_tty.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/cmd_hare.ssa -t $(HARECACHE)/cmd_hare.td.tmp $(HARE_DEFINES) $(cmd_hare_ha) diff --git a/makefiles/linux.riscv64.mk b/makefiles/linux.riscv64.mk @@ -0,0 +1,274 @@ +# generated by cmd/genbootstrap +# DO NOT EDIT BY HAND. run 'make bootstrap' to update +TDENV = env HARE_TD_rt=$(HARECACHE)/rt.td HARE_TD_encoding::utf8=$(HARECACHE)/encoding_utf8.td HARE_TD_types=$(HARECACHE)/types.td HARE_TD_bytes=$(HARECACHE)/bytes.td HARE_TD_strings=$(HARECACHE)/strings.td HARE_TD_ascii=$(HARECACHE)/ascii.td HARE_TD_errors=$(HARECACHE)/errors.td HARE_TD_io=$(HARECACHE)/io.td HARE_TD_bufio=$(HARECACHE)/bufio.td HARE_TD_crypto::math=$(HARECACHE)/crypto_math.td HARE_TD_endian=$(HARECACHE)/endian.td HARE_TD_math=$(HARECACHE)/math.td HARE_TD_memio=$(HARECACHE)/memio.td HARE_TD_path=$(HARECACHE)/path.td HARE_TD_format::elf=$(HARECACHE)/format_elf.td HARE_TD_linux=$(HARECACHE)/linux.td HARE_TD_types::c=$(HARECACHE)/types_c.td HARE_TD_linux::vdso=$(HARECACHE)/linux_vdso.td HARE_TD_time=$(HARECACHE)/time.td HARE_TD_fs=$(HARECACHE)/fs.td HARE_TD_os=$(HARECACHE)/os.td HARE_TD_strconv=$(HARECACHE)/strconv.td HARE_TD_fmt=$(HARECACHE)/fmt.td HARE_TD_hash=$(HARECACHE)/hash.td HARE_TD_crypto::sha256=$(HARECACHE)/crypto_sha256.td HARE_TD_encoding::hex=$(HARECACHE)/encoding_hex.td HARE_TD_sort=$(HARECACHE)/sort.td HARE_TD_sort::cmp=$(HARECACHE)/sort_cmp.td HARE_TD_hare::lex=$(HARECACHE)/hare_lex.td HARE_TD_hare::ast=$(HARECACHE)/hare_ast.td HARE_TD_hare::parse=$(HARECACHE)/hare_parse.td HARE_TD_hare::unparse=$(HARECACHE)/hare_unparse.td HARE_TD_time::chrono=$(HARECACHE)/time_chrono.td HARE_TD_time::date=$(HARECACHE)/time_date.td HARE_TD_hare::module=$(HARECACHE)/hare_module.td HARE_TD_unix=$(HARECACHE)/unix.td HARE_TD_unix::signal=$(HARECACHE)/unix_signal.td HARE_TD_os::exec=$(HARECACHE)/os_exec.td HARE_TD_shlex=$(HARECACHE)/shlex.td HARE_TD_unix::tty=$(HARECACHE)/unix_tty.td HARE_TD_cmd::hare::build=$(HARECACHE)/cmd_hare_build.td HARE_TD_dirs=$(HARECACHE)/dirs.td HARE_TD_getopt=$(HARECACHE)/getopt.td HARE_TD_cmd::hare=$(HARECACHE)/cmd_hare.td +RTSCRIPT = rt/hare.sc +OBJS = $(HARECACHE)/rt.o $(HARECACHE)/encoding_utf8.o $(HARECACHE)/types.o $(HARECACHE)/bytes.o $(HARECACHE)/strings.o $(HARECACHE)/ascii.o $(HARECACHE)/errors.o $(HARECACHE)/io.o $(HARECACHE)/bufio.o $(HARECACHE)/crypto_math.o $(HARECACHE)/endian.o $(HARECACHE)/math.o $(HARECACHE)/memio.o $(HARECACHE)/path.o $(HARECACHE)/format_elf.o $(HARECACHE)/linux.o $(HARECACHE)/types_c.o $(HARECACHE)/linux_vdso.o $(HARECACHE)/time.o $(HARECACHE)/fs.o $(HARECACHE)/os.o $(HARECACHE)/strconv.o $(HARECACHE)/fmt.o $(HARECACHE)/hash.o $(HARECACHE)/crypto_sha256.o $(HARECACHE)/encoding_hex.o $(HARECACHE)/sort.o $(HARECACHE)/sort_cmp.o $(HARECACHE)/hare_lex.o $(HARECACHE)/hare_ast.o $(HARECACHE)/hare_parse.o $(HARECACHE)/hare_unparse.o $(HARECACHE)/time_chrono.o $(HARECACHE)/time_date.o $(HARECACHE)/hare_module.o $(HARECACHE)/unix.o $(HARECACHE)/unix_signal.o $(HARECACHE)/os_exec.o $(HARECACHE)/shlex.o $(HARECACHE)/unix_tty.o $(HARECACHE)/cmd_hare_build.o $(HARECACHE)/dirs.o $(HARECACHE)/getopt.o $(HARECACHE)/cmd_hare.o + +rt_ha = rt/+linux/+riscv64.ha rt/+linux/env.ha rt/+linux/errno.ha rt/+linux/platform_abort.ha rt/+linux/platformstart-libc.ha rt/+linux/prctl.ha rt/+linux/segmalloc.ha rt/+linux/signal.ha rt/+linux/socket.ha rt/+linux/stat.ha rt/+linux/syscallno+riscv64.ha rt/+linux/syscalls.ha rt/+linux/types.ha rt/+riscv64/arch_jmp.ha rt/+riscv64/backtrace.ha rt/+riscv64/cpuid.ha rt/abort.ha rt/ensure.ha rt/fenv_defs.ha rt/jmp.ha rt/malloc.ha rt/memcpy.ha rt/memfunc_ptr.ha rt/memmove.ha rt/memset.ha rt/start.ha rt/strcmp.ha rt/u64tos.ha rt/unknown_errno.ha +$(HARECACHE)/rt.ssa: $(rt_ha) + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/rt.ssa -t $(HARECACHE)/rt.td.tmp -N rt $(rt_ha) + +rt_s = $(HARECACHE)/rt.s rt/+linux/start+riscv64-libc.s rt/+linux/syscall+riscv64.s rt/+riscv64/cpuid.s rt/+riscv64/fenv.s rt/+riscv64/getfp.s rt/+riscv64/longjmp.s rt/+riscv64/restore.s rt/+riscv64/setjmp.s +$(HARECACHE)/rt.o: $(rt_s) + @printf 'AS\t%s\n' "$@" + @$(AS) $(ASFLAGS) -o $@ $(rt_s) + +encoding_utf8_ha = encoding/utf8/decode.ha encoding/utf8/decodetable.ha encoding/utf8/encode.ha encoding/utf8/rune.ha +$(HARECACHE)/encoding_utf8.ssa: $(encoding_utf8_ha) + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/encoding_utf8.ssa -t $(HARECACHE)/encoding_utf8.td.tmp -N encoding::utf8 $(encoding_utf8_ha) + +types_ha = types/arch+riscv64.ha types/classes.ha types/limits.ha +$(HARECACHE)/types.ssa: $(types_ha) + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/types.ssa -t $(HARECACHE)/types.td.tmp -N types $(types_ha) + +bytes_ha = bytes/contains.ha bytes/equal.ha bytes/index.ha bytes/reverse.ha bytes/tokenize.ha bytes/trim.ha bytes/two_way.ha bytes/zero.ha +$(HARECACHE)/bytes.ssa: $(bytes_ha) $(HARECACHE)/rt.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/bytes.ssa -t $(HARECACHE)/bytes.td.tmp -N bytes $(bytes_ha) + +strings_ha = strings/compare.ha strings/concat.ha strings/contains.ha strings/dup.ha strings/index.ha strings/iter.ha strings/pad.ha strings/replace.ha strings/runes.ha strings/sub.ha strings/suffix.ha strings/tokenize.ha strings/trim.ha strings/utf8.ha +$(HARECACHE)/strings.ssa: $(strings_ha) $(HARECACHE)/bytes.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/strings.ssa -t $(HARECACHE)/strings.td.tmp -N strings $(strings_ha) + +ascii_ha = ascii/ctype.ha ascii/string.ha ascii/valid.ha +$(HARECACHE)/ascii.ssa: $(ascii_ha) $(HARECACHE)/encoding_utf8.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/ascii.ssa -t $(HARECACHE)/ascii.td.tmp -N ascii $(ascii_ha) + +errors_ha = errors/common.ha errors/opaque.ha errors/rt.ha errors/string.ha +$(HARECACHE)/errors.ssa: $(errors_ha) $(HARECACHE)/rt.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/errors.ssa -t $(HARECACHE)/errors.td.tmp -N errors $(errors_ha) + +io_ha = io/+linux/mmap.ha io/+linux/platform_file.ha io/+linux/vector.ha io/arch+riscv64.ha io/copy.ha io/drain.ha io/empty.ha io/file.ha io/handle.ha io/limit.ha io/stream.ha io/tee.ha io/types.ha io/util.ha io/zero.ha +$(HARECACHE)/io.ssa: $(io_ha) $(HARECACHE)/bytes.td $(HARECACHE)/errors.td $(HARECACHE)/rt.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/io.ssa -t $(HARECACHE)/io.td.tmp -N io $(io_ha) + +bufio_ha = bufio/scanner.ha bufio/stream.ha +$(HARECACHE)/bufio.ssa: $(bufio_ha) $(HARECACHE)/bytes.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/errors.td $(HARECACHE)/io.td $(HARECACHE)/strings.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/bufio.ssa -t $(HARECACHE)/bufio.td.tmp -N bufio $(bufio_ha) + +crypto_math_ha = crypto/math/arithm.ha crypto/math/bits.ha +$(HARECACHE)/crypto_math.ssa: $(crypto_math_ha) + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/crypto_math.ssa -t $(HARECACHE)/crypto_math.td.tmp -N crypto::math $(crypto_math_ha) + +endian_ha = endian/big.ha endian/endian.ha endian/host+riscv64.ha endian/little.ha endian/network.ha +$(HARECACHE)/endian.ssa: $(endian_ha) + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/endian.ssa -t $(HARECACHE)/endian.td.tmp -N endian $(endian_ha) + +math_ha = math/fenv+riscv64.ha math/fenv_func.ha math/floats.ha math/ints.ha math/math.ha math/trig.ha math/uints.ha +$(HARECACHE)/math.ssa: $(math_ha) $(HARECACHE)/rt.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/math.ssa -t $(HARECACHE)/math.td.tmp -N math $(math_ha) + +memio_ha = memio/ops.ha memio/stream.ha +$(HARECACHE)/memio.ssa: $(memio_ha) $(HARECACHE)/bytes.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/errors.td $(HARECACHE)/io.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/memio.ssa -t $(HARECACHE)/memio.td.tmp -N memio $(memio_ha) + +path_ha = path/+linux.ha path/buffer.ha path/error.ha path/ext_stack.ha path/iter.ha path/posix.ha path/prefix.ha path/stack.ha +$(HARECACHE)/path.ssa: $(path_ha) $(HARECACHE)/bytes.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/path.ssa -t $(HARECACHE)/path.td.tmp -N path $(path_ha) + +format_elf_ha = format/elf/arch+riscv64.ha format/elf/platform+linux.ha format/elf/types.ha +$(HARECACHE)/format_elf.ssa: $(format_elf_ha) + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/format_elf.ssa -t $(HARECACHE)/format_elf.td.tmp -N format::elf $(format_elf_ha) + +linux_ha = linux/env.ha linux/start.ha +$(HARECACHE)/linux.ssa: $(linux_ha) $(HARECACHE)/format_elf.td $(HARECACHE)/rt.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/linux.ssa -t $(HARECACHE)/linux.td.tmp -N linux $(linux_ha) + +types_c_ha = types/c/arch+riscv64.ha types/c/strings.ha types/c/types.ha +$(HARECACHE)/types_c.ssa: $(types_c_ha) $(HARECACHE)/encoding_utf8.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/types_c.ssa -t $(HARECACHE)/types_c.td.tmp -N types::c $(types_c_ha) + +linux_vdso_ha = linux/vdso/vdso.ha +$(HARECACHE)/linux_vdso.ssa: $(linux_vdso_ha) $(HARECACHE)/format_elf.td $(HARECACHE)/linux.td $(HARECACHE)/types_c.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/linux_vdso.ssa -t $(HARECACHE)/linux_vdso.td.tmp -N linux::vdso $(linux_vdso_ha) + +time_ha = time/+linux/+riscv64.ha time/+linux/functions.ha time/arithm.ha time/conv.ha time/types.ha +$(HARECACHE)/time.ssa: $(time_ha) $(HARECACHE)/linux_vdso.td $(HARECACHE)/math.td $(HARECACHE)/rt.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/time.ssa -t $(HARECACHE)/time.td.tmp -N time $(time_ha) + +fs_ha = fs/fs.ha fs/types.ha fs/util.ha +$(HARECACHE)/fs.ssa: $(fs_ha) $(HARECACHE)/errors.td $(HARECACHE)/io.td $(HARECACHE)/path.td $(HARECACHE)/strings.td $(HARECACHE)/time.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/fs.ssa -t $(HARECACHE)/fs.td.tmp -N fs $(fs_ha) + +os_ha = os/+linux/dirfdfs.ha os/+linux/exit.ha os/+linux/fs.ha os/+linux/memory.ha os/+linux/platform_environ.ha os/+linux/status.ha os/+linux/stdfd.ha os/environ.ha os/os.ha +$(HARECACHE)/os.ssa: $(os_ha) $(HARECACHE)/bufio.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/errors.td $(HARECACHE)/fs.td $(HARECACHE)/io.td $(HARECACHE)/math.td $(HARECACHE)/path.td $(HARECACHE)/rt.td $(HARECACHE)/strings.td $(HARECACHE)/time.td $(HARECACHE)/types_c.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/os.ssa -t $(HARECACHE)/os.td.tmp -N os $(os_ha) + +strconv_ha = strconv/ftos.ha strconv/itos.ha strconv/numeric.ha strconv/stof.ha strconv/stof_data.ha strconv/stoi.ha strconv/stou.ha strconv/types.ha strconv/utos.ha +$(HARECACHE)/strconv.ssa: $(strconv_ha) $(HARECACHE)/ascii.td $(HARECACHE)/bytes.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/math.td $(HARECACHE)/strings.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/strconv.ssa -t $(HARECACHE)/strconv.td.tmp -N strconv $(strconv_ha) + +fmt_ha = fmt/fmt.ha +$(HARECACHE)/fmt.ssa: $(fmt_ha) $(HARECACHE)/ascii.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/io.td $(HARECACHE)/math.td $(HARECACHE)/memio.td $(HARECACHE)/os.td $(HARECACHE)/strconv.td $(HARECACHE)/strings.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/fmt.ssa -t $(HARECACHE)/fmt.td.tmp -N fmt $(fmt_ha) + +hash_ha = hash/hash.ha +$(HARECACHE)/hash.ssa: $(hash_ha) $(HARECACHE)/fmt.td $(HARECACHE)/io.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/hash.ssa -t $(HARECACHE)/hash.td.tmp -N hash $(hash_ha) + +crypto_sha256_ha = crypto/sha256/sha256.ha +$(HARECACHE)/crypto_sha256.ssa: $(crypto_sha256_ha) $(HARECACHE)/bytes.td $(HARECACHE)/crypto_math.td $(HARECACHE)/endian.td $(HARECACHE)/hash.td $(HARECACHE)/io.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/crypto_sha256.ssa -t $(HARECACHE)/crypto_sha256.td.tmp -N crypto::sha256 $(crypto_sha256_ha) + +encoding_hex_ha = encoding/hex/hex.ha +$(HARECACHE)/encoding_hex.ssa: $(encoding_hex_ha) $(HARECACHE)/ascii.td $(HARECACHE)/bytes.td $(HARECACHE)/errors.td $(HARECACHE)/fmt.td $(HARECACHE)/io.td $(HARECACHE)/memio.td $(HARECACHE)/os.td $(HARECACHE)/strconv.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/encoding_hex.ssa -t $(HARECACHE)/encoding_hex.td.tmp -N encoding::hex $(encoding_hex_ha) + +sort_ha = sort/bisect.ha sort/search.ha sort/sort.ha sort/types.ha +$(HARECACHE)/sort.ssa: $(sort_ha) $(HARECACHE)/math.td $(HARECACHE)/rt.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/sort.ssa -t $(HARECACHE)/sort.td.tmp -N sort $(sort_ha) + +sort_cmp_ha = sort/cmp/cmp.ha +$(HARECACHE)/sort_cmp.ssa: $(sort_cmp_ha) $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/sort_cmp.ssa -t $(HARECACHE)/sort_cmp.td.tmp -N sort::cmp $(sort_cmp_ha) + +hare_lex_ha = hare/lex/lex.ha hare/lex/token.ha +$(HARECACHE)/hare_lex.ssa: $(hare_lex_ha) $(HARECACHE)/ascii.td $(HARECACHE)/bufio.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/fmt.td $(HARECACHE)/io.td $(HARECACHE)/memio.td $(HARECACHE)/os.td $(HARECACHE)/path.td $(HARECACHE)/sort.td $(HARECACHE)/sort_cmp.td $(HARECACHE)/strconv.td $(HARECACHE)/strings.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/hare_lex.ssa -t $(HARECACHE)/hare_lex.td.tmp -N hare::lex $(hare_lex_ha) + +hare_ast_ha = hare/ast/decl.ha hare/ast/expr.ha hare/ast/ident.ha hare/ast/import.ha hare/ast/type.ha hare/ast/unit.ha +$(HARECACHE)/hare_ast.ssa: $(hare_ast_ha) $(HARECACHE)/hare_lex.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/hare_ast.ssa -t $(HARECACHE)/hare_ast.td.tmp -N hare::ast $(hare_ast_ha) + +hare_parse_ha = hare/parse/decl.ha hare/parse/expr.ha hare/parse/ident.ha hare/parse/import.ha hare/parse/parse.ha hare/parse/type.ha hare/parse/unit.ha +$(HARECACHE)/hare_parse.ssa: $(hare_parse_ha) $(HARECACHE)/ascii.td $(HARECACHE)/fmt.td $(HARECACHE)/hare_ast.td $(HARECACHE)/hare_lex.td $(HARECACHE)/io.td $(HARECACHE)/math.td $(HARECACHE)/memio.td $(HARECACHE)/strings.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/hare_parse.ssa -t $(HARECACHE)/hare_parse.td.tmp -N hare::parse $(hare_parse_ha) + +hare_unparse_ha = hare/unparse/decl.ha hare/unparse/expr.ha hare/unparse/ident.ha hare/unparse/import.ha hare/unparse/type.ha hare/unparse/unit.ha hare/unparse/util.ha +$(HARECACHE)/hare_unparse.ssa: $(hare_unparse_ha) $(HARECACHE)/fmt.td $(HARECACHE)/hare_ast.td $(HARECACHE)/hare_lex.td $(HARECACHE)/io.td $(HARECACHE)/memio.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/hare_unparse.ssa -t $(HARECACHE)/hare_unparse.td.tmp -N hare::unparse $(hare_unparse_ha) + +time_chrono_ha = time/chrono/+linux.ha time/chrono/arithmetic.ha time/chrono/chronology.ha time/chrono/error.ha time/chrono/leapsec.ha time/chrono/timescale.ha time/chrono/timezone.ha time/chrono/tzdb.ha +$(HARECACHE)/time_chrono.ssa: $(time_chrono_ha) $(HARECACHE)/bufio.td $(HARECACHE)/bytes.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/endian.td $(HARECACHE)/fmt.td $(HARECACHE)/fs.td $(HARECACHE)/io.td $(HARECACHE)/os.td $(HARECACHE)/path.td $(HARECACHE)/strconv.td $(HARECACHE)/strings.td $(HARECACHE)/time.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/time_chrono.ssa -t $(HARECACHE)/time_chrono.td.tmp -N time::chrono $(time_chrono_ha) + +time_date_ha = time/date/date.ha time/date/daydate.ha time/date/daytime.ha time/date/error.ha time/date/format.ha time/date/locality.ha time/date/observe.ha time/date/parithm.ha time/date/parse.ha time/date/period.ha time/date/reckon.ha time/date/tarithm.ha time/date/virtual.ha +$(HARECACHE)/time_date.ssa: $(time_date_ha) $(HARECACHE)/ascii.td $(HARECACHE)/fmt.td $(HARECACHE)/io.td $(HARECACHE)/math.td $(HARECACHE)/memio.td $(HARECACHE)/strconv.td $(HARECACHE)/strings.td $(HARECACHE)/time.td $(HARECACHE)/time_chrono.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/time_date.ssa -t $(HARECACHE)/time_date.td.tmp -N time::date $(time_date_ha) + +hare_module_ha = hare/module/cache.ha hare/module/deps.ha hare/module/format.ha hare/module/srcs.ha hare/module/types.ha hare/module/util.ha +$(HARECACHE)/hare_module.ssa: $(hare_module_ha) $(HARECACHE)/ascii.td $(HARECACHE)/bufio.td $(HARECACHE)/bytes.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/fmt.td $(HARECACHE)/fs.td $(HARECACHE)/hare_ast.td $(HARECACHE)/hare_lex.td $(HARECACHE)/hare_parse.td $(HARECACHE)/hare_unparse.td $(HARECACHE)/io.td $(HARECACHE)/memio.td $(HARECACHE)/os.td $(HARECACHE)/path.td $(HARECACHE)/sort.td $(HARECACHE)/sort_cmp.td $(HARECACHE)/strings.td $(HARECACHE)/time.td $(HARECACHE)/time_chrono.td $(HARECACHE)/time_date.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/hare_module.ssa -t $(HARECACHE)/hare_module.td.tmp -N hare::module $(hare_module_ha) + +unix_ha = unix/+linux/getuid.ha unix/+linux/groups.ha unix/+linux/nice.ha unix/+linux/pipe.ha unix/+linux/setuid.ha unix/+linux/umask.ha +$(HARECACHE)/unix.ssa: $(unix_ha) $(HARECACHE)/errors.td $(HARECACHE)/fs.td $(HARECACHE)/io.td $(HARECACHE)/rt.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/unix.ssa -t $(HARECACHE)/unix.td.tmp -N unix $(unix_ha) + +unix_signal_ha = unix/signal/+linux.ha unix/signal/types.ha +$(HARECACHE)/unix_signal.ssa: $(unix_signal_ha) $(HARECACHE)/errors.td $(HARECACHE)/io.td $(HARECACHE)/rt.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/unix_signal.ssa -t $(HARECACHE)/unix_signal.td.tmp -N unix::signal $(unix_signal_ha) + +os_exec_ha = os/exec/cmd.ha os/exec/exec+linux.ha os/exec/process+linux.ha os/exec/types.ha +$(HARECACHE)/os_exec.ssa: $(os_exec_ha) $(HARECACHE)/ascii.td $(HARECACHE)/errors.td $(HARECACHE)/fmt.td $(HARECACHE)/fs.td $(HARECACHE)/io.td $(HARECACHE)/os.td $(HARECACHE)/rt.td $(HARECACHE)/strings.td $(HARECACHE)/time.td $(HARECACHE)/types_c.td $(HARECACHE)/unix.td $(HARECACHE)/unix_signal.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/os_exec.ssa -t $(HARECACHE)/os_exec.td.tmp -N os::exec $(os_exec_ha) + +shlex_ha = shlex/escape.ha shlex/split.ha +$(HARECACHE)/shlex.ssa: $(shlex_ha) $(HARECACHE)/ascii.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/io.td $(HARECACHE)/memio.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/shlex.ssa -t $(HARECACHE)/shlex.td.tmp -N shlex $(shlex_ha) + +unix_tty_ha = unix/tty/+linux/isatty.ha unix/tty/+linux/open.ha unix/tty/+linux/pty.ha unix/tty/+linux/termios.ha unix/tty/+linux/winsize.ha unix/tty/pty_common.ha unix/tty/types.ha +$(HARECACHE)/unix_tty.ssa: $(unix_tty_ha) $(HARECACHE)/bufio.td $(HARECACHE)/errors.td $(HARECACHE)/fmt.td $(HARECACHE)/fs.td $(HARECACHE)/io.td $(HARECACHE)/os.td $(HARECACHE)/rt.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/unix_tty.ssa -t $(HARECACHE)/unix_tty.td.tmp -N unix::tty $(unix_tty_ha) + +cmd_hare_build_ha = cmd/hare/build/gather.ha cmd/hare/build/queue.ha cmd/hare/build/types.ha cmd/hare/build/util.ha +$(HARECACHE)/cmd_hare_build.ssa: $(cmd_hare_build_ha) $(HARECACHE)/crypto_sha256.td $(HARECACHE)/encoding_hex.td $(HARECACHE)/errors.td $(HARECACHE)/fmt.td $(HARECACHE)/fs.td $(HARECACHE)/hare_ast.td $(HARECACHE)/hare_module.td $(HARECACHE)/hare_unparse.td $(HARECACHE)/hash.td $(HARECACHE)/io.td $(HARECACHE)/memio.td $(HARECACHE)/os.td $(HARECACHE)/os_exec.td $(HARECACHE)/path.td $(HARECACHE)/shlex.td $(HARECACHE)/sort.td $(HARECACHE)/strings.td $(HARECACHE)/unix_tty.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/cmd_hare_build.ssa -t $(HARECACHE)/cmd_hare_build.td.tmp -N cmd::hare::build $(cmd_hare_build_ha) + +dirs_ha = dirs/xdg.ha +$(HARECACHE)/dirs.ssa: $(dirs_ha) $(HARECACHE)/errors.td $(HARECACHE)/fmt.td $(HARECACHE)/fs.td $(HARECACHE)/os.td $(HARECACHE)/path.td $(HARECACHE)/unix.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/dirs.ssa -t $(HARECACHE)/dirs.td.tmp -N dirs $(dirs_ha) + +getopt_ha = getopt/getopts.ha +$(HARECACHE)/getopt.ssa: $(getopt_ha) $(HARECACHE)/fmt.td $(HARECACHE)/io.td $(HARECACHE)/os.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/getopt.ssa -t $(HARECACHE)/getopt.td.tmp -N getopt $(getopt_ha) + +cmd_hare_ha = cmd/hare/arch.ha cmd/hare/build.ha cmd/hare/cache.ha cmd/hare/deps.ha cmd/hare/error.ha cmd/hare/main.ha cmd/hare/util.ha cmd/hare/version.ha +$(HARECACHE)/cmd_hare.ssa: $(cmd_hare_ha) $(HARECACHE)/ascii.td $(HARECACHE)/bufio.td $(HARECACHE)/cmd_hare_build.td $(HARECACHE)/dirs.td $(HARECACHE)/errors.td $(HARECACHE)/fmt.td $(HARECACHE)/fs.td $(HARECACHE)/getopt.td $(HARECACHE)/hare_ast.td $(HARECACHE)/hare_lex.td $(HARECACHE)/hare_module.td $(HARECACHE)/hare_parse.td $(HARECACHE)/io.td $(HARECACHE)/memio.td $(HARECACHE)/os.td $(HARECACHE)/os_exec.td $(HARECACHE)/path.td $(HARECACHE)/sort.td $(HARECACHE)/sort_cmp.td $(HARECACHE)/strconv.td $(HARECACHE)/strings.td $(HARECACHE)/unix_tty.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/cmd_hare.ssa -t $(HARECACHE)/cmd_hare.td.tmp $(HARE_DEFINES) $(cmd_hare_ha) diff --git a/makefiles/linux.x86_64.mk b/makefiles/linux.x86_64.mk @@ -0,0 +1,274 @@ +# generated by cmd/genbootstrap +# DO NOT EDIT BY HAND. run 'make bootstrap' to update +TDENV = env HARE_TD_rt=$(HARECACHE)/rt.td HARE_TD_encoding::utf8=$(HARECACHE)/encoding_utf8.td HARE_TD_types=$(HARECACHE)/types.td HARE_TD_bytes=$(HARECACHE)/bytes.td HARE_TD_strings=$(HARECACHE)/strings.td HARE_TD_ascii=$(HARECACHE)/ascii.td HARE_TD_errors=$(HARECACHE)/errors.td HARE_TD_io=$(HARECACHE)/io.td HARE_TD_bufio=$(HARECACHE)/bufio.td HARE_TD_crypto::math=$(HARECACHE)/crypto_math.td HARE_TD_endian=$(HARECACHE)/endian.td HARE_TD_math=$(HARECACHE)/math.td HARE_TD_memio=$(HARECACHE)/memio.td HARE_TD_path=$(HARECACHE)/path.td HARE_TD_format::elf=$(HARECACHE)/format_elf.td HARE_TD_linux=$(HARECACHE)/linux.td HARE_TD_types::c=$(HARECACHE)/types_c.td HARE_TD_linux::vdso=$(HARECACHE)/linux_vdso.td HARE_TD_time=$(HARECACHE)/time.td HARE_TD_fs=$(HARECACHE)/fs.td HARE_TD_os=$(HARECACHE)/os.td HARE_TD_strconv=$(HARECACHE)/strconv.td HARE_TD_fmt=$(HARECACHE)/fmt.td HARE_TD_hash=$(HARECACHE)/hash.td HARE_TD_crypto::sha256=$(HARECACHE)/crypto_sha256.td HARE_TD_encoding::hex=$(HARECACHE)/encoding_hex.td HARE_TD_sort=$(HARECACHE)/sort.td HARE_TD_sort::cmp=$(HARECACHE)/sort_cmp.td HARE_TD_hare::lex=$(HARECACHE)/hare_lex.td HARE_TD_hare::ast=$(HARECACHE)/hare_ast.td HARE_TD_hare::parse=$(HARECACHE)/hare_parse.td HARE_TD_hare::unparse=$(HARECACHE)/hare_unparse.td HARE_TD_time::chrono=$(HARECACHE)/time_chrono.td HARE_TD_time::date=$(HARECACHE)/time_date.td HARE_TD_hare::module=$(HARECACHE)/hare_module.td HARE_TD_unix=$(HARECACHE)/unix.td HARE_TD_unix::signal=$(HARECACHE)/unix_signal.td HARE_TD_os::exec=$(HARECACHE)/os_exec.td HARE_TD_shlex=$(HARECACHE)/shlex.td HARE_TD_unix::tty=$(HARECACHE)/unix_tty.td HARE_TD_cmd::hare::build=$(HARECACHE)/cmd_hare_build.td HARE_TD_dirs=$(HARECACHE)/dirs.td HARE_TD_getopt=$(HARECACHE)/getopt.td HARE_TD_cmd::hare=$(HARECACHE)/cmd_hare.td +RTSCRIPT = rt/hare.sc +OBJS = $(HARECACHE)/rt.o $(HARECACHE)/encoding_utf8.o $(HARECACHE)/types.o $(HARECACHE)/bytes.o $(HARECACHE)/strings.o $(HARECACHE)/ascii.o $(HARECACHE)/errors.o $(HARECACHE)/io.o $(HARECACHE)/bufio.o $(HARECACHE)/crypto_math.o $(HARECACHE)/endian.o $(HARECACHE)/math.o $(HARECACHE)/memio.o $(HARECACHE)/path.o $(HARECACHE)/format_elf.o $(HARECACHE)/linux.o $(HARECACHE)/types_c.o $(HARECACHE)/linux_vdso.o $(HARECACHE)/time.o $(HARECACHE)/fs.o $(HARECACHE)/os.o $(HARECACHE)/strconv.o $(HARECACHE)/fmt.o $(HARECACHE)/hash.o $(HARECACHE)/crypto_sha256.o $(HARECACHE)/encoding_hex.o $(HARECACHE)/sort.o $(HARECACHE)/sort_cmp.o $(HARECACHE)/hare_lex.o $(HARECACHE)/hare_ast.o $(HARECACHE)/hare_parse.o $(HARECACHE)/hare_unparse.o $(HARECACHE)/time_chrono.o $(HARECACHE)/time_date.o $(HARECACHE)/hare_module.o $(HARECACHE)/unix.o $(HARECACHE)/unix_signal.o $(HARECACHE)/os_exec.o $(HARECACHE)/shlex.o $(HARECACHE)/unix_tty.o $(HARECACHE)/cmd_hare_build.o $(HARECACHE)/dirs.o $(HARECACHE)/getopt.o $(HARECACHE)/cmd_hare.o + +rt_ha = rt/+linux/+x86_64.ha rt/+linux/env.ha rt/+linux/errno.ha rt/+linux/platform_abort.ha rt/+linux/platformstart-libc.ha rt/+linux/prctl.ha rt/+linux/segmalloc.ha rt/+linux/signal.ha rt/+linux/socket.ha rt/+linux/stat.ha rt/+linux/syscallno+x86_64.ha rt/+linux/syscalls.ha rt/+linux/types.ha rt/+x86_64/arch_jmp.ha rt/+x86_64/backtrace.ha rt/+x86_64/cpuid.ha rt/abort.ha rt/ensure.ha rt/fenv_defs.ha rt/jmp.ha rt/malloc.ha rt/memcpy.ha rt/memfunc_ptr.ha rt/memmove.ha rt/memset.ha rt/start.ha rt/strcmp.ha rt/u64tos.ha rt/unknown_errno.ha +$(HARECACHE)/rt.ssa: $(rt_ha) + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/rt.ssa -t $(HARECACHE)/rt.td.tmp -N rt $(rt_ha) + +rt_s = $(HARECACHE)/rt.s rt/+linux/start+x86_64-libc.s rt/+linux/syscall+x86_64.s rt/+x86_64/cpuid.s rt/+x86_64/fenv.s rt/+x86_64/getfp.s rt/+x86_64/longjmp.s rt/+x86_64/restore.s rt/+x86_64/setjmp.s +$(HARECACHE)/rt.o: $(rt_s) + @printf 'AS\t%s\n' "$@" + @$(AS) $(ASFLAGS) -o $@ $(rt_s) + +encoding_utf8_ha = encoding/utf8/decode.ha encoding/utf8/decodetable.ha encoding/utf8/encode.ha encoding/utf8/rune.ha +$(HARECACHE)/encoding_utf8.ssa: $(encoding_utf8_ha) + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/encoding_utf8.ssa -t $(HARECACHE)/encoding_utf8.td.tmp -N encoding::utf8 $(encoding_utf8_ha) + +types_ha = types/arch+x86_64.ha types/classes.ha types/limits.ha +$(HARECACHE)/types.ssa: $(types_ha) + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/types.ssa -t $(HARECACHE)/types.td.tmp -N types $(types_ha) + +bytes_ha = bytes/contains.ha bytes/equal.ha bytes/index.ha bytes/reverse.ha bytes/tokenize.ha bytes/trim.ha bytes/two_way.ha bytes/zero.ha +$(HARECACHE)/bytes.ssa: $(bytes_ha) $(HARECACHE)/rt.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/bytes.ssa -t $(HARECACHE)/bytes.td.tmp -N bytes $(bytes_ha) + +strings_ha = strings/compare.ha strings/concat.ha strings/contains.ha strings/dup.ha strings/index.ha strings/iter.ha strings/pad.ha strings/replace.ha strings/runes.ha strings/sub.ha strings/suffix.ha strings/tokenize.ha strings/trim.ha strings/utf8.ha +$(HARECACHE)/strings.ssa: $(strings_ha) $(HARECACHE)/bytes.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/strings.ssa -t $(HARECACHE)/strings.td.tmp -N strings $(strings_ha) + +ascii_ha = ascii/ctype.ha ascii/string.ha ascii/valid.ha +$(HARECACHE)/ascii.ssa: $(ascii_ha) $(HARECACHE)/encoding_utf8.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/ascii.ssa -t $(HARECACHE)/ascii.td.tmp -N ascii $(ascii_ha) + +errors_ha = errors/common.ha errors/opaque.ha errors/rt.ha errors/string.ha +$(HARECACHE)/errors.ssa: $(errors_ha) $(HARECACHE)/rt.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/errors.ssa -t $(HARECACHE)/errors.td.tmp -N errors $(errors_ha) + +io_ha = io/+linux/mmap.ha io/+linux/platform_file.ha io/+linux/vector.ha io/arch+x86_64.ha io/copy.ha io/drain.ha io/empty.ha io/file.ha io/handle.ha io/limit.ha io/stream.ha io/tee.ha io/types.ha io/util.ha io/zero.ha +$(HARECACHE)/io.ssa: $(io_ha) $(HARECACHE)/bytes.td $(HARECACHE)/errors.td $(HARECACHE)/rt.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/io.ssa -t $(HARECACHE)/io.td.tmp -N io $(io_ha) + +bufio_ha = bufio/scanner.ha bufio/stream.ha +$(HARECACHE)/bufio.ssa: $(bufio_ha) $(HARECACHE)/bytes.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/errors.td $(HARECACHE)/io.td $(HARECACHE)/strings.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/bufio.ssa -t $(HARECACHE)/bufio.td.tmp -N bufio $(bufio_ha) + +crypto_math_ha = crypto/math/arithm.ha crypto/math/bits.ha +$(HARECACHE)/crypto_math.ssa: $(crypto_math_ha) + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/crypto_math.ssa -t $(HARECACHE)/crypto_math.td.tmp -N crypto::math $(crypto_math_ha) + +endian_ha = endian/big.ha endian/endian.ha endian/host+x86_64.ha endian/little.ha endian/network.ha +$(HARECACHE)/endian.ssa: $(endian_ha) + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/endian.ssa -t $(HARECACHE)/endian.td.tmp -N endian $(endian_ha) + +math_ha = math/fenv+x86_64.ha math/fenv_func.ha math/floats.ha math/ints.ha math/math.ha math/trig.ha math/uints.ha +$(HARECACHE)/math.ssa: $(math_ha) $(HARECACHE)/rt.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/math.ssa -t $(HARECACHE)/math.td.tmp -N math $(math_ha) + +memio_ha = memio/ops.ha memio/stream.ha +$(HARECACHE)/memio.ssa: $(memio_ha) $(HARECACHE)/bytes.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/errors.td $(HARECACHE)/io.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/memio.ssa -t $(HARECACHE)/memio.td.tmp -N memio $(memio_ha) + +path_ha = path/+linux.ha path/buffer.ha path/error.ha path/ext_stack.ha path/iter.ha path/posix.ha path/prefix.ha path/stack.ha +$(HARECACHE)/path.ssa: $(path_ha) $(HARECACHE)/bytes.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/path.ssa -t $(HARECACHE)/path.td.tmp -N path $(path_ha) + +format_elf_ha = format/elf/arch+x86_64.ha format/elf/platform+linux.ha format/elf/types.ha +$(HARECACHE)/format_elf.ssa: $(format_elf_ha) + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/format_elf.ssa -t $(HARECACHE)/format_elf.td.tmp -N format::elf $(format_elf_ha) + +linux_ha = linux/env.ha linux/start.ha +$(HARECACHE)/linux.ssa: $(linux_ha) $(HARECACHE)/format_elf.td $(HARECACHE)/rt.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/linux.ssa -t $(HARECACHE)/linux.td.tmp -N linux $(linux_ha) + +types_c_ha = types/c/arch+x86_64.ha types/c/strings.ha types/c/types.ha +$(HARECACHE)/types_c.ssa: $(types_c_ha) $(HARECACHE)/encoding_utf8.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/types_c.ssa -t $(HARECACHE)/types_c.td.tmp -N types::c $(types_c_ha) + +linux_vdso_ha = linux/vdso/vdso.ha +$(HARECACHE)/linux_vdso.ssa: $(linux_vdso_ha) $(HARECACHE)/format_elf.td $(HARECACHE)/linux.td $(HARECACHE)/types_c.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/linux_vdso.ssa -t $(HARECACHE)/linux_vdso.td.tmp -N linux::vdso $(linux_vdso_ha) + +time_ha = time/+linux/+x86_64.ha time/+linux/functions.ha time/arithm.ha time/conv.ha time/types.ha +$(HARECACHE)/time.ssa: $(time_ha) $(HARECACHE)/linux_vdso.td $(HARECACHE)/math.td $(HARECACHE)/rt.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/time.ssa -t $(HARECACHE)/time.td.tmp -N time $(time_ha) + +fs_ha = fs/fs.ha fs/types.ha fs/util.ha +$(HARECACHE)/fs.ssa: $(fs_ha) $(HARECACHE)/errors.td $(HARECACHE)/io.td $(HARECACHE)/path.td $(HARECACHE)/strings.td $(HARECACHE)/time.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/fs.ssa -t $(HARECACHE)/fs.td.tmp -N fs $(fs_ha) + +os_ha = os/+linux/dirfdfs.ha os/+linux/exit.ha os/+linux/fs.ha os/+linux/memory.ha os/+linux/platform_environ.ha os/+linux/status.ha os/+linux/stdfd.ha os/environ.ha os/os.ha +$(HARECACHE)/os.ssa: $(os_ha) $(HARECACHE)/bufio.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/errors.td $(HARECACHE)/fs.td $(HARECACHE)/io.td $(HARECACHE)/math.td $(HARECACHE)/path.td $(HARECACHE)/rt.td $(HARECACHE)/strings.td $(HARECACHE)/time.td $(HARECACHE)/types_c.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/os.ssa -t $(HARECACHE)/os.td.tmp -N os $(os_ha) + +strconv_ha = strconv/ftos.ha strconv/itos.ha strconv/numeric.ha strconv/stof.ha strconv/stof_data.ha strconv/stoi.ha strconv/stou.ha strconv/types.ha strconv/utos.ha +$(HARECACHE)/strconv.ssa: $(strconv_ha) $(HARECACHE)/ascii.td $(HARECACHE)/bytes.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/math.td $(HARECACHE)/strings.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/strconv.ssa -t $(HARECACHE)/strconv.td.tmp -N strconv $(strconv_ha) + +fmt_ha = fmt/fmt.ha +$(HARECACHE)/fmt.ssa: $(fmt_ha) $(HARECACHE)/ascii.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/io.td $(HARECACHE)/math.td $(HARECACHE)/memio.td $(HARECACHE)/os.td $(HARECACHE)/strconv.td $(HARECACHE)/strings.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/fmt.ssa -t $(HARECACHE)/fmt.td.tmp -N fmt $(fmt_ha) + +hash_ha = hash/hash.ha +$(HARECACHE)/hash.ssa: $(hash_ha) $(HARECACHE)/fmt.td $(HARECACHE)/io.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/hash.ssa -t $(HARECACHE)/hash.td.tmp -N hash $(hash_ha) + +crypto_sha256_ha = crypto/sha256/sha256.ha +$(HARECACHE)/crypto_sha256.ssa: $(crypto_sha256_ha) $(HARECACHE)/bytes.td $(HARECACHE)/crypto_math.td $(HARECACHE)/endian.td $(HARECACHE)/hash.td $(HARECACHE)/io.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/crypto_sha256.ssa -t $(HARECACHE)/crypto_sha256.td.tmp -N crypto::sha256 $(crypto_sha256_ha) + +encoding_hex_ha = encoding/hex/hex.ha +$(HARECACHE)/encoding_hex.ssa: $(encoding_hex_ha) $(HARECACHE)/ascii.td $(HARECACHE)/bytes.td $(HARECACHE)/errors.td $(HARECACHE)/fmt.td $(HARECACHE)/io.td $(HARECACHE)/memio.td $(HARECACHE)/os.td $(HARECACHE)/strconv.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/encoding_hex.ssa -t $(HARECACHE)/encoding_hex.td.tmp -N encoding::hex $(encoding_hex_ha) + +sort_ha = sort/bisect.ha sort/search.ha sort/sort.ha sort/types.ha +$(HARECACHE)/sort.ssa: $(sort_ha) $(HARECACHE)/math.td $(HARECACHE)/rt.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/sort.ssa -t $(HARECACHE)/sort.td.tmp -N sort $(sort_ha) + +sort_cmp_ha = sort/cmp/cmp.ha +$(HARECACHE)/sort_cmp.ssa: $(sort_cmp_ha) $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/sort_cmp.ssa -t $(HARECACHE)/sort_cmp.td.tmp -N sort::cmp $(sort_cmp_ha) + +hare_lex_ha = hare/lex/lex.ha hare/lex/token.ha +$(HARECACHE)/hare_lex.ssa: $(hare_lex_ha) $(HARECACHE)/ascii.td $(HARECACHE)/bufio.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/fmt.td $(HARECACHE)/io.td $(HARECACHE)/memio.td $(HARECACHE)/os.td $(HARECACHE)/path.td $(HARECACHE)/sort.td $(HARECACHE)/sort_cmp.td $(HARECACHE)/strconv.td $(HARECACHE)/strings.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/hare_lex.ssa -t $(HARECACHE)/hare_lex.td.tmp -N hare::lex $(hare_lex_ha) + +hare_ast_ha = hare/ast/decl.ha hare/ast/expr.ha hare/ast/ident.ha hare/ast/import.ha hare/ast/type.ha hare/ast/unit.ha +$(HARECACHE)/hare_ast.ssa: $(hare_ast_ha) $(HARECACHE)/hare_lex.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/hare_ast.ssa -t $(HARECACHE)/hare_ast.td.tmp -N hare::ast $(hare_ast_ha) + +hare_parse_ha = hare/parse/decl.ha hare/parse/expr.ha hare/parse/ident.ha hare/parse/import.ha hare/parse/parse.ha hare/parse/type.ha hare/parse/unit.ha +$(HARECACHE)/hare_parse.ssa: $(hare_parse_ha) $(HARECACHE)/ascii.td $(HARECACHE)/fmt.td $(HARECACHE)/hare_ast.td $(HARECACHE)/hare_lex.td $(HARECACHE)/io.td $(HARECACHE)/math.td $(HARECACHE)/memio.td $(HARECACHE)/strings.td $(HARECACHE)/types.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/hare_parse.ssa -t $(HARECACHE)/hare_parse.td.tmp -N hare::parse $(hare_parse_ha) + +hare_unparse_ha = hare/unparse/decl.ha hare/unparse/expr.ha hare/unparse/ident.ha hare/unparse/import.ha hare/unparse/type.ha hare/unparse/unit.ha hare/unparse/util.ha +$(HARECACHE)/hare_unparse.ssa: $(hare_unparse_ha) $(HARECACHE)/fmt.td $(HARECACHE)/hare_ast.td $(HARECACHE)/hare_lex.td $(HARECACHE)/io.td $(HARECACHE)/memio.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/hare_unparse.ssa -t $(HARECACHE)/hare_unparse.td.tmp -N hare::unparse $(hare_unparse_ha) + +time_chrono_ha = time/chrono/+linux.ha time/chrono/arithmetic.ha time/chrono/chronology.ha time/chrono/error.ha time/chrono/leapsec.ha time/chrono/timescale.ha time/chrono/timezone.ha time/chrono/tzdb.ha +$(HARECACHE)/time_chrono.ssa: $(time_chrono_ha) $(HARECACHE)/bufio.td $(HARECACHE)/bytes.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/endian.td $(HARECACHE)/fmt.td $(HARECACHE)/fs.td $(HARECACHE)/io.td $(HARECACHE)/os.td $(HARECACHE)/path.td $(HARECACHE)/strconv.td $(HARECACHE)/strings.td $(HARECACHE)/time.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/time_chrono.ssa -t $(HARECACHE)/time_chrono.td.tmp -N time::chrono $(time_chrono_ha) + +time_date_ha = time/date/date.ha time/date/daydate.ha time/date/daytime.ha time/date/error.ha time/date/format.ha time/date/locality.ha time/date/observe.ha time/date/parithm.ha time/date/parse.ha time/date/period.ha time/date/reckon.ha time/date/tarithm.ha time/date/virtual.ha +$(HARECACHE)/time_date.ssa: $(time_date_ha) $(HARECACHE)/ascii.td $(HARECACHE)/fmt.td $(HARECACHE)/io.td $(HARECACHE)/math.td $(HARECACHE)/memio.td $(HARECACHE)/strconv.td $(HARECACHE)/strings.td $(HARECACHE)/time.td $(HARECACHE)/time_chrono.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/time_date.ssa -t $(HARECACHE)/time_date.td.tmp -N time::date $(time_date_ha) + +hare_module_ha = hare/module/cache.ha hare/module/deps.ha hare/module/format.ha hare/module/srcs.ha hare/module/types.ha hare/module/util.ha +$(HARECACHE)/hare_module.ssa: $(hare_module_ha) $(HARECACHE)/ascii.td $(HARECACHE)/bufio.td $(HARECACHE)/bytes.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/fmt.td $(HARECACHE)/fs.td $(HARECACHE)/hare_ast.td $(HARECACHE)/hare_lex.td $(HARECACHE)/hare_parse.td $(HARECACHE)/hare_unparse.td $(HARECACHE)/io.td $(HARECACHE)/memio.td $(HARECACHE)/os.td $(HARECACHE)/path.td $(HARECACHE)/sort.td $(HARECACHE)/sort_cmp.td $(HARECACHE)/strings.td $(HARECACHE)/time.td $(HARECACHE)/time_chrono.td $(HARECACHE)/time_date.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/hare_module.ssa -t $(HARECACHE)/hare_module.td.tmp -N hare::module $(hare_module_ha) + +unix_ha = unix/+linux/getuid.ha unix/+linux/groups.ha unix/+linux/nice.ha unix/+linux/pipe.ha unix/+linux/setuid.ha unix/+linux/umask.ha +$(HARECACHE)/unix.ssa: $(unix_ha) $(HARECACHE)/errors.td $(HARECACHE)/fs.td $(HARECACHE)/io.td $(HARECACHE)/rt.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/unix.ssa -t $(HARECACHE)/unix.td.tmp -N unix $(unix_ha) + +unix_signal_ha = unix/signal/+linux.ha unix/signal/types.ha +$(HARECACHE)/unix_signal.ssa: $(unix_signal_ha) $(HARECACHE)/errors.td $(HARECACHE)/io.td $(HARECACHE)/rt.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/unix_signal.ssa -t $(HARECACHE)/unix_signal.td.tmp -N unix::signal $(unix_signal_ha) + +os_exec_ha = os/exec/cmd.ha os/exec/exec+linux.ha os/exec/process+linux.ha os/exec/types.ha +$(HARECACHE)/os_exec.ssa: $(os_exec_ha) $(HARECACHE)/ascii.td $(HARECACHE)/errors.td $(HARECACHE)/fmt.td $(HARECACHE)/fs.td $(HARECACHE)/io.td $(HARECACHE)/os.td $(HARECACHE)/rt.td $(HARECACHE)/strings.td $(HARECACHE)/time.td $(HARECACHE)/types_c.td $(HARECACHE)/unix.td $(HARECACHE)/unix_signal.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/os_exec.ssa -t $(HARECACHE)/os_exec.td.tmp -N os::exec $(os_exec_ha) + +shlex_ha = shlex/escape.ha shlex/split.ha +$(HARECACHE)/shlex.ssa: $(shlex_ha) $(HARECACHE)/ascii.td $(HARECACHE)/encoding_utf8.td $(HARECACHE)/io.td $(HARECACHE)/memio.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/shlex.ssa -t $(HARECACHE)/shlex.td.tmp -N shlex $(shlex_ha) + +unix_tty_ha = unix/tty/+linux/isatty.ha unix/tty/+linux/open.ha unix/tty/+linux/pty.ha unix/tty/+linux/termios.ha unix/tty/+linux/winsize.ha unix/tty/pty_common.ha unix/tty/types.ha +$(HARECACHE)/unix_tty.ssa: $(unix_tty_ha) $(HARECACHE)/bufio.td $(HARECACHE)/errors.td $(HARECACHE)/fmt.td $(HARECACHE)/fs.td $(HARECACHE)/io.td $(HARECACHE)/os.td $(HARECACHE)/rt.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/unix_tty.ssa -t $(HARECACHE)/unix_tty.td.tmp -N unix::tty $(unix_tty_ha) + +cmd_hare_build_ha = cmd/hare/build/gather.ha cmd/hare/build/queue.ha cmd/hare/build/types.ha cmd/hare/build/util.ha +$(HARECACHE)/cmd_hare_build.ssa: $(cmd_hare_build_ha) $(HARECACHE)/crypto_sha256.td $(HARECACHE)/encoding_hex.td $(HARECACHE)/errors.td $(HARECACHE)/fmt.td $(HARECACHE)/fs.td $(HARECACHE)/hare_ast.td $(HARECACHE)/hare_module.td $(HARECACHE)/hare_unparse.td $(HARECACHE)/hash.td $(HARECACHE)/io.td $(HARECACHE)/memio.td $(HARECACHE)/os.td $(HARECACHE)/os_exec.td $(HARECACHE)/path.td $(HARECACHE)/shlex.td $(HARECACHE)/sort.td $(HARECACHE)/strings.td $(HARECACHE)/unix_tty.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/cmd_hare_build.ssa -t $(HARECACHE)/cmd_hare_build.td.tmp -N cmd::hare::build $(cmd_hare_build_ha) + +dirs_ha = dirs/xdg.ha +$(HARECACHE)/dirs.ssa: $(dirs_ha) $(HARECACHE)/errors.td $(HARECACHE)/fmt.td $(HARECACHE)/fs.td $(HARECACHE)/os.td $(HARECACHE)/path.td $(HARECACHE)/unix.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/dirs.ssa -t $(HARECACHE)/dirs.td.tmp -N dirs $(dirs_ha) + +getopt_ha = getopt/getopts.ha +$(HARECACHE)/getopt.ssa: $(getopt_ha) $(HARECACHE)/fmt.td $(HARECACHE)/io.td $(HARECACHE)/os.td $(HARECACHE)/strings.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/getopt.ssa -t $(HARECACHE)/getopt.td.tmp -N getopt $(getopt_ha) + +cmd_hare_ha = cmd/hare/arch.ha cmd/hare/build.ha cmd/hare/cache.ha cmd/hare/deps.ha cmd/hare/error.ha cmd/hare/main.ha cmd/hare/util.ha cmd/hare/version.ha +$(HARECACHE)/cmd_hare.ssa: $(cmd_hare_ha) $(HARECACHE)/ascii.td $(HARECACHE)/bufio.td $(HARECACHE)/cmd_hare_build.td $(HARECACHE)/dirs.td $(HARECACHE)/errors.td $(HARECACHE)/fmt.td $(HARECACHE)/fs.td $(HARECACHE)/getopt.td $(HARECACHE)/hare_ast.td $(HARECACHE)/hare_lex.td $(HARECACHE)/hare_module.td $(HARECACHE)/hare_parse.td $(HARECACHE)/io.td $(HARECACHE)/memio.td $(HARECACHE)/os.td $(HARECACHE)/os_exec.td $(HARECACHE)/path.td $(HARECACHE)/sort.td $(HARECACHE)/sort_cmp.td $(HARECACHE)/strconv.td $(HARECACHE)/strings.td $(HARECACHE)/unix_tty.td + @mkdir -p -- "$(HARECACHE)" + @printf 'HAREC\t%s\n' "$@" + @$(TDENV) $(HAREC) $(HARECFLAGS) -o $(HARECACHE)/cmd_hare.ssa -t $(HARECACHE)/cmd_hare.td.tmp $(HARE_DEFINES) $(cmd_hare_ha) diff --git a/scripts/gen-docs.sh b/scripts/gen-docs.sh @@ -1,32 +0,0 @@ -# Yes, I am entirely aware that this is a hack -srcdir="$(dirname "$0")" -getmods() ( - DOCS=1 - . "$srcdir"/gen-stdlib - IFS=" -" - for module in $modules; do - if [ -z "$(echo "$module" | cut -sf1)" ] - then - echo "$module" - else - module="$(echo "$module" | cut -sf1)" - echo $module - fi - done - # Not listed in the stdlib for various reasons: - echo crypto::keystore - echo mime -) -modules="$(getmods)" - -mkdir -p docs/html/ - -"$BINOUT"/haredoc -Fhtml > docs/html/index.html -for mod in $modules format encoding math crypto hare rt -do - echo $mod - path="$(echo $mod | sed -e 's?::?/?g')" - mkdir -p docs/html/$path - "$BINOUT"/haredoc -Fhtml $mod > docs/html/$path/index.html -done diff --git a/scripts/gen-stdlib b/scripts/gen-stdlib @@ -1,1781 +0,0 @@ -#!/bin/sh -# The purpose of this script is to generate make targets for the Hare standard -# library. If you are adding new modules to the standard library, write a -# function for that module (e.g. encoding_utf8), and call the following helper -# commands: -# -# gen_srcs module::name list.ha of.ha sources.ha -# gen_ssa module::name list of module::names yours depends on -# -# Then add your module to the list of modules at the bottom. -# -# Then run ./scripts/gen-stdlib > stdlib.mk to generate new rules. - -srcdir="$(dirname "$0")" -eval ". $srcdir/gen-stdlib.sh" - -all_platforms="linux -freebsd" - -gensrcs_rt() { - gen_srcs -plinux rt \ - +linux/platform_abort.ha \ - +linux/env.ha \ - +linux/errno.ha \ - +linux/types.ha \ - +linux/segmalloc.ha \ - +linux/platformstart-libc.ha \ - +linux/prctl.ha \ - +linux/'+$(ARCH)'.ha \ - +linux/syscallno+'$(ARCH)'.ha \ - +linux/syscalls.ha \ - +linux/signal.ha \ - +linux/stat.ha \ - +linux/socket.ha \ - '+$(ARCH)'/arch_jmp.ha \ - '+$(ARCH)'/backtrace.ha \ - fenv_defs.ha \ - '+$(ARCH)'/cpuid.ha \ - ensure.ha \ - jmp.ha \ - malloc.ha \ - memcpy.ha \ - memfunc_ptr.ha \ - memmove.ha \ - memset.ha \ - strcmp.ha \ - unknown_errno.ha \ - u64tos.ha \ - $* - gen_srcs -pfreebsd rt \ - +freebsd/platform_abort.ha \ - +freebsd/env.ha \ - +freebsd/errno.ha \ - +freebsd/platformstart.ha \ - +freebsd/segmalloc.ha \ - +freebsd/signal.ha \ - +freebsd/socket.ha \ - +freebsd/'+$(ARCH)'.ha \ - +freebsd/syscallno.ha \ - +freebsd/syscalls.ha \ - +freebsd/types.ha \ - +'$(ARCH)'/arch_jmp.ha \ - +'$(ARCH)'/backtrace.ha \ - fenv_defs.ha \ - +'$(ARCH)'/cpuid.ha \ - ensure.ha \ - jmp.ha \ - malloc.ha \ - memcpy.ha \ - memfunc_ptr.ha \ - memmove.ha \ - memset.ha \ - strcmp.ha \ - unknown_errno.ha \ - u64tos.ha \ - $* -} - -rt() { - # This one is complicated, don't use it as a reference for other modules - if [ $testing -eq 0 ] - then - printf '%s\n' 'rtscript = $(STDLIB)/rt/hare.sc' - gensrcs_rt \ - abort.ha \ - start.ha - else - gensrcs_rt \ - abort+test.ha \ - start+test.ha \ - +test/signal_test.ha - fi - gen_ssa -plinux rt - gen_ssa -pfreebsd rt - cat <<EOF -\$($cache)/rt/start.o: \$(STDLIB)/rt/+\$(PLATFORM)/start+\$(ARCH)-libc.s - @printf 'AS \t%s\n' "\$@" - @mkdir -p \$($cache)/rt - @\$(AS) -o \$@ \$(STDLIB)/rt/+\$(PLATFORM)/start+\$(ARCH)-libc.s - -${stdlib}_asm = \$($cache)/rt/syscall.o \\ - \$($cache)/rt/setjmp.o \\ - \$($cache)/rt/longjmp.o \\ - \$($cache)/rt/restore.o \\ - \$($cache)/rt/getfp.o \\ - \$($cache)/rt/fenv.o \\ - \$($cache)/rt/start.o \\ - \$($cache)/rt/cpuid.o - -\$($cache)/rt/syscall.o: \$(STDLIB)/rt/+\$(PLATFORM)/syscall+\$(ARCH).s - @printf 'AS \t%s\n' "\$@" - @mkdir -p \$($cache)/rt - @\$(AS) -o \$@ \$(STDLIB)/rt/+\$(PLATFORM)/syscall+\$(ARCH).s - -\$($cache)/rt/setjmp.o: \$(STDLIB)/rt/+\$(ARCH)/setjmp.s - @printf 'AS \t%s\n' "\$@" - @mkdir -p \$($cache)/rt - @\$(AS) -o \$@ \$(STDLIB)/rt/+\$(ARCH)/setjmp.s - -\$($cache)/rt/longjmp.o: \$(STDLIB)/rt/+\$(ARCH)/longjmp.s - @printf 'AS \t%s\n' "\$@" - @mkdir -p \$($cache)/rt - @\$(AS) -o \$@ \$(STDLIB)/rt/+\$(ARCH)/longjmp.s - -\$($cache)/rt/restore.o: \$(STDLIB)/rt/+\$(ARCH)/restore.s - @printf 'AS \t%s\n' "\$@" - @mkdir -p \$($cache)/rt - @\$(AS) -o \$@ \$(STDLIB)/rt/+\$(ARCH)/restore.s - -\$($cache)/rt/fenv.o: \$(STDLIB)/rt/+\$(ARCH)/fenv.s - @printf 'AS \t%s\n' "\$@" - @mkdir -p \$($cache)/rt - @\$(AS) -o \$@ \$(STDLIB)/rt/+\$(ARCH)/fenv.s - -\$($cache)/rt/getfp.o: \$(STDLIB)/rt/+\$(ARCH)/getfp.s - @printf 'AS \t%s\n' "\$@" - @mkdir -p \$($cache)/rt - @\$(AS) -o \$@ \$(STDLIB)/rt/+\$(ARCH)/getfp.s - -\$($cache)/rt/cpuid.o: \$(STDLIB)/rt/+\$(ARCH)/cpuid.s - @printf 'AS \t%s\n' "\$@" - @mkdir -p \$($cache)/rt - @\$(AS) -o \$@ \$(STDLIB)/rt/+\$(ARCH)/cpuid.s - -\$($cache)/rt/rt-linux.a: \$($cache)/rt/rt-linux.o \$(${stdlib}_asm) - @printf 'AR \t%s\n' "\$@" - @\$(AR) -csr \$@ \$($cache)/rt/rt-linux.o \$(${stdlib}_asm) - -\$($cache)/rt/rt-freebsd.a: \$($cache)/rt/rt-freebsd.o \$(${stdlib}_asm) - @printf 'AR \t%s\n' "\$@" - @\$(AR) -csr \$@ \$($cache)/rt/rt-freebsd.o \$(${stdlib}_asm) - -${stdlib}_rt = \$($cache)/rt/rt-\$(PLATFORM).a -${stdlib}_env += HARE_TD_rt=\$($cache)/rt/rt.td -${stdlib}_deps_linux += \$(${stdlib}_rt) -${stdlib}_deps_freebsd += \$(${stdlib}_rt) -${stdlib}_deps_any += \$(${stdlib}_rt) - -EOF -} - -test() { - if [ $testing -eq 0 ]; then - gen_srcs test common.ha - gen_ssa test - else - gen_srcs test common.ha +test.ha fail+test.ha - gen_ssa test bufio encoding::hex encoding::utf8 fmt fnmatch io \ - os rt strings memio time unix::signal - fi -} - -ascii() { - gen_srcs ascii \ - ctype.ha \ - string.ha \ - valid.ha - gen_ssa ascii strings -} - -bufio() { - if [ $testing -eq 0 ]; then - gen_srcs bufio \ - stream.ha \ - scanner.ha - gen_ssa bufio bytes encoding::utf8 errors io strings types - else - gen_srcs bufio \ - stream.ha \ - scanner.ha \ - stream_test+test.ha \ - scanner_test+test.ha - gen_ssa bufio bytes encoding::utf8 errors io memio strings types - fi -} - -bytes() { - gen_srcs bytes \ - contains.ha \ - equal.ha \ - index.ha \ - reverse.ha \ - tokenize.ha \ - trim.ha \ - two_way.ha \ - zero.ha - gen_ssa bytes types -} - -cmd_hare_build() { - gen_srcs cmd::hare::build \ - gather.ha \ - queue.ha \ - types.ha \ - util.ha - gen_ssa cmd::hare::build encoding::hex crypto::sha256 errors fmt fs \ - hare::ast hare::module hare::unparse hash io memio os os::exec path \ - sort strings shlex unix::tty -} - -crypto() { - if [ $testing -eq 0 ] - then - gen_srcs crypto \ - authenc.ha \ - keyderiv.ha - gen_ssa crypto bytes crypto::argon2 crypto::chachapoly \ - crypto::math endian errors io memio - else - gen_srcs crypto \ - authenc.ha \ - keyderiv.ha \ - +test/authenc_test.ha - gen_ssa crypto bytes crypto::argon2 crypto::chachapoly \ - crypto::math endian errors io memio - fi -} - -gensrcs_crypto_aes() { - gen_srcs crypto::aes \ - aes.ha \ - aes_ct64.ha \ - block.ha \ - $* -} - -crypto_aes() { - if [ $testing -eq 0 ] - then - gensrcs_crypto_aes - gen_ssa crypto::aes bytes crypto::cipher crypto::math endian \ - rt io - else - gensrcs_crypto_aes \ - ct64+test.ha \ - cbc+test.ha \ - ctr+test.ha \ - rt+test.ha \ - +test/gcm.ha - gen_ssa crypto::aes bytes crypto::cipher crypto::math \ - endian errors io memio rt - fi -} - -crypto_aes_xts() { - if [ $testing -eq 0 ] - then - gen_srcs crypto::aes::xts xts.ha - else - gen_srcs crypto::aes::xts xts.ha +test.ha - fi - gen_ssa crypto::aes::xts crypto::aes crypto::cipher bytes -} - -crypto_argon2() { - if [ $testing -eq 0 ] - then - gen_srcs crypto::argon2 argon2.ha - gen_ssa crypto::argon2 bytes crypto::blake2b \ - crypto::math endian errors hash io memio rt types - else - gen_srcs crypto::argon2 argon2.ha +test.ha - gen_ssa crypto::argon2 bytes crypto::blake2b \ - crypto::math encoding::hex endian errors hash io memio \ - rt strings types - fi -} - -crypto_bcrypt() { - if [ $testing -eq 0 ] - then - gen_srcs crypto::bcrypt bcrypt.ha base64.ha - else - gen_srcs crypto::bcrypt bcrypt.ha base64.ha +test.ha - fi - gen_ssa crypto::bcrypt bytes crypto crypto::blowfish \ - crypto::cipher crypto::random encoding::base64 errors \ - fmt io memio strconv strings -} - -gensrcs_crypto_blake2b() { - gen_srcs crypto::blake2b \ - blake2b.ha \ - $* -} - -crypto_blake2b() { - if [ $testing -eq 0 ] - then - gensrcs_crypto_blake2b - gen_ssa crypto::blake2b bytes crypto::math endian hash io - else - gensrcs_crypto_blake2b +test.ha vectors+test.ha - gen_ssa crypto::blake2b encoding::hex fmt hash io strings \ - memio crypto::math endian bytes - fi -} - -gensrcs_crypto_blowfish() { - gen_srcs crypto::blowfish \ - blowfish.ha \ - const.ha \ - $* -} - -crypto_blowfish() { - if [ $testing -eq 0 ] - then - gensrcs_crypto_blowfish - else - gensrcs_crypto_blowfish +test.ha - fi - gen_ssa crypto::blowfish bytes crypto::cipher endian -} - -gensrcs_crypto_bigint() { - gen_srcs crypto::bigint arithm.ha encoding.ha monty.ha types.ha \ - util.ha $* -} - -crypto_bigint() { - if [ $testing -eq 0 ] - then - gensrcs_crypto_bigint - gen_ssa crypto::bigint bytes crypto::math - else - gensrcs_crypto_bigint +test/arithm_test.ha +test/encoding_test.ha \ - +test/monty_test.ha +test/utils.ha - gen_ssa crypto::bigint bytes crypto::math encoding::hex - fi -} - -crypto_chacha() { - if [ $testing -eq 0 ] - then - gen_srcs crypto::chacha chacha20.ha - gen_ssa crypto::chacha bytes crypto::cipher crypto::math \ - endian io - else - gen_srcs crypto::chacha chacha20.ha +test.ha - gen_ssa crypto::chacha bytes crypto::cipher crypto::math \ - endian io memio - fi -} - -crypto_chachapoly() { - if [ $testing -eq 0 ] - then - gen_srcs crypto::chachapoly chachapoly.ha - else - gen_srcs crypto::chachapoly chachapoly.ha encryption+test.ha - fi - gen_ssa crypto::chachapoly bufio bytes crypto::chacha crypto::mac \ - crypto::math crypto::poly1305 endian errors io types -} - -crypto_cipher() { - gen_srcs crypto::cipher \ - cipher.ha \ - block.ha \ - cbc.ha \ - ctr.ha \ - stream.ha \ - gcm.ha \ - ghash.ha - gen_ssa crypto::cipher crypto::math bytes endian errors io types -} - -crypto_hkdf() { - if [ $testing -eq 0 ] - then - gen_srcs crypto::hkdf hkdf.ha - gen_ssa crypto::hkdf bytes crypto::hmac crypto::mac hash - else - gen_srcs crypto::hkdf hkdf.ha +test.ha - gen_ssa crypto::hkdf bytes crypto::hmac crypto::mac hash \ - crypto::sha1 crypto::sha256 - fi -} - -crypto_hmac() { - if [ $testing -eq 0 ] - then - gen_srcs crypto::hmac \ - hmac.ha \ - sha1.ha \ - sha256.ha - gen_ssa crypto::hmac crypto::mac crypto::sha1 crypto::sha256 hash io bytes - else - gen_srcs crypto::hmac \ - hmac.ha \ - sha1.ha \ - sha256.ha \ - +test.ha - gen_ssa crypto::hmac bytes crypto::mac hash crypto::sha1 \ - crypto::sha256 encoding::hex io strings - fi -} - -crypto_mac() { - gen_srcs crypto::mac \ - mac.ha - gen_ssa crypto::mac io -} - -crypto_math() { - gen_srcs crypto::math \ - arithm.ha bits.ha - gen_ssa crypto::math -} - -crypto_poly1305() { - if [ $testing -eq 0 ] - then - gen_srcs crypto::poly1305 \ - poly1305.ha - gen_ssa crypto::poly1305 bytes crypto::mac endian io - else - gen_srcs crypto::poly1305 \ - poly1305.ha \ - +test.ha - gen_ssa crypto::poly1305 bytes crypto::mac endian encoding::hex io - fi -} - -crypto_random() { - gen_srcs -plinux crypto::random \ - +linux.ha \ - random.ha - gen_ssa -plinux crypto::random rt io errors - - gen_srcs -pfreebsd crypto::random \ - +freebsd.ha \ - random.ha - gen_ssa -pfreebsd crypto::random rt io errors -} - -gensrcs_crypto_rsa() { - gen_srcs crypto::rsa core.ha errors.ha keys.ha pkcs1.ha $* -} - -genssa_crypto_rsa() { - gen_ssa crypto::rsa bufio bytes crypto::bigint crypto::math \ - crypto::sha1 crypto::sha256 crypto::sha512 endian errors hash \ - io memio types $* -} - -crypto_rsa() { - if [ $testing -eq 0 ] - then - gensrcs_crypto_rsa - genssa_crypto_rsa - else - gensrcs_crypto_rsa +test/core_test.ha +test/keys_test.ha \ - +test/pkcs1_test.ha - genssa_crypto_rsa - fi -} - -crypto_salsa() { - if [ $testing -eq 0 ] - then - gen_srcs crypto::salsa salsa20.ha - gen_ssa crypto::salsa bytes crypto::cipher crypto::math endian \ - io - else - gen_srcs crypto::salsa salsa20.ha +test.ha - gen_ssa crypto::salsa bytes crypto::cipher crypto::math \ - endian io memio types - fi -} - -gensrcs_crypto_sha256() { - gen_srcs crypto::sha256 \ - sha256.ha \ - $* -} - -genssa_crypto_sha256() { - gen_ssa crypto::sha256 crypto::math bytes hash io endian $* -} - -crypto_sha256() { - if [ $testing -eq 0 ] - then - gensrcs_crypto_sha256 - genssa_crypto_sha256 - else - gensrcs_crypto_sha256 \ - +test.ha - genssa_crypto_sha256 fmt strings encoding::hex - fi -} - -crypto_sha1() { - if [ $testing -eq 0 ] - then - gen_srcs crypto::sha1 sha1.ha - gen_ssa crypto::sha1 crypto::math bytes hash io endian - else - gen_srcs crypto::sha1 sha1.ha +test.ha - gen_ssa crypto::sha1 crypto::math bytes hash endian fmt strings encoding::hex - fi -} - -crypto_sha512() { - if [ $testing -eq 0 ] - then - gen_srcs crypto::sha512 sha512.ha - gen_ssa crypto::sha512 crypto::math bytes hash io endian - else - gen_srcs crypto::sha512 sha512.ha +test.ha - gen_ssa crypto::sha512 crypto::math bytes hash endian fmt strings encoding::hex - fi -} - -crypto_curve25519() { - if [ $testing -eq 0 ] - then - gen_srcs crypto::curve25519 curve25519.ha - gen_ssa crypto::curve25519 bytes - else - gen_srcs crypto::curve25519 curve25519.ha +test.ha - gen_ssa crypto::curve25519 bytes fmt io encoding::hex crypto::random - fi -} - -crypto_ed25519() { - if [ $testing -eq 0 ] - then - gen_srcs crypto::ed25519 ed25519.ha edwards25519.ha - gen_ssa crypto::ed25519 bytes crypto::sha512 hash - else - gen_srcs crypto::ed25519 ed25519.ha edwards25519.ha +test.ha - gen_ssa crypto::ed25519 bytes crypto::sha512 hash encoding::hex strings - fi -} - -crypto_x25519() { - if [ $testing -eq 0 ] - then - gen_srcs crypto::x25519 x25519.ha - gen_ssa crypto::x25519 crypto::curve25519 - else - gen_srcs crypto::x25519 x25519.ha +test.ha - gen_ssa crypto::x25519 bytes crypto::curve25519 encoding::hex \ - crypto::random - fi -} - -datetime() { - gen_srcs -plinux datetime \ - arithmetic.ha \ - chronology.ha \ - errors.ha \ - date.ha \ - datetime.ha \ - duration.ha \ - format.ha \ - parse.ha \ - period.ha \ - reckon.ha \ - time.ha \ - timezone.ha \ - virtual.ha - gen_ssa -plinux datetime ascii errors fmt io strconv strings memio \ - time time::chrono - gen_srcs -pfreebsd datetime \ - arithmetic.ha \ - chronology.ha \ - errors.ha \ - date.ha \ - datetime.ha \ - duration.ha \ - format.ha \ - parse.ha \ - period.ha \ - reckon.ha \ - time.ha \ - timezone.ha \ - virtual.ha - gen_ssa -pfreebsd datetime ascii errors fmt io strconv strings memio \ - time time::chrono -} - -dirs() { - gen_srcs dirs \ - xdg.ha - gen_ssa dirs errors fs os path fmt unix -} - -encoding_base64() { - gen_srcs encoding::base64 \ - base64.ha - gen_ssa encoding::base64 ascii bytes errors io os strings memio -} - -encoding_base32() { - gen_srcs encoding::base32 \ - base32.ha - gen_ssa encoding::base32 ascii bytes errors io strings os memio -} - -encoding_hex() { - gen_srcs encoding::hex \ - hex.ha - gen_ssa encoding::hex ascii bytes errors fmt io strconv memio \ - strings -} - -encoding_pem() { - if [ $testing -eq 0 ] - then - gen_srcs encoding::pem \ - pem.ha - gen_ssa encoding::pem strings memio io errors \ - encoding::base64 ascii os fmt - else - gen_srcs encoding::pem \ - pem.ha \ - +test.ha - gen_ssa encoding::pem strings memio io errors \ - encoding::base64 ascii os fmt bytes - fi -} - -encoding_utf8() { - gen_srcs encoding::utf8 \ - decode.ha \ - decodetable.ha \ - encode.ha \ - rune.ha - gen_ssa encoding::utf8 types -} - -endian() { - gen_srcs endian \ - big.ha \ - network.ha \ - little.ha \ - endian.ha \ - 'host+$(ARCH).ha' - gen_ssa endian -} - -errors() { - gen_srcs errors \ - common.ha \ - opaque.ha \ - string.ha \ - rt.ha - gen_ssa errors rt -} - -fmt() { - gen_srcs fmt \ - fmt.ha - gen_ssa fmt ascii encoding::utf8 io memio os strconv strings types -} - -fnmatch() { - if [ $testing -eq 0 ] - then - gen_srcs fnmatch fnmatch.ha - else - gen_srcs fnmatch fnmatch.ha +test.ha - fi - gen_ssa fnmatch ascii errors strings sort -} - -format_elf() { - gen_srcs format::elf \ - 'arch+$(ARCH).ha' \ - 'platform+$(PLATFORM).ha' \ - types.ha - gen_ssa format::elf -} - -gensrcs_format_ini() { - gen_srcs format::ini \ - scan.ha \ - types.ha \ - $* -} - -format_ini() { - if [ $testing -eq 0 ] - then - gensrcs_format_ini - else - gensrcs_format_ini +test.ha - fi - gen_ssa format::ini encoding::utf8 fmt io memio strings -} - -format_tar() { - gen_srcs format::tar \ - types.ha \ - reader.ha - gen_ssa format::tar bytes endian errors io strconv memio types::c -} - -fs() { - gen_srcs fs \ - types.ha \ - fs.ha \ - util.ha - gen_ssa fs io strings path time errors -} - -getopt() { - gen_srcs getopt \ - getopts.ha - gen_ssa getopt encoding::utf8 fmt io os strings -} - -glob() { - if [ $testing -eq 0 ] - then - gen_srcs glob glob.ha - else - gen_srcs glob glob.ha +test.ha - fi - gen_ssa glob fnmatch fs io os sort strings memio -} - -hare_ast() { - gen_srcs hare::ast \ - decl.ha \ - expr.ha \ - ident.ha \ - import.ha \ - type.ha \ - unit.ha - gen_ssa hare::ast hare::lex strings -} - -gensrcs_hare_lex() { - gen_srcs hare::lex \ - token.ha \ - lex.ha \ - $* -} - -hare_lex() { - if [ $testing -eq 0 ] - then - gensrcs_hare_lex - else - gensrcs_hare_lex \ - +test.ha - fi - gen_ssa hare::lex ascii io encoding::utf8 fmt memio sort sort::cmp \ - strconv strings path -} - -hare_module() { - gen_srcs hare::module \ - cache.ha \ - deps.ha \ - types.ha \ - format.ha \ - srcs.ha \ - util.ha - gen_ssa hare::module \ - ascii memio bytes datetime encoding::utf8 fmt fs hare::ast hare::lex \ - hare::parse hare::unparse io os path strings time time::chrono \ - time::date types encoding::hex sort sort::cmp -} - -gensrcs_hare_parse() { - gen_srcs hare::parse \ - decl.ha \ - expr.ha \ - ident.ha \ - import.ha \ - parse.ha \ - type.ha \ - unit.ha \ - $* -} - -hare_parse() { - if [ $testing -eq 0 ] - then - gensrcs_hare_parse - gen_ssa hare::parse ascii hare::ast hare::lex fmt types \ - strings math - else - gensrcs_hare_parse \ - +test/expr_test.ha \ - +test/ident_test.ha \ - +test/loc.ha \ - +test/roundtrip.ha \ - +test/types.ha \ - +test/unit_test.ha - gen_ssa hare::parse ascii memio hare::ast hare::lex \ - hare::unparse io fmt types strings math encoding::utf8 - fi -} - -gensrcs_hare_types() { - gen_srcs hare::types \ - '+$(ARCH)/writesize.ha' \ - arch.ha \ - builtins.ha \ - class.ha \ - hash.ha \ - lookup.ha \ - store.ha \ - types.ha \ - $* -} - -hare_types() { - if [ $testing -eq 1 ] - then - gensrcs_hare_types +test.ha - gen_ssa hare::types hare::ast hash hash::fnv endian strings \ - errors sort fmt hare::lex hare::parse io - else - gensrcs_hare_types - gen_ssa hare::types hare::ast hash hash::fnv endian strings \ - errors memio sort fmt - fi -} - -gensrcs_hare_unit() { - gen_srcs hare::unit \ - check.ha \ - context.ha \ - errors.ha \ - expr.ha \ - process.ha \ - scan.ha \ - scope.ha \ - unit.ha \ - $* -} - -hare_unit() { - if [ $testing -eq 1 ] - then - gensrcs_hare_unit +test.ha - gen_ssa hare::unit hare::ast hare::types hash hash::fnv \ - strings hare::lex hare::parse memio - else - gensrcs_hare_unit - gen_ssa hare::unit hare::ast hare::types hash hash::fnv \ - strings hare::lex memio - fi -} - -hare_unparse() { - gen_srcs hare::unparse \ - expr.ha \ - decl.ha \ - ident.ha \ - import.ha \ - type.ha \ - unit.ha \ - util.ha - gen_ssa hare::unparse fmt io strings memio hare::ast hare::lex -} - -hare_parse_doc() { - gen_srcs hare::parse::doc \ - doc.ha - gen_ssa hare::parse::doc ascii encoding::utf8 fmt hare::ast hare::parse io strings memio -} - -hash() { - gen_srcs hash \ - hash.ha - gen_ssa hash crypto::math io fmt -} - -hash_adler32() { - gen_srcs hash::adler32 \ - adler32.ha - gen_ssa hash::adler32 endian hash io strings -} - -hash_crc16() { - gen_srcs hash::crc16 \ - crc16.ha - gen_ssa hash::crc16 endian hash io strings -} - -hash_crc32() { - gen_srcs hash::crc32 \ - crc32.ha - gen_ssa hash::crc32 endian hash io strings -} - -hash_crc64() { - gen_srcs hash::crc64 \ - crc64.ha - gen_ssa hash::crc64 endian hash io strings -} - -hash_fnv() { - gen_srcs hash::fnv \ - '+$(ARCH).ha' \ - fnv.ha - gen_ssa hash::fnv endian hash io strings -} - -hash_siphash() { - if [ $testing -eq 0 ] - then - gen_srcs hash::siphash siphash.ha - gen_ssa hash::siphash hash io endian crypto::math - else - gen_srcs hash::siphash siphash.ha +test.ha - gen_ssa hash::siphash hash io endian crypto::math \ - fmt memio strings - fi -} - -gensrcs_io() { - gen_srcs -plinux io \ - 'arch+$(ARCH).ha' \ - +linux/mmap.ha \ - +linux/platform_file.ha \ - +linux/vector.ha \ - copy.ha \ - drain.ha \ - empty.ha \ - file.ha \ - handle.ha \ - limit.ha \ - stream.ha \ - tee.ha \ - types.ha \ - util.ha \ - zero.ha \ - $* - gen_srcs -pfreebsd io \ - 'arch+$(ARCH).ha' \ - +freebsd/mmap.ha \ - +freebsd/platform_file.ha \ - +freebsd/vector.ha \ - copy.ha \ - drain.ha \ - empty.ha \ - file.ha \ - handle.ha \ - limit.ha \ - stream.ha \ - tee.ha \ - types.ha \ - util.ha \ - zero.ha \ - $* -} - -io() { - if [ $testing -eq 0 ] - then - gensrcs_io - else - gensrcs_io \ - +test/limit_test.ha \ - +test/stream_test.ha - fi - gen_ssa -plinux io errors bytes rt - gen_ssa -pfreebsd io errors bytes rt -} - -linux() { - gen_srcs -plinux linux \ - start.ha \ - env.ha - gen_ssa -plinux linux format::elf rt -} - -linux_keyctl() { - gen_srcs -plinux linux::keyctl \ - keyctl.ha \ - types.ha - gen_ssa -plinux linux::keyctl rt errors bytes types::c -} - -linux_timerfd() { - gen_srcs -plinux linux::timerfd \ - timerfd.ha - gen_ssa -plinux linux::timerfd errors rt time io endian -} - -linux_vdso() { - gen_srcs -plinux linux::vdso \ - vdso.ha - gen_ssa -plinux linux::vdso linux format::elf types::c -} - -log() { - gen_srcs -plinux log logger.ha global.ha funcs.ha silent.ha - gen_ssa -plinux log fmt io os time::date - gen_srcs -pfreebsd log logger.ha global.ha funcs.ha silent.ha - gen_ssa -pfreebsd log fmt io os time::date -} - -gensrcs_math() { - gen_srcs math \ - math.ha \ - fenv_func.ha \ - 'fenv+$(ARCH).ha' \ - floats.ha \ - ints.ha \ - uints.ha \ - trig.ha \ - $* -} - -math() { - if [ $testing -eq 0 ]; then - gensrcs_math - else - gensrcs_math \ - +test/data.ha \ - +test/math_test.ha \ - +test/floats_test.ha \ - +test/trig_test.ha - fi - gen_ssa math types rt -} - -math_checked() { - gen_srcs math::checked checked.ha - gen_ssa math::checked math -} - -mime() { - # This module is not built by default because gen-stdlib does not do a good - # job of resolving @init dependency ordering issues - if [ $testing -eq 0 ]; then - gen_srcs mime \ - database.ha \ - lookup.ha \ - parse.ha \ - system.ha - else - gen_srcs mime \ - database.ha \ - lookup.ha \ - parse.ha \ - system.ha \ - entries+test.ha - fi - gen_ssa mime ascii errors strings hash::fnv encoding::utf8 bufio \ - fs io os fmt -} - -net() { - gen_srcs -plinux net \ - +linux.ha \ - errors.ha \ - msg.ha \ - types.ha - gen_ssa -plinux net io errors rt fmt - - gen_srcs -pfreebsd net \ - +freebsd.ha \ - errors.ha \ - msg.ha \ - types.ha - gen_ssa -pfreebsd net io errors rt fmt -} - -net_dial() { - gen_srcs net::dial \ - registry.ha \ - dial.ha \ - ip.ha \ - resolve.ha - gen_ssa net::dial net net::ip net::tcp net::udp net::dns net::uri \ - crypto::random strconv strings unix::hosts -} - -net_dns() { - gen_srcs net::dns \ - decode.ha \ - error.ha \ - encode.ha \ - query.ha \ - strdomain.ha \ - types.ha - gen_ssa net::dns ascii endian net net::udp net::ip fmt strings \ - unix::resolvconf unix::poll time errors -} - -gensrcs_net_ip() { - gen_srcs -plinux net::ip \ - +linux.ha \ - ip.ha \ - $* - gen_srcs -pfreebsd net::ip \ - +freebsd.ha \ - ip.ha \ - $* -} - -net_ip() { - if [ $testing -eq 0 ] - then - gensrcs_net_ip - else - gensrcs_net_ip \ - test+test.ha - fi - gen_ssa -plinux net::ip bytes endian io strconv strings memio fmt - gen_ssa -pfreebsd net::ip bytes endian io strconv strings memio fmt -} - -net_tcp() { - gen_srcs -plinux net::tcp \ - +linux.ha \ - listener.ha \ - options.ha - gen_ssa -plinux net::tcp errors io net net::ip os rt - - gen_srcs -pfreebsd net::tcp \ - +freebsd.ha \ - listener.ha \ - options.ha - gen_ssa -pfreebsd net::tcp errors io net net::ip os rt -} - -net_udp() { - gen_srcs -plinux net::udp \ - +linux.ha \ - options.ha - gen_ssa -plinux net::udp errors net net::ip errors rt os io - - gen_srcs -pfreebsd net::udp \ - +freebsd.ha \ - options.ha - gen_ssa -pfreebsd net::udp errors net net::ip errors rt os io -} - -net_unix() { - gen_srcs -plinux net::unix \ - +linux.ha \ - addr.ha \ - cmsg.ha \ - dial.ha \ - listener.ha \ - options.ha \ - socketpair.ha - gen_ssa -plinux net::unix net errors os io strings types fmt \ - net::dial rt - - gen_srcs -pfreebsd net::unix \ - +freebsd.ha \ - addr.ha \ - cmsg.ha \ - dial.ha \ - listener.ha \ - options.ha \ - socketpair.ha - gen_ssa -pfreebsd net::unix net errors os io strings types fmt \ - net::dial rt -} - -gensrcs_net_uri() { - gen_srcs net::uri \ - fmt.ha \ - parse.ha \ - query.ha \ - uri.ha \ - $* -} - -net_uri() { - if [ $testing -eq 0 ] - then - gensrcs_net_uri - else - gensrcs_net_uri \ - +test.ha - fi - gen_ssa net::uri \ - ascii encoding::utf8 fmt io net::ip strconv strings memio -} - -gensrcs_math_complex() { - gen_srcs math::complex \ - complex.ha \ - $* -} - -math_complex() { - if [ $testing -eq 0 ] - then - gensrcs_math_complex - else - gensrcs_math_complex \ - +test.ha - fi - gen_ssa math::complex math -} - -math_random() { - gen_srcs math::random \ - random.ha - gen_ssa math::random -} - -os() { - if [ $testing -eq 0 ] - then - exit=exit.ha - else - exit=exit+test.ha - fi - - gen_srcs -plinux os \ - +linux/dirfdfs.ha \ - +linux/platform_environ.ha \ - +linux/$exit \ - +linux/fs.ha \ - +linux/memory.ha \ - +linux/status.ha \ - +linux/stdfd.ha \ - environ.ha \ - os.ha - gen_ssa -plinux os io strings fs encoding::utf8 bufio \ - errors math types::c - - gen_srcs -pfreebsd os \ - +freebsd/platform_environ.ha \ - +freebsd/$exit \ - +freebsd/dirfdfs.ha \ - +freebsd/status.ha \ - +freebsd/stdfd.ha \ - +freebsd/fs.ha \ - environ.ha \ - os.ha - gen_ssa -pfreebsd os io strings fs encoding::utf8 bufio \ - errors types::c -} - -os_exec() { - gen_srcs -plinux os::exec \ - exec+linux.ha \ - process+linux.ha \ - types.ha \ - cmd.ha - gen_ssa -plinux os::exec os strings fmt errors unix rt io ascii \ - unix::signal types::c time - - gen_srcs -pfreebsd os::exec \ - exec+freebsd.ha \ - process+freebsd.ha \ - types.ha \ - cmd.ha - gen_ssa -pfreebsd os::exec os strings fmt errors unix rt io ascii \ - unix::signal types::c time -} - -path() { - gen_srcs path \ - '+$(PLATFORM).ha' \ - buffer.ha \ - error.ha \ - stack.ha \ - ext_stack.ha \ - posix.ha \ - prefix.ha \ - iter.ha - gen_ssa path strings bytes errors -} - -regex() { - if [ $testing -eq 0 ]; then - gen_srcs regex regex.ha - gen_ssa regex ascii bufio encoding::utf8 errors io strconv \ - strings bufio types memio - else - gen_srcs regex regex.ha +test.ha - gen_ssa regex encoding::utf8 errors strconv strings fmt io os \ - bufio types memio - fi -} - -gensrcs_strconv() { - gen_srcs strconv \ - types.ha \ - itos.ha \ - utos.ha \ - stou.ha \ - stoi.ha \ - numeric.ha \ - ftos.ha \ - stof.ha \ - stof_data.ha \ - $* -} - -gensrcs_shlex() { - gen_srcs shlex \ - escape.ha \ - split.ha \ - $* -} - -shlex() { - if [ $testing -eq 0 ] - then - gensrcs_shlex - else - gensrcs_shlex \ - +test.ha - fi - gen_ssa shlex ascii encoding::utf8 io strings memio -} - -gensrcs_sort() { - gen_srcs sort \ - bisect.ha \ - search.ha \ - sort.ha \ - types.ha \ - $* -} - -sort() { - if [ $testing -eq 0 ] - then - gensrcs_sort - gen_ssa sort math strings types - else - gensrcs_sort \ - +test.ha - gen_ssa sort math math::random sort::cmp strings types - fi -} - -sort_cmp() { - gen_srcs sort::cmp cmp.ha - gen_ssa sort::cmp strings -} - -strconv() { - if [ $testing -eq 0 ] - then - gensrcs_strconv - else - gensrcs_strconv \ - +test/stou_test.ha \ - +test/stoi_test.ha - fi - gen_ssa strconv types strings ascii math bytes encoding::utf8 -} - -strings() { - gen_srcs strings \ - concat.ha \ - contains.ha \ - dup.ha \ - iter.ha \ - runes.ha \ - sub.ha \ - suffix.ha \ - tokenize.ha \ - utf8.ha \ - index.ha \ - trim.ha \ - compare.ha \ - pad.ha \ - replace.ha - gen_ssa strings bytes encoding::utf8 types -} - -strings_template() { - gen_srcs strings::template \ - template.ha - gen_ssa strings::template ascii errors fmt io strings memio -} - -memio() { - gen_srcs memio \ - stream.ha \ - ops.ha - gen_ssa memio errors io strings encoding::utf8 -} - -temp() { - gen_srcs -plinux temp +linux.ha - gen_ssa -plinux temp \ - crypto::random encoding::hex errors fs io os path memio fmt - - gen_srcs -pfreebsd temp +freebsd.ha - gen_ssa -pfreebsd temp \ - crypto::random encoding::hex errors fs io os path memio fmt -} - -time() { - gen_srcs -plinux time \ - +linux/functions.ha \ - +linux/+'$(ARCH)'.ha \ - arithm.ha \ - conv.ha \ - types.ha - gen_ssa -plinux time \ - linux::vdso math - gen_srcs -pfreebsd time \ - +freebsd/functions.ha \ - arithm.ha \ - conv.ha \ - types.ha - gen_ssa -pfreebsd time \ - math -} - -time_chrono() { - gen_srcs -plinux time::chrono \ - arithmetic.ha \ - +linux.ha \ - chronology.ha \ - error.ha \ - leapsec.ha \ - timescale.ha \ - timezone.ha \ - tzdb.ha - gen_ssa -plinux time::chrono \ - bufio bytes encoding::utf8 endian errors fmt fs io os strconv strings time path - gen_srcs -pfreebsd time::chrono \ - arithmetic.ha \ - +freebsd.ha \ - chronology.ha \ - error.ha \ - leapsec.ha \ - timescale.ha \ - timezone.ha \ - tzdb.ha - gen_ssa -pfreebsd time::chrono \ - bufio bytes encoding::utf8 endian errors fmt fs io os strconv strings time path -} - -time_date() { - gen_srcs -plinux time::date \ - date.ha \ - daydate.ha \ - daytime.ha \ - error.ha \ - format.ha \ - locality.ha \ - observe.ha \ - parithm.ha \ - parse.ha \ - period.ha \ - reckon.ha \ - tarithm.ha \ - virtual.ha - gen_ssa -plinux time::date \ - ascii errors fmt io strconv strings memio time time::chrono - gen_srcs -pfreebsd time::date \ - date.ha \ - daydate.ha \ - daytime.ha \ - error.ha \ - format.ha \ - locality.ha \ - observe.ha \ - parithm.ha \ - parse.ha \ - period.ha \ - reckon.ha \ - tarithm.ha \ - virtual.ha - gen_ssa -pfreebsd time::date \ - ascii errors fmt io strconv strings memio time time::chrono -} - -types() { - gen_srcs types \ - limits.ha \ - classes.ha \ - 'arch+$(ARCH).ha' - gen_ssa types -} - -types_c() { - if [ $testing -eq 1 ] - then - gen_srcs types::c +test.ha strings.ha types.ha 'arch+$(ARCH).ha' - else - gen_srcs types::c strings.ha types.ha 'arch+$(ARCH).ha' - fi - gen_ssa types::c encoding::utf8 types -} - -unix() { - gen_srcs -plinux unix \ - +linux/nice.ha \ - +linux/pipe.ha \ - +linux/umask.ha \ - +linux/getuid.ha \ - +linux/setuid.ha \ - +linux/groups.ha - gen_ssa -plinux unix errors fs io - - gen_srcs -pfreebsd unix \ - +freebsd/nice.ha \ - +freebsd/pipe.ha \ - +freebsd/umask.ha \ - +freebsd/getuid.ha \ - +freebsd/setuid.ha \ - +freebsd/groups.ha - gen_ssa -pfreebsd unix errors fs io -} - -unix_hosts() { - if [ $testing -eq 0 ] - then - gen_srcs -plinux unix::hosts \ - +linux.ha \ - hosts.ha - gen_ssa -plinux unix::hosts bufio encoding::utf8 fs io \ - net::ip os strings memio - - gen_srcs -pfreebsd unix::hosts \ - +freebsd.ha \ - hosts.ha - gen_ssa -pfreebsd unix::hosts bufio encoding::utf8 fs io \ - net::ip os strings memio - else - gen_srcs -plinux unix::hosts \ - +linux.ha \ - test+test.ha \ - hosts.ha - gen_ssa -plinux unix::hosts bufio encoding::utf8 fs io \ - net::ip os strings memio - - gen_srcs -pfreebsd unix::hosts \ - +freebsd.ha \ - test+test.ha \ - hosts.ha - gen_ssa -pfreebsd unix::hosts bufio encoding::utf8 fs io \ - net::ip os strings memio - fi -} - -unix_passwd() { - gen_srcs unix::passwd \ - group.ha \ - passwd.ha \ - types.ha - gen_ssa unix::passwd bufio io os strconv strings memio -} - -unix_poll() { - gen_srcs -plinux unix::poll +linux.ha types.ha - gen_ssa -plinux unix::poll rt errors time io - - gen_srcs -pfreebsd unix::poll +freebsd.ha types.ha - gen_ssa -pfreebsd unix::poll rt errors time io -} - -unix_resolvconf() { - gen_srcs -plinux unix::resolvconf \ - +linux.ha \ - load.ha - gen_ssa -plinux unix::resolvconf os io bufio memio net::ip strings - - gen_srcs -pfreebsd unix::resolvconf \ - +freebsd.ha \ - load.ha - gen_ssa -pfreebsd unix::resolvconf os io bufio memio net::ip strings -} - -unix_signal() { - gen_srcs -plinux unix::signal \ - types.ha \ - +linux.ha - gen_ssa -plinux unix::signal io errors rt - - gen_srcs -pfreebsd unix::signal \ - types.ha \ - +freebsd.ha - gen_ssa -pfreebsd unix::signal io errors rt -} - -unix_tty() { - gen_srcs -plinux unix::tty \ - types.ha \ - pty_common.ha \ - +linux/isatty.ha \ - +linux/open.ha \ - +linux/pty.ha \ - +linux/termios.ha \ - +linux/winsize.ha - gen_ssa -plinux unix::tty bufio errors fmt fs io os rt strings - - gen_srcs -pfreebsd unix::tty \ - types.ha \ - pty_common.ha \ - +freebsd/isatty.ha \ - +freebsd/open.ha \ - +freebsd/pty.ha \ - +freebsd/winsize.ha - gen_ssa -pfreebsd unix::tty bufio errors fmt fs io os rt strings \ - types::c -} - -uuid() { - gen_srcs uuid \ - uuid.ha - gen_ssa uuid crypto::random fmt endian io bytes memio strings strconv -} - -# 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 -cmd::hare::build -crypto -crypto::aes -crypto::aes::xts -crypto::argon2 -crypto::bcrypt -crypto::blake2b -crypto::blowfish -crypto::bigint -crypto::chacha -crypto::chachapoly -crypto::cipher -crypto::hkdf -crypto::hmac -crypto::mac -crypto::math -crypto::random linux freebsd -crypto::rsa -crypto::poly1305 -crypto::salsa -crypto::sha1 -crypto::sha256 -crypto::sha512 -crypto::curve25519 -crypto::ed25519 -crypto::x25519 -dirs -encoding::base64 -encoding::base32 -encoding::hex -encoding::pem -encoding::utf8 -endian -errors -fmt -fnmatch -format::elf -format::ini -format::tar -fs -getopt -glob -hare::ast -hare::lex -hare::module -hare::parse -hare::parse::doc -hare::types -hare::unit -hare::unparse -hash -hash::adler32 -hash::crc16 -hash::crc32 -hash::crc64 -hash::fnv -hash::siphash -io linux freebsd -linux linux -linux::keyctl linux -linux::timerfd linux -linux::vdso linux -log linux freebsd -math -math::checked -math::complex -math::random -memio -net linux freebsd -net::dial -net::dns -net::ip linux freebsd -net::tcp linux freebsd -net::udp linux freebsd -net::unix linux freebsd -net::uri -os linux freebsd -os::exec linux freebsd -path -regex -shlex -sort -sort::cmp -strconv -strings -strings::template -temp linux freebsd -test -time linux freebsd -time::chrono linux freebsd -time::date linux freebsd -types -types::c -unix linux freebsd -unix::hosts linux freebsd -unix::passwd -unix::poll linux freebsd -unix::resolvconf linux freebsd -unix::signal linux freebsd -unix::tty linux freebsd -uuid" -stdlib() { - rt - IFS=" -" - for module in $modules; do - 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 -} - -if [ ${DOCS:-0} -ne 1 ] -then - printf '# This file is generated by the gen-stdlib script, do not edit it by hand\n\n' - genrules - genrules test -fi diff --git a/scripts/gen-stdlib.sh b/scripts/gen-stdlib.sh @@ -1,138 +0,0 @@ -mod_path() { - printf '%s\n' "$1" | tr -s '::' '/' -} -mod_file() { - printf '%s\n' "$1" | tr -s '::' '_' -} -mod_var() { - printf '%s_%s_%s\n' "$stdlib" "$1" "$2" | tr -s '::' '_' -} - -gen_srcs() { - platform=any - OPTIND=1 - 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" "$platform")" - - printf '# %s (+%s)\n' "$mod" "$platform" - printf '%s_srcs = \\\n' "$var" - while [ $# -ne 0 ] - do - if [ $# -eq 1 ] - then - printf '\t$(STDLIB)/%s/%s\n\n' "$path" "$1" - else - printf '\t$(STDLIB)/%s/%s \\\n' "$path" "$1" - fi - shift - done -} - -gen_ssa() { - platform=any - OPTIND=1 - while getopts p: name - do - case $name in - p) - platform="$OPTARG" - ;; - ?) - printf 'Invalid use of gen_ssa' >&2 - exit 1 - ;; - esac - done - shift $(($OPTIND - 1)) - - mod="$1" - shift - - path=$(mod_path "$mod") - file=$(mod_file "$mod") - var=$(mod_var "$mod" "$platform") - - printf "\$($cache)/$path/$file-$platform.ssa: \$(${var}_srcs) \$(${stdlib}_rt)" - for dep in $* - do - printf ' $(%s)' "$(mod_var "$dep" \$"(PLATFORM)")" - done - printf '\n' - - cat <<EOF - @printf 'HAREC \t\$@\n' - @mkdir -p \$($cache)/$path - @\$(${stdlib}_env) \$(HAREC) \$($flags) -o \$@ -N$mod \\ - -t\$($cache)/$path/$file.td \$(${var}_srcs) - -EOF -} - -gen_lib() { - platform=any - OPTIND=1 - while getopts p: name - do - case $name in - p) - platform="$OPTARG" - ;; - ?) - printf 'Invalid use of gen_lib' >&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" "$platform") - printf "%s = \$(%s)/%s/%s-%s.o\n" "$var" "$cache" "$path" "$file" "$platform" - printf "%s_env += HARE_TD_%s=\$(%s)/%s/%s.td\n" "$stdlib" "$mod" "$cache" "$path" "$file" - printf '%s_deps_%s += $(%s)\n' "$stdlib" "$platform" "$var" - if [ "$platform" = "any" ] - then - for p in $all_platforms - do - printf '%s = $(%s)\n' "$(mod_var "$mod" "$p")" "$var" - done - fi - printf '\n' -} - -genrules() { - if [ $# -gt 0 ] && [ "$1" = "test" ] - then - cache=TESTCACHE - flags=TESTHARECFLAGS - testing=1 - stdlib=testlib - else - cache=HARECACHE - flags=HARECFLAGS - testing=0 - stdlib=stdlib - fi - stdlib -} diff --git a/scripts/genbootstrap b/scripts/genbootstrap @@ -0,0 +1,11 @@ +#!/bin/sh -eu + +cd "$(dirname "$0")/.." +mkdir -p "${BINOUT:-.bin}" makefiles/ +hare build -o ${BINOUT:-.bin}/genbootstrap cmd/genbootstrap +for platform in linux freebsd; do + for arch in x86_64 aarch64 riscv64; do + echo makefiles/$platform.$arch.mk + ${BINOUT:-.bin}/genbootstrap $platform $arch >makefiles/$platform.$arch.mk + done +done diff --git a/scripts/install-mods b/scripts/install-mods @@ -1,45 +0,0 @@ -#!/bin/sh -modules="ascii -bufio -bytes -crypto -dirs -encoding -endian -errors -fmt -fnmatch -format -fs -getopt -glob -hare -hash -io -linux -log -math -memio -mime -net -os -path -regex -rt -shlex -sort -strconv -strings -temp -test -time -types -unix -uuid" -IFS=" -" -for mod in $modules -do - printf 'install %s\n' "$mod" - cp -R $mod $1 -done diff --git a/scripts/moddirs b/scripts/moddirs @@ -0,0 +1,7 @@ +#!/bin/sh +for i in *; do + case "$i" in + .* | cmd | contrib | docs | makefiles | scripts) ;; + *) find -- "$i" -prune -type d ;; + esac +done diff --git a/scripts/modules b/scripts/modules @@ -1,27 +0,0 @@ -#!/bin/sh -set -e - -lookup() { - for i in "$1"/* - do - i="${i#./}" - [ -d "$i" ] || continue - case "$i" in - .*|*+*|cmd|contrib|docs|scripts) - continue - ;; - *) - for j in "$i"/*.ha - do - [ -e "$j" ] || break - i="$(printf '%s\n' "${i%/}" | sed 's|/|::|g')" - printf 'use %s;\n' "$i" - break - done - lookup "$i" - ;; - esac - done -} - -lookup . diff --git a/stdlib.mk b/stdlib.mk @@ -1,4996 +0,0 @@ -# This file is generated by the gen-stdlib script, do not edit it by hand - -rtscript = $(STDLIB)/rt/hare.sc -# rt (+linux) -stdlib_rt_linux_srcs = \ - $(STDLIB)/rt/+linux/platform_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-libc.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)/arch_jmp.ha \ - $(STDLIB)/rt/+$(ARCH)/backtrace.ha \ - $(STDLIB)/rt/fenv_defs.ha \ - $(STDLIB)/rt/+$(ARCH)/cpuid.ha \ - $(STDLIB)/rt/ensure.ha \ - $(STDLIB)/rt/jmp.ha \ - $(STDLIB)/rt/malloc.ha \ - $(STDLIB)/rt/memcpy.ha \ - $(STDLIB)/rt/memfunc_ptr.ha \ - $(STDLIB)/rt/memmove.ha \ - $(STDLIB)/rt/memset.ha \ - $(STDLIB)/rt/strcmp.ha \ - $(STDLIB)/rt/unknown_errno.ha \ - $(STDLIB)/rt/u64tos.ha \ - $(STDLIB)/rt/abort.ha \ - $(STDLIB)/rt/start.ha - -# rt (+freebsd) -stdlib_rt_freebsd_srcs = \ - $(STDLIB)/rt/+freebsd/platform_abort.ha \ - $(STDLIB)/rt/+freebsd/env.ha \ - $(STDLIB)/rt/+freebsd/errno.ha \ - $(STDLIB)/rt/+freebsd/platformstart.ha \ - $(STDLIB)/rt/+freebsd/segmalloc.ha \ - $(STDLIB)/rt/+freebsd/signal.ha \ - $(STDLIB)/rt/+freebsd/socket.ha \ - $(STDLIB)/rt/+freebsd/+$(ARCH).ha \ - $(STDLIB)/rt/+freebsd/syscallno.ha \ - $(STDLIB)/rt/+freebsd/syscalls.ha \ - $(STDLIB)/rt/+freebsd/types.ha \ - $(STDLIB)/rt/+$(ARCH)/arch_jmp.ha \ - $(STDLIB)/rt/+$(ARCH)/backtrace.ha \ - $(STDLIB)/rt/fenv_defs.ha \ - $(STDLIB)/rt/+$(ARCH)/cpuid.ha \ - $(STDLIB)/rt/ensure.ha \ - $(STDLIB)/rt/jmp.ha \ - $(STDLIB)/rt/malloc.ha \ - $(STDLIB)/rt/memcpy.ha \ - $(STDLIB)/rt/memfunc_ptr.ha \ - $(STDLIB)/rt/memmove.ha \ - $(STDLIB)/rt/memset.ha \ - $(STDLIB)/rt/strcmp.ha \ - $(STDLIB)/rt/unknown_errno.ha \ - $(STDLIB)/rt/u64tos.ha \ - $(STDLIB)/rt/abort.ha \ - $(STDLIB)/rt/start.ha - -$(HARECACHE)/rt/rt-linux.ssa: $(stdlib_rt_linux_srcs) $(stdlib_rt) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/rt - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nrt \ - -t$(HARECACHE)/rt/rt.td $(stdlib_rt_linux_srcs) - -$(HARECACHE)/rt/rt-freebsd.ssa: $(stdlib_rt_freebsd_srcs) $(stdlib_rt) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/rt - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nrt \ - -t$(HARECACHE)/rt/rt.td $(stdlib_rt_freebsd_srcs) - -$(HARECACHE)/rt/start.o: $(STDLIB)/rt/+$(PLATFORM)/start+$(ARCH)-libc.s - @printf 'AS \t%s\n' "$@" - @mkdir -p $(HARECACHE)/rt - @$(AS) -o $@ $(STDLIB)/rt/+$(PLATFORM)/start+$(ARCH)-libc.s - -stdlib_asm = $(HARECACHE)/rt/syscall.o \ - $(HARECACHE)/rt/setjmp.o \ - $(HARECACHE)/rt/longjmp.o \ - $(HARECACHE)/rt/restore.o \ - $(HARECACHE)/rt/getfp.o \ - $(HARECACHE)/rt/fenv.o \ - $(HARECACHE)/rt/start.o \ - $(HARECACHE)/rt/cpuid.o - -$(HARECACHE)/rt/syscall.o: $(STDLIB)/rt/+$(PLATFORM)/syscall+$(ARCH).s - @printf 'AS \t%s\n' "$@" - @mkdir -p $(HARECACHE)/rt - @$(AS) -o $@ $(STDLIB)/rt/+$(PLATFORM)/syscall+$(ARCH).s - -$(HARECACHE)/rt/setjmp.o: $(STDLIB)/rt/+$(ARCH)/setjmp.s - @printf 'AS \t%s\n' "$@" - @mkdir -p $(HARECACHE)/rt - @$(AS) -o $@ $(STDLIB)/rt/+$(ARCH)/setjmp.s - -$(HARECACHE)/rt/longjmp.o: $(STDLIB)/rt/+$(ARCH)/longjmp.s - @printf 'AS \t%s\n' "$@" - @mkdir -p $(HARECACHE)/rt - @$(AS) -o $@ $(STDLIB)/rt/+$(ARCH)/longjmp.s - -$(HARECACHE)/rt/restore.o: $(STDLIB)/rt/+$(ARCH)/restore.s - @printf 'AS \t%s\n' "$@" - @mkdir -p $(HARECACHE)/rt - @$(AS) -o $@ $(STDLIB)/rt/+$(ARCH)/restore.s - -$(HARECACHE)/rt/fenv.o: $(STDLIB)/rt/+$(ARCH)/fenv.s - @printf 'AS \t%s\n' "$@" - @mkdir -p $(HARECACHE)/rt - @$(AS) -o $@ $(STDLIB)/rt/+$(ARCH)/fenv.s - -$(HARECACHE)/rt/getfp.o: $(STDLIB)/rt/+$(ARCH)/getfp.s - @printf 'AS \t%s\n' "$@" - @mkdir -p $(HARECACHE)/rt - @$(AS) -o $@ $(STDLIB)/rt/+$(ARCH)/getfp.s - -$(HARECACHE)/rt/cpuid.o: $(STDLIB)/rt/+$(ARCH)/cpuid.s - @printf 'AS \t%s\n' "$@" - @mkdir -p $(HARECACHE)/rt - @$(AS) -o $@ $(STDLIB)/rt/+$(ARCH)/cpuid.s - -$(HARECACHE)/rt/rt-linux.a: $(HARECACHE)/rt/rt-linux.o $(stdlib_asm) - @printf 'AR \t%s\n' "$@" - @$(AR) -csr $@ $(HARECACHE)/rt/rt-linux.o $(stdlib_asm) - -$(HARECACHE)/rt/rt-freebsd.a: $(HARECACHE)/rt/rt-freebsd.o $(stdlib_asm) - @printf 'AR \t%s\n' "$@" - @$(AR) -csr $@ $(HARECACHE)/rt/rt-freebsd.o $(stdlib_asm) - -stdlib_rt = $(HARECACHE)/rt/rt-$(PLATFORM).a -stdlib_env += HARE_TD_rt=$(HARECACHE)/rt/rt.td -stdlib_deps_linux += $(stdlib_rt) -stdlib_deps_freebsd += $(stdlib_rt) -stdlib_deps_any += $(stdlib_rt) - -# gen_lib ascii (any) -stdlib_ascii_any = $(HARECACHE)/ascii/ascii-any.o -stdlib_env += HARE_TD_ascii=$(HARECACHE)/ascii/ascii.td -stdlib_deps_any += $(stdlib_ascii_any) -stdlib_ascii_linux = $(stdlib_ascii_any) -stdlib_ascii_freebsd = $(stdlib_ascii_any) - -# gen_lib bufio (any) -stdlib_bufio_any = $(HARECACHE)/bufio/bufio-any.o -stdlib_env += HARE_TD_bufio=$(HARECACHE)/bufio/bufio.td -stdlib_deps_any += $(stdlib_bufio_any) -stdlib_bufio_linux = $(stdlib_bufio_any) -stdlib_bufio_freebsd = $(stdlib_bufio_any) - -# gen_lib bytes (any) -stdlib_bytes_any = $(HARECACHE)/bytes/bytes-any.o -stdlib_env += HARE_TD_bytes=$(HARECACHE)/bytes/bytes.td -stdlib_deps_any += $(stdlib_bytes_any) -stdlib_bytes_linux = $(stdlib_bytes_any) -stdlib_bytes_freebsd = $(stdlib_bytes_any) - -# gen_lib cmd::hare::build (any) -stdlib_cmd_hare_build_any = $(HARECACHE)/cmd/hare/build/cmd_hare_build-any.o -stdlib_env += HARE_TD_cmd::hare::build=$(HARECACHE)/cmd/hare/build/cmd_hare_build.td -stdlib_deps_any += $(stdlib_cmd_hare_build_any) -stdlib_cmd_hare_build_linux = $(stdlib_cmd_hare_build_any) -stdlib_cmd_hare_build_freebsd = $(stdlib_cmd_hare_build_any) - -# gen_lib crypto (any) -stdlib_crypto_any = $(HARECACHE)/crypto/crypto-any.o -stdlib_env += HARE_TD_crypto=$(HARECACHE)/crypto/crypto.td -stdlib_deps_any += $(stdlib_crypto_any) -stdlib_crypto_linux = $(stdlib_crypto_any) -stdlib_crypto_freebsd = $(stdlib_crypto_any) - -# gen_lib crypto::aes (any) -stdlib_crypto_aes_any = $(HARECACHE)/crypto/aes/crypto_aes-any.o -stdlib_env += HARE_TD_crypto::aes=$(HARECACHE)/crypto/aes/crypto_aes.td -stdlib_deps_any += $(stdlib_crypto_aes_any) -stdlib_crypto_aes_linux = $(stdlib_crypto_aes_any) -stdlib_crypto_aes_freebsd = $(stdlib_crypto_aes_any) - -# gen_lib crypto::aes::xts (any) -stdlib_crypto_aes_xts_any = $(HARECACHE)/crypto/aes/xts/crypto_aes_xts-any.o -stdlib_env += HARE_TD_crypto::aes::xts=$(HARECACHE)/crypto/aes/xts/crypto_aes_xts.td -stdlib_deps_any += $(stdlib_crypto_aes_xts_any) -stdlib_crypto_aes_xts_linux = $(stdlib_crypto_aes_xts_any) -stdlib_crypto_aes_xts_freebsd = $(stdlib_crypto_aes_xts_any) - -# gen_lib crypto::argon2 (any) -stdlib_crypto_argon2_any = $(HARECACHE)/crypto/argon2/crypto_argon2-any.o -stdlib_env += HARE_TD_crypto::argon2=$(HARECACHE)/crypto/argon2/crypto_argon2.td -stdlib_deps_any += $(stdlib_crypto_argon2_any) -stdlib_crypto_argon2_linux = $(stdlib_crypto_argon2_any) -stdlib_crypto_argon2_freebsd = $(stdlib_crypto_argon2_any) - -# gen_lib crypto::bcrypt (any) -stdlib_crypto_bcrypt_any = $(HARECACHE)/crypto/bcrypt/crypto_bcrypt-any.o -stdlib_env += HARE_TD_crypto::bcrypt=$(HARECACHE)/crypto/bcrypt/crypto_bcrypt.td -stdlib_deps_any += $(stdlib_crypto_bcrypt_any) -stdlib_crypto_bcrypt_linux = $(stdlib_crypto_bcrypt_any) -stdlib_crypto_bcrypt_freebsd = $(stdlib_crypto_bcrypt_any) - -# gen_lib crypto::blake2b (any) -stdlib_crypto_blake2b_any = $(HARECACHE)/crypto/blake2b/crypto_blake2b-any.o -stdlib_env += HARE_TD_crypto::blake2b=$(HARECACHE)/crypto/blake2b/crypto_blake2b.td -stdlib_deps_any += $(stdlib_crypto_blake2b_any) -stdlib_crypto_blake2b_linux = $(stdlib_crypto_blake2b_any) -stdlib_crypto_blake2b_freebsd = $(stdlib_crypto_blake2b_any) - -# gen_lib crypto::blowfish (any) -stdlib_crypto_blowfish_any = $(HARECACHE)/crypto/blowfish/crypto_blowfish-any.o -stdlib_env += HARE_TD_crypto::blowfish=$(HARECACHE)/crypto/blowfish/crypto_blowfish.td -stdlib_deps_any += $(stdlib_crypto_blowfish_any) -stdlib_crypto_blowfish_linux = $(stdlib_crypto_blowfish_any) -stdlib_crypto_blowfish_freebsd = $(stdlib_crypto_blowfish_any) - -# gen_lib crypto::bigint (any) -stdlib_crypto_bigint_any = $(HARECACHE)/crypto/bigint/crypto_bigint-any.o -stdlib_env += HARE_TD_crypto::bigint=$(HARECACHE)/crypto/bigint/crypto_bigint.td -stdlib_deps_any += $(stdlib_crypto_bigint_any) -stdlib_crypto_bigint_linux = $(stdlib_crypto_bigint_any) -stdlib_crypto_bigint_freebsd = $(stdlib_crypto_bigint_any) - -# gen_lib crypto::chacha (any) -stdlib_crypto_chacha_any = $(HARECACHE)/crypto/chacha/crypto_chacha-any.o -stdlib_env += HARE_TD_crypto::chacha=$(HARECACHE)/crypto/chacha/crypto_chacha.td -stdlib_deps_any += $(stdlib_crypto_chacha_any) -stdlib_crypto_chacha_linux = $(stdlib_crypto_chacha_any) -stdlib_crypto_chacha_freebsd = $(stdlib_crypto_chacha_any) - -# gen_lib crypto::chachapoly (any) -stdlib_crypto_chachapoly_any = $(HARECACHE)/crypto/chachapoly/crypto_chachapoly-any.o -stdlib_env += HARE_TD_crypto::chachapoly=$(HARECACHE)/crypto/chachapoly/crypto_chachapoly.td -stdlib_deps_any += $(stdlib_crypto_chachapoly_any) -stdlib_crypto_chachapoly_linux = $(stdlib_crypto_chachapoly_any) -stdlib_crypto_chachapoly_freebsd = $(stdlib_crypto_chachapoly_any) - -# gen_lib crypto::cipher (any) -stdlib_crypto_cipher_any = $(HARECACHE)/crypto/cipher/crypto_cipher-any.o -stdlib_env += HARE_TD_crypto::cipher=$(HARECACHE)/crypto/cipher/crypto_cipher.td -stdlib_deps_any += $(stdlib_crypto_cipher_any) -stdlib_crypto_cipher_linux = $(stdlib_crypto_cipher_any) -stdlib_crypto_cipher_freebsd = $(stdlib_crypto_cipher_any) - -# gen_lib crypto::hkdf (any) -stdlib_crypto_hkdf_any = $(HARECACHE)/crypto/hkdf/crypto_hkdf-any.o -stdlib_env += HARE_TD_crypto::hkdf=$(HARECACHE)/crypto/hkdf/crypto_hkdf.td -stdlib_deps_any += $(stdlib_crypto_hkdf_any) -stdlib_crypto_hkdf_linux = $(stdlib_crypto_hkdf_any) -stdlib_crypto_hkdf_freebsd = $(stdlib_crypto_hkdf_any) - -# gen_lib crypto::hmac (any) -stdlib_crypto_hmac_any = $(HARECACHE)/crypto/hmac/crypto_hmac-any.o -stdlib_env += HARE_TD_crypto::hmac=$(HARECACHE)/crypto/hmac/crypto_hmac.td -stdlib_deps_any += $(stdlib_crypto_hmac_any) -stdlib_crypto_hmac_linux = $(stdlib_crypto_hmac_any) -stdlib_crypto_hmac_freebsd = $(stdlib_crypto_hmac_any) - -# gen_lib crypto::mac (any) -stdlib_crypto_mac_any = $(HARECACHE)/crypto/mac/crypto_mac-any.o -stdlib_env += HARE_TD_crypto::mac=$(HARECACHE)/crypto/mac/crypto_mac.td -stdlib_deps_any += $(stdlib_crypto_mac_any) -stdlib_crypto_mac_linux = $(stdlib_crypto_mac_any) -stdlib_crypto_mac_freebsd = $(stdlib_crypto_mac_any) - -# gen_lib crypto::math (any) -stdlib_crypto_math_any = $(HARECACHE)/crypto/math/crypto_math-any.o -stdlib_env += HARE_TD_crypto::math=$(HARECACHE)/crypto/math/crypto_math.td -stdlib_deps_any += $(stdlib_crypto_math_any) -stdlib_crypto_math_linux = $(stdlib_crypto_math_any) -stdlib_crypto_math_freebsd = $(stdlib_crypto_math_any) - -# gen_lib crypto::random (linux) -stdlib_crypto_random_linux = $(HARECACHE)/crypto/random/crypto_random-linux.o -stdlib_env += HARE_TD_crypto::random=$(HARECACHE)/crypto/random/crypto_random.td -stdlib_deps_linux += $(stdlib_crypto_random_linux) - -# gen_lib crypto::random (freebsd) -stdlib_crypto_random_freebsd = $(HARECACHE)/crypto/random/crypto_random-freebsd.o -stdlib_env += HARE_TD_crypto::random=$(HARECACHE)/crypto/random/crypto_random.td -stdlib_deps_freebsd += $(stdlib_crypto_random_freebsd) - -# gen_lib crypto::rsa (any) -stdlib_crypto_rsa_any = $(HARECACHE)/crypto/rsa/crypto_rsa-any.o -stdlib_env += HARE_TD_crypto::rsa=$(HARECACHE)/crypto/rsa/crypto_rsa.td -stdlib_deps_any += $(stdlib_crypto_rsa_any) -stdlib_crypto_rsa_linux = $(stdlib_crypto_rsa_any) -stdlib_crypto_rsa_freebsd = $(stdlib_crypto_rsa_any) - -# gen_lib crypto::poly1305 (any) -stdlib_crypto_poly1305_any = $(HARECACHE)/crypto/poly1305/crypto_poly1305-any.o -stdlib_env += HARE_TD_crypto::poly1305=$(HARECACHE)/crypto/poly1305/crypto_poly1305.td -stdlib_deps_any += $(stdlib_crypto_poly1305_any) -stdlib_crypto_poly1305_linux = $(stdlib_crypto_poly1305_any) -stdlib_crypto_poly1305_freebsd = $(stdlib_crypto_poly1305_any) - -# gen_lib crypto::salsa (any) -stdlib_crypto_salsa_any = $(HARECACHE)/crypto/salsa/crypto_salsa-any.o -stdlib_env += HARE_TD_crypto::salsa=$(HARECACHE)/crypto/salsa/crypto_salsa.td -stdlib_deps_any += $(stdlib_crypto_salsa_any) -stdlib_crypto_salsa_linux = $(stdlib_crypto_salsa_any) -stdlib_crypto_salsa_freebsd = $(stdlib_crypto_salsa_any) - -# gen_lib crypto::sha1 (any) -stdlib_crypto_sha1_any = $(HARECACHE)/crypto/sha1/crypto_sha1-any.o -stdlib_env += HARE_TD_crypto::sha1=$(HARECACHE)/crypto/sha1/crypto_sha1.td -stdlib_deps_any += $(stdlib_crypto_sha1_any) -stdlib_crypto_sha1_linux = $(stdlib_crypto_sha1_any) -stdlib_crypto_sha1_freebsd = $(stdlib_crypto_sha1_any) - -# gen_lib crypto::sha256 (any) -stdlib_crypto_sha256_any = $(HARECACHE)/crypto/sha256/crypto_sha256-any.o -stdlib_env += HARE_TD_crypto::sha256=$(HARECACHE)/crypto/sha256/crypto_sha256.td -stdlib_deps_any += $(stdlib_crypto_sha256_any) -stdlib_crypto_sha256_linux = $(stdlib_crypto_sha256_any) -stdlib_crypto_sha256_freebsd = $(stdlib_crypto_sha256_any) - -# gen_lib crypto::sha512 (any) -stdlib_crypto_sha512_any = $(HARECACHE)/crypto/sha512/crypto_sha512-any.o -stdlib_env += HARE_TD_crypto::sha512=$(HARECACHE)/crypto/sha512/crypto_sha512.td -stdlib_deps_any += $(stdlib_crypto_sha512_any) -stdlib_crypto_sha512_linux = $(stdlib_crypto_sha512_any) -stdlib_crypto_sha512_freebsd = $(stdlib_crypto_sha512_any) - -# gen_lib crypto::curve25519 (any) -stdlib_crypto_curve25519_any = $(HARECACHE)/crypto/curve25519/crypto_curve25519-any.o -stdlib_env += HARE_TD_crypto::curve25519=$(HARECACHE)/crypto/curve25519/crypto_curve25519.td -stdlib_deps_any += $(stdlib_crypto_curve25519_any) -stdlib_crypto_curve25519_linux = $(stdlib_crypto_curve25519_any) -stdlib_crypto_curve25519_freebsd = $(stdlib_crypto_curve25519_any) - -# gen_lib crypto::ed25519 (any) -stdlib_crypto_ed25519_any = $(HARECACHE)/crypto/ed25519/crypto_ed25519-any.o -stdlib_env += HARE_TD_crypto::ed25519=$(HARECACHE)/crypto/ed25519/crypto_ed25519.td -stdlib_deps_any += $(stdlib_crypto_ed25519_any) -stdlib_crypto_ed25519_linux = $(stdlib_crypto_ed25519_any) -stdlib_crypto_ed25519_freebsd = $(stdlib_crypto_ed25519_any) - -# gen_lib crypto::x25519 (any) -stdlib_crypto_x25519_any = $(HARECACHE)/crypto/x25519/crypto_x25519-any.o -stdlib_env += HARE_TD_crypto::x25519=$(HARECACHE)/crypto/x25519/crypto_x25519.td -stdlib_deps_any += $(stdlib_crypto_x25519_any) -stdlib_crypto_x25519_linux = $(stdlib_crypto_x25519_any) -stdlib_crypto_x25519_freebsd = $(stdlib_crypto_x25519_any) - -# gen_lib dirs (any) -stdlib_dirs_any = $(HARECACHE)/dirs/dirs-any.o -stdlib_env += HARE_TD_dirs=$(HARECACHE)/dirs/dirs.td -stdlib_deps_any += $(stdlib_dirs_any) -stdlib_dirs_linux = $(stdlib_dirs_any) -stdlib_dirs_freebsd = $(stdlib_dirs_any) - -# gen_lib encoding::base64 (any) -stdlib_encoding_base64_any = $(HARECACHE)/encoding/base64/encoding_base64-any.o -stdlib_env += HARE_TD_encoding::base64=$(HARECACHE)/encoding/base64/encoding_base64.td -stdlib_deps_any += $(stdlib_encoding_base64_any) -stdlib_encoding_base64_linux = $(stdlib_encoding_base64_any) -stdlib_encoding_base64_freebsd = $(stdlib_encoding_base64_any) - -# gen_lib encoding::base32 (any) -stdlib_encoding_base32_any = $(HARECACHE)/encoding/base32/encoding_base32-any.o -stdlib_env += HARE_TD_encoding::base32=$(HARECACHE)/encoding/base32/encoding_base32.td -stdlib_deps_any += $(stdlib_encoding_base32_any) -stdlib_encoding_base32_linux = $(stdlib_encoding_base32_any) -stdlib_encoding_base32_freebsd = $(stdlib_encoding_base32_any) - -# gen_lib encoding::hex (any) -stdlib_encoding_hex_any = $(HARECACHE)/encoding/hex/encoding_hex-any.o -stdlib_env += HARE_TD_encoding::hex=$(HARECACHE)/encoding/hex/encoding_hex.td -stdlib_deps_any += $(stdlib_encoding_hex_any) -stdlib_encoding_hex_linux = $(stdlib_encoding_hex_any) -stdlib_encoding_hex_freebsd = $(stdlib_encoding_hex_any) - -# gen_lib encoding::pem (any) -stdlib_encoding_pem_any = $(HARECACHE)/encoding/pem/encoding_pem-any.o -stdlib_env += HARE_TD_encoding::pem=$(HARECACHE)/encoding/pem/encoding_pem.td -stdlib_deps_any += $(stdlib_encoding_pem_any) -stdlib_encoding_pem_linux = $(stdlib_encoding_pem_any) -stdlib_encoding_pem_freebsd = $(stdlib_encoding_pem_any) - -# gen_lib encoding::utf8 (any) -stdlib_encoding_utf8_any = $(HARECACHE)/encoding/utf8/encoding_utf8-any.o -stdlib_env += HARE_TD_encoding::utf8=$(HARECACHE)/encoding/utf8/encoding_utf8.td -stdlib_deps_any += $(stdlib_encoding_utf8_any) -stdlib_encoding_utf8_linux = $(stdlib_encoding_utf8_any) -stdlib_encoding_utf8_freebsd = $(stdlib_encoding_utf8_any) - -# gen_lib endian (any) -stdlib_endian_any = $(HARECACHE)/endian/endian-any.o -stdlib_env += HARE_TD_endian=$(HARECACHE)/endian/endian.td -stdlib_deps_any += $(stdlib_endian_any) -stdlib_endian_linux = $(stdlib_endian_any) -stdlib_endian_freebsd = $(stdlib_endian_any) - -# gen_lib errors (any) -stdlib_errors_any = $(HARECACHE)/errors/errors-any.o -stdlib_env += HARE_TD_errors=$(HARECACHE)/errors/errors.td -stdlib_deps_any += $(stdlib_errors_any) -stdlib_errors_linux = $(stdlib_errors_any) -stdlib_errors_freebsd = $(stdlib_errors_any) - -# gen_lib fmt (any) -stdlib_fmt_any = $(HARECACHE)/fmt/fmt-any.o -stdlib_env += HARE_TD_fmt=$(HARECACHE)/fmt/fmt.td -stdlib_deps_any += $(stdlib_fmt_any) -stdlib_fmt_linux = $(stdlib_fmt_any) -stdlib_fmt_freebsd = $(stdlib_fmt_any) - -# gen_lib fnmatch (any) -stdlib_fnmatch_any = $(HARECACHE)/fnmatch/fnmatch-any.o -stdlib_env += HARE_TD_fnmatch=$(HARECACHE)/fnmatch/fnmatch.td -stdlib_deps_any += $(stdlib_fnmatch_any) -stdlib_fnmatch_linux = $(stdlib_fnmatch_any) -stdlib_fnmatch_freebsd = $(stdlib_fnmatch_any) - -# gen_lib format::elf (any) -stdlib_format_elf_any = $(HARECACHE)/format/elf/format_elf-any.o -stdlib_env += HARE_TD_format::elf=$(HARECACHE)/format/elf/format_elf.td -stdlib_deps_any += $(stdlib_format_elf_any) -stdlib_format_elf_linux = $(stdlib_format_elf_any) -stdlib_format_elf_freebsd = $(stdlib_format_elf_any) - -# gen_lib format::ini (any) -stdlib_format_ini_any = $(HARECACHE)/format/ini/format_ini-any.o -stdlib_env += HARE_TD_format::ini=$(HARECACHE)/format/ini/format_ini.td -stdlib_deps_any += $(stdlib_format_ini_any) -stdlib_format_ini_linux = $(stdlib_format_ini_any) -stdlib_format_ini_freebsd = $(stdlib_format_ini_any) - -# gen_lib format::tar (any) -stdlib_format_tar_any = $(HARECACHE)/format/tar/format_tar-any.o -stdlib_env += HARE_TD_format::tar=$(HARECACHE)/format/tar/format_tar.td -stdlib_deps_any += $(stdlib_format_tar_any) -stdlib_format_tar_linux = $(stdlib_format_tar_any) -stdlib_format_tar_freebsd = $(stdlib_format_tar_any) - -# gen_lib fs (any) -stdlib_fs_any = $(HARECACHE)/fs/fs-any.o -stdlib_env += HARE_TD_fs=$(HARECACHE)/fs/fs.td -stdlib_deps_any += $(stdlib_fs_any) -stdlib_fs_linux = $(stdlib_fs_any) -stdlib_fs_freebsd = $(stdlib_fs_any) - -# gen_lib getopt (any) -stdlib_getopt_any = $(HARECACHE)/getopt/getopt-any.o -stdlib_env += HARE_TD_getopt=$(HARECACHE)/getopt/getopt.td -stdlib_deps_any += $(stdlib_getopt_any) -stdlib_getopt_linux = $(stdlib_getopt_any) -stdlib_getopt_freebsd = $(stdlib_getopt_any) - -# gen_lib glob (any) -stdlib_glob_any = $(HARECACHE)/glob/glob-any.o -stdlib_env += HARE_TD_glob=$(HARECACHE)/glob/glob.td -stdlib_deps_any += $(stdlib_glob_any) -stdlib_glob_linux = $(stdlib_glob_any) -stdlib_glob_freebsd = $(stdlib_glob_any) - -# gen_lib hare::ast (any) -stdlib_hare_ast_any = $(HARECACHE)/hare/ast/hare_ast-any.o -stdlib_env += HARE_TD_hare::ast=$(HARECACHE)/hare/ast/hare_ast.td -stdlib_deps_any += $(stdlib_hare_ast_any) -stdlib_hare_ast_linux = $(stdlib_hare_ast_any) -stdlib_hare_ast_freebsd = $(stdlib_hare_ast_any) - -# gen_lib hare::lex (any) -stdlib_hare_lex_any = $(HARECACHE)/hare/lex/hare_lex-any.o -stdlib_env += HARE_TD_hare::lex=$(HARECACHE)/hare/lex/hare_lex.td -stdlib_deps_any += $(stdlib_hare_lex_any) -stdlib_hare_lex_linux = $(stdlib_hare_lex_any) -stdlib_hare_lex_freebsd = $(stdlib_hare_lex_any) - -# gen_lib hare::module (any) -stdlib_hare_module_any = $(HARECACHE)/hare/module/hare_module-any.o -stdlib_env += HARE_TD_hare::module=$(HARECACHE)/hare/module/hare_module.td -stdlib_deps_any += $(stdlib_hare_module_any) -stdlib_hare_module_linux = $(stdlib_hare_module_any) -stdlib_hare_module_freebsd = $(stdlib_hare_module_any) - -# gen_lib hare::parse (any) -stdlib_hare_parse_any = $(HARECACHE)/hare/parse/hare_parse-any.o -stdlib_env += HARE_TD_hare::parse=$(HARECACHE)/hare/parse/hare_parse.td -stdlib_deps_any += $(stdlib_hare_parse_any) -stdlib_hare_parse_linux = $(stdlib_hare_parse_any) -stdlib_hare_parse_freebsd = $(stdlib_hare_parse_any) - -# gen_lib hare::parse::doc (any) -stdlib_hare_parse_doc_any = $(HARECACHE)/hare/parse/doc/hare_parse_doc-any.o -stdlib_env += HARE_TD_hare::parse::doc=$(HARECACHE)/hare/parse/doc/hare_parse_doc.td -stdlib_deps_any += $(stdlib_hare_parse_doc_any) -stdlib_hare_parse_doc_linux = $(stdlib_hare_parse_doc_any) -stdlib_hare_parse_doc_freebsd = $(stdlib_hare_parse_doc_any) - -# gen_lib hare::types (any) -stdlib_hare_types_any = $(HARECACHE)/hare/types/hare_types-any.o -stdlib_env += HARE_TD_hare::types=$(HARECACHE)/hare/types/hare_types.td -stdlib_deps_any += $(stdlib_hare_types_any) -stdlib_hare_types_linux = $(stdlib_hare_types_any) -stdlib_hare_types_freebsd = $(stdlib_hare_types_any) - -# gen_lib hare::unit (any) -stdlib_hare_unit_any = $(HARECACHE)/hare/unit/hare_unit-any.o -stdlib_env += HARE_TD_hare::unit=$(HARECACHE)/hare/unit/hare_unit.td -stdlib_deps_any += $(stdlib_hare_unit_any) -stdlib_hare_unit_linux = $(stdlib_hare_unit_any) -stdlib_hare_unit_freebsd = $(stdlib_hare_unit_any) - -# gen_lib hare::unparse (any) -stdlib_hare_unparse_any = $(HARECACHE)/hare/unparse/hare_unparse-any.o -stdlib_env += HARE_TD_hare::unparse=$(HARECACHE)/hare/unparse/hare_unparse.td -stdlib_deps_any += $(stdlib_hare_unparse_any) -stdlib_hare_unparse_linux = $(stdlib_hare_unparse_any) -stdlib_hare_unparse_freebsd = $(stdlib_hare_unparse_any) - -# gen_lib hash (any) -stdlib_hash_any = $(HARECACHE)/hash/hash-any.o -stdlib_env += HARE_TD_hash=$(HARECACHE)/hash/hash.td -stdlib_deps_any += $(stdlib_hash_any) -stdlib_hash_linux = $(stdlib_hash_any) -stdlib_hash_freebsd = $(stdlib_hash_any) - -# gen_lib hash::adler32 (any) -stdlib_hash_adler32_any = $(HARECACHE)/hash/adler32/hash_adler32-any.o -stdlib_env += HARE_TD_hash::adler32=$(HARECACHE)/hash/adler32/hash_adler32.td -stdlib_deps_any += $(stdlib_hash_adler32_any) -stdlib_hash_adler32_linux = $(stdlib_hash_adler32_any) -stdlib_hash_adler32_freebsd = $(stdlib_hash_adler32_any) - -# gen_lib hash::crc16 (any) -stdlib_hash_crc16_any = $(HARECACHE)/hash/crc16/hash_crc16-any.o -stdlib_env += HARE_TD_hash::crc16=$(HARECACHE)/hash/crc16/hash_crc16.td -stdlib_deps_any += $(stdlib_hash_crc16_any) -stdlib_hash_crc16_linux = $(stdlib_hash_crc16_any) -stdlib_hash_crc16_freebsd = $(stdlib_hash_crc16_any) - -# gen_lib hash::crc32 (any) -stdlib_hash_crc32_any = $(HARECACHE)/hash/crc32/hash_crc32-any.o -stdlib_env += HARE_TD_hash::crc32=$(HARECACHE)/hash/crc32/hash_crc32.td -stdlib_deps_any += $(stdlib_hash_crc32_any) -stdlib_hash_crc32_linux = $(stdlib_hash_crc32_any) -stdlib_hash_crc32_freebsd = $(stdlib_hash_crc32_any) - -# gen_lib hash::crc64 (any) -stdlib_hash_crc64_any = $(HARECACHE)/hash/crc64/hash_crc64-any.o -stdlib_env += HARE_TD_hash::crc64=$(HARECACHE)/hash/crc64/hash_crc64.td -stdlib_deps_any += $(stdlib_hash_crc64_any) -stdlib_hash_crc64_linux = $(stdlib_hash_crc64_any) -stdlib_hash_crc64_freebsd = $(stdlib_hash_crc64_any) - -# gen_lib hash::fnv (any) -stdlib_hash_fnv_any = $(HARECACHE)/hash/fnv/hash_fnv-any.o -stdlib_env += HARE_TD_hash::fnv=$(HARECACHE)/hash/fnv/hash_fnv.td -stdlib_deps_any += $(stdlib_hash_fnv_any) -stdlib_hash_fnv_linux = $(stdlib_hash_fnv_any) -stdlib_hash_fnv_freebsd = $(stdlib_hash_fnv_any) - -# gen_lib hash::siphash (any) -stdlib_hash_siphash_any = $(HARECACHE)/hash/siphash/hash_siphash-any.o -stdlib_env += HARE_TD_hash::siphash=$(HARECACHE)/hash/siphash/hash_siphash.td -stdlib_deps_any += $(stdlib_hash_siphash_any) -stdlib_hash_siphash_linux = $(stdlib_hash_siphash_any) -stdlib_hash_siphash_freebsd = $(stdlib_hash_siphash_any) - -# gen_lib io (linux) -stdlib_io_linux = $(HARECACHE)/io/io-linux.o -stdlib_env += HARE_TD_io=$(HARECACHE)/io/io.td -stdlib_deps_linux += $(stdlib_io_linux) - -# gen_lib io (freebsd) -stdlib_io_freebsd = $(HARECACHE)/io/io-freebsd.o -stdlib_env += HARE_TD_io=$(HARECACHE)/io/io.td -stdlib_deps_freebsd += $(stdlib_io_freebsd) - -# gen_lib linux (linux) -stdlib_linux_linux = $(HARECACHE)/linux/linux-linux.o -stdlib_env += HARE_TD_linux=$(HARECACHE)/linux/linux.td -stdlib_deps_linux += $(stdlib_linux_linux) - -# gen_lib linux::keyctl (linux) -stdlib_linux_keyctl_linux = $(HARECACHE)/linux/keyctl/linux_keyctl-linux.o -stdlib_env += HARE_TD_linux::keyctl=$(HARECACHE)/linux/keyctl/linux_keyctl.td -stdlib_deps_linux += $(stdlib_linux_keyctl_linux) - -# gen_lib linux::timerfd (linux) -stdlib_linux_timerfd_linux = $(HARECACHE)/linux/timerfd/linux_timerfd-linux.o -stdlib_env += HARE_TD_linux::timerfd=$(HARECACHE)/linux/timerfd/linux_timerfd.td -stdlib_deps_linux += $(stdlib_linux_timerfd_linux) - -# gen_lib linux::vdso (linux) -stdlib_linux_vdso_linux = $(HARECACHE)/linux/vdso/linux_vdso-linux.o -stdlib_env += HARE_TD_linux::vdso=$(HARECACHE)/linux/vdso/linux_vdso.td -stdlib_deps_linux += $(stdlib_linux_vdso_linux) - -# gen_lib log (linux) -stdlib_log_linux = $(HARECACHE)/log/log-linux.o -stdlib_env += HARE_TD_log=$(HARECACHE)/log/log.td -stdlib_deps_linux += $(stdlib_log_linux) - -# gen_lib log (freebsd) -stdlib_log_freebsd = $(HARECACHE)/log/log-freebsd.o -stdlib_env += HARE_TD_log=$(HARECACHE)/log/log.td -stdlib_deps_freebsd += $(stdlib_log_freebsd) - -# gen_lib math (any) -stdlib_math_any = $(HARECACHE)/math/math-any.o -stdlib_env += HARE_TD_math=$(HARECACHE)/math/math.td -stdlib_deps_any += $(stdlib_math_any) -stdlib_math_linux = $(stdlib_math_any) -stdlib_math_freebsd = $(stdlib_math_any) - -# gen_lib math::checked (any) -stdlib_math_checked_any = $(HARECACHE)/math/checked/math_checked-any.o -stdlib_env += HARE_TD_math::checked=$(HARECACHE)/math/checked/math_checked.td -stdlib_deps_any += $(stdlib_math_checked_any) -stdlib_math_checked_linux = $(stdlib_math_checked_any) -stdlib_math_checked_freebsd = $(stdlib_math_checked_any) - -# gen_lib math::complex (any) -stdlib_math_complex_any = $(HARECACHE)/math/complex/math_complex-any.o -stdlib_env += HARE_TD_math::complex=$(HARECACHE)/math/complex/math_complex.td -stdlib_deps_any += $(stdlib_math_complex_any) -stdlib_math_complex_linux = $(stdlib_math_complex_any) -stdlib_math_complex_freebsd = $(stdlib_math_complex_any) - -# gen_lib math::random (any) -stdlib_math_random_any = $(HARECACHE)/math/random/math_random-any.o -stdlib_env += HARE_TD_math::random=$(HARECACHE)/math/random/math_random.td -stdlib_deps_any += $(stdlib_math_random_any) -stdlib_math_random_linux = $(stdlib_math_random_any) -stdlib_math_random_freebsd = $(stdlib_math_random_any) - -# gen_lib memio (any) -stdlib_memio_any = $(HARECACHE)/memio/memio-any.o -stdlib_env += HARE_TD_memio=$(HARECACHE)/memio/memio.td -stdlib_deps_any += $(stdlib_memio_any) -stdlib_memio_linux = $(stdlib_memio_any) -stdlib_memio_freebsd = $(stdlib_memio_any) - -# gen_lib net (linux) -stdlib_net_linux = $(HARECACHE)/net/net-linux.o -stdlib_env += HARE_TD_net=$(HARECACHE)/net/net.td -stdlib_deps_linux += $(stdlib_net_linux) - -# gen_lib net (freebsd) -stdlib_net_freebsd = $(HARECACHE)/net/net-freebsd.o -stdlib_env += HARE_TD_net=$(HARECACHE)/net/net.td -stdlib_deps_freebsd += $(stdlib_net_freebsd) - -# gen_lib net::dial (any) -stdlib_net_dial_any = $(HARECACHE)/net/dial/net_dial-any.o -stdlib_env += HARE_TD_net::dial=$(HARECACHE)/net/dial/net_dial.td -stdlib_deps_any += $(stdlib_net_dial_any) -stdlib_net_dial_linux = $(stdlib_net_dial_any) -stdlib_net_dial_freebsd = $(stdlib_net_dial_any) - -# gen_lib net::dns (any) -stdlib_net_dns_any = $(HARECACHE)/net/dns/net_dns-any.o -stdlib_env += HARE_TD_net::dns=$(HARECACHE)/net/dns/net_dns.td -stdlib_deps_any += $(stdlib_net_dns_any) -stdlib_net_dns_linux = $(stdlib_net_dns_any) -stdlib_net_dns_freebsd = $(stdlib_net_dns_any) - -# gen_lib net::ip (linux) -stdlib_net_ip_linux = $(HARECACHE)/net/ip/net_ip-linux.o -stdlib_env += HARE_TD_net::ip=$(HARECACHE)/net/ip/net_ip.td -stdlib_deps_linux += $(stdlib_net_ip_linux) - -# gen_lib net::ip (freebsd) -stdlib_net_ip_freebsd = $(HARECACHE)/net/ip/net_ip-freebsd.o -stdlib_env += HARE_TD_net::ip=$(HARECACHE)/net/ip/net_ip.td -stdlib_deps_freebsd += $(stdlib_net_ip_freebsd) - -# gen_lib net::tcp (linux) -stdlib_net_tcp_linux = $(HARECACHE)/net/tcp/net_tcp-linux.o -stdlib_env += HARE_TD_net::tcp=$(HARECACHE)/net/tcp/net_tcp.td -stdlib_deps_linux += $(stdlib_net_tcp_linux) - -# gen_lib net::tcp (freebsd) -stdlib_net_tcp_freebsd = $(HARECACHE)/net/tcp/net_tcp-freebsd.o -stdlib_env += HARE_TD_net::tcp=$(HARECACHE)/net/tcp/net_tcp.td -stdlib_deps_freebsd += $(stdlib_net_tcp_freebsd) - -# gen_lib net::udp (linux) -stdlib_net_udp_linux = $(HARECACHE)/net/udp/net_udp-linux.o -stdlib_env += HARE_TD_net::udp=$(HARECACHE)/net/udp/net_udp.td -stdlib_deps_linux += $(stdlib_net_udp_linux) - -# gen_lib net::udp (freebsd) -stdlib_net_udp_freebsd = $(HARECACHE)/net/udp/net_udp-freebsd.o -stdlib_env += HARE_TD_net::udp=$(HARECACHE)/net/udp/net_udp.td -stdlib_deps_freebsd += $(stdlib_net_udp_freebsd) - -# gen_lib net::unix (linux) -stdlib_net_unix_linux = $(HARECACHE)/net/unix/net_unix-linux.o -stdlib_env += HARE_TD_net::unix=$(HARECACHE)/net/unix/net_unix.td -stdlib_deps_linux += $(stdlib_net_unix_linux) - -# gen_lib net::unix (freebsd) -stdlib_net_unix_freebsd = $(HARECACHE)/net/unix/net_unix-freebsd.o -stdlib_env += HARE_TD_net::unix=$(HARECACHE)/net/unix/net_unix.td -stdlib_deps_freebsd += $(stdlib_net_unix_freebsd) - -# gen_lib net::uri (any) -stdlib_net_uri_any = $(HARECACHE)/net/uri/net_uri-any.o -stdlib_env += HARE_TD_net::uri=$(HARECACHE)/net/uri/net_uri.td -stdlib_deps_any += $(stdlib_net_uri_any) -stdlib_net_uri_linux = $(stdlib_net_uri_any) -stdlib_net_uri_freebsd = $(stdlib_net_uri_any) - -# gen_lib os (linux) -stdlib_os_linux = $(HARECACHE)/os/os-linux.o -stdlib_env += HARE_TD_os=$(HARECACHE)/os/os.td -stdlib_deps_linux += $(stdlib_os_linux) - -# gen_lib os (freebsd) -stdlib_os_freebsd = $(HARECACHE)/os/os-freebsd.o -stdlib_env += HARE_TD_os=$(HARECACHE)/os/os.td -stdlib_deps_freebsd += $(stdlib_os_freebsd) - -# gen_lib os::exec (linux) -stdlib_os_exec_linux = $(HARECACHE)/os/exec/os_exec-linux.o -stdlib_env += HARE_TD_os::exec=$(HARECACHE)/os/exec/os_exec.td -stdlib_deps_linux += $(stdlib_os_exec_linux) - -# gen_lib os::exec (freebsd) -stdlib_os_exec_freebsd = $(HARECACHE)/os/exec/os_exec-freebsd.o -stdlib_env += HARE_TD_os::exec=$(HARECACHE)/os/exec/os_exec.td -stdlib_deps_freebsd += $(stdlib_os_exec_freebsd) - -# gen_lib path (any) -stdlib_path_any = $(HARECACHE)/path/path-any.o -stdlib_env += HARE_TD_path=$(HARECACHE)/path/path.td -stdlib_deps_any += $(stdlib_path_any) -stdlib_path_linux = $(stdlib_path_any) -stdlib_path_freebsd = $(stdlib_path_any) - -# gen_lib regex (any) -stdlib_regex_any = $(HARECACHE)/regex/regex-any.o -stdlib_env += HARE_TD_regex=$(HARECACHE)/regex/regex.td -stdlib_deps_any += $(stdlib_regex_any) -stdlib_regex_linux = $(stdlib_regex_any) -stdlib_regex_freebsd = $(stdlib_regex_any) - -# gen_lib shlex (any) -stdlib_shlex_any = $(HARECACHE)/shlex/shlex-any.o -stdlib_env += HARE_TD_shlex=$(HARECACHE)/shlex/shlex.td -stdlib_deps_any += $(stdlib_shlex_any) -stdlib_shlex_linux = $(stdlib_shlex_any) -stdlib_shlex_freebsd = $(stdlib_shlex_any) - -# gen_lib sort (any) -stdlib_sort_any = $(HARECACHE)/sort/sort-any.o -stdlib_env += HARE_TD_sort=$(HARECACHE)/sort/sort.td -stdlib_deps_any += $(stdlib_sort_any) -stdlib_sort_linux = $(stdlib_sort_any) -stdlib_sort_freebsd = $(stdlib_sort_any) - -# gen_lib sort::cmp (any) -stdlib_sort_cmp_any = $(HARECACHE)/sort/cmp/sort_cmp-any.o -stdlib_env += HARE_TD_sort::cmp=$(HARECACHE)/sort/cmp/sort_cmp.td -stdlib_deps_any += $(stdlib_sort_cmp_any) -stdlib_sort_cmp_linux = $(stdlib_sort_cmp_any) -stdlib_sort_cmp_freebsd = $(stdlib_sort_cmp_any) - -# gen_lib strconv (any) -stdlib_strconv_any = $(HARECACHE)/strconv/strconv-any.o -stdlib_env += HARE_TD_strconv=$(HARECACHE)/strconv/strconv.td -stdlib_deps_any += $(stdlib_strconv_any) -stdlib_strconv_linux = $(stdlib_strconv_any) -stdlib_strconv_freebsd = $(stdlib_strconv_any) - -# gen_lib strings (any) -stdlib_strings_any = $(HARECACHE)/strings/strings-any.o -stdlib_env += HARE_TD_strings=$(HARECACHE)/strings/strings.td -stdlib_deps_any += $(stdlib_strings_any) -stdlib_strings_linux = $(stdlib_strings_any) -stdlib_strings_freebsd = $(stdlib_strings_any) - -# gen_lib strings::template (any) -stdlib_strings_template_any = $(HARECACHE)/strings/template/strings_template-any.o -stdlib_env += HARE_TD_strings::template=$(HARECACHE)/strings/template/strings_template.td -stdlib_deps_any += $(stdlib_strings_template_any) -stdlib_strings_template_linux = $(stdlib_strings_template_any) -stdlib_strings_template_freebsd = $(stdlib_strings_template_any) - -# gen_lib temp (linux) -stdlib_temp_linux = $(HARECACHE)/temp/temp-linux.o -stdlib_env += HARE_TD_temp=$(HARECACHE)/temp/temp.td -stdlib_deps_linux += $(stdlib_temp_linux) - -# gen_lib temp (freebsd) -stdlib_temp_freebsd = $(HARECACHE)/temp/temp-freebsd.o -stdlib_env += HARE_TD_temp=$(HARECACHE)/temp/temp.td -stdlib_deps_freebsd += $(stdlib_temp_freebsd) - -# gen_lib test (any) -stdlib_test_any = $(HARECACHE)/test/test-any.o -stdlib_env += HARE_TD_test=$(HARECACHE)/test/test.td -stdlib_deps_any += $(stdlib_test_any) -stdlib_test_linux = $(stdlib_test_any) -stdlib_test_freebsd = $(stdlib_test_any) - -# gen_lib time (linux) -stdlib_time_linux = $(HARECACHE)/time/time-linux.o -stdlib_env += HARE_TD_time=$(HARECACHE)/time/time.td -stdlib_deps_linux += $(stdlib_time_linux) - -# gen_lib time (freebsd) -stdlib_time_freebsd = $(HARECACHE)/time/time-freebsd.o -stdlib_env += HARE_TD_time=$(HARECACHE)/time/time.td -stdlib_deps_freebsd += $(stdlib_time_freebsd) - -# gen_lib time::chrono (linux) -stdlib_time_chrono_linux = $(HARECACHE)/time/chrono/time_chrono-linux.o -stdlib_env += HARE_TD_time::chrono=$(HARECACHE)/time/chrono/time_chrono.td -stdlib_deps_linux += $(stdlib_time_chrono_linux) - -# gen_lib time::chrono (freebsd) -stdlib_time_chrono_freebsd = $(HARECACHE)/time/chrono/time_chrono-freebsd.o -stdlib_env += HARE_TD_time::chrono=$(HARECACHE)/time/chrono/time_chrono.td -stdlib_deps_freebsd += $(stdlib_time_chrono_freebsd) - -# gen_lib time::date (linux) -stdlib_time_date_linux = $(HARECACHE)/time/date/time_date-linux.o -stdlib_env += HARE_TD_time::date=$(HARECACHE)/time/date/time_date.td -stdlib_deps_linux += $(stdlib_time_date_linux) - -# gen_lib time::date (freebsd) -stdlib_time_date_freebsd = $(HARECACHE)/time/date/time_date-freebsd.o -stdlib_env += HARE_TD_time::date=$(HARECACHE)/time/date/time_date.td -stdlib_deps_freebsd += $(stdlib_time_date_freebsd) - -# gen_lib types (any) -stdlib_types_any = $(HARECACHE)/types/types-any.o -stdlib_env += HARE_TD_types=$(HARECACHE)/types/types.td -stdlib_deps_any += $(stdlib_types_any) -stdlib_types_linux = $(stdlib_types_any) -stdlib_types_freebsd = $(stdlib_types_any) - -# gen_lib types::c (any) -stdlib_types_c_any = $(HARECACHE)/types/c/types_c-any.o -stdlib_env += HARE_TD_types::c=$(HARECACHE)/types/c/types_c.td -stdlib_deps_any += $(stdlib_types_c_any) -stdlib_types_c_linux = $(stdlib_types_c_any) -stdlib_types_c_freebsd = $(stdlib_types_c_any) - -# gen_lib unix (linux) -stdlib_unix_linux = $(HARECACHE)/unix/unix-linux.o -stdlib_env += HARE_TD_unix=$(HARECACHE)/unix/unix.td -stdlib_deps_linux += $(stdlib_unix_linux) - -# gen_lib unix (freebsd) -stdlib_unix_freebsd = $(HARECACHE)/unix/unix-freebsd.o -stdlib_env += HARE_TD_unix=$(HARECACHE)/unix/unix.td -stdlib_deps_freebsd += $(stdlib_unix_freebsd) - -# gen_lib unix::hosts (linux) -stdlib_unix_hosts_linux = $(HARECACHE)/unix/hosts/unix_hosts-linux.o -stdlib_env += HARE_TD_unix::hosts=$(HARECACHE)/unix/hosts/unix_hosts.td -stdlib_deps_linux += $(stdlib_unix_hosts_linux) - -# gen_lib unix::hosts (freebsd) -stdlib_unix_hosts_freebsd = $(HARECACHE)/unix/hosts/unix_hosts-freebsd.o -stdlib_env += HARE_TD_unix::hosts=$(HARECACHE)/unix/hosts/unix_hosts.td -stdlib_deps_freebsd += $(stdlib_unix_hosts_freebsd) - -# gen_lib unix::passwd (any) -stdlib_unix_passwd_any = $(HARECACHE)/unix/passwd/unix_passwd-any.o -stdlib_env += HARE_TD_unix::passwd=$(HARECACHE)/unix/passwd/unix_passwd.td -stdlib_deps_any += $(stdlib_unix_passwd_any) -stdlib_unix_passwd_linux = $(stdlib_unix_passwd_any) -stdlib_unix_passwd_freebsd = $(stdlib_unix_passwd_any) - -# gen_lib unix::poll (linux) -stdlib_unix_poll_linux = $(HARECACHE)/unix/poll/unix_poll-linux.o -stdlib_env += HARE_TD_unix::poll=$(HARECACHE)/unix/poll/unix_poll.td -stdlib_deps_linux += $(stdlib_unix_poll_linux) - -# gen_lib unix::poll (freebsd) -stdlib_unix_poll_freebsd = $(HARECACHE)/unix/poll/unix_poll-freebsd.o -stdlib_env += HARE_TD_unix::poll=$(HARECACHE)/unix/poll/unix_poll.td -stdlib_deps_freebsd += $(stdlib_unix_poll_freebsd) - -# gen_lib unix::resolvconf (linux) -stdlib_unix_resolvconf_linux = $(HARECACHE)/unix/resolvconf/unix_resolvconf-linux.o -stdlib_env += HARE_TD_unix::resolvconf=$(HARECACHE)/unix/resolvconf/unix_resolvconf.td -stdlib_deps_linux += $(stdlib_unix_resolvconf_linux) - -# gen_lib unix::resolvconf (freebsd) -stdlib_unix_resolvconf_freebsd = $(HARECACHE)/unix/resolvconf/unix_resolvconf-freebsd.o -stdlib_env += HARE_TD_unix::resolvconf=$(HARECACHE)/unix/resolvconf/unix_resolvconf.td -stdlib_deps_freebsd += $(stdlib_unix_resolvconf_freebsd) - -# gen_lib unix::signal (linux) -stdlib_unix_signal_linux = $(HARECACHE)/unix/signal/unix_signal-linux.o -stdlib_env += HARE_TD_unix::signal=$(HARECACHE)/unix/signal/unix_signal.td -stdlib_deps_linux += $(stdlib_unix_signal_linux) - -# gen_lib unix::signal (freebsd) -stdlib_unix_signal_freebsd = $(HARECACHE)/unix/signal/unix_signal-freebsd.o -stdlib_env += HARE_TD_unix::signal=$(HARECACHE)/unix/signal/unix_signal.td -stdlib_deps_freebsd += $(stdlib_unix_signal_freebsd) - -# gen_lib unix::tty (linux) -stdlib_unix_tty_linux = $(HARECACHE)/unix/tty/unix_tty-linux.o -stdlib_env += HARE_TD_unix::tty=$(HARECACHE)/unix/tty/unix_tty.td -stdlib_deps_linux += $(stdlib_unix_tty_linux) - -# gen_lib unix::tty (freebsd) -stdlib_unix_tty_freebsd = $(HARECACHE)/unix/tty/unix_tty-freebsd.o -stdlib_env += HARE_TD_unix::tty=$(HARECACHE)/unix/tty/unix_tty.td -stdlib_deps_freebsd += $(stdlib_unix_tty_freebsd) - -# gen_lib uuid (any) -stdlib_uuid_any = $(HARECACHE)/uuid/uuid-any.o -stdlib_env += HARE_TD_uuid=$(HARECACHE)/uuid/uuid.td -stdlib_deps_any += $(stdlib_uuid_any) -stdlib_uuid_linux = $(stdlib_uuid_any) -stdlib_uuid_freebsd = $(stdlib_uuid_any) - -# ascii (+any) -stdlib_ascii_any_srcs = \ - $(STDLIB)/ascii/ctype.ha \ - $(STDLIB)/ascii/string.ha \ - $(STDLIB)/ascii/valid.ha - -$(HARECACHE)/ascii/ascii-any.ssa: $(stdlib_ascii_any_srcs) $(stdlib_rt) $(stdlib_strings_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/ascii - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nascii \ - -t$(HARECACHE)/ascii/ascii.td $(stdlib_ascii_any_srcs) - -# bufio (+any) -stdlib_bufio_any_srcs = \ - $(STDLIB)/bufio/stream.ha \ - $(STDLIB)/bufio/scanner.ha - -$(HARECACHE)/bufio/bufio-any.ssa: $(stdlib_bufio_any_srcs) $(stdlib_rt) $(stdlib_bytes_$(PLATFORM)) $(stdlib_encoding_utf8_$(PLATFORM)) $(stdlib_errors_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) $(stdlib_types_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/bufio - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nbufio \ - -t$(HARECACHE)/bufio/bufio.td $(stdlib_bufio_any_srcs) - -# bytes (+any) -stdlib_bytes_any_srcs = \ - $(STDLIB)/bytes/contains.ha \ - $(STDLIB)/bytes/equal.ha \ - $(STDLIB)/bytes/index.ha \ - $(STDLIB)/bytes/reverse.ha \ - $(STDLIB)/bytes/tokenize.ha \ - $(STDLIB)/bytes/trim.ha \ - $(STDLIB)/bytes/two_way.ha \ - $(STDLIB)/bytes/zero.ha - -$(HARECACHE)/bytes/bytes-any.ssa: $(stdlib_bytes_any_srcs) $(stdlib_rt) $(stdlib_types_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/bytes - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nbytes \ - -t$(HARECACHE)/bytes/bytes.td $(stdlib_bytes_any_srcs) - -# cmd::hare::build (+any) -stdlib_cmd_hare_build_any_srcs = \ - $(STDLIB)/cmd/hare/build/gather.ha \ - $(STDLIB)/cmd/hare/build/queue.ha \ - $(STDLIB)/cmd/hare/build/types.ha \ - $(STDLIB)/cmd/hare/build/util.ha - -$(HARECACHE)/cmd/hare/build/cmd_hare_build-any.ssa: $(stdlib_cmd_hare_build_any_srcs) $(stdlib_rt) $(stdlib_encoding_hex_$(PLATFORM)) $(stdlib_crypto_sha256_$(PLATFORM)) $(stdlib_errors_$(PLATFORM)) $(stdlib_fmt_$(PLATFORM)) $(stdlib_fs_$(PLATFORM)) $(stdlib_hare_ast_$(PLATFORM)) $(stdlib_hare_module_$(PLATFORM)) $(stdlib_hare_unparse_$(PLATFORM)) $(stdlib_hash_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_memio_$(PLATFORM)) $(stdlib_os_$(PLATFORM)) $(stdlib_os_exec_$(PLATFORM)) $(stdlib_path_$(PLATFORM)) $(stdlib_sort_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) $(stdlib_shlex_$(PLATFORM)) $(stdlib_unix_tty_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/cmd/hare/build - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Ncmd::hare::build \ - -t$(HARECACHE)/cmd/hare/build/cmd_hare_build.td $(stdlib_cmd_hare_build_any_srcs) - -# crypto (+any) -stdlib_crypto_any_srcs = \ - $(STDLIB)/crypto/authenc.ha \ - $(STDLIB)/crypto/keyderiv.ha - -$(HARECACHE)/crypto/crypto-any.ssa: $(stdlib_crypto_any_srcs) $(stdlib_rt) $(stdlib_bytes_$(PLATFORM)) $(stdlib_crypto_argon2_$(PLATFORM)) $(stdlib_crypto_chachapoly_$(PLATFORM)) $(stdlib_crypto_math_$(PLATFORM)) $(stdlib_endian_$(PLATFORM)) $(stdlib_errors_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_memio_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/crypto - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Ncrypto \ - -t$(HARECACHE)/crypto/crypto.td $(stdlib_crypto_any_srcs) - -# crypto::aes (+any) -stdlib_crypto_aes_any_srcs = \ - $(STDLIB)/crypto/aes/aes.ha \ - $(STDLIB)/crypto/aes/aes_ct64.ha \ - $(STDLIB)/crypto/aes/block.ha - -$(HARECACHE)/crypto/aes/crypto_aes-any.ssa: $(stdlib_crypto_aes_any_srcs) $(stdlib_rt) $(stdlib_bytes_$(PLATFORM)) $(stdlib_crypto_cipher_$(PLATFORM)) $(stdlib_crypto_math_$(PLATFORM)) $(stdlib_endian_$(PLATFORM)) $(stdlib_rt_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/crypto/aes - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Ncrypto::aes \ - -t$(HARECACHE)/crypto/aes/crypto_aes.td $(stdlib_crypto_aes_any_srcs) - -# crypto::aes::xts (+any) -stdlib_crypto_aes_xts_any_srcs = \ - $(STDLIB)/crypto/aes/xts/xts.ha - -$(HARECACHE)/crypto/aes/xts/crypto_aes_xts-any.ssa: $(stdlib_crypto_aes_xts_any_srcs) $(stdlib_rt) $(stdlib_crypto_aes_$(PLATFORM)) $(stdlib_crypto_cipher_$(PLATFORM)) $(stdlib_bytes_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/crypto/aes/xts - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Ncrypto::aes::xts \ - -t$(HARECACHE)/crypto/aes/xts/crypto_aes_xts.td $(stdlib_crypto_aes_xts_any_srcs) - -# crypto::argon2 (+any) -stdlib_crypto_argon2_any_srcs = \ - $(STDLIB)/crypto/argon2/argon2.ha - -$(HARECACHE)/crypto/argon2/crypto_argon2-any.ssa: $(stdlib_crypto_argon2_any_srcs) $(stdlib_rt) $(stdlib_bytes_$(PLATFORM)) $(stdlib_crypto_blake2b_$(PLATFORM)) $(stdlib_crypto_math_$(PLATFORM)) $(stdlib_endian_$(PLATFORM)) $(stdlib_errors_$(PLATFORM)) $(stdlib_hash_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_memio_$(PLATFORM)) $(stdlib_rt_$(PLATFORM)) $(stdlib_types_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/crypto/argon2 - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Ncrypto::argon2 \ - -t$(HARECACHE)/crypto/argon2/crypto_argon2.td $(stdlib_crypto_argon2_any_srcs) - -# crypto::bcrypt (+any) -stdlib_crypto_bcrypt_any_srcs = \ - $(STDLIB)/crypto/bcrypt/bcrypt.ha \ - $(STDLIB)/crypto/bcrypt/base64.ha - -$(HARECACHE)/crypto/bcrypt/crypto_bcrypt-any.ssa: $(stdlib_crypto_bcrypt_any_srcs) $(stdlib_rt) $(stdlib_bytes_$(PLATFORM)) $(stdlib_crypto_$(PLATFORM)) $(stdlib_crypto_blowfish_$(PLATFORM)) $(stdlib_crypto_cipher_$(PLATFORM)) $(stdlib_crypto_random_$(PLATFORM)) $(stdlib_encoding_base64_$(PLATFORM)) $(stdlib_errors_$(PLATFORM)) $(stdlib_fmt_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_memio_$(PLATFORM)) $(stdlib_strconv_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/crypto/bcrypt - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Ncrypto::bcrypt \ - -t$(HARECACHE)/crypto/bcrypt/crypto_bcrypt.td $(stdlib_crypto_bcrypt_any_srcs) - -# crypto::blake2b (+any) -stdlib_crypto_blake2b_any_srcs = \ - $(STDLIB)/crypto/blake2b/blake2b.ha - -$(HARECACHE)/crypto/blake2b/crypto_blake2b-any.ssa: $(stdlib_crypto_blake2b_any_srcs) $(stdlib_rt) $(stdlib_bytes_$(PLATFORM)) $(stdlib_crypto_math_$(PLATFORM)) $(stdlib_endian_$(PLATFORM)) $(stdlib_hash_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/crypto/blake2b - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Ncrypto::blake2b \ - -t$(HARECACHE)/crypto/blake2b/crypto_blake2b.td $(stdlib_crypto_blake2b_any_srcs) - -# crypto::blowfish (+any) -stdlib_crypto_blowfish_any_srcs = \ - $(STDLIB)/crypto/blowfish/blowfish.ha \ - $(STDLIB)/crypto/blowfish/const.ha - -$(HARECACHE)/crypto/blowfish/crypto_blowfish-any.ssa: $(stdlib_crypto_blowfish_any_srcs) $(stdlib_rt) $(stdlib_bytes_$(PLATFORM)) $(stdlib_crypto_cipher_$(PLATFORM)) $(stdlib_endian_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/crypto/blowfish - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Ncrypto::blowfish \ - -t$(HARECACHE)/crypto/blowfish/crypto_blowfish.td $(stdlib_crypto_blowfish_any_srcs) - -# crypto::bigint (+any) -stdlib_crypto_bigint_any_srcs = \ - $(STDLIB)/crypto/bigint/arithm.ha \ - $(STDLIB)/crypto/bigint/encoding.ha \ - $(STDLIB)/crypto/bigint/monty.ha \ - $(STDLIB)/crypto/bigint/types.ha \ - $(STDLIB)/crypto/bigint/util.ha - -$(HARECACHE)/crypto/bigint/crypto_bigint-any.ssa: $(stdlib_crypto_bigint_any_srcs) $(stdlib_rt) $(stdlib_bytes_$(PLATFORM)) $(stdlib_crypto_math_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/crypto/bigint - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Ncrypto::bigint \ - -t$(HARECACHE)/crypto/bigint/crypto_bigint.td $(stdlib_crypto_bigint_any_srcs) - -# crypto::chacha (+any) -stdlib_crypto_chacha_any_srcs = \ - $(STDLIB)/crypto/chacha/chacha20.ha - -$(HARECACHE)/crypto/chacha/crypto_chacha-any.ssa: $(stdlib_crypto_chacha_any_srcs) $(stdlib_rt) $(stdlib_bytes_$(PLATFORM)) $(stdlib_crypto_cipher_$(PLATFORM)) $(stdlib_crypto_math_$(PLATFORM)) $(stdlib_endian_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/crypto/chacha - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Ncrypto::chacha \ - -t$(HARECACHE)/crypto/chacha/crypto_chacha.td $(stdlib_crypto_chacha_any_srcs) - -# crypto::chachapoly (+any) -stdlib_crypto_chachapoly_any_srcs = \ - $(STDLIB)/crypto/chachapoly/chachapoly.ha - -$(HARECACHE)/crypto/chachapoly/crypto_chachapoly-any.ssa: $(stdlib_crypto_chachapoly_any_srcs) $(stdlib_rt) $(stdlib_bufio_$(PLATFORM)) $(stdlib_bytes_$(PLATFORM)) $(stdlib_crypto_chacha_$(PLATFORM)) $(stdlib_crypto_mac_$(PLATFORM)) $(stdlib_crypto_math_$(PLATFORM)) $(stdlib_crypto_poly1305_$(PLATFORM)) $(stdlib_endian_$(PLATFORM)) $(stdlib_errors_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_types_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/crypto/chachapoly - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Ncrypto::chachapoly \ - -t$(HARECACHE)/crypto/chachapoly/crypto_chachapoly.td $(stdlib_crypto_chachapoly_any_srcs) - -# crypto::cipher (+any) -stdlib_crypto_cipher_any_srcs = \ - $(STDLIB)/crypto/cipher/cipher.ha \ - $(STDLIB)/crypto/cipher/block.ha \ - $(STDLIB)/crypto/cipher/cbc.ha \ - $(STDLIB)/crypto/cipher/ctr.ha \ - $(STDLIB)/crypto/cipher/stream.ha \ - $(STDLIB)/crypto/cipher/gcm.ha \ - $(STDLIB)/crypto/cipher/ghash.ha - -$(HARECACHE)/crypto/cipher/crypto_cipher-any.ssa: $(stdlib_crypto_cipher_any_srcs) $(stdlib_rt) $(stdlib_crypto_math_$(PLATFORM)) $(stdlib_bytes_$(PLATFORM)) $(stdlib_endian_$(PLATFORM)) $(stdlib_errors_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_types_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/crypto/cipher - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Ncrypto::cipher \ - -t$(HARECACHE)/crypto/cipher/crypto_cipher.td $(stdlib_crypto_cipher_any_srcs) - -# crypto::hkdf (+any) -stdlib_crypto_hkdf_any_srcs = \ - $(STDLIB)/crypto/hkdf/hkdf.ha - -$(HARECACHE)/crypto/hkdf/crypto_hkdf-any.ssa: $(stdlib_crypto_hkdf_any_srcs) $(stdlib_rt) $(stdlib_bytes_$(PLATFORM)) $(stdlib_crypto_hmac_$(PLATFORM)) $(stdlib_crypto_mac_$(PLATFORM)) $(stdlib_hash_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/crypto/hkdf - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Ncrypto::hkdf \ - -t$(HARECACHE)/crypto/hkdf/crypto_hkdf.td $(stdlib_crypto_hkdf_any_srcs) - -# crypto::hmac (+any) -stdlib_crypto_hmac_any_srcs = \ - $(STDLIB)/crypto/hmac/hmac.ha \ - $(STDLIB)/crypto/hmac/sha1.ha \ - $(STDLIB)/crypto/hmac/sha256.ha - -$(HARECACHE)/crypto/hmac/crypto_hmac-any.ssa: $(stdlib_crypto_hmac_any_srcs) $(stdlib_rt) $(stdlib_crypto_mac_$(PLATFORM)) $(stdlib_crypto_sha1_$(PLATFORM)) $(stdlib_crypto_sha256_$(PLATFORM)) $(stdlib_hash_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_bytes_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/crypto/hmac - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Ncrypto::hmac \ - -t$(HARECACHE)/crypto/hmac/crypto_hmac.td $(stdlib_crypto_hmac_any_srcs) - -# crypto::mac (+any) -stdlib_crypto_mac_any_srcs = \ - $(STDLIB)/crypto/mac/mac.ha - -$(HARECACHE)/crypto/mac/crypto_mac-any.ssa: $(stdlib_crypto_mac_any_srcs) $(stdlib_rt) $(stdlib_io_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/crypto/mac - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Ncrypto::mac \ - -t$(HARECACHE)/crypto/mac/crypto_mac.td $(stdlib_crypto_mac_any_srcs) - -# crypto::math (+any) -stdlib_crypto_math_any_srcs = \ - $(STDLIB)/crypto/math/arithm.ha \ - $(STDLIB)/crypto/math/bits.ha - -$(HARECACHE)/crypto/math/crypto_math-any.ssa: $(stdlib_crypto_math_any_srcs) $(stdlib_rt) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/crypto/math - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Ncrypto::math \ - -t$(HARECACHE)/crypto/math/crypto_math.td $(stdlib_crypto_math_any_srcs) - -# crypto::random (+linux) -stdlib_crypto_random_linux_srcs = \ - $(STDLIB)/crypto/random/+linux.ha \ - $(STDLIB)/crypto/random/random.ha - -$(HARECACHE)/crypto/random/crypto_random-linux.ssa: $(stdlib_crypto_random_linux_srcs) $(stdlib_rt) $(stdlib_rt_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_errors_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/crypto/random - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Ncrypto::random \ - -t$(HARECACHE)/crypto/random/crypto_random.td $(stdlib_crypto_random_linux_srcs) - -# crypto::random (+freebsd) -stdlib_crypto_random_freebsd_srcs = \ - $(STDLIB)/crypto/random/+freebsd.ha \ - $(STDLIB)/crypto/random/random.ha - -$(HARECACHE)/crypto/random/crypto_random-freebsd.ssa: $(stdlib_crypto_random_freebsd_srcs) $(stdlib_rt) $(stdlib_rt_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_errors_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/crypto/random - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Ncrypto::random \ - -t$(HARECACHE)/crypto/random/crypto_random.td $(stdlib_crypto_random_freebsd_srcs) - -# crypto::rsa (+any) -stdlib_crypto_rsa_any_srcs = \ - $(STDLIB)/crypto/rsa/core.ha \ - $(STDLIB)/crypto/rsa/errors.ha \ - $(STDLIB)/crypto/rsa/keys.ha \ - $(STDLIB)/crypto/rsa/pkcs1.ha - -$(HARECACHE)/crypto/rsa/crypto_rsa-any.ssa: $(stdlib_crypto_rsa_any_srcs) $(stdlib_rt) $(stdlib_bufio_$(PLATFORM)) $(stdlib_bytes_$(PLATFORM)) $(stdlib_crypto_bigint_$(PLATFORM)) $(stdlib_crypto_math_$(PLATFORM)) $(stdlib_crypto_sha1_$(PLATFORM)) $(stdlib_crypto_sha256_$(PLATFORM)) $(stdlib_crypto_sha512_$(PLATFORM)) $(stdlib_endian_$(PLATFORM)) $(stdlib_errors_$(PLATFORM)) $(stdlib_hash_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_memio_$(PLATFORM)) $(stdlib_types_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/crypto/rsa - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Ncrypto::rsa \ - -t$(HARECACHE)/crypto/rsa/crypto_rsa.td $(stdlib_crypto_rsa_any_srcs) - -# crypto::poly1305 (+any) -stdlib_crypto_poly1305_any_srcs = \ - $(STDLIB)/crypto/poly1305/poly1305.ha - -$(HARECACHE)/crypto/poly1305/crypto_poly1305-any.ssa: $(stdlib_crypto_poly1305_any_srcs) $(stdlib_rt) $(stdlib_bytes_$(PLATFORM)) $(stdlib_crypto_mac_$(PLATFORM)) $(stdlib_endian_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/crypto/poly1305 - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Ncrypto::poly1305 \ - -t$(HARECACHE)/crypto/poly1305/crypto_poly1305.td $(stdlib_crypto_poly1305_any_srcs) - -# crypto::salsa (+any) -stdlib_crypto_salsa_any_srcs = \ - $(STDLIB)/crypto/salsa/salsa20.ha - -$(HARECACHE)/crypto/salsa/crypto_salsa-any.ssa: $(stdlib_crypto_salsa_any_srcs) $(stdlib_rt) $(stdlib_bytes_$(PLATFORM)) $(stdlib_crypto_cipher_$(PLATFORM)) $(stdlib_crypto_math_$(PLATFORM)) $(stdlib_endian_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/crypto/salsa - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Ncrypto::salsa \ - -t$(HARECACHE)/crypto/salsa/crypto_salsa.td $(stdlib_crypto_salsa_any_srcs) - -# crypto::sha1 (+any) -stdlib_crypto_sha1_any_srcs = \ - $(STDLIB)/crypto/sha1/sha1.ha - -$(HARECACHE)/crypto/sha1/crypto_sha1-any.ssa: $(stdlib_crypto_sha1_any_srcs) $(stdlib_rt) $(stdlib_crypto_math_$(PLATFORM)) $(stdlib_bytes_$(PLATFORM)) $(stdlib_hash_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_endian_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/crypto/sha1 - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Ncrypto::sha1 \ - -t$(HARECACHE)/crypto/sha1/crypto_sha1.td $(stdlib_crypto_sha1_any_srcs) - -# crypto::sha256 (+any) -stdlib_crypto_sha256_any_srcs = \ - $(STDLIB)/crypto/sha256/sha256.ha - -$(HARECACHE)/crypto/sha256/crypto_sha256-any.ssa: $(stdlib_crypto_sha256_any_srcs) $(stdlib_rt) $(stdlib_crypto_math_$(PLATFORM)) $(stdlib_bytes_$(PLATFORM)) $(stdlib_hash_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_endian_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/crypto/sha256 - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Ncrypto::sha256 \ - -t$(HARECACHE)/crypto/sha256/crypto_sha256.td $(stdlib_crypto_sha256_any_srcs) - -# crypto::sha512 (+any) -stdlib_crypto_sha512_any_srcs = \ - $(STDLIB)/crypto/sha512/sha512.ha - -$(HARECACHE)/crypto/sha512/crypto_sha512-any.ssa: $(stdlib_crypto_sha512_any_srcs) $(stdlib_rt) $(stdlib_crypto_math_$(PLATFORM)) $(stdlib_bytes_$(PLATFORM)) $(stdlib_hash_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_endian_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/crypto/sha512 - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Ncrypto::sha512 \ - -t$(HARECACHE)/crypto/sha512/crypto_sha512.td $(stdlib_crypto_sha512_any_srcs) - -# crypto::curve25519 (+any) -stdlib_crypto_curve25519_any_srcs = \ - $(STDLIB)/crypto/curve25519/curve25519.ha - -$(HARECACHE)/crypto/curve25519/crypto_curve25519-any.ssa: $(stdlib_crypto_curve25519_any_srcs) $(stdlib_rt) $(stdlib_bytes_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/crypto/curve25519 - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Ncrypto::curve25519 \ - -t$(HARECACHE)/crypto/curve25519/crypto_curve25519.td $(stdlib_crypto_curve25519_any_srcs) - -# crypto::ed25519 (+any) -stdlib_crypto_ed25519_any_srcs = \ - $(STDLIB)/crypto/ed25519/ed25519.ha \ - $(STDLIB)/crypto/ed25519/edwards25519.ha - -$(HARECACHE)/crypto/ed25519/crypto_ed25519-any.ssa: $(stdlib_crypto_ed25519_any_srcs) $(stdlib_rt) $(stdlib_bytes_$(PLATFORM)) $(stdlib_crypto_sha512_$(PLATFORM)) $(stdlib_hash_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/crypto/ed25519 - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Ncrypto::ed25519 \ - -t$(HARECACHE)/crypto/ed25519/crypto_ed25519.td $(stdlib_crypto_ed25519_any_srcs) - -# crypto::x25519 (+any) -stdlib_crypto_x25519_any_srcs = \ - $(STDLIB)/crypto/x25519/x25519.ha - -$(HARECACHE)/crypto/x25519/crypto_x25519-any.ssa: $(stdlib_crypto_x25519_any_srcs) $(stdlib_rt) $(stdlib_crypto_curve25519_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/crypto/x25519 - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Ncrypto::x25519 \ - -t$(HARECACHE)/crypto/x25519/crypto_x25519.td $(stdlib_crypto_x25519_any_srcs) - -# dirs (+any) -stdlib_dirs_any_srcs = \ - $(STDLIB)/dirs/xdg.ha - -$(HARECACHE)/dirs/dirs-any.ssa: $(stdlib_dirs_any_srcs) $(stdlib_rt) $(stdlib_errors_$(PLATFORM)) $(stdlib_fs_$(PLATFORM)) $(stdlib_os_$(PLATFORM)) $(stdlib_path_$(PLATFORM)) $(stdlib_fmt_$(PLATFORM)) $(stdlib_unix_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/dirs - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Ndirs \ - -t$(HARECACHE)/dirs/dirs.td $(stdlib_dirs_any_srcs) - -# encoding::base64 (+any) -stdlib_encoding_base64_any_srcs = \ - $(STDLIB)/encoding/base64/base64.ha - -$(HARECACHE)/encoding/base64/encoding_base64-any.ssa: $(stdlib_encoding_base64_any_srcs) $(stdlib_rt) $(stdlib_ascii_$(PLATFORM)) $(stdlib_bytes_$(PLATFORM)) $(stdlib_errors_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_os_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) $(stdlib_memio_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/encoding/base64 - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nencoding::base64 \ - -t$(HARECACHE)/encoding/base64/encoding_base64.td $(stdlib_encoding_base64_any_srcs) - -# encoding::base32 (+any) -stdlib_encoding_base32_any_srcs = \ - $(STDLIB)/encoding/base32/base32.ha - -$(HARECACHE)/encoding/base32/encoding_base32-any.ssa: $(stdlib_encoding_base32_any_srcs) $(stdlib_rt) $(stdlib_ascii_$(PLATFORM)) $(stdlib_bytes_$(PLATFORM)) $(stdlib_errors_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) $(stdlib_os_$(PLATFORM)) $(stdlib_memio_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/encoding/base32 - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nencoding::base32 \ - -t$(HARECACHE)/encoding/base32/encoding_base32.td $(stdlib_encoding_base32_any_srcs) - -# encoding::hex (+any) -stdlib_encoding_hex_any_srcs = \ - $(STDLIB)/encoding/hex/hex.ha - -$(HARECACHE)/encoding/hex/encoding_hex-any.ssa: $(stdlib_encoding_hex_any_srcs) $(stdlib_rt) $(stdlib_ascii_$(PLATFORM)) $(stdlib_bytes_$(PLATFORM)) $(stdlib_errors_$(PLATFORM)) $(stdlib_fmt_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_strconv_$(PLATFORM)) $(stdlib_memio_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/encoding/hex - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nencoding::hex \ - -t$(HARECACHE)/encoding/hex/encoding_hex.td $(stdlib_encoding_hex_any_srcs) - -# encoding::pem (+any) -stdlib_encoding_pem_any_srcs = \ - $(STDLIB)/encoding/pem/pem.ha - -$(HARECACHE)/encoding/pem/encoding_pem-any.ssa: $(stdlib_encoding_pem_any_srcs) $(stdlib_rt) $(stdlib_strings_$(PLATFORM)) $(stdlib_memio_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_errors_$(PLATFORM)) $(stdlib_encoding_base64_$(PLATFORM)) $(stdlib_ascii_$(PLATFORM)) $(stdlib_os_$(PLATFORM)) $(stdlib_fmt_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/encoding/pem - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nencoding::pem \ - -t$(HARECACHE)/encoding/pem/encoding_pem.td $(stdlib_encoding_pem_any_srcs) - -# encoding::utf8 (+any) -stdlib_encoding_utf8_any_srcs = \ - $(STDLIB)/encoding/utf8/decode.ha \ - $(STDLIB)/encoding/utf8/decodetable.ha \ - $(STDLIB)/encoding/utf8/encode.ha \ - $(STDLIB)/encoding/utf8/rune.ha - -$(HARECACHE)/encoding/utf8/encoding_utf8-any.ssa: $(stdlib_encoding_utf8_any_srcs) $(stdlib_rt) $(stdlib_types_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/encoding/utf8 - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nencoding::utf8 \ - -t$(HARECACHE)/encoding/utf8/encoding_utf8.td $(stdlib_encoding_utf8_any_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-any.ssa: $(stdlib_endian_any_srcs) $(stdlib_rt) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/endian - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nendian \ - -t$(HARECACHE)/endian/endian.td $(stdlib_endian_any_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-any.ssa: $(stdlib_errors_any_srcs) $(stdlib_rt) $(stdlib_rt_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/errors - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nerrors \ - -t$(HARECACHE)/errors/errors.td $(stdlib_errors_any_srcs) - -# fmt (+any) -stdlib_fmt_any_srcs = \ - $(STDLIB)/fmt/fmt.ha - -$(HARECACHE)/fmt/fmt-any.ssa: $(stdlib_fmt_any_srcs) $(stdlib_rt) $(stdlib_ascii_$(PLATFORM)) $(stdlib_encoding_utf8_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_memio_$(PLATFORM)) $(stdlib_os_$(PLATFORM)) $(stdlib_strconv_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) $(stdlib_types_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/fmt - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nfmt \ - -t$(HARECACHE)/fmt/fmt.td $(stdlib_fmt_any_srcs) - -# fnmatch (+any) -stdlib_fnmatch_any_srcs = \ - $(STDLIB)/fnmatch/fnmatch.ha - -$(HARECACHE)/fnmatch/fnmatch-any.ssa: $(stdlib_fnmatch_any_srcs) $(stdlib_rt) $(stdlib_ascii_$(PLATFORM)) $(stdlib_errors_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) $(stdlib_sort_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/fnmatch - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nfnmatch \ - -t$(HARECACHE)/fnmatch/fnmatch.td $(stdlib_fnmatch_any_srcs) - -# format::elf (+any) -stdlib_format_elf_any_srcs = \ - $(STDLIB)/format/elf/arch+$(ARCH).ha \ - $(STDLIB)/format/elf/platform+$(PLATFORM).ha \ - $(STDLIB)/format/elf/types.ha - -$(HARECACHE)/format/elf/format_elf-any.ssa: $(stdlib_format_elf_any_srcs) $(stdlib_rt) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/format/elf - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nformat::elf \ - -t$(HARECACHE)/format/elf/format_elf.td $(stdlib_format_elf_any_srcs) - -# format::ini (+any) -stdlib_format_ini_any_srcs = \ - $(STDLIB)/format/ini/scan.ha \ - $(STDLIB)/format/ini/types.ha - -$(HARECACHE)/format/ini/format_ini-any.ssa: $(stdlib_format_ini_any_srcs) $(stdlib_rt) $(stdlib_encoding_utf8_$(PLATFORM)) $(stdlib_fmt_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_memio_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/format/ini - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nformat::ini \ - -t$(HARECACHE)/format/ini/format_ini.td $(stdlib_format_ini_any_srcs) - -# format::tar (+any) -stdlib_format_tar_any_srcs = \ - $(STDLIB)/format/tar/types.ha \ - $(STDLIB)/format/tar/reader.ha - -$(HARECACHE)/format/tar/format_tar-any.ssa: $(stdlib_format_tar_any_srcs) $(stdlib_rt) $(stdlib_bytes_$(PLATFORM)) $(stdlib_endian_$(PLATFORM)) $(stdlib_errors_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_strconv_$(PLATFORM)) $(stdlib_memio_$(PLATFORM)) $(stdlib_types_c_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/format/tar - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nformat::tar \ - -t$(HARECACHE)/format/tar/format_tar.td $(stdlib_format_tar_any_srcs) - -# fs (+any) -stdlib_fs_any_srcs = \ - $(STDLIB)/fs/types.ha \ - $(STDLIB)/fs/fs.ha \ - $(STDLIB)/fs/util.ha - -$(HARECACHE)/fs/fs-any.ssa: $(stdlib_fs_any_srcs) $(stdlib_rt) $(stdlib_io_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) $(stdlib_path_$(PLATFORM)) $(stdlib_time_$(PLATFORM)) $(stdlib_errors_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/fs - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nfs \ - -t$(HARECACHE)/fs/fs.td $(stdlib_fs_any_srcs) - -# getopt (+any) -stdlib_getopt_any_srcs = \ - $(STDLIB)/getopt/getopts.ha - -$(HARECACHE)/getopt/getopt-any.ssa: $(stdlib_getopt_any_srcs) $(stdlib_rt) $(stdlib_encoding_utf8_$(PLATFORM)) $(stdlib_fmt_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_os_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/getopt - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Ngetopt \ - -t$(HARECACHE)/getopt/getopt.td $(stdlib_getopt_any_srcs) - -# glob (+any) -stdlib_glob_any_srcs = \ - $(STDLIB)/glob/glob.ha - -$(HARECACHE)/glob/glob-any.ssa: $(stdlib_glob_any_srcs) $(stdlib_rt) $(stdlib_fnmatch_$(PLATFORM)) $(stdlib_fs_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_os_$(PLATFORM)) $(stdlib_sort_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) $(stdlib_memio_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/glob - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nglob \ - -t$(HARECACHE)/glob/glob.td $(stdlib_glob_any_srcs) - -# hare::ast (+any) -stdlib_hare_ast_any_srcs = \ - $(STDLIB)/hare/ast/decl.ha \ - $(STDLIB)/hare/ast/expr.ha \ - $(STDLIB)/hare/ast/ident.ha \ - $(STDLIB)/hare/ast/import.ha \ - $(STDLIB)/hare/ast/type.ha \ - $(STDLIB)/hare/ast/unit.ha - -$(HARECACHE)/hare/ast/hare_ast-any.ssa: $(stdlib_hare_ast_any_srcs) $(stdlib_rt) $(stdlib_hare_lex_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/hare/ast - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nhare::ast \ - -t$(HARECACHE)/hare/ast/hare_ast.td $(stdlib_hare_ast_any_srcs) - -# hare::lex (+any) -stdlib_hare_lex_any_srcs = \ - $(STDLIB)/hare/lex/token.ha \ - $(STDLIB)/hare/lex/lex.ha - -$(HARECACHE)/hare/lex/hare_lex-any.ssa: $(stdlib_hare_lex_any_srcs) $(stdlib_rt) $(stdlib_ascii_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_encoding_utf8_$(PLATFORM)) $(stdlib_fmt_$(PLATFORM)) $(stdlib_memio_$(PLATFORM)) $(stdlib_sort_$(PLATFORM)) $(stdlib_sort_cmp_$(PLATFORM)) $(stdlib_strconv_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) $(stdlib_path_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/hare/lex - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nhare::lex \ - -t$(HARECACHE)/hare/lex/hare_lex.td $(stdlib_hare_lex_any_srcs) - -# hare::module (+any) -stdlib_hare_module_any_srcs = \ - $(STDLIB)/hare/module/cache.ha \ - $(STDLIB)/hare/module/deps.ha \ - $(STDLIB)/hare/module/types.ha \ - $(STDLIB)/hare/module/format.ha \ - $(STDLIB)/hare/module/srcs.ha \ - $(STDLIB)/hare/module/util.ha - -$(HARECACHE)/hare/module/hare_module-any.ssa: $(stdlib_hare_module_any_srcs) $(stdlib_rt) $(stdlib_ascii_$(PLATFORM)) $(stdlib_memio_$(PLATFORM)) $(stdlib_bytes_$(PLATFORM)) $(stdlib_datetime_$(PLATFORM)) $(stdlib_encoding_utf8_$(PLATFORM)) $(stdlib_fmt_$(PLATFORM)) $(stdlib_fs_$(PLATFORM)) $(stdlib_hare_ast_$(PLATFORM)) $(stdlib_hare_lex_$(PLATFORM)) $(stdlib_hare_parse_$(PLATFORM)) $(stdlib_hare_unparse_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_os_$(PLATFORM)) $(stdlib_path_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) $(stdlib_time_$(PLATFORM)) $(stdlib_time_chrono_$(PLATFORM)) $(stdlib_time_date_$(PLATFORM)) $(stdlib_types_$(PLATFORM)) $(stdlib_encoding_hex_$(PLATFORM)) $(stdlib_sort_$(PLATFORM)) $(stdlib_sort_cmp_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/hare/module - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nhare::module \ - -t$(HARECACHE)/hare/module/hare_module.td $(stdlib_hare_module_any_srcs) - -# hare::parse (+any) -stdlib_hare_parse_any_srcs = \ - $(STDLIB)/hare/parse/decl.ha \ - $(STDLIB)/hare/parse/expr.ha \ - $(STDLIB)/hare/parse/ident.ha \ - $(STDLIB)/hare/parse/import.ha \ - $(STDLIB)/hare/parse/parse.ha \ - $(STDLIB)/hare/parse/type.ha \ - $(STDLIB)/hare/parse/unit.ha - -$(HARECACHE)/hare/parse/hare_parse-any.ssa: $(stdlib_hare_parse_any_srcs) $(stdlib_rt) $(stdlib_ascii_$(PLATFORM)) $(stdlib_hare_ast_$(PLATFORM)) $(stdlib_hare_lex_$(PLATFORM)) $(stdlib_fmt_$(PLATFORM)) $(stdlib_types_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) $(stdlib_math_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/hare/parse - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nhare::parse \ - -t$(HARECACHE)/hare/parse/hare_parse.td $(stdlib_hare_parse_any_srcs) - -# hare::parse::doc (+any) -stdlib_hare_parse_doc_any_srcs = \ - $(STDLIB)/hare/parse/doc/doc.ha - -$(HARECACHE)/hare/parse/doc/hare_parse_doc-any.ssa: $(stdlib_hare_parse_doc_any_srcs) $(stdlib_rt) $(stdlib_ascii_$(PLATFORM)) $(stdlib_encoding_utf8_$(PLATFORM)) $(stdlib_fmt_$(PLATFORM)) $(stdlib_hare_ast_$(PLATFORM)) $(stdlib_hare_parse_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) $(stdlib_memio_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/hare/parse/doc - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nhare::parse::doc \ - -t$(HARECACHE)/hare/parse/doc/hare_parse_doc.td $(stdlib_hare_parse_doc_any_srcs) - -# hare::types (+any) -stdlib_hare_types_any_srcs = \ - $(STDLIB)/hare/types/+$(ARCH)/writesize.ha \ - $(STDLIB)/hare/types/arch.ha \ - $(STDLIB)/hare/types/builtins.ha \ - $(STDLIB)/hare/types/class.ha \ - $(STDLIB)/hare/types/hash.ha \ - $(STDLIB)/hare/types/lookup.ha \ - $(STDLIB)/hare/types/store.ha \ - $(STDLIB)/hare/types/types.ha - -$(HARECACHE)/hare/types/hare_types-any.ssa: $(stdlib_hare_types_any_srcs) $(stdlib_rt) $(stdlib_hare_ast_$(PLATFORM)) $(stdlib_hash_$(PLATFORM)) $(stdlib_hash_fnv_$(PLATFORM)) $(stdlib_endian_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) $(stdlib_errors_$(PLATFORM)) $(stdlib_memio_$(PLATFORM)) $(stdlib_sort_$(PLATFORM)) $(stdlib_fmt_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/hare/types - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nhare::types \ - -t$(HARECACHE)/hare/types/hare_types.td $(stdlib_hare_types_any_srcs) - -# hare::unit (+any) -stdlib_hare_unit_any_srcs = \ - $(STDLIB)/hare/unit/check.ha \ - $(STDLIB)/hare/unit/context.ha \ - $(STDLIB)/hare/unit/errors.ha \ - $(STDLIB)/hare/unit/expr.ha \ - $(STDLIB)/hare/unit/process.ha \ - $(STDLIB)/hare/unit/scan.ha \ - $(STDLIB)/hare/unit/scope.ha \ - $(STDLIB)/hare/unit/unit.ha - -$(HARECACHE)/hare/unit/hare_unit-any.ssa: $(stdlib_hare_unit_any_srcs) $(stdlib_rt) $(stdlib_hare_ast_$(PLATFORM)) $(stdlib_hare_types_$(PLATFORM)) $(stdlib_hash_$(PLATFORM)) $(stdlib_hash_fnv_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) $(stdlib_hare_lex_$(PLATFORM)) $(stdlib_memio_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/hare/unit - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nhare::unit \ - -t$(HARECACHE)/hare/unit/hare_unit.td $(stdlib_hare_unit_any_srcs) - -# hare::unparse (+any) -stdlib_hare_unparse_any_srcs = \ - $(STDLIB)/hare/unparse/expr.ha \ - $(STDLIB)/hare/unparse/decl.ha \ - $(STDLIB)/hare/unparse/ident.ha \ - $(STDLIB)/hare/unparse/import.ha \ - $(STDLIB)/hare/unparse/type.ha \ - $(STDLIB)/hare/unparse/unit.ha \ - $(STDLIB)/hare/unparse/util.ha - -$(HARECACHE)/hare/unparse/hare_unparse-any.ssa: $(stdlib_hare_unparse_any_srcs) $(stdlib_rt) $(stdlib_fmt_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) $(stdlib_memio_$(PLATFORM)) $(stdlib_hare_ast_$(PLATFORM)) $(stdlib_hare_lex_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/hare/unparse - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nhare::unparse \ - -t$(HARECACHE)/hare/unparse/hare_unparse.td $(stdlib_hare_unparse_any_srcs) - -# hash (+any) -stdlib_hash_any_srcs = \ - $(STDLIB)/hash/hash.ha - -$(HARECACHE)/hash/hash-any.ssa: $(stdlib_hash_any_srcs) $(stdlib_rt) $(stdlib_crypto_math_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_fmt_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/hash - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nhash \ - -t$(HARECACHE)/hash/hash.td $(stdlib_hash_any_srcs) - -# hash::adler32 (+any) -stdlib_hash_adler32_any_srcs = \ - $(STDLIB)/hash/adler32/adler32.ha - -$(HARECACHE)/hash/adler32/hash_adler32-any.ssa: $(stdlib_hash_adler32_any_srcs) $(stdlib_rt) $(stdlib_endian_$(PLATFORM)) $(stdlib_hash_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/hash/adler32 - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nhash::adler32 \ - -t$(HARECACHE)/hash/adler32/hash_adler32.td $(stdlib_hash_adler32_any_srcs) - -# hash::crc16 (+any) -stdlib_hash_crc16_any_srcs = \ - $(STDLIB)/hash/crc16/crc16.ha - -$(HARECACHE)/hash/crc16/hash_crc16-any.ssa: $(stdlib_hash_crc16_any_srcs) $(stdlib_rt) $(stdlib_endian_$(PLATFORM)) $(stdlib_hash_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/hash/crc16 - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nhash::crc16 \ - -t$(HARECACHE)/hash/crc16/hash_crc16.td $(stdlib_hash_crc16_any_srcs) - -# hash::crc32 (+any) -stdlib_hash_crc32_any_srcs = \ - $(STDLIB)/hash/crc32/crc32.ha - -$(HARECACHE)/hash/crc32/hash_crc32-any.ssa: $(stdlib_hash_crc32_any_srcs) $(stdlib_rt) $(stdlib_endian_$(PLATFORM)) $(stdlib_hash_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/hash/crc32 - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nhash::crc32 \ - -t$(HARECACHE)/hash/crc32/hash_crc32.td $(stdlib_hash_crc32_any_srcs) - -# hash::crc64 (+any) -stdlib_hash_crc64_any_srcs = \ - $(STDLIB)/hash/crc64/crc64.ha - -$(HARECACHE)/hash/crc64/hash_crc64-any.ssa: $(stdlib_hash_crc64_any_srcs) $(stdlib_rt) $(stdlib_endian_$(PLATFORM)) $(stdlib_hash_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/hash/crc64 - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nhash::crc64 \ - -t$(HARECACHE)/hash/crc64/hash_crc64.td $(stdlib_hash_crc64_any_srcs) - -# hash::fnv (+any) -stdlib_hash_fnv_any_srcs = \ - $(STDLIB)/hash/fnv/+$(ARCH).ha \ - $(STDLIB)/hash/fnv/fnv.ha - -$(HARECACHE)/hash/fnv/hash_fnv-any.ssa: $(stdlib_hash_fnv_any_srcs) $(stdlib_rt) $(stdlib_endian_$(PLATFORM)) $(stdlib_hash_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/hash/fnv - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nhash::fnv \ - -t$(HARECACHE)/hash/fnv/hash_fnv.td $(stdlib_hash_fnv_any_srcs) - -# hash::siphash (+any) -stdlib_hash_siphash_any_srcs = \ - $(STDLIB)/hash/siphash/siphash.ha - -$(HARECACHE)/hash/siphash/hash_siphash-any.ssa: $(stdlib_hash_siphash_any_srcs) $(stdlib_rt) $(stdlib_hash_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_endian_$(PLATFORM)) $(stdlib_crypto_math_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/hash/siphash - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nhash::siphash \ - -t$(HARECACHE)/hash/siphash/hash_siphash.td $(stdlib_hash_siphash_any_srcs) - -# io (+linux) -stdlib_io_linux_srcs = \ - $(STDLIB)/io/arch+$(ARCH).ha \ - $(STDLIB)/io/+linux/mmap.ha \ - $(STDLIB)/io/+linux/platform_file.ha \ - $(STDLIB)/io/+linux/vector.ha \ - $(STDLIB)/io/copy.ha \ - $(STDLIB)/io/drain.ha \ - $(STDLIB)/io/empty.ha \ - $(STDLIB)/io/file.ha \ - $(STDLIB)/io/handle.ha \ - $(STDLIB)/io/limit.ha \ - $(STDLIB)/io/stream.ha \ - $(STDLIB)/io/tee.ha \ - $(STDLIB)/io/types.ha \ - $(STDLIB)/io/util.ha \ - $(STDLIB)/io/zero.ha - -# io (+freebsd) -stdlib_io_freebsd_srcs = \ - $(STDLIB)/io/arch+$(ARCH).ha \ - $(STDLIB)/io/+freebsd/mmap.ha \ - $(STDLIB)/io/+freebsd/platform_file.ha \ - $(STDLIB)/io/+freebsd/vector.ha \ - $(STDLIB)/io/copy.ha \ - $(STDLIB)/io/drain.ha \ - $(STDLIB)/io/empty.ha \ - $(STDLIB)/io/file.ha \ - $(STDLIB)/io/handle.ha \ - $(STDLIB)/io/limit.ha \ - $(STDLIB)/io/stream.ha \ - $(STDLIB)/io/tee.ha \ - $(STDLIB)/io/types.ha \ - $(STDLIB)/io/util.ha \ - $(STDLIB)/io/zero.ha - -$(HARECACHE)/io/io-linux.ssa: $(stdlib_io_linux_srcs) $(stdlib_rt) $(stdlib_errors_$(PLATFORM)) $(stdlib_bytes_$(PLATFORM)) $(stdlib_rt_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/io - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nio \ - -t$(HARECACHE)/io/io.td $(stdlib_io_linux_srcs) - -$(HARECACHE)/io/io-freebsd.ssa: $(stdlib_io_freebsd_srcs) $(stdlib_rt) $(stdlib_errors_$(PLATFORM)) $(stdlib_bytes_$(PLATFORM)) $(stdlib_rt_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/io - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nio \ - -t$(HARECACHE)/io/io.td $(stdlib_io_freebsd_srcs) - -# linux (+linux) -stdlib_linux_linux_srcs = \ - $(STDLIB)/linux/start.ha \ - $(STDLIB)/linux/env.ha - -$(HARECACHE)/linux/linux-linux.ssa: $(stdlib_linux_linux_srcs) $(stdlib_rt) $(stdlib_format_elf_$(PLATFORM)) $(stdlib_rt_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/linux - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nlinux \ - -t$(HARECACHE)/linux/linux.td $(stdlib_linux_linux_srcs) - -# linux::keyctl (+linux) -stdlib_linux_keyctl_linux_srcs = \ - $(STDLIB)/linux/keyctl/keyctl.ha \ - $(STDLIB)/linux/keyctl/types.ha - -$(HARECACHE)/linux/keyctl/linux_keyctl-linux.ssa: $(stdlib_linux_keyctl_linux_srcs) $(stdlib_rt) $(stdlib_rt_$(PLATFORM)) $(stdlib_errors_$(PLATFORM)) $(stdlib_bytes_$(PLATFORM)) $(stdlib_types_c_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/linux/keyctl - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nlinux::keyctl \ - -t$(HARECACHE)/linux/keyctl/linux_keyctl.td $(stdlib_linux_keyctl_linux_srcs) - -# linux::timerfd (+linux) -stdlib_linux_timerfd_linux_srcs = \ - $(STDLIB)/linux/timerfd/timerfd.ha - -$(HARECACHE)/linux/timerfd/linux_timerfd-linux.ssa: $(stdlib_linux_timerfd_linux_srcs) $(stdlib_rt) $(stdlib_errors_$(PLATFORM)) $(stdlib_rt_$(PLATFORM)) $(stdlib_time_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_endian_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/linux/timerfd - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nlinux::timerfd \ - -t$(HARECACHE)/linux/timerfd/linux_timerfd.td $(stdlib_linux_timerfd_linux_srcs) - -# linux::vdso (+linux) -stdlib_linux_vdso_linux_srcs = \ - $(STDLIB)/linux/vdso/vdso.ha - -$(HARECACHE)/linux/vdso/linux_vdso-linux.ssa: $(stdlib_linux_vdso_linux_srcs) $(stdlib_rt) $(stdlib_linux_$(PLATFORM)) $(stdlib_format_elf_$(PLATFORM)) $(stdlib_types_c_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/linux/vdso - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nlinux::vdso \ - -t$(HARECACHE)/linux/vdso/linux_vdso.td $(stdlib_linux_vdso_linux_srcs) - -# log (+linux) -stdlib_log_linux_srcs = \ - $(STDLIB)/log/logger.ha \ - $(STDLIB)/log/global.ha \ - $(STDLIB)/log/funcs.ha \ - $(STDLIB)/log/silent.ha - -$(HARECACHE)/log/log-linux.ssa: $(stdlib_log_linux_srcs) $(stdlib_rt) $(stdlib_fmt_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_os_$(PLATFORM)) $(stdlib_time_date_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/log - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nlog \ - -t$(HARECACHE)/log/log.td $(stdlib_log_linux_srcs) - -# log (+freebsd) -stdlib_log_freebsd_srcs = \ - $(STDLIB)/log/logger.ha \ - $(STDLIB)/log/global.ha \ - $(STDLIB)/log/funcs.ha \ - $(STDLIB)/log/silent.ha - -$(HARECACHE)/log/log-freebsd.ssa: $(stdlib_log_freebsd_srcs) $(stdlib_rt) $(stdlib_fmt_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_os_$(PLATFORM)) $(stdlib_time_date_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/log - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nlog \ - -t$(HARECACHE)/log/log.td $(stdlib_log_freebsd_srcs) - -# math (+any) -stdlib_math_any_srcs = \ - $(STDLIB)/math/math.ha \ - $(STDLIB)/math/fenv_func.ha \ - $(STDLIB)/math/fenv+$(ARCH).ha \ - $(STDLIB)/math/floats.ha \ - $(STDLIB)/math/ints.ha \ - $(STDLIB)/math/uints.ha \ - $(STDLIB)/math/trig.ha - -$(HARECACHE)/math/math-any.ssa: $(stdlib_math_any_srcs) $(stdlib_rt) $(stdlib_types_$(PLATFORM)) $(stdlib_rt_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/math - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nmath \ - -t$(HARECACHE)/math/math.td $(stdlib_math_any_srcs) - -# math::checked (+any) -stdlib_math_checked_any_srcs = \ - $(STDLIB)/math/checked/checked.ha - -$(HARECACHE)/math/checked/math_checked-any.ssa: $(stdlib_math_checked_any_srcs) $(stdlib_rt) $(stdlib_math_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/math/checked - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nmath::checked \ - -t$(HARECACHE)/math/checked/math_checked.td $(stdlib_math_checked_any_srcs) - -# math::complex (+any) -stdlib_math_complex_any_srcs = \ - $(STDLIB)/math/complex/complex.ha - -$(HARECACHE)/math/complex/math_complex-any.ssa: $(stdlib_math_complex_any_srcs) $(stdlib_rt) $(stdlib_math_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/math/complex - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nmath::complex \ - -t$(HARECACHE)/math/complex/math_complex.td $(stdlib_math_complex_any_srcs) - -# math::random (+any) -stdlib_math_random_any_srcs = \ - $(STDLIB)/math/random/random.ha - -$(HARECACHE)/math/random/math_random-any.ssa: $(stdlib_math_random_any_srcs) $(stdlib_rt) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/math/random - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nmath::random \ - -t$(HARECACHE)/math/random/math_random.td $(stdlib_math_random_any_srcs) - -# memio (+any) -stdlib_memio_any_srcs = \ - $(STDLIB)/memio/stream.ha \ - $(STDLIB)/memio/ops.ha - -$(HARECACHE)/memio/memio-any.ssa: $(stdlib_memio_any_srcs) $(stdlib_rt) $(stdlib_errors_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) $(stdlib_encoding_utf8_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/memio - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nmemio \ - -t$(HARECACHE)/memio/memio.td $(stdlib_memio_any_srcs) - -# net (+linux) -stdlib_net_linux_srcs = \ - $(STDLIB)/net/+linux.ha \ - $(STDLIB)/net/errors.ha \ - $(STDLIB)/net/msg.ha \ - $(STDLIB)/net/types.ha - -$(HARECACHE)/net/net-linux.ssa: $(stdlib_net_linux_srcs) $(stdlib_rt) $(stdlib_io_$(PLATFORM)) $(stdlib_errors_$(PLATFORM)) $(stdlib_rt_$(PLATFORM)) $(stdlib_fmt_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/net - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nnet \ - -t$(HARECACHE)/net/net.td $(stdlib_net_linux_srcs) - -# net (+freebsd) -stdlib_net_freebsd_srcs = \ - $(STDLIB)/net/+freebsd.ha \ - $(STDLIB)/net/errors.ha \ - $(STDLIB)/net/msg.ha \ - $(STDLIB)/net/types.ha - -$(HARECACHE)/net/net-freebsd.ssa: $(stdlib_net_freebsd_srcs) $(stdlib_rt) $(stdlib_io_$(PLATFORM)) $(stdlib_errors_$(PLATFORM)) $(stdlib_rt_$(PLATFORM)) $(stdlib_fmt_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/net - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nnet \ - -t$(HARECACHE)/net/net.td $(stdlib_net_freebsd_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-any.ssa: $(stdlib_net_dial_any_srcs) $(stdlib_rt) $(stdlib_net_$(PLATFORM)) $(stdlib_net_ip_$(PLATFORM)) $(stdlib_net_tcp_$(PLATFORM)) $(stdlib_net_udp_$(PLATFORM)) $(stdlib_net_dns_$(PLATFORM)) $(stdlib_net_uri_$(PLATFORM)) $(stdlib_crypto_random_$(PLATFORM)) $(stdlib_strconv_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) $(stdlib_unix_hosts_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/net/dial - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nnet::dial \ - -t$(HARECACHE)/net/dial/net_dial.td $(stdlib_net_dial_any_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/strdomain.ha \ - $(STDLIB)/net/dns/types.ha - -$(HARECACHE)/net/dns/net_dns-any.ssa: $(stdlib_net_dns_any_srcs) $(stdlib_rt) $(stdlib_ascii_$(PLATFORM)) $(stdlib_endian_$(PLATFORM)) $(stdlib_net_$(PLATFORM)) $(stdlib_net_udp_$(PLATFORM)) $(stdlib_net_ip_$(PLATFORM)) $(stdlib_fmt_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) $(stdlib_unix_resolvconf_$(PLATFORM)) $(stdlib_unix_poll_$(PLATFORM)) $(stdlib_time_$(PLATFORM)) $(stdlib_errors_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/net/dns - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nnet::dns \ - -t$(HARECACHE)/net/dns/net_dns.td $(stdlib_net_dns_any_srcs) - -# net::ip (+linux) -stdlib_net_ip_linux_srcs = \ - $(STDLIB)/net/ip/+linux.ha \ - $(STDLIB)/net/ip/ip.ha - -# net::ip (+freebsd) -stdlib_net_ip_freebsd_srcs = \ - $(STDLIB)/net/ip/+freebsd.ha \ - $(STDLIB)/net/ip/ip.ha - -$(HARECACHE)/net/ip/net_ip-linux.ssa: $(stdlib_net_ip_linux_srcs) $(stdlib_rt) $(stdlib_bytes_$(PLATFORM)) $(stdlib_endian_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_strconv_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) $(stdlib_memio_$(PLATFORM)) $(stdlib_fmt_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/net/ip - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nnet::ip \ - -t$(HARECACHE)/net/ip/net_ip.td $(stdlib_net_ip_linux_srcs) - -$(HARECACHE)/net/ip/net_ip-freebsd.ssa: $(stdlib_net_ip_freebsd_srcs) $(stdlib_rt) $(stdlib_bytes_$(PLATFORM)) $(stdlib_endian_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_strconv_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) $(stdlib_memio_$(PLATFORM)) $(stdlib_fmt_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/net/ip - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nnet::ip \ - -t$(HARECACHE)/net/ip/net_ip.td $(stdlib_net_ip_freebsd_srcs) - -# 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-linux.ssa: $(stdlib_net_tcp_linux_srcs) $(stdlib_rt) $(stdlib_errors_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_net_$(PLATFORM)) $(stdlib_net_ip_$(PLATFORM)) $(stdlib_os_$(PLATFORM)) $(stdlib_rt_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/net/tcp - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nnet::tcp \ - -t$(HARECACHE)/net/tcp/net_tcp.td $(stdlib_net_tcp_linux_srcs) - -# net::tcp (+freebsd) -stdlib_net_tcp_freebsd_srcs = \ - $(STDLIB)/net/tcp/+freebsd.ha \ - $(STDLIB)/net/tcp/listener.ha \ - $(STDLIB)/net/tcp/options.ha - -$(HARECACHE)/net/tcp/net_tcp-freebsd.ssa: $(stdlib_net_tcp_freebsd_srcs) $(stdlib_rt) $(stdlib_errors_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_net_$(PLATFORM)) $(stdlib_net_ip_$(PLATFORM)) $(stdlib_os_$(PLATFORM)) $(stdlib_rt_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/net/tcp - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nnet::tcp \ - -t$(HARECACHE)/net/tcp/net_tcp.td $(stdlib_net_tcp_freebsd_srcs) - -# net::udp (+linux) -stdlib_net_udp_linux_srcs = \ - $(STDLIB)/net/udp/+linux.ha \ - $(STDLIB)/net/udp/options.ha - -$(HARECACHE)/net/udp/net_udp-linux.ssa: $(stdlib_net_udp_linux_srcs) $(stdlib_rt) $(stdlib_errors_$(PLATFORM)) $(stdlib_net_$(PLATFORM)) $(stdlib_net_ip_$(PLATFORM)) $(stdlib_errors_$(PLATFORM)) $(stdlib_rt_$(PLATFORM)) $(stdlib_os_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/net/udp - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nnet::udp \ - -t$(HARECACHE)/net/udp/net_udp.td $(stdlib_net_udp_linux_srcs) - -# net::udp (+freebsd) -stdlib_net_udp_freebsd_srcs = \ - $(STDLIB)/net/udp/+freebsd.ha \ - $(STDLIB)/net/udp/options.ha - -$(HARECACHE)/net/udp/net_udp-freebsd.ssa: $(stdlib_net_udp_freebsd_srcs) $(stdlib_rt) $(stdlib_errors_$(PLATFORM)) $(stdlib_net_$(PLATFORM)) $(stdlib_net_ip_$(PLATFORM)) $(stdlib_errors_$(PLATFORM)) $(stdlib_rt_$(PLATFORM)) $(stdlib_os_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/net/udp - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nnet::udp \ - -t$(HARECACHE)/net/udp/net_udp.td $(stdlib_net_udp_freebsd_srcs) - -# net::unix (+linux) -stdlib_net_unix_linux_srcs = \ - $(STDLIB)/net/unix/+linux.ha \ - $(STDLIB)/net/unix/addr.ha \ - $(STDLIB)/net/unix/cmsg.ha \ - $(STDLIB)/net/unix/dial.ha \ - $(STDLIB)/net/unix/listener.ha \ - $(STDLIB)/net/unix/options.ha \ - $(STDLIB)/net/unix/socketpair.ha - -$(HARECACHE)/net/unix/net_unix-linux.ssa: $(stdlib_net_unix_linux_srcs) $(stdlib_rt) $(stdlib_net_$(PLATFORM)) $(stdlib_errors_$(PLATFORM)) $(stdlib_os_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) $(stdlib_types_$(PLATFORM)) $(stdlib_fmt_$(PLATFORM)) $(stdlib_net_dial_$(PLATFORM)) $(stdlib_rt_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/net/unix - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nnet::unix \ - -t$(HARECACHE)/net/unix/net_unix.td $(stdlib_net_unix_linux_srcs) - -# net::unix (+freebsd) -stdlib_net_unix_freebsd_srcs = \ - $(STDLIB)/net/unix/+freebsd.ha \ - $(STDLIB)/net/unix/addr.ha \ - $(STDLIB)/net/unix/cmsg.ha \ - $(STDLIB)/net/unix/dial.ha \ - $(STDLIB)/net/unix/listener.ha \ - $(STDLIB)/net/unix/options.ha \ - $(STDLIB)/net/unix/socketpair.ha - -$(HARECACHE)/net/unix/net_unix-freebsd.ssa: $(stdlib_net_unix_freebsd_srcs) $(stdlib_rt) $(stdlib_net_$(PLATFORM)) $(stdlib_errors_$(PLATFORM)) $(stdlib_os_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) $(stdlib_types_$(PLATFORM)) $(stdlib_fmt_$(PLATFORM)) $(stdlib_net_dial_$(PLATFORM)) $(stdlib_rt_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/net/unix - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nnet::unix \ - -t$(HARECACHE)/net/unix/net_unix.td $(stdlib_net_unix_freebsd_srcs) - -# net::uri (+any) -stdlib_net_uri_any_srcs = \ - $(STDLIB)/net/uri/fmt.ha \ - $(STDLIB)/net/uri/parse.ha \ - $(STDLIB)/net/uri/query.ha \ - $(STDLIB)/net/uri/uri.ha - -$(HARECACHE)/net/uri/net_uri-any.ssa: $(stdlib_net_uri_any_srcs) $(stdlib_rt) $(stdlib_ascii_$(PLATFORM)) $(stdlib_encoding_utf8_$(PLATFORM)) $(stdlib_fmt_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_net_ip_$(PLATFORM)) $(stdlib_strconv_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) $(stdlib_memio_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/net/uri - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nnet::uri \ - -t$(HARECACHE)/net/uri/net_uri.td $(stdlib_net_uri_any_srcs) - -# os (+linux) -stdlib_os_linux_srcs = \ - $(STDLIB)/os/+linux/dirfdfs.ha \ - $(STDLIB)/os/+linux/platform_environ.ha \ - $(STDLIB)/os/+linux/exit.ha \ - $(STDLIB)/os/+linux/fs.ha \ - $(STDLIB)/os/+linux/memory.ha \ - $(STDLIB)/os/+linux/status.ha \ - $(STDLIB)/os/+linux/stdfd.ha \ - $(STDLIB)/os/environ.ha \ - $(STDLIB)/os/os.ha - -$(HARECACHE)/os/os-linux.ssa: $(stdlib_os_linux_srcs) $(stdlib_rt) $(stdlib_io_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) $(stdlib_fs_$(PLATFORM)) $(stdlib_encoding_utf8_$(PLATFORM)) $(stdlib_bufio_$(PLATFORM)) $(stdlib_errors_$(PLATFORM)) $(stdlib_math_$(PLATFORM)) $(stdlib_types_c_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/os - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nos \ - -t$(HARECACHE)/os/os.td $(stdlib_os_linux_srcs) - -# os (+freebsd) -stdlib_os_freebsd_srcs = \ - $(STDLIB)/os/+freebsd/platform_environ.ha \ - $(STDLIB)/os/+freebsd/exit.ha \ - $(STDLIB)/os/+freebsd/dirfdfs.ha \ - $(STDLIB)/os/+freebsd/status.ha \ - $(STDLIB)/os/+freebsd/stdfd.ha \ - $(STDLIB)/os/+freebsd/fs.ha \ - $(STDLIB)/os/environ.ha \ - $(STDLIB)/os/os.ha - -$(HARECACHE)/os/os-freebsd.ssa: $(stdlib_os_freebsd_srcs) $(stdlib_rt) $(stdlib_io_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) $(stdlib_fs_$(PLATFORM)) $(stdlib_encoding_utf8_$(PLATFORM)) $(stdlib_bufio_$(PLATFORM)) $(stdlib_errors_$(PLATFORM)) $(stdlib_types_c_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/os - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nos \ - -t$(HARECACHE)/os/os.td $(stdlib_os_freebsd_srcs) - -# 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-linux.ssa: $(stdlib_os_exec_linux_srcs) $(stdlib_rt) $(stdlib_os_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) $(stdlib_fmt_$(PLATFORM)) $(stdlib_errors_$(PLATFORM)) $(stdlib_unix_$(PLATFORM)) $(stdlib_rt_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_ascii_$(PLATFORM)) $(stdlib_unix_signal_$(PLATFORM)) $(stdlib_types_c_$(PLATFORM)) $(stdlib_time_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/os/exec - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nos::exec \ - -t$(HARECACHE)/os/exec/os_exec.td $(stdlib_os_exec_linux_srcs) - -# os::exec (+freebsd) -stdlib_os_exec_freebsd_srcs = \ - $(STDLIB)/os/exec/exec+freebsd.ha \ - $(STDLIB)/os/exec/process+freebsd.ha \ - $(STDLIB)/os/exec/types.ha \ - $(STDLIB)/os/exec/cmd.ha - -$(HARECACHE)/os/exec/os_exec-freebsd.ssa: $(stdlib_os_exec_freebsd_srcs) $(stdlib_rt) $(stdlib_os_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) $(stdlib_fmt_$(PLATFORM)) $(stdlib_errors_$(PLATFORM)) $(stdlib_unix_$(PLATFORM)) $(stdlib_rt_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_ascii_$(PLATFORM)) $(stdlib_unix_signal_$(PLATFORM)) $(stdlib_types_c_$(PLATFORM)) $(stdlib_time_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/os/exec - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nos::exec \ - -t$(HARECACHE)/os/exec/os_exec.td $(stdlib_os_exec_freebsd_srcs) - -# path (+any) -stdlib_path_any_srcs = \ - $(STDLIB)/path/+$(PLATFORM).ha \ - $(STDLIB)/path/buffer.ha \ - $(STDLIB)/path/error.ha \ - $(STDLIB)/path/stack.ha \ - $(STDLIB)/path/ext_stack.ha \ - $(STDLIB)/path/posix.ha \ - $(STDLIB)/path/prefix.ha \ - $(STDLIB)/path/iter.ha - -$(HARECACHE)/path/path-any.ssa: $(stdlib_path_any_srcs) $(stdlib_rt) $(stdlib_strings_$(PLATFORM)) $(stdlib_bytes_$(PLATFORM)) $(stdlib_errors_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/path - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Npath \ - -t$(HARECACHE)/path/path.td $(stdlib_path_any_srcs) - -# regex (+any) -stdlib_regex_any_srcs = \ - $(STDLIB)/regex/regex.ha - -$(HARECACHE)/regex/regex-any.ssa: $(stdlib_regex_any_srcs) $(stdlib_rt) $(stdlib_ascii_$(PLATFORM)) $(stdlib_bufio_$(PLATFORM)) $(stdlib_encoding_utf8_$(PLATFORM)) $(stdlib_errors_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_strconv_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) $(stdlib_bufio_$(PLATFORM)) $(stdlib_types_$(PLATFORM)) $(stdlib_memio_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/regex - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nregex \ - -t$(HARECACHE)/regex/regex.td $(stdlib_regex_any_srcs) - -# shlex (+any) -stdlib_shlex_any_srcs = \ - $(STDLIB)/shlex/escape.ha \ - $(STDLIB)/shlex/split.ha - -$(HARECACHE)/shlex/shlex-any.ssa: $(stdlib_shlex_any_srcs) $(stdlib_rt) $(stdlib_ascii_$(PLATFORM)) $(stdlib_encoding_utf8_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) $(stdlib_memio_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/shlex - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nshlex \ - -t$(HARECACHE)/shlex/shlex.td $(stdlib_shlex_any_srcs) - -# sort (+any) -stdlib_sort_any_srcs = \ - $(STDLIB)/sort/bisect.ha \ - $(STDLIB)/sort/search.ha \ - $(STDLIB)/sort/sort.ha \ - $(STDLIB)/sort/types.ha - -$(HARECACHE)/sort/sort-any.ssa: $(stdlib_sort_any_srcs) $(stdlib_rt) $(stdlib_math_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) $(stdlib_types_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/sort - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nsort \ - -t$(HARECACHE)/sort/sort.td $(stdlib_sort_any_srcs) - -# sort::cmp (+any) -stdlib_sort_cmp_any_srcs = \ - $(STDLIB)/sort/cmp/cmp.ha - -$(HARECACHE)/sort/cmp/sort_cmp-any.ssa: $(stdlib_sort_cmp_any_srcs) $(stdlib_rt) $(stdlib_strings_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/sort/cmp - @$(stdlib_env) $(HAREC) $(HAREFLAGS) -o $@ -Nsort::cmp \ - -t$(HARECACHE)/sort/cmp/sort_cmp.td $(stdlib_sort_cmp_any_srcs) - -# strconv (+any) -stdlib_strconv_any_srcs = \ - $(STDLIB)/strconv/types.ha \ - $(STDLIB)/strconv/itos.ha \ - $(STDLIB)/strconv/utos.ha \ - $(STDLIB)/strconv/stou.ha \ - $(STDLIB)/strconv/stoi.ha \ - $(STDLIB)/strconv/numeric.ha \ - $(STDLIB)/strconv/ftos.ha \ - $(STDLIB)/strconv/stof.ha \ - $(STDLIB)/strconv/stof_data.ha - -$(HARECACHE)/strconv/strconv-any.ssa: $(stdlib_strconv_any_srcs) $(stdlib_rt) $(stdlib_types_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) $(stdlib_ascii_$(PLATFORM)) $(stdlib_math_$(PLATFORM)) $(stdlib_bytes_$(PLATFORM)) $(stdlib_encoding_utf8_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/strconv - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nstrconv \ - -t$(HARECACHE)/strconv/strconv.td $(stdlib_strconv_any_srcs) - -# strings (+any) -stdlib_strings_any_srcs = \ - $(STDLIB)/strings/concat.ha \ - $(STDLIB)/strings/contains.ha \ - $(STDLIB)/strings/dup.ha \ - $(STDLIB)/strings/iter.ha \ - $(STDLIB)/strings/runes.ha \ - $(STDLIB)/strings/sub.ha \ - $(STDLIB)/strings/suffix.ha \ - $(STDLIB)/strings/tokenize.ha \ - $(STDLIB)/strings/utf8.ha \ - $(STDLIB)/strings/index.ha \ - $(STDLIB)/strings/trim.ha \ - $(STDLIB)/strings/compare.ha \ - $(STDLIB)/strings/pad.ha \ - $(STDLIB)/strings/replace.ha - -$(HARECACHE)/strings/strings-any.ssa: $(stdlib_strings_any_srcs) $(stdlib_rt) $(stdlib_bytes_$(PLATFORM)) $(stdlib_encoding_utf8_$(PLATFORM)) $(stdlib_types_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/strings - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nstrings \ - -t$(HARECACHE)/strings/strings.td $(stdlib_strings_any_srcs) - -# strings::template (+any) -stdlib_strings_template_any_srcs = \ - $(STDLIB)/strings/template/template.ha - -$(HARECACHE)/strings/template/strings_template-any.ssa: $(stdlib_strings_template_any_srcs) $(stdlib_rt) $(stdlib_ascii_$(PLATFORM)) $(stdlib_errors_$(PLATFORM)) $(stdlib_fmt_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) $(stdlib_memio_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/strings/template - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nstrings::template \ - -t$(HARECACHE)/strings/template/strings_template.td $(stdlib_strings_template_any_srcs) - -# temp (+linux) -stdlib_temp_linux_srcs = \ - $(STDLIB)/temp/+linux.ha - -$(HARECACHE)/temp/temp-linux.ssa: $(stdlib_temp_linux_srcs) $(stdlib_rt) $(stdlib_crypto_random_$(PLATFORM)) $(stdlib_encoding_hex_$(PLATFORM)) $(stdlib_errors_$(PLATFORM)) $(stdlib_fs_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_os_$(PLATFORM)) $(stdlib_path_$(PLATFORM)) $(stdlib_memio_$(PLATFORM)) $(stdlib_fmt_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/temp - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Ntemp \ - -t$(HARECACHE)/temp/temp.td $(stdlib_temp_linux_srcs) - -# temp (+freebsd) -stdlib_temp_freebsd_srcs = \ - $(STDLIB)/temp/+freebsd.ha - -$(HARECACHE)/temp/temp-freebsd.ssa: $(stdlib_temp_freebsd_srcs) $(stdlib_rt) $(stdlib_crypto_random_$(PLATFORM)) $(stdlib_encoding_hex_$(PLATFORM)) $(stdlib_errors_$(PLATFORM)) $(stdlib_fs_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_os_$(PLATFORM)) $(stdlib_path_$(PLATFORM)) $(stdlib_memio_$(PLATFORM)) $(stdlib_fmt_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/temp - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Ntemp \ - -t$(HARECACHE)/temp/temp.td $(stdlib_temp_freebsd_srcs) - -# test (+any) -stdlib_test_any_srcs = \ - $(STDLIB)/test/common.ha - -$(HARECACHE)/test/test-any.ssa: $(stdlib_test_any_srcs) $(stdlib_rt) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/test - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Ntest \ - -t$(HARECACHE)/test/test.td $(stdlib_test_any_srcs) - -# time (+linux) -stdlib_time_linux_srcs = \ - $(STDLIB)/time/+linux/functions.ha \ - $(STDLIB)/time/+linux/+$(ARCH).ha \ - $(STDLIB)/time/arithm.ha \ - $(STDLIB)/time/conv.ha \ - $(STDLIB)/time/types.ha - -$(HARECACHE)/time/time-linux.ssa: $(stdlib_time_linux_srcs) $(stdlib_rt) $(stdlib_linux_vdso_$(PLATFORM)) $(stdlib_math_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/time - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Ntime \ - -t$(HARECACHE)/time/time.td $(stdlib_time_linux_srcs) - -# time (+freebsd) -stdlib_time_freebsd_srcs = \ - $(STDLIB)/time/+freebsd/functions.ha \ - $(STDLIB)/time/arithm.ha \ - $(STDLIB)/time/conv.ha \ - $(STDLIB)/time/types.ha - -$(HARECACHE)/time/time-freebsd.ssa: $(stdlib_time_freebsd_srcs) $(stdlib_rt) $(stdlib_math_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/time - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Ntime \ - -t$(HARECACHE)/time/time.td $(stdlib_time_freebsd_srcs) - -# time::chrono (+linux) -stdlib_time_chrono_linux_srcs = \ - $(STDLIB)/time/chrono/arithmetic.ha \ - $(STDLIB)/time/chrono/+linux.ha \ - $(STDLIB)/time/chrono/chronology.ha \ - $(STDLIB)/time/chrono/error.ha \ - $(STDLIB)/time/chrono/leapsec.ha \ - $(STDLIB)/time/chrono/timescale.ha \ - $(STDLIB)/time/chrono/timezone.ha \ - $(STDLIB)/time/chrono/tzdb.ha - -$(HARECACHE)/time/chrono/time_chrono-linux.ssa: $(stdlib_time_chrono_linux_srcs) $(stdlib_rt) $(stdlib_bufio_$(PLATFORM)) $(stdlib_bytes_$(PLATFORM)) $(stdlib_encoding_utf8_$(PLATFORM)) $(stdlib_endian_$(PLATFORM)) $(stdlib_errors_$(PLATFORM)) $(stdlib_fmt_$(PLATFORM)) $(stdlib_fs_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_os_$(PLATFORM)) $(stdlib_strconv_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) $(stdlib_time_$(PLATFORM)) $(stdlib_path_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/time/chrono - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Ntime::chrono \ - -t$(HARECACHE)/time/chrono/time_chrono.td $(stdlib_time_chrono_linux_srcs) - -# time::chrono (+freebsd) -stdlib_time_chrono_freebsd_srcs = \ - $(STDLIB)/time/chrono/arithmetic.ha \ - $(STDLIB)/time/chrono/+freebsd.ha \ - $(STDLIB)/time/chrono/chronology.ha \ - $(STDLIB)/time/chrono/error.ha \ - $(STDLIB)/time/chrono/leapsec.ha \ - $(STDLIB)/time/chrono/timescale.ha \ - $(STDLIB)/time/chrono/timezone.ha \ - $(STDLIB)/time/chrono/tzdb.ha - -$(HARECACHE)/time/chrono/time_chrono-freebsd.ssa: $(stdlib_time_chrono_freebsd_srcs) $(stdlib_rt) $(stdlib_bufio_$(PLATFORM)) $(stdlib_bytes_$(PLATFORM)) $(stdlib_encoding_utf8_$(PLATFORM)) $(stdlib_endian_$(PLATFORM)) $(stdlib_errors_$(PLATFORM)) $(stdlib_fmt_$(PLATFORM)) $(stdlib_fs_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_os_$(PLATFORM)) $(stdlib_strconv_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) $(stdlib_time_$(PLATFORM)) $(stdlib_path_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/time/chrono - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Ntime::chrono \ - -t$(HARECACHE)/time/chrono/time_chrono.td $(stdlib_time_chrono_freebsd_srcs) - -# time::date (+linux) -stdlib_time_date_linux_srcs = \ - $(STDLIB)/time/date/date.ha \ - $(STDLIB)/time/date/daydate.ha \ - $(STDLIB)/time/date/daytime.ha \ - $(STDLIB)/time/date/error.ha \ - $(STDLIB)/time/date/format.ha \ - $(STDLIB)/time/date/locality.ha \ - $(STDLIB)/time/date/observe.ha \ - $(STDLIB)/time/date/parithm.ha \ - $(STDLIB)/time/date/parse.ha \ - $(STDLIB)/time/date/period.ha \ - $(STDLIB)/time/date/reckon.ha \ - $(STDLIB)/time/date/tarithm.ha \ - $(STDLIB)/time/date/virtual.ha - -$(HARECACHE)/time/date/time_date-linux.ssa: $(stdlib_time_date_linux_srcs) $(stdlib_rt) $(stdlib_ascii_$(PLATFORM)) $(stdlib_errors_$(PLATFORM)) $(stdlib_fmt_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_strconv_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) $(stdlib_memio_$(PLATFORM)) $(stdlib_time_$(PLATFORM)) $(stdlib_time_chrono_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/time/date - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Ntime::date \ - -t$(HARECACHE)/time/date/time_date.td $(stdlib_time_date_linux_srcs) - -# time::date (+freebsd) -stdlib_time_date_freebsd_srcs = \ - $(STDLIB)/time/date/date.ha \ - $(STDLIB)/time/date/daydate.ha \ - $(STDLIB)/time/date/daytime.ha \ - $(STDLIB)/time/date/error.ha \ - $(STDLIB)/time/date/format.ha \ - $(STDLIB)/time/date/locality.ha \ - $(STDLIB)/time/date/observe.ha \ - $(STDLIB)/time/date/parithm.ha \ - $(STDLIB)/time/date/parse.ha \ - $(STDLIB)/time/date/period.ha \ - $(STDLIB)/time/date/reckon.ha \ - $(STDLIB)/time/date/tarithm.ha \ - $(STDLIB)/time/date/virtual.ha - -$(HARECACHE)/time/date/time_date-freebsd.ssa: $(stdlib_time_date_freebsd_srcs) $(stdlib_rt) $(stdlib_ascii_$(PLATFORM)) $(stdlib_errors_$(PLATFORM)) $(stdlib_fmt_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_strconv_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) $(stdlib_memio_$(PLATFORM)) $(stdlib_time_$(PLATFORM)) $(stdlib_time_chrono_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/time/date - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Ntime::date \ - -t$(HARECACHE)/time/date/time_date.td $(stdlib_time_date_freebsd_srcs) - -# types (+any) -stdlib_types_any_srcs = \ - $(STDLIB)/types/limits.ha \ - $(STDLIB)/types/classes.ha \ - $(STDLIB)/types/arch+$(ARCH).ha - -$(HARECACHE)/types/types-any.ssa: $(stdlib_types_any_srcs) $(stdlib_rt) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/types - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Ntypes \ - -t$(HARECACHE)/types/types.td $(stdlib_types_any_srcs) - -# types::c (+any) -stdlib_types_c_any_srcs = \ - $(STDLIB)/types/c/strings.ha \ - $(STDLIB)/types/c/types.ha \ - $(STDLIB)/types/c/arch+$(ARCH).ha - -$(HARECACHE)/types/c/types_c-any.ssa: $(stdlib_types_c_any_srcs) $(stdlib_rt) $(stdlib_encoding_utf8_$(PLATFORM)) $(stdlib_types_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/types/c - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Ntypes::c \ - -t$(HARECACHE)/types/c/types_c.td $(stdlib_types_c_any_srcs) - -# unix (+linux) -stdlib_unix_linux_srcs = \ - $(STDLIB)/unix/+linux/nice.ha \ - $(STDLIB)/unix/+linux/pipe.ha \ - $(STDLIB)/unix/+linux/umask.ha \ - $(STDLIB)/unix/+linux/getuid.ha \ - $(STDLIB)/unix/+linux/setuid.ha \ - $(STDLIB)/unix/+linux/groups.ha - -$(HARECACHE)/unix/unix-linux.ssa: $(stdlib_unix_linux_srcs) $(stdlib_rt) $(stdlib_errors_$(PLATFORM)) $(stdlib_fs_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/unix - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nunix \ - -t$(HARECACHE)/unix/unix.td $(stdlib_unix_linux_srcs) - -# unix (+freebsd) -stdlib_unix_freebsd_srcs = \ - $(STDLIB)/unix/+freebsd/nice.ha \ - $(STDLIB)/unix/+freebsd/pipe.ha \ - $(STDLIB)/unix/+freebsd/umask.ha \ - $(STDLIB)/unix/+freebsd/getuid.ha \ - $(STDLIB)/unix/+freebsd/setuid.ha \ - $(STDLIB)/unix/+freebsd/groups.ha - -$(HARECACHE)/unix/unix-freebsd.ssa: $(stdlib_unix_freebsd_srcs) $(stdlib_rt) $(stdlib_errors_$(PLATFORM)) $(stdlib_fs_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/unix - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nunix \ - -t$(HARECACHE)/unix/unix.td $(stdlib_unix_freebsd_srcs) - -# unix::hosts (+linux) -stdlib_unix_hosts_linux_srcs = \ - $(STDLIB)/unix/hosts/+linux.ha \ - $(STDLIB)/unix/hosts/hosts.ha - -$(HARECACHE)/unix/hosts/unix_hosts-linux.ssa: $(stdlib_unix_hosts_linux_srcs) $(stdlib_rt) $(stdlib_bufio_$(PLATFORM)) $(stdlib_encoding_utf8_$(PLATFORM)) $(stdlib_fs_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_net_ip_$(PLATFORM)) $(stdlib_os_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) $(stdlib_memio_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/unix/hosts - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nunix::hosts \ - -t$(HARECACHE)/unix/hosts/unix_hosts.td $(stdlib_unix_hosts_linux_srcs) - -# unix::hosts (+freebsd) -stdlib_unix_hosts_freebsd_srcs = \ - $(STDLIB)/unix/hosts/+freebsd.ha \ - $(STDLIB)/unix/hosts/hosts.ha - -$(HARECACHE)/unix/hosts/unix_hosts-freebsd.ssa: $(stdlib_unix_hosts_freebsd_srcs) $(stdlib_rt) $(stdlib_bufio_$(PLATFORM)) $(stdlib_encoding_utf8_$(PLATFORM)) $(stdlib_fs_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_net_ip_$(PLATFORM)) $(stdlib_os_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) $(stdlib_memio_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/unix/hosts - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nunix::hosts \ - -t$(HARECACHE)/unix/hosts/unix_hosts.td $(stdlib_unix_hosts_freebsd_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-any.ssa: $(stdlib_unix_passwd_any_srcs) $(stdlib_rt) $(stdlib_bufio_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_os_$(PLATFORM)) $(stdlib_strconv_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) $(stdlib_memio_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/unix/passwd - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nunix::passwd \ - -t$(HARECACHE)/unix/passwd/unix_passwd.td $(stdlib_unix_passwd_any_srcs) - -# unix::poll (+linux) -stdlib_unix_poll_linux_srcs = \ - $(STDLIB)/unix/poll/+linux.ha \ - $(STDLIB)/unix/poll/types.ha - -$(HARECACHE)/unix/poll/unix_poll-linux.ssa: $(stdlib_unix_poll_linux_srcs) $(stdlib_rt) $(stdlib_rt_$(PLATFORM)) $(stdlib_errors_$(PLATFORM)) $(stdlib_time_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/unix/poll - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nunix::poll \ - -t$(HARECACHE)/unix/poll/unix_poll.td $(stdlib_unix_poll_linux_srcs) - -# unix::poll (+freebsd) -stdlib_unix_poll_freebsd_srcs = \ - $(STDLIB)/unix/poll/+freebsd.ha \ - $(STDLIB)/unix/poll/types.ha - -$(HARECACHE)/unix/poll/unix_poll-freebsd.ssa: $(stdlib_unix_poll_freebsd_srcs) $(stdlib_rt) $(stdlib_rt_$(PLATFORM)) $(stdlib_errors_$(PLATFORM)) $(stdlib_time_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/unix/poll - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nunix::poll \ - -t$(HARECACHE)/unix/poll/unix_poll.td $(stdlib_unix_poll_freebsd_srcs) - -# unix::resolvconf (+linux) -stdlib_unix_resolvconf_linux_srcs = \ - $(STDLIB)/unix/resolvconf/+linux.ha \ - $(STDLIB)/unix/resolvconf/load.ha - -$(HARECACHE)/unix/resolvconf/unix_resolvconf-linux.ssa: $(stdlib_unix_resolvconf_linux_srcs) $(stdlib_rt) $(stdlib_os_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_bufio_$(PLATFORM)) $(stdlib_memio_$(PLATFORM)) $(stdlib_net_ip_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/unix/resolvconf - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nunix::resolvconf \ - -t$(HARECACHE)/unix/resolvconf/unix_resolvconf.td $(stdlib_unix_resolvconf_linux_srcs) - -# unix::resolvconf (+freebsd) -stdlib_unix_resolvconf_freebsd_srcs = \ - $(STDLIB)/unix/resolvconf/+freebsd.ha \ - $(STDLIB)/unix/resolvconf/load.ha - -$(HARECACHE)/unix/resolvconf/unix_resolvconf-freebsd.ssa: $(stdlib_unix_resolvconf_freebsd_srcs) $(stdlib_rt) $(stdlib_os_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_bufio_$(PLATFORM)) $(stdlib_memio_$(PLATFORM)) $(stdlib_net_ip_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/unix/resolvconf - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nunix::resolvconf \ - -t$(HARECACHE)/unix/resolvconf/unix_resolvconf.td $(stdlib_unix_resolvconf_freebsd_srcs) - -# unix::signal (+linux) -stdlib_unix_signal_linux_srcs = \ - $(STDLIB)/unix/signal/types.ha \ - $(STDLIB)/unix/signal/+linux.ha - -$(HARECACHE)/unix/signal/unix_signal-linux.ssa: $(stdlib_unix_signal_linux_srcs) $(stdlib_rt) $(stdlib_io_$(PLATFORM)) $(stdlib_errors_$(PLATFORM)) $(stdlib_rt_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/unix/signal - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nunix::signal \ - -t$(HARECACHE)/unix/signal/unix_signal.td $(stdlib_unix_signal_linux_srcs) - -# unix::signal (+freebsd) -stdlib_unix_signal_freebsd_srcs = \ - $(STDLIB)/unix/signal/types.ha \ - $(STDLIB)/unix/signal/+freebsd.ha - -$(HARECACHE)/unix/signal/unix_signal-freebsd.ssa: $(stdlib_unix_signal_freebsd_srcs) $(stdlib_rt) $(stdlib_io_$(PLATFORM)) $(stdlib_errors_$(PLATFORM)) $(stdlib_rt_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/unix/signal - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nunix::signal \ - -t$(HARECACHE)/unix/signal/unix_signal.td $(stdlib_unix_signal_freebsd_srcs) - -# unix::tty (+linux) -stdlib_unix_tty_linux_srcs = \ - $(STDLIB)/unix/tty/types.ha \ - $(STDLIB)/unix/tty/pty_common.ha \ - $(STDLIB)/unix/tty/+linux/isatty.ha \ - $(STDLIB)/unix/tty/+linux/open.ha \ - $(STDLIB)/unix/tty/+linux/pty.ha \ - $(STDLIB)/unix/tty/+linux/termios.ha \ - $(STDLIB)/unix/tty/+linux/winsize.ha - -$(HARECACHE)/unix/tty/unix_tty-linux.ssa: $(stdlib_unix_tty_linux_srcs) $(stdlib_rt) $(stdlib_bufio_$(PLATFORM)) $(stdlib_errors_$(PLATFORM)) $(stdlib_fmt_$(PLATFORM)) $(stdlib_fs_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_os_$(PLATFORM)) $(stdlib_rt_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/unix/tty - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nunix::tty \ - -t$(HARECACHE)/unix/tty/unix_tty.td $(stdlib_unix_tty_linux_srcs) - -# unix::tty (+freebsd) -stdlib_unix_tty_freebsd_srcs = \ - $(STDLIB)/unix/tty/types.ha \ - $(STDLIB)/unix/tty/pty_common.ha \ - $(STDLIB)/unix/tty/+freebsd/isatty.ha \ - $(STDLIB)/unix/tty/+freebsd/open.ha \ - $(STDLIB)/unix/tty/+freebsd/pty.ha \ - $(STDLIB)/unix/tty/+freebsd/winsize.ha - -$(HARECACHE)/unix/tty/unix_tty-freebsd.ssa: $(stdlib_unix_tty_freebsd_srcs) $(stdlib_rt) $(stdlib_bufio_$(PLATFORM)) $(stdlib_errors_$(PLATFORM)) $(stdlib_fmt_$(PLATFORM)) $(stdlib_fs_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_os_$(PLATFORM)) $(stdlib_rt_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) $(stdlib_types_c_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/unix/tty - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nunix::tty \ - -t$(HARECACHE)/unix/tty/unix_tty.td $(stdlib_unix_tty_freebsd_srcs) - -# uuid (+any) -stdlib_uuid_any_srcs = \ - $(STDLIB)/uuid/uuid.ha - -$(HARECACHE)/uuid/uuid-any.ssa: $(stdlib_uuid_any_srcs) $(stdlib_rt) $(stdlib_crypto_random_$(PLATFORM)) $(stdlib_fmt_$(PLATFORM)) $(stdlib_endian_$(PLATFORM)) $(stdlib_io_$(PLATFORM)) $(stdlib_bytes_$(PLATFORM)) $(stdlib_memio_$(PLATFORM)) $(stdlib_strings_$(PLATFORM)) $(stdlib_strconv_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(HARECACHE)/uuid - @$(stdlib_env) $(HAREC) $(HARECFLAGS) -o $@ -Nuuid \ - -t$(HARECACHE)/uuid/uuid.td $(stdlib_uuid_any_srcs) - -# rt (+linux) -testlib_rt_linux_srcs = \ - $(STDLIB)/rt/+linux/platform_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-libc.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)/arch_jmp.ha \ - $(STDLIB)/rt/+$(ARCH)/backtrace.ha \ - $(STDLIB)/rt/fenv_defs.ha \ - $(STDLIB)/rt/+$(ARCH)/cpuid.ha \ - $(STDLIB)/rt/ensure.ha \ - $(STDLIB)/rt/jmp.ha \ - $(STDLIB)/rt/malloc.ha \ - $(STDLIB)/rt/memcpy.ha \ - $(STDLIB)/rt/memfunc_ptr.ha \ - $(STDLIB)/rt/memmove.ha \ - $(STDLIB)/rt/memset.ha \ - $(STDLIB)/rt/strcmp.ha \ - $(STDLIB)/rt/unknown_errno.ha \ - $(STDLIB)/rt/u64tos.ha \ - $(STDLIB)/rt/abort+test.ha \ - $(STDLIB)/rt/start+test.ha \ - $(STDLIB)/rt/+test/signal_test.ha - -# rt (+freebsd) -testlib_rt_freebsd_srcs = \ - $(STDLIB)/rt/+freebsd/platform_abort.ha \ - $(STDLIB)/rt/+freebsd/env.ha \ - $(STDLIB)/rt/+freebsd/errno.ha \ - $(STDLIB)/rt/+freebsd/platformstart.ha \ - $(STDLIB)/rt/+freebsd/segmalloc.ha \ - $(STDLIB)/rt/+freebsd/signal.ha \ - $(STDLIB)/rt/+freebsd/socket.ha \ - $(STDLIB)/rt/+freebsd/+$(ARCH).ha \ - $(STDLIB)/rt/+freebsd/syscallno.ha \ - $(STDLIB)/rt/+freebsd/syscalls.ha \ - $(STDLIB)/rt/+freebsd/types.ha \ - $(STDLIB)/rt/+$(ARCH)/arch_jmp.ha \ - $(STDLIB)/rt/+$(ARCH)/backtrace.ha \ - $(STDLIB)/rt/fenv_defs.ha \ - $(STDLIB)/rt/+$(ARCH)/cpuid.ha \ - $(STDLIB)/rt/ensure.ha \ - $(STDLIB)/rt/jmp.ha \ - $(STDLIB)/rt/malloc.ha \ - $(STDLIB)/rt/memcpy.ha \ - $(STDLIB)/rt/memfunc_ptr.ha \ - $(STDLIB)/rt/memmove.ha \ - $(STDLIB)/rt/memset.ha \ - $(STDLIB)/rt/strcmp.ha \ - $(STDLIB)/rt/unknown_errno.ha \ - $(STDLIB)/rt/u64tos.ha \ - $(STDLIB)/rt/abort+test.ha \ - $(STDLIB)/rt/start+test.ha \ - $(STDLIB)/rt/+test/signal_test.ha - -$(TESTCACHE)/rt/rt-linux.ssa: $(testlib_rt_linux_srcs) $(testlib_rt) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/rt - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nrt \ - -t$(TESTCACHE)/rt/rt.td $(testlib_rt_linux_srcs) - -$(TESTCACHE)/rt/rt-freebsd.ssa: $(testlib_rt_freebsd_srcs) $(testlib_rt) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/rt - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nrt \ - -t$(TESTCACHE)/rt/rt.td $(testlib_rt_freebsd_srcs) - -$(TESTCACHE)/rt/start.o: $(STDLIB)/rt/+$(PLATFORM)/start+$(ARCH)-libc.s - @printf 'AS \t%s\n' "$@" - @mkdir -p $(TESTCACHE)/rt - @$(AS) -o $@ $(STDLIB)/rt/+$(PLATFORM)/start+$(ARCH)-libc.s - -testlib_asm = $(TESTCACHE)/rt/syscall.o \ - $(TESTCACHE)/rt/setjmp.o \ - $(TESTCACHE)/rt/longjmp.o \ - $(TESTCACHE)/rt/restore.o \ - $(TESTCACHE)/rt/getfp.o \ - $(TESTCACHE)/rt/fenv.o \ - $(TESTCACHE)/rt/start.o \ - $(TESTCACHE)/rt/cpuid.o - -$(TESTCACHE)/rt/syscall.o: $(STDLIB)/rt/+$(PLATFORM)/syscall+$(ARCH).s - @printf 'AS \t%s\n' "$@" - @mkdir -p $(TESTCACHE)/rt - @$(AS) -o $@ $(STDLIB)/rt/+$(PLATFORM)/syscall+$(ARCH).s - -$(TESTCACHE)/rt/setjmp.o: $(STDLIB)/rt/+$(ARCH)/setjmp.s - @printf 'AS \t%s\n' "$@" - @mkdir -p $(TESTCACHE)/rt - @$(AS) -o $@ $(STDLIB)/rt/+$(ARCH)/setjmp.s - -$(TESTCACHE)/rt/longjmp.o: $(STDLIB)/rt/+$(ARCH)/longjmp.s - @printf 'AS \t%s\n' "$@" - @mkdir -p $(TESTCACHE)/rt - @$(AS) -o $@ $(STDLIB)/rt/+$(ARCH)/longjmp.s - -$(TESTCACHE)/rt/restore.o: $(STDLIB)/rt/+$(ARCH)/restore.s - @printf 'AS \t%s\n' "$@" - @mkdir -p $(TESTCACHE)/rt - @$(AS) -o $@ $(STDLIB)/rt/+$(ARCH)/restore.s - -$(TESTCACHE)/rt/fenv.o: $(STDLIB)/rt/+$(ARCH)/fenv.s - @printf 'AS \t%s\n' "$@" - @mkdir -p $(TESTCACHE)/rt - @$(AS) -o $@ $(STDLIB)/rt/+$(ARCH)/fenv.s - -$(TESTCACHE)/rt/getfp.o: $(STDLIB)/rt/+$(ARCH)/getfp.s - @printf 'AS \t%s\n' "$@" - @mkdir -p $(TESTCACHE)/rt - @$(AS) -o $@ $(STDLIB)/rt/+$(ARCH)/getfp.s - -$(TESTCACHE)/rt/cpuid.o: $(STDLIB)/rt/+$(ARCH)/cpuid.s - @printf 'AS \t%s\n' "$@" - @mkdir -p $(TESTCACHE)/rt - @$(AS) -o $@ $(STDLIB)/rt/+$(ARCH)/cpuid.s - -$(TESTCACHE)/rt/rt-linux.a: $(TESTCACHE)/rt/rt-linux.o $(testlib_asm) - @printf 'AR \t%s\n' "$@" - @$(AR) -csr $@ $(TESTCACHE)/rt/rt-linux.o $(testlib_asm) - -$(TESTCACHE)/rt/rt-freebsd.a: $(TESTCACHE)/rt/rt-freebsd.o $(testlib_asm) - @printf 'AR \t%s\n' "$@" - @$(AR) -csr $@ $(TESTCACHE)/rt/rt-freebsd.o $(testlib_asm) - -testlib_rt = $(TESTCACHE)/rt/rt-$(PLATFORM).a -testlib_env += HARE_TD_rt=$(TESTCACHE)/rt/rt.td -testlib_deps_linux += $(testlib_rt) -testlib_deps_freebsd += $(testlib_rt) -testlib_deps_any += $(testlib_rt) - -# gen_lib ascii (any) -testlib_ascii_any = $(TESTCACHE)/ascii/ascii-any.o -testlib_env += HARE_TD_ascii=$(TESTCACHE)/ascii/ascii.td -testlib_deps_any += $(testlib_ascii_any) -testlib_ascii_linux = $(testlib_ascii_any) -testlib_ascii_freebsd = $(testlib_ascii_any) - -# gen_lib bufio (any) -testlib_bufio_any = $(TESTCACHE)/bufio/bufio-any.o -testlib_env += HARE_TD_bufio=$(TESTCACHE)/bufio/bufio.td -testlib_deps_any += $(testlib_bufio_any) -testlib_bufio_linux = $(testlib_bufio_any) -testlib_bufio_freebsd = $(testlib_bufio_any) - -# gen_lib bytes (any) -testlib_bytes_any = $(TESTCACHE)/bytes/bytes-any.o -testlib_env += HARE_TD_bytes=$(TESTCACHE)/bytes/bytes.td -testlib_deps_any += $(testlib_bytes_any) -testlib_bytes_linux = $(testlib_bytes_any) -testlib_bytes_freebsd = $(testlib_bytes_any) - -# gen_lib cmd::hare::build (any) -testlib_cmd_hare_build_any = $(TESTCACHE)/cmd/hare/build/cmd_hare_build-any.o -testlib_env += HARE_TD_cmd::hare::build=$(TESTCACHE)/cmd/hare/build/cmd_hare_build.td -testlib_deps_any += $(testlib_cmd_hare_build_any) -testlib_cmd_hare_build_linux = $(testlib_cmd_hare_build_any) -testlib_cmd_hare_build_freebsd = $(testlib_cmd_hare_build_any) - -# gen_lib crypto (any) -testlib_crypto_any = $(TESTCACHE)/crypto/crypto-any.o -testlib_env += HARE_TD_crypto=$(TESTCACHE)/crypto/crypto.td -testlib_deps_any += $(testlib_crypto_any) -testlib_crypto_linux = $(testlib_crypto_any) -testlib_crypto_freebsd = $(testlib_crypto_any) - -# gen_lib crypto::aes (any) -testlib_crypto_aes_any = $(TESTCACHE)/crypto/aes/crypto_aes-any.o -testlib_env += HARE_TD_crypto::aes=$(TESTCACHE)/crypto/aes/crypto_aes.td -testlib_deps_any += $(testlib_crypto_aes_any) -testlib_crypto_aes_linux = $(testlib_crypto_aes_any) -testlib_crypto_aes_freebsd = $(testlib_crypto_aes_any) - -# gen_lib crypto::aes::xts (any) -testlib_crypto_aes_xts_any = $(TESTCACHE)/crypto/aes/xts/crypto_aes_xts-any.o -testlib_env += HARE_TD_crypto::aes::xts=$(TESTCACHE)/crypto/aes/xts/crypto_aes_xts.td -testlib_deps_any += $(testlib_crypto_aes_xts_any) -testlib_crypto_aes_xts_linux = $(testlib_crypto_aes_xts_any) -testlib_crypto_aes_xts_freebsd = $(testlib_crypto_aes_xts_any) - -# gen_lib crypto::argon2 (any) -testlib_crypto_argon2_any = $(TESTCACHE)/crypto/argon2/crypto_argon2-any.o -testlib_env += HARE_TD_crypto::argon2=$(TESTCACHE)/crypto/argon2/crypto_argon2.td -testlib_deps_any += $(testlib_crypto_argon2_any) -testlib_crypto_argon2_linux = $(testlib_crypto_argon2_any) -testlib_crypto_argon2_freebsd = $(testlib_crypto_argon2_any) - -# gen_lib crypto::bcrypt (any) -testlib_crypto_bcrypt_any = $(TESTCACHE)/crypto/bcrypt/crypto_bcrypt-any.o -testlib_env += HARE_TD_crypto::bcrypt=$(TESTCACHE)/crypto/bcrypt/crypto_bcrypt.td -testlib_deps_any += $(testlib_crypto_bcrypt_any) -testlib_crypto_bcrypt_linux = $(testlib_crypto_bcrypt_any) -testlib_crypto_bcrypt_freebsd = $(testlib_crypto_bcrypt_any) - -# gen_lib crypto::blake2b (any) -testlib_crypto_blake2b_any = $(TESTCACHE)/crypto/blake2b/crypto_blake2b-any.o -testlib_env += HARE_TD_crypto::blake2b=$(TESTCACHE)/crypto/blake2b/crypto_blake2b.td -testlib_deps_any += $(testlib_crypto_blake2b_any) -testlib_crypto_blake2b_linux = $(testlib_crypto_blake2b_any) -testlib_crypto_blake2b_freebsd = $(testlib_crypto_blake2b_any) - -# gen_lib crypto::blowfish (any) -testlib_crypto_blowfish_any = $(TESTCACHE)/crypto/blowfish/crypto_blowfish-any.o -testlib_env += HARE_TD_crypto::blowfish=$(TESTCACHE)/crypto/blowfish/crypto_blowfish.td -testlib_deps_any += $(testlib_crypto_blowfish_any) -testlib_crypto_blowfish_linux = $(testlib_crypto_blowfish_any) -testlib_crypto_blowfish_freebsd = $(testlib_crypto_blowfish_any) - -# gen_lib crypto::bigint (any) -testlib_crypto_bigint_any = $(TESTCACHE)/crypto/bigint/crypto_bigint-any.o -testlib_env += HARE_TD_crypto::bigint=$(TESTCACHE)/crypto/bigint/crypto_bigint.td -testlib_deps_any += $(testlib_crypto_bigint_any) -testlib_crypto_bigint_linux = $(testlib_crypto_bigint_any) -testlib_crypto_bigint_freebsd = $(testlib_crypto_bigint_any) - -# gen_lib crypto::chacha (any) -testlib_crypto_chacha_any = $(TESTCACHE)/crypto/chacha/crypto_chacha-any.o -testlib_env += HARE_TD_crypto::chacha=$(TESTCACHE)/crypto/chacha/crypto_chacha.td -testlib_deps_any += $(testlib_crypto_chacha_any) -testlib_crypto_chacha_linux = $(testlib_crypto_chacha_any) -testlib_crypto_chacha_freebsd = $(testlib_crypto_chacha_any) - -# gen_lib crypto::chachapoly (any) -testlib_crypto_chachapoly_any = $(TESTCACHE)/crypto/chachapoly/crypto_chachapoly-any.o -testlib_env += HARE_TD_crypto::chachapoly=$(TESTCACHE)/crypto/chachapoly/crypto_chachapoly.td -testlib_deps_any += $(testlib_crypto_chachapoly_any) -testlib_crypto_chachapoly_linux = $(testlib_crypto_chachapoly_any) -testlib_crypto_chachapoly_freebsd = $(testlib_crypto_chachapoly_any) - -# gen_lib crypto::cipher (any) -testlib_crypto_cipher_any = $(TESTCACHE)/crypto/cipher/crypto_cipher-any.o -testlib_env += HARE_TD_crypto::cipher=$(TESTCACHE)/crypto/cipher/crypto_cipher.td -testlib_deps_any += $(testlib_crypto_cipher_any) -testlib_crypto_cipher_linux = $(testlib_crypto_cipher_any) -testlib_crypto_cipher_freebsd = $(testlib_crypto_cipher_any) - -# gen_lib crypto::hkdf (any) -testlib_crypto_hkdf_any = $(TESTCACHE)/crypto/hkdf/crypto_hkdf-any.o -testlib_env += HARE_TD_crypto::hkdf=$(TESTCACHE)/crypto/hkdf/crypto_hkdf.td -testlib_deps_any += $(testlib_crypto_hkdf_any) -testlib_crypto_hkdf_linux = $(testlib_crypto_hkdf_any) -testlib_crypto_hkdf_freebsd = $(testlib_crypto_hkdf_any) - -# gen_lib crypto::hmac (any) -testlib_crypto_hmac_any = $(TESTCACHE)/crypto/hmac/crypto_hmac-any.o -testlib_env += HARE_TD_crypto::hmac=$(TESTCACHE)/crypto/hmac/crypto_hmac.td -testlib_deps_any += $(testlib_crypto_hmac_any) -testlib_crypto_hmac_linux = $(testlib_crypto_hmac_any) -testlib_crypto_hmac_freebsd = $(testlib_crypto_hmac_any) - -# gen_lib crypto::mac (any) -testlib_crypto_mac_any = $(TESTCACHE)/crypto/mac/crypto_mac-any.o -testlib_env += HARE_TD_crypto::mac=$(TESTCACHE)/crypto/mac/crypto_mac.td -testlib_deps_any += $(testlib_crypto_mac_any) -testlib_crypto_mac_linux = $(testlib_crypto_mac_any) -testlib_crypto_mac_freebsd = $(testlib_crypto_mac_any) - -# gen_lib crypto::math (any) -testlib_crypto_math_any = $(TESTCACHE)/crypto/math/crypto_math-any.o -testlib_env += HARE_TD_crypto::math=$(TESTCACHE)/crypto/math/crypto_math.td -testlib_deps_any += $(testlib_crypto_math_any) -testlib_crypto_math_linux = $(testlib_crypto_math_any) -testlib_crypto_math_freebsd = $(testlib_crypto_math_any) - -# gen_lib crypto::random (linux) -testlib_crypto_random_linux = $(TESTCACHE)/crypto/random/crypto_random-linux.o -testlib_env += HARE_TD_crypto::random=$(TESTCACHE)/crypto/random/crypto_random.td -testlib_deps_linux += $(testlib_crypto_random_linux) - -# gen_lib crypto::random (freebsd) -testlib_crypto_random_freebsd = $(TESTCACHE)/crypto/random/crypto_random-freebsd.o -testlib_env += HARE_TD_crypto::random=$(TESTCACHE)/crypto/random/crypto_random.td -testlib_deps_freebsd += $(testlib_crypto_random_freebsd) - -# gen_lib crypto::rsa (any) -testlib_crypto_rsa_any = $(TESTCACHE)/crypto/rsa/crypto_rsa-any.o -testlib_env += HARE_TD_crypto::rsa=$(TESTCACHE)/crypto/rsa/crypto_rsa.td -testlib_deps_any += $(testlib_crypto_rsa_any) -testlib_crypto_rsa_linux = $(testlib_crypto_rsa_any) -testlib_crypto_rsa_freebsd = $(testlib_crypto_rsa_any) - -# gen_lib crypto::poly1305 (any) -testlib_crypto_poly1305_any = $(TESTCACHE)/crypto/poly1305/crypto_poly1305-any.o -testlib_env += HARE_TD_crypto::poly1305=$(TESTCACHE)/crypto/poly1305/crypto_poly1305.td -testlib_deps_any += $(testlib_crypto_poly1305_any) -testlib_crypto_poly1305_linux = $(testlib_crypto_poly1305_any) -testlib_crypto_poly1305_freebsd = $(testlib_crypto_poly1305_any) - -# gen_lib crypto::salsa (any) -testlib_crypto_salsa_any = $(TESTCACHE)/crypto/salsa/crypto_salsa-any.o -testlib_env += HARE_TD_crypto::salsa=$(TESTCACHE)/crypto/salsa/crypto_salsa.td -testlib_deps_any += $(testlib_crypto_salsa_any) -testlib_crypto_salsa_linux = $(testlib_crypto_salsa_any) -testlib_crypto_salsa_freebsd = $(testlib_crypto_salsa_any) - -# gen_lib crypto::sha1 (any) -testlib_crypto_sha1_any = $(TESTCACHE)/crypto/sha1/crypto_sha1-any.o -testlib_env += HARE_TD_crypto::sha1=$(TESTCACHE)/crypto/sha1/crypto_sha1.td -testlib_deps_any += $(testlib_crypto_sha1_any) -testlib_crypto_sha1_linux = $(testlib_crypto_sha1_any) -testlib_crypto_sha1_freebsd = $(testlib_crypto_sha1_any) - -# gen_lib crypto::sha256 (any) -testlib_crypto_sha256_any = $(TESTCACHE)/crypto/sha256/crypto_sha256-any.o -testlib_env += HARE_TD_crypto::sha256=$(TESTCACHE)/crypto/sha256/crypto_sha256.td -testlib_deps_any += $(testlib_crypto_sha256_any) -testlib_crypto_sha256_linux = $(testlib_crypto_sha256_any) -testlib_crypto_sha256_freebsd = $(testlib_crypto_sha256_any) - -# gen_lib crypto::sha512 (any) -testlib_crypto_sha512_any = $(TESTCACHE)/crypto/sha512/crypto_sha512-any.o -testlib_env += HARE_TD_crypto::sha512=$(TESTCACHE)/crypto/sha512/crypto_sha512.td -testlib_deps_any += $(testlib_crypto_sha512_any) -testlib_crypto_sha512_linux = $(testlib_crypto_sha512_any) -testlib_crypto_sha512_freebsd = $(testlib_crypto_sha512_any) - -# gen_lib crypto::curve25519 (any) -testlib_crypto_curve25519_any = $(TESTCACHE)/crypto/curve25519/crypto_curve25519-any.o -testlib_env += HARE_TD_crypto::curve25519=$(TESTCACHE)/crypto/curve25519/crypto_curve25519.td -testlib_deps_any += $(testlib_crypto_curve25519_any) -testlib_crypto_curve25519_linux = $(testlib_crypto_curve25519_any) -testlib_crypto_curve25519_freebsd = $(testlib_crypto_curve25519_any) - -# gen_lib crypto::ed25519 (any) -testlib_crypto_ed25519_any = $(TESTCACHE)/crypto/ed25519/crypto_ed25519-any.o -testlib_env += HARE_TD_crypto::ed25519=$(TESTCACHE)/crypto/ed25519/crypto_ed25519.td -testlib_deps_any += $(testlib_crypto_ed25519_any) -testlib_crypto_ed25519_linux = $(testlib_crypto_ed25519_any) -testlib_crypto_ed25519_freebsd = $(testlib_crypto_ed25519_any) - -# gen_lib crypto::x25519 (any) -testlib_crypto_x25519_any = $(TESTCACHE)/crypto/x25519/crypto_x25519-any.o -testlib_env += HARE_TD_crypto::x25519=$(TESTCACHE)/crypto/x25519/crypto_x25519.td -testlib_deps_any += $(testlib_crypto_x25519_any) -testlib_crypto_x25519_linux = $(testlib_crypto_x25519_any) -testlib_crypto_x25519_freebsd = $(testlib_crypto_x25519_any) - -# gen_lib dirs (any) -testlib_dirs_any = $(TESTCACHE)/dirs/dirs-any.o -testlib_env += HARE_TD_dirs=$(TESTCACHE)/dirs/dirs.td -testlib_deps_any += $(testlib_dirs_any) -testlib_dirs_linux = $(testlib_dirs_any) -testlib_dirs_freebsd = $(testlib_dirs_any) - -# gen_lib encoding::base64 (any) -testlib_encoding_base64_any = $(TESTCACHE)/encoding/base64/encoding_base64-any.o -testlib_env += HARE_TD_encoding::base64=$(TESTCACHE)/encoding/base64/encoding_base64.td -testlib_deps_any += $(testlib_encoding_base64_any) -testlib_encoding_base64_linux = $(testlib_encoding_base64_any) -testlib_encoding_base64_freebsd = $(testlib_encoding_base64_any) - -# gen_lib encoding::base32 (any) -testlib_encoding_base32_any = $(TESTCACHE)/encoding/base32/encoding_base32-any.o -testlib_env += HARE_TD_encoding::base32=$(TESTCACHE)/encoding/base32/encoding_base32.td -testlib_deps_any += $(testlib_encoding_base32_any) -testlib_encoding_base32_linux = $(testlib_encoding_base32_any) -testlib_encoding_base32_freebsd = $(testlib_encoding_base32_any) - -# gen_lib encoding::hex (any) -testlib_encoding_hex_any = $(TESTCACHE)/encoding/hex/encoding_hex-any.o -testlib_env += HARE_TD_encoding::hex=$(TESTCACHE)/encoding/hex/encoding_hex.td -testlib_deps_any += $(testlib_encoding_hex_any) -testlib_encoding_hex_linux = $(testlib_encoding_hex_any) -testlib_encoding_hex_freebsd = $(testlib_encoding_hex_any) - -# gen_lib encoding::pem (any) -testlib_encoding_pem_any = $(TESTCACHE)/encoding/pem/encoding_pem-any.o -testlib_env += HARE_TD_encoding::pem=$(TESTCACHE)/encoding/pem/encoding_pem.td -testlib_deps_any += $(testlib_encoding_pem_any) -testlib_encoding_pem_linux = $(testlib_encoding_pem_any) -testlib_encoding_pem_freebsd = $(testlib_encoding_pem_any) - -# gen_lib encoding::utf8 (any) -testlib_encoding_utf8_any = $(TESTCACHE)/encoding/utf8/encoding_utf8-any.o -testlib_env += HARE_TD_encoding::utf8=$(TESTCACHE)/encoding/utf8/encoding_utf8.td -testlib_deps_any += $(testlib_encoding_utf8_any) -testlib_encoding_utf8_linux = $(testlib_encoding_utf8_any) -testlib_encoding_utf8_freebsd = $(testlib_encoding_utf8_any) - -# gen_lib endian (any) -testlib_endian_any = $(TESTCACHE)/endian/endian-any.o -testlib_env += HARE_TD_endian=$(TESTCACHE)/endian/endian.td -testlib_deps_any += $(testlib_endian_any) -testlib_endian_linux = $(testlib_endian_any) -testlib_endian_freebsd = $(testlib_endian_any) - -# gen_lib errors (any) -testlib_errors_any = $(TESTCACHE)/errors/errors-any.o -testlib_env += HARE_TD_errors=$(TESTCACHE)/errors/errors.td -testlib_deps_any += $(testlib_errors_any) -testlib_errors_linux = $(testlib_errors_any) -testlib_errors_freebsd = $(testlib_errors_any) - -# gen_lib fmt (any) -testlib_fmt_any = $(TESTCACHE)/fmt/fmt-any.o -testlib_env += HARE_TD_fmt=$(TESTCACHE)/fmt/fmt.td -testlib_deps_any += $(testlib_fmt_any) -testlib_fmt_linux = $(testlib_fmt_any) -testlib_fmt_freebsd = $(testlib_fmt_any) - -# gen_lib fnmatch (any) -testlib_fnmatch_any = $(TESTCACHE)/fnmatch/fnmatch-any.o -testlib_env += HARE_TD_fnmatch=$(TESTCACHE)/fnmatch/fnmatch.td -testlib_deps_any += $(testlib_fnmatch_any) -testlib_fnmatch_linux = $(testlib_fnmatch_any) -testlib_fnmatch_freebsd = $(testlib_fnmatch_any) - -# gen_lib format::elf (any) -testlib_format_elf_any = $(TESTCACHE)/format/elf/format_elf-any.o -testlib_env += HARE_TD_format::elf=$(TESTCACHE)/format/elf/format_elf.td -testlib_deps_any += $(testlib_format_elf_any) -testlib_format_elf_linux = $(testlib_format_elf_any) -testlib_format_elf_freebsd = $(testlib_format_elf_any) - -# gen_lib format::ini (any) -testlib_format_ini_any = $(TESTCACHE)/format/ini/format_ini-any.o -testlib_env += HARE_TD_format::ini=$(TESTCACHE)/format/ini/format_ini.td -testlib_deps_any += $(testlib_format_ini_any) -testlib_format_ini_linux = $(testlib_format_ini_any) -testlib_format_ini_freebsd = $(testlib_format_ini_any) - -# gen_lib format::tar (any) -testlib_format_tar_any = $(TESTCACHE)/format/tar/format_tar-any.o -testlib_env += HARE_TD_format::tar=$(TESTCACHE)/format/tar/format_tar.td -testlib_deps_any += $(testlib_format_tar_any) -testlib_format_tar_linux = $(testlib_format_tar_any) -testlib_format_tar_freebsd = $(testlib_format_tar_any) - -# gen_lib fs (any) -testlib_fs_any = $(TESTCACHE)/fs/fs-any.o -testlib_env += HARE_TD_fs=$(TESTCACHE)/fs/fs.td -testlib_deps_any += $(testlib_fs_any) -testlib_fs_linux = $(testlib_fs_any) -testlib_fs_freebsd = $(testlib_fs_any) - -# gen_lib getopt (any) -testlib_getopt_any = $(TESTCACHE)/getopt/getopt-any.o -testlib_env += HARE_TD_getopt=$(TESTCACHE)/getopt/getopt.td -testlib_deps_any += $(testlib_getopt_any) -testlib_getopt_linux = $(testlib_getopt_any) -testlib_getopt_freebsd = $(testlib_getopt_any) - -# gen_lib glob (any) -testlib_glob_any = $(TESTCACHE)/glob/glob-any.o -testlib_env += HARE_TD_glob=$(TESTCACHE)/glob/glob.td -testlib_deps_any += $(testlib_glob_any) -testlib_glob_linux = $(testlib_glob_any) -testlib_glob_freebsd = $(testlib_glob_any) - -# gen_lib hare::ast (any) -testlib_hare_ast_any = $(TESTCACHE)/hare/ast/hare_ast-any.o -testlib_env += HARE_TD_hare::ast=$(TESTCACHE)/hare/ast/hare_ast.td -testlib_deps_any += $(testlib_hare_ast_any) -testlib_hare_ast_linux = $(testlib_hare_ast_any) -testlib_hare_ast_freebsd = $(testlib_hare_ast_any) - -# gen_lib hare::lex (any) -testlib_hare_lex_any = $(TESTCACHE)/hare/lex/hare_lex-any.o -testlib_env += HARE_TD_hare::lex=$(TESTCACHE)/hare/lex/hare_lex.td -testlib_deps_any += $(testlib_hare_lex_any) -testlib_hare_lex_linux = $(testlib_hare_lex_any) -testlib_hare_lex_freebsd = $(testlib_hare_lex_any) - -# gen_lib hare::module (any) -testlib_hare_module_any = $(TESTCACHE)/hare/module/hare_module-any.o -testlib_env += HARE_TD_hare::module=$(TESTCACHE)/hare/module/hare_module.td -testlib_deps_any += $(testlib_hare_module_any) -testlib_hare_module_linux = $(testlib_hare_module_any) -testlib_hare_module_freebsd = $(testlib_hare_module_any) - -# gen_lib hare::parse (any) -testlib_hare_parse_any = $(TESTCACHE)/hare/parse/hare_parse-any.o -testlib_env += HARE_TD_hare::parse=$(TESTCACHE)/hare/parse/hare_parse.td -testlib_deps_any += $(testlib_hare_parse_any) -testlib_hare_parse_linux = $(testlib_hare_parse_any) -testlib_hare_parse_freebsd = $(testlib_hare_parse_any) - -# gen_lib hare::parse::doc (any) -testlib_hare_parse_doc_any = $(TESTCACHE)/hare/parse/doc/hare_parse_doc-any.o -testlib_env += HARE_TD_hare::parse::doc=$(TESTCACHE)/hare/parse/doc/hare_parse_doc.td -testlib_deps_any += $(testlib_hare_parse_doc_any) -testlib_hare_parse_doc_linux = $(testlib_hare_parse_doc_any) -testlib_hare_parse_doc_freebsd = $(testlib_hare_parse_doc_any) - -# gen_lib hare::types (any) -testlib_hare_types_any = $(TESTCACHE)/hare/types/hare_types-any.o -testlib_env += HARE_TD_hare::types=$(TESTCACHE)/hare/types/hare_types.td -testlib_deps_any += $(testlib_hare_types_any) -testlib_hare_types_linux = $(testlib_hare_types_any) -testlib_hare_types_freebsd = $(testlib_hare_types_any) - -# gen_lib hare::unit (any) -testlib_hare_unit_any = $(TESTCACHE)/hare/unit/hare_unit-any.o -testlib_env += HARE_TD_hare::unit=$(TESTCACHE)/hare/unit/hare_unit.td -testlib_deps_any += $(testlib_hare_unit_any) -testlib_hare_unit_linux = $(testlib_hare_unit_any) -testlib_hare_unit_freebsd = $(testlib_hare_unit_any) - -# gen_lib hare::unparse (any) -testlib_hare_unparse_any = $(TESTCACHE)/hare/unparse/hare_unparse-any.o -testlib_env += HARE_TD_hare::unparse=$(TESTCACHE)/hare/unparse/hare_unparse.td -testlib_deps_any += $(testlib_hare_unparse_any) -testlib_hare_unparse_linux = $(testlib_hare_unparse_any) -testlib_hare_unparse_freebsd = $(testlib_hare_unparse_any) - -# gen_lib hash (any) -testlib_hash_any = $(TESTCACHE)/hash/hash-any.o -testlib_env += HARE_TD_hash=$(TESTCACHE)/hash/hash.td -testlib_deps_any += $(testlib_hash_any) -testlib_hash_linux = $(testlib_hash_any) -testlib_hash_freebsd = $(testlib_hash_any) - -# gen_lib hash::adler32 (any) -testlib_hash_adler32_any = $(TESTCACHE)/hash/adler32/hash_adler32-any.o -testlib_env += HARE_TD_hash::adler32=$(TESTCACHE)/hash/adler32/hash_adler32.td -testlib_deps_any += $(testlib_hash_adler32_any) -testlib_hash_adler32_linux = $(testlib_hash_adler32_any) -testlib_hash_adler32_freebsd = $(testlib_hash_adler32_any) - -# gen_lib hash::crc16 (any) -testlib_hash_crc16_any = $(TESTCACHE)/hash/crc16/hash_crc16-any.o -testlib_env += HARE_TD_hash::crc16=$(TESTCACHE)/hash/crc16/hash_crc16.td -testlib_deps_any += $(testlib_hash_crc16_any) -testlib_hash_crc16_linux = $(testlib_hash_crc16_any) -testlib_hash_crc16_freebsd = $(testlib_hash_crc16_any) - -# gen_lib hash::crc32 (any) -testlib_hash_crc32_any = $(TESTCACHE)/hash/crc32/hash_crc32-any.o -testlib_env += HARE_TD_hash::crc32=$(TESTCACHE)/hash/crc32/hash_crc32.td -testlib_deps_any += $(testlib_hash_crc32_any) -testlib_hash_crc32_linux = $(testlib_hash_crc32_any) -testlib_hash_crc32_freebsd = $(testlib_hash_crc32_any) - -# gen_lib hash::crc64 (any) -testlib_hash_crc64_any = $(TESTCACHE)/hash/crc64/hash_crc64-any.o -testlib_env += HARE_TD_hash::crc64=$(TESTCACHE)/hash/crc64/hash_crc64.td -testlib_deps_any += $(testlib_hash_crc64_any) -testlib_hash_crc64_linux = $(testlib_hash_crc64_any) -testlib_hash_crc64_freebsd = $(testlib_hash_crc64_any) - -# gen_lib hash::fnv (any) -testlib_hash_fnv_any = $(TESTCACHE)/hash/fnv/hash_fnv-any.o -testlib_env += HARE_TD_hash::fnv=$(TESTCACHE)/hash/fnv/hash_fnv.td -testlib_deps_any += $(testlib_hash_fnv_any) -testlib_hash_fnv_linux = $(testlib_hash_fnv_any) -testlib_hash_fnv_freebsd = $(testlib_hash_fnv_any) - -# gen_lib hash::siphash (any) -testlib_hash_siphash_any = $(TESTCACHE)/hash/siphash/hash_siphash-any.o -testlib_env += HARE_TD_hash::siphash=$(TESTCACHE)/hash/siphash/hash_siphash.td -testlib_deps_any += $(testlib_hash_siphash_any) -testlib_hash_siphash_linux = $(testlib_hash_siphash_any) -testlib_hash_siphash_freebsd = $(testlib_hash_siphash_any) - -# gen_lib io (linux) -testlib_io_linux = $(TESTCACHE)/io/io-linux.o -testlib_env += HARE_TD_io=$(TESTCACHE)/io/io.td -testlib_deps_linux += $(testlib_io_linux) - -# gen_lib io (freebsd) -testlib_io_freebsd = $(TESTCACHE)/io/io-freebsd.o -testlib_env += HARE_TD_io=$(TESTCACHE)/io/io.td -testlib_deps_freebsd += $(testlib_io_freebsd) - -# gen_lib linux (linux) -testlib_linux_linux = $(TESTCACHE)/linux/linux-linux.o -testlib_env += HARE_TD_linux=$(TESTCACHE)/linux/linux.td -testlib_deps_linux += $(testlib_linux_linux) - -# gen_lib linux::keyctl (linux) -testlib_linux_keyctl_linux = $(TESTCACHE)/linux/keyctl/linux_keyctl-linux.o -testlib_env += HARE_TD_linux::keyctl=$(TESTCACHE)/linux/keyctl/linux_keyctl.td -testlib_deps_linux += $(testlib_linux_keyctl_linux) - -# gen_lib linux::timerfd (linux) -testlib_linux_timerfd_linux = $(TESTCACHE)/linux/timerfd/linux_timerfd-linux.o -testlib_env += HARE_TD_linux::timerfd=$(TESTCACHE)/linux/timerfd/linux_timerfd.td -testlib_deps_linux += $(testlib_linux_timerfd_linux) - -# gen_lib linux::vdso (linux) -testlib_linux_vdso_linux = $(TESTCACHE)/linux/vdso/linux_vdso-linux.o -testlib_env += HARE_TD_linux::vdso=$(TESTCACHE)/linux/vdso/linux_vdso.td -testlib_deps_linux += $(testlib_linux_vdso_linux) - -# gen_lib log (linux) -testlib_log_linux = $(TESTCACHE)/log/log-linux.o -testlib_env += HARE_TD_log=$(TESTCACHE)/log/log.td -testlib_deps_linux += $(testlib_log_linux) - -# gen_lib log (freebsd) -testlib_log_freebsd = $(TESTCACHE)/log/log-freebsd.o -testlib_env += HARE_TD_log=$(TESTCACHE)/log/log.td -testlib_deps_freebsd += $(testlib_log_freebsd) - -# gen_lib math (any) -testlib_math_any = $(TESTCACHE)/math/math-any.o -testlib_env += HARE_TD_math=$(TESTCACHE)/math/math.td -testlib_deps_any += $(testlib_math_any) -testlib_math_linux = $(testlib_math_any) -testlib_math_freebsd = $(testlib_math_any) - -# gen_lib math::checked (any) -testlib_math_checked_any = $(TESTCACHE)/math/checked/math_checked-any.o -testlib_env += HARE_TD_math::checked=$(TESTCACHE)/math/checked/math_checked.td -testlib_deps_any += $(testlib_math_checked_any) -testlib_math_checked_linux = $(testlib_math_checked_any) -testlib_math_checked_freebsd = $(testlib_math_checked_any) - -# gen_lib math::complex (any) -testlib_math_complex_any = $(TESTCACHE)/math/complex/math_complex-any.o -testlib_env += HARE_TD_math::complex=$(TESTCACHE)/math/complex/math_complex.td -testlib_deps_any += $(testlib_math_complex_any) -testlib_math_complex_linux = $(testlib_math_complex_any) -testlib_math_complex_freebsd = $(testlib_math_complex_any) - -# gen_lib math::random (any) -testlib_math_random_any = $(TESTCACHE)/math/random/math_random-any.o -testlib_env += HARE_TD_math::random=$(TESTCACHE)/math/random/math_random.td -testlib_deps_any += $(testlib_math_random_any) -testlib_math_random_linux = $(testlib_math_random_any) -testlib_math_random_freebsd = $(testlib_math_random_any) - -# gen_lib memio (any) -testlib_memio_any = $(TESTCACHE)/memio/memio-any.o -testlib_env += HARE_TD_memio=$(TESTCACHE)/memio/memio.td -testlib_deps_any += $(testlib_memio_any) -testlib_memio_linux = $(testlib_memio_any) -testlib_memio_freebsd = $(testlib_memio_any) - -# gen_lib net (linux) -testlib_net_linux = $(TESTCACHE)/net/net-linux.o -testlib_env += HARE_TD_net=$(TESTCACHE)/net/net.td -testlib_deps_linux += $(testlib_net_linux) - -# gen_lib net (freebsd) -testlib_net_freebsd = $(TESTCACHE)/net/net-freebsd.o -testlib_env += HARE_TD_net=$(TESTCACHE)/net/net.td -testlib_deps_freebsd += $(testlib_net_freebsd) - -# gen_lib net::dial (any) -testlib_net_dial_any = $(TESTCACHE)/net/dial/net_dial-any.o -testlib_env += HARE_TD_net::dial=$(TESTCACHE)/net/dial/net_dial.td -testlib_deps_any += $(testlib_net_dial_any) -testlib_net_dial_linux = $(testlib_net_dial_any) -testlib_net_dial_freebsd = $(testlib_net_dial_any) - -# gen_lib net::dns (any) -testlib_net_dns_any = $(TESTCACHE)/net/dns/net_dns-any.o -testlib_env += HARE_TD_net::dns=$(TESTCACHE)/net/dns/net_dns.td -testlib_deps_any += $(testlib_net_dns_any) -testlib_net_dns_linux = $(testlib_net_dns_any) -testlib_net_dns_freebsd = $(testlib_net_dns_any) - -# gen_lib net::ip (linux) -testlib_net_ip_linux = $(TESTCACHE)/net/ip/net_ip-linux.o -testlib_env += HARE_TD_net::ip=$(TESTCACHE)/net/ip/net_ip.td -testlib_deps_linux += $(testlib_net_ip_linux) - -# gen_lib net::ip (freebsd) -testlib_net_ip_freebsd = $(TESTCACHE)/net/ip/net_ip-freebsd.o -testlib_env += HARE_TD_net::ip=$(TESTCACHE)/net/ip/net_ip.td -testlib_deps_freebsd += $(testlib_net_ip_freebsd) - -# gen_lib net::tcp (linux) -testlib_net_tcp_linux = $(TESTCACHE)/net/tcp/net_tcp-linux.o -testlib_env += HARE_TD_net::tcp=$(TESTCACHE)/net/tcp/net_tcp.td -testlib_deps_linux += $(testlib_net_tcp_linux) - -# gen_lib net::tcp (freebsd) -testlib_net_tcp_freebsd = $(TESTCACHE)/net/tcp/net_tcp-freebsd.o -testlib_env += HARE_TD_net::tcp=$(TESTCACHE)/net/tcp/net_tcp.td -testlib_deps_freebsd += $(testlib_net_tcp_freebsd) - -# gen_lib net::udp (linux) -testlib_net_udp_linux = $(TESTCACHE)/net/udp/net_udp-linux.o -testlib_env += HARE_TD_net::udp=$(TESTCACHE)/net/udp/net_udp.td -testlib_deps_linux += $(testlib_net_udp_linux) - -# gen_lib net::udp (freebsd) -testlib_net_udp_freebsd = $(TESTCACHE)/net/udp/net_udp-freebsd.o -testlib_env += HARE_TD_net::udp=$(TESTCACHE)/net/udp/net_udp.td -testlib_deps_freebsd += $(testlib_net_udp_freebsd) - -# gen_lib net::unix (linux) -testlib_net_unix_linux = $(TESTCACHE)/net/unix/net_unix-linux.o -testlib_env += HARE_TD_net::unix=$(TESTCACHE)/net/unix/net_unix.td -testlib_deps_linux += $(testlib_net_unix_linux) - -# gen_lib net::unix (freebsd) -testlib_net_unix_freebsd = $(TESTCACHE)/net/unix/net_unix-freebsd.o -testlib_env += HARE_TD_net::unix=$(TESTCACHE)/net/unix/net_unix.td -testlib_deps_freebsd += $(testlib_net_unix_freebsd) - -# gen_lib net::uri (any) -testlib_net_uri_any = $(TESTCACHE)/net/uri/net_uri-any.o -testlib_env += HARE_TD_net::uri=$(TESTCACHE)/net/uri/net_uri.td -testlib_deps_any += $(testlib_net_uri_any) -testlib_net_uri_linux = $(testlib_net_uri_any) -testlib_net_uri_freebsd = $(testlib_net_uri_any) - -# gen_lib os (linux) -testlib_os_linux = $(TESTCACHE)/os/os-linux.o -testlib_env += HARE_TD_os=$(TESTCACHE)/os/os.td -testlib_deps_linux += $(testlib_os_linux) - -# gen_lib os (freebsd) -testlib_os_freebsd = $(TESTCACHE)/os/os-freebsd.o -testlib_env += HARE_TD_os=$(TESTCACHE)/os/os.td -testlib_deps_freebsd += $(testlib_os_freebsd) - -# gen_lib os::exec (linux) -testlib_os_exec_linux = $(TESTCACHE)/os/exec/os_exec-linux.o -testlib_env += HARE_TD_os::exec=$(TESTCACHE)/os/exec/os_exec.td -testlib_deps_linux += $(testlib_os_exec_linux) - -# gen_lib os::exec (freebsd) -testlib_os_exec_freebsd = $(TESTCACHE)/os/exec/os_exec-freebsd.o -testlib_env += HARE_TD_os::exec=$(TESTCACHE)/os/exec/os_exec.td -testlib_deps_freebsd += $(testlib_os_exec_freebsd) - -# gen_lib path (any) -testlib_path_any = $(TESTCACHE)/path/path-any.o -testlib_env += HARE_TD_path=$(TESTCACHE)/path/path.td -testlib_deps_any += $(testlib_path_any) -testlib_path_linux = $(testlib_path_any) -testlib_path_freebsd = $(testlib_path_any) - -# gen_lib regex (any) -testlib_regex_any = $(TESTCACHE)/regex/regex-any.o -testlib_env += HARE_TD_regex=$(TESTCACHE)/regex/regex.td -testlib_deps_any += $(testlib_regex_any) -testlib_regex_linux = $(testlib_regex_any) -testlib_regex_freebsd = $(testlib_regex_any) - -# gen_lib shlex (any) -testlib_shlex_any = $(TESTCACHE)/shlex/shlex-any.o -testlib_env += HARE_TD_shlex=$(TESTCACHE)/shlex/shlex.td -testlib_deps_any += $(testlib_shlex_any) -testlib_shlex_linux = $(testlib_shlex_any) -testlib_shlex_freebsd = $(testlib_shlex_any) - -# gen_lib sort (any) -testlib_sort_any = $(TESTCACHE)/sort/sort-any.o -testlib_env += HARE_TD_sort=$(TESTCACHE)/sort/sort.td -testlib_deps_any += $(testlib_sort_any) -testlib_sort_linux = $(testlib_sort_any) -testlib_sort_freebsd = $(testlib_sort_any) - -# gen_lib sort::cmp (any) -testlib_sort_cmp_any = $(TESTCACHE)/sort/cmp/sort_cmp-any.o -testlib_env += HARE_TD_sort::cmp=$(TESTCACHE)/sort/cmp/sort_cmp.td -testlib_deps_any += $(testlib_sort_cmp_any) -testlib_sort_cmp_linux = $(testlib_sort_cmp_any) -testlib_sort_cmp_freebsd = $(testlib_sort_cmp_any) - -# gen_lib strconv (any) -testlib_strconv_any = $(TESTCACHE)/strconv/strconv-any.o -testlib_env += HARE_TD_strconv=$(TESTCACHE)/strconv/strconv.td -testlib_deps_any += $(testlib_strconv_any) -testlib_strconv_linux = $(testlib_strconv_any) -testlib_strconv_freebsd = $(testlib_strconv_any) - -# gen_lib strings (any) -testlib_strings_any = $(TESTCACHE)/strings/strings-any.o -testlib_env += HARE_TD_strings=$(TESTCACHE)/strings/strings.td -testlib_deps_any += $(testlib_strings_any) -testlib_strings_linux = $(testlib_strings_any) -testlib_strings_freebsd = $(testlib_strings_any) - -# gen_lib strings::template (any) -testlib_strings_template_any = $(TESTCACHE)/strings/template/strings_template-any.o -testlib_env += HARE_TD_strings::template=$(TESTCACHE)/strings/template/strings_template.td -testlib_deps_any += $(testlib_strings_template_any) -testlib_strings_template_linux = $(testlib_strings_template_any) -testlib_strings_template_freebsd = $(testlib_strings_template_any) - -# gen_lib temp (linux) -testlib_temp_linux = $(TESTCACHE)/temp/temp-linux.o -testlib_env += HARE_TD_temp=$(TESTCACHE)/temp/temp.td -testlib_deps_linux += $(testlib_temp_linux) - -# gen_lib temp (freebsd) -testlib_temp_freebsd = $(TESTCACHE)/temp/temp-freebsd.o -testlib_env += HARE_TD_temp=$(TESTCACHE)/temp/temp.td -testlib_deps_freebsd += $(testlib_temp_freebsd) - -# gen_lib test (any) -testlib_test_any = $(TESTCACHE)/test/test-any.o -testlib_env += HARE_TD_test=$(TESTCACHE)/test/test.td -testlib_deps_any += $(testlib_test_any) -testlib_test_linux = $(testlib_test_any) -testlib_test_freebsd = $(testlib_test_any) - -# gen_lib time (linux) -testlib_time_linux = $(TESTCACHE)/time/time-linux.o -testlib_env += HARE_TD_time=$(TESTCACHE)/time/time.td -testlib_deps_linux += $(testlib_time_linux) - -# gen_lib time (freebsd) -testlib_time_freebsd = $(TESTCACHE)/time/time-freebsd.o -testlib_env += HARE_TD_time=$(TESTCACHE)/time/time.td -testlib_deps_freebsd += $(testlib_time_freebsd) - -# gen_lib time::chrono (linux) -testlib_time_chrono_linux = $(TESTCACHE)/time/chrono/time_chrono-linux.o -testlib_env += HARE_TD_time::chrono=$(TESTCACHE)/time/chrono/time_chrono.td -testlib_deps_linux += $(testlib_time_chrono_linux) - -# gen_lib time::chrono (freebsd) -testlib_time_chrono_freebsd = $(TESTCACHE)/time/chrono/time_chrono-freebsd.o -testlib_env += HARE_TD_time::chrono=$(TESTCACHE)/time/chrono/time_chrono.td -testlib_deps_freebsd += $(testlib_time_chrono_freebsd) - -# gen_lib time::date (linux) -testlib_time_date_linux = $(TESTCACHE)/time/date/time_date-linux.o -testlib_env += HARE_TD_time::date=$(TESTCACHE)/time/date/time_date.td -testlib_deps_linux += $(testlib_time_date_linux) - -# gen_lib time::date (freebsd) -testlib_time_date_freebsd = $(TESTCACHE)/time/date/time_date-freebsd.o -testlib_env += HARE_TD_time::date=$(TESTCACHE)/time/date/time_date.td -testlib_deps_freebsd += $(testlib_time_date_freebsd) - -# gen_lib types (any) -testlib_types_any = $(TESTCACHE)/types/types-any.o -testlib_env += HARE_TD_types=$(TESTCACHE)/types/types.td -testlib_deps_any += $(testlib_types_any) -testlib_types_linux = $(testlib_types_any) -testlib_types_freebsd = $(testlib_types_any) - -# gen_lib types::c (any) -testlib_types_c_any = $(TESTCACHE)/types/c/types_c-any.o -testlib_env += HARE_TD_types::c=$(TESTCACHE)/types/c/types_c.td -testlib_deps_any += $(testlib_types_c_any) -testlib_types_c_linux = $(testlib_types_c_any) -testlib_types_c_freebsd = $(testlib_types_c_any) - -# gen_lib unix (linux) -testlib_unix_linux = $(TESTCACHE)/unix/unix-linux.o -testlib_env += HARE_TD_unix=$(TESTCACHE)/unix/unix.td -testlib_deps_linux += $(testlib_unix_linux) - -# gen_lib unix (freebsd) -testlib_unix_freebsd = $(TESTCACHE)/unix/unix-freebsd.o -testlib_env += HARE_TD_unix=$(TESTCACHE)/unix/unix.td -testlib_deps_freebsd += $(testlib_unix_freebsd) - -# gen_lib unix::hosts (linux) -testlib_unix_hosts_linux = $(TESTCACHE)/unix/hosts/unix_hosts-linux.o -testlib_env += HARE_TD_unix::hosts=$(TESTCACHE)/unix/hosts/unix_hosts.td -testlib_deps_linux += $(testlib_unix_hosts_linux) - -# gen_lib unix::hosts (freebsd) -testlib_unix_hosts_freebsd = $(TESTCACHE)/unix/hosts/unix_hosts-freebsd.o -testlib_env += HARE_TD_unix::hosts=$(TESTCACHE)/unix/hosts/unix_hosts.td -testlib_deps_freebsd += $(testlib_unix_hosts_freebsd) - -# gen_lib unix::passwd (any) -testlib_unix_passwd_any = $(TESTCACHE)/unix/passwd/unix_passwd-any.o -testlib_env += HARE_TD_unix::passwd=$(TESTCACHE)/unix/passwd/unix_passwd.td -testlib_deps_any += $(testlib_unix_passwd_any) -testlib_unix_passwd_linux = $(testlib_unix_passwd_any) -testlib_unix_passwd_freebsd = $(testlib_unix_passwd_any) - -# gen_lib unix::poll (linux) -testlib_unix_poll_linux = $(TESTCACHE)/unix/poll/unix_poll-linux.o -testlib_env += HARE_TD_unix::poll=$(TESTCACHE)/unix/poll/unix_poll.td -testlib_deps_linux += $(testlib_unix_poll_linux) - -# gen_lib unix::poll (freebsd) -testlib_unix_poll_freebsd = $(TESTCACHE)/unix/poll/unix_poll-freebsd.o -testlib_env += HARE_TD_unix::poll=$(TESTCACHE)/unix/poll/unix_poll.td -testlib_deps_freebsd += $(testlib_unix_poll_freebsd) - -# gen_lib unix::resolvconf (linux) -testlib_unix_resolvconf_linux = $(TESTCACHE)/unix/resolvconf/unix_resolvconf-linux.o -testlib_env += HARE_TD_unix::resolvconf=$(TESTCACHE)/unix/resolvconf/unix_resolvconf.td -testlib_deps_linux += $(testlib_unix_resolvconf_linux) - -# gen_lib unix::resolvconf (freebsd) -testlib_unix_resolvconf_freebsd = $(TESTCACHE)/unix/resolvconf/unix_resolvconf-freebsd.o -testlib_env += HARE_TD_unix::resolvconf=$(TESTCACHE)/unix/resolvconf/unix_resolvconf.td -testlib_deps_freebsd += $(testlib_unix_resolvconf_freebsd) - -# gen_lib unix::signal (linux) -testlib_unix_signal_linux = $(TESTCACHE)/unix/signal/unix_signal-linux.o -testlib_env += HARE_TD_unix::signal=$(TESTCACHE)/unix/signal/unix_signal.td -testlib_deps_linux += $(testlib_unix_signal_linux) - -# gen_lib unix::signal (freebsd) -testlib_unix_signal_freebsd = $(TESTCACHE)/unix/signal/unix_signal-freebsd.o -testlib_env += HARE_TD_unix::signal=$(TESTCACHE)/unix/signal/unix_signal.td -testlib_deps_freebsd += $(testlib_unix_signal_freebsd) - -# gen_lib unix::tty (linux) -testlib_unix_tty_linux = $(TESTCACHE)/unix/tty/unix_tty-linux.o -testlib_env += HARE_TD_unix::tty=$(TESTCACHE)/unix/tty/unix_tty.td -testlib_deps_linux += $(testlib_unix_tty_linux) - -# gen_lib unix::tty (freebsd) -testlib_unix_tty_freebsd = $(TESTCACHE)/unix/tty/unix_tty-freebsd.o -testlib_env += HARE_TD_unix::tty=$(TESTCACHE)/unix/tty/unix_tty.td -testlib_deps_freebsd += $(testlib_unix_tty_freebsd) - -# gen_lib uuid (any) -testlib_uuid_any = $(TESTCACHE)/uuid/uuid-any.o -testlib_env += HARE_TD_uuid=$(TESTCACHE)/uuid/uuid.td -testlib_deps_any += $(testlib_uuid_any) -testlib_uuid_linux = $(testlib_uuid_any) -testlib_uuid_freebsd = $(testlib_uuid_any) - -# ascii (+any) -testlib_ascii_any_srcs = \ - $(STDLIB)/ascii/ctype.ha \ - $(STDLIB)/ascii/string.ha \ - $(STDLIB)/ascii/valid.ha - -$(TESTCACHE)/ascii/ascii-any.ssa: $(testlib_ascii_any_srcs) $(testlib_rt) $(testlib_strings_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/ascii - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nascii \ - -t$(TESTCACHE)/ascii/ascii.td $(testlib_ascii_any_srcs) - -# bufio (+any) -testlib_bufio_any_srcs = \ - $(STDLIB)/bufio/stream.ha \ - $(STDLIB)/bufio/scanner.ha \ - $(STDLIB)/bufio/stream_test+test.ha \ - $(STDLIB)/bufio/scanner_test+test.ha - -$(TESTCACHE)/bufio/bufio-any.ssa: $(testlib_bufio_any_srcs) $(testlib_rt) $(testlib_bytes_$(PLATFORM)) $(testlib_encoding_utf8_$(PLATFORM)) $(testlib_errors_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_memio_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) $(testlib_types_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/bufio - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nbufio \ - -t$(TESTCACHE)/bufio/bufio.td $(testlib_bufio_any_srcs) - -# bytes (+any) -testlib_bytes_any_srcs = \ - $(STDLIB)/bytes/contains.ha \ - $(STDLIB)/bytes/equal.ha \ - $(STDLIB)/bytes/index.ha \ - $(STDLIB)/bytes/reverse.ha \ - $(STDLIB)/bytes/tokenize.ha \ - $(STDLIB)/bytes/trim.ha \ - $(STDLIB)/bytes/two_way.ha \ - $(STDLIB)/bytes/zero.ha - -$(TESTCACHE)/bytes/bytes-any.ssa: $(testlib_bytes_any_srcs) $(testlib_rt) $(testlib_types_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/bytes - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nbytes \ - -t$(TESTCACHE)/bytes/bytes.td $(testlib_bytes_any_srcs) - -# cmd::hare::build (+any) -testlib_cmd_hare_build_any_srcs = \ - $(STDLIB)/cmd/hare/build/gather.ha \ - $(STDLIB)/cmd/hare/build/queue.ha \ - $(STDLIB)/cmd/hare/build/types.ha \ - $(STDLIB)/cmd/hare/build/util.ha - -$(TESTCACHE)/cmd/hare/build/cmd_hare_build-any.ssa: $(testlib_cmd_hare_build_any_srcs) $(testlib_rt) $(testlib_encoding_hex_$(PLATFORM)) $(testlib_crypto_sha256_$(PLATFORM)) $(testlib_errors_$(PLATFORM)) $(testlib_fmt_$(PLATFORM)) $(testlib_fs_$(PLATFORM)) $(testlib_hare_ast_$(PLATFORM)) $(testlib_hare_module_$(PLATFORM)) $(testlib_hare_unparse_$(PLATFORM)) $(testlib_hash_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_memio_$(PLATFORM)) $(testlib_os_$(PLATFORM)) $(testlib_os_exec_$(PLATFORM)) $(testlib_path_$(PLATFORM)) $(testlib_sort_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) $(testlib_shlex_$(PLATFORM)) $(testlib_unix_tty_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/cmd/hare/build - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Ncmd::hare::build \ - -t$(TESTCACHE)/cmd/hare/build/cmd_hare_build.td $(testlib_cmd_hare_build_any_srcs) - -# crypto (+any) -testlib_crypto_any_srcs = \ - $(STDLIB)/crypto/authenc.ha \ - $(STDLIB)/crypto/keyderiv.ha \ - $(STDLIB)/crypto/+test/authenc_test.ha - -$(TESTCACHE)/crypto/crypto-any.ssa: $(testlib_crypto_any_srcs) $(testlib_rt) $(testlib_bytes_$(PLATFORM)) $(testlib_crypto_argon2_$(PLATFORM)) $(testlib_crypto_chachapoly_$(PLATFORM)) $(testlib_crypto_math_$(PLATFORM)) $(testlib_endian_$(PLATFORM)) $(testlib_errors_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_memio_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/crypto - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Ncrypto \ - -t$(TESTCACHE)/crypto/crypto.td $(testlib_crypto_any_srcs) - -# crypto::aes (+any) -testlib_crypto_aes_any_srcs = \ - $(STDLIB)/crypto/aes/aes.ha \ - $(STDLIB)/crypto/aes/aes_ct64.ha \ - $(STDLIB)/crypto/aes/block.ha \ - $(STDLIB)/crypto/aes/ct64+test.ha \ - $(STDLIB)/crypto/aes/cbc+test.ha \ - $(STDLIB)/crypto/aes/ctr+test.ha \ - $(STDLIB)/crypto/aes/rt+test.ha \ - $(STDLIB)/crypto/aes/+test/gcm.ha - -$(TESTCACHE)/crypto/aes/crypto_aes-any.ssa: $(testlib_crypto_aes_any_srcs) $(testlib_rt) $(testlib_bytes_$(PLATFORM)) $(testlib_crypto_cipher_$(PLATFORM)) $(testlib_crypto_math_$(PLATFORM)) $(testlib_endian_$(PLATFORM)) $(testlib_errors_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_memio_$(PLATFORM)) $(testlib_rt_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/crypto/aes - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Ncrypto::aes \ - -t$(TESTCACHE)/crypto/aes/crypto_aes.td $(testlib_crypto_aes_any_srcs) - -# crypto::aes::xts (+any) -testlib_crypto_aes_xts_any_srcs = \ - $(STDLIB)/crypto/aes/xts/xts.ha \ - $(STDLIB)/crypto/aes/xts/+test.ha - -$(TESTCACHE)/crypto/aes/xts/crypto_aes_xts-any.ssa: $(testlib_crypto_aes_xts_any_srcs) $(testlib_rt) $(testlib_crypto_aes_$(PLATFORM)) $(testlib_crypto_cipher_$(PLATFORM)) $(testlib_bytes_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/crypto/aes/xts - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Ncrypto::aes::xts \ - -t$(TESTCACHE)/crypto/aes/xts/crypto_aes_xts.td $(testlib_crypto_aes_xts_any_srcs) - -# crypto::argon2 (+any) -testlib_crypto_argon2_any_srcs = \ - $(STDLIB)/crypto/argon2/argon2.ha \ - $(STDLIB)/crypto/argon2/+test.ha - -$(TESTCACHE)/crypto/argon2/crypto_argon2-any.ssa: $(testlib_crypto_argon2_any_srcs) $(testlib_rt) $(testlib_bytes_$(PLATFORM)) $(testlib_crypto_blake2b_$(PLATFORM)) $(testlib_crypto_math_$(PLATFORM)) $(testlib_encoding_hex_$(PLATFORM)) $(testlib_endian_$(PLATFORM)) $(testlib_errors_$(PLATFORM)) $(testlib_hash_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_memio_$(PLATFORM)) $(testlib_rt_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) $(testlib_types_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/crypto/argon2 - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Ncrypto::argon2 \ - -t$(TESTCACHE)/crypto/argon2/crypto_argon2.td $(testlib_crypto_argon2_any_srcs) - -# crypto::bcrypt (+any) -testlib_crypto_bcrypt_any_srcs = \ - $(STDLIB)/crypto/bcrypt/bcrypt.ha \ - $(STDLIB)/crypto/bcrypt/base64.ha \ - $(STDLIB)/crypto/bcrypt/+test.ha - -$(TESTCACHE)/crypto/bcrypt/crypto_bcrypt-any.ssa: $(testlib_crypto_bcrypt_any_srcs) $(testlib_rt) $(testlib_bytes_$(PLATFORM)) $(testlib_crypto_$(PLATFORM)) $(testlib_crypto_blowfish_$(PLATFORM)) $(testlib_crypto_cipher_$(PLATFORM)) $(testlib_crypto_random_$(PLATFORM)) $(testlib_encoding_base64_$(PLATFORM)) $(testlib_errors_$(PLATFORM)) $(testlib_fmt_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_memio_$(PLATFORM)) $(testlib_strconv_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/crypto/bcrypt - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Ncrypto::bcrypt \ - -t$(TESTCACHE)/crypto/bcrypt/crypto_bcrypt.td $(testlib_crypto_bcrypt_any_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-any.ssa: $(testlib_crypto_blake2b_any_srcs) $(testlib_rt) $(testlib_encoding_hex_$(PLATFORM)) $(testlib_fmt_$(PLATFORM)) $(testlib_hash_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) $(testlib_memio_$(PLATFORM)) $(testlib_crypto_math_$(PLATFORM)) $(testlib_endian_$(PLATFORM)) $(testlib_bytes_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/crypto/blake2b - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Ncrypto::blake2b \ - -t$(TESTCACHE)/crypto/blake2b/crypto_blake2b.td $(testlib_crypto_blake2b_any_srcs) - -# crypto::blowfish (+any) -testlib_crypto_blowfish_any_srcs = \ - $(STDLIB)/crypto/blowfish/blowfish.ha \ - $(STDLIB)/crypto/blowfish/const.ha \ - $(STDLIB)/crypto/blowfish/+test.ha - -$(TESTCACHE)/crypto/blowfish/crypto_blowfish-any.ssa: $(testlib_crypto_blowfish_any_srcs) $(testlib_rt) $(testlib_bytes_$(PLATFORM)) $(testlib_crypto_cipher_$(PLATFORM)) $(testlib_endian_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/crypto/blowfish - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Ncrypto::blowfish \ - -t$(TESTCACHE)/crypto/blowfish/crypto_blowfish.td $(testlib_crypto_blowfish_any_srcs) - -# crypto::bigint (+any) -testlib_crypto_bigint_any_srcs = \ - $(STDLIB)/crypto/bigint/arithm.ha \ - $(STDLIB)/crypto/bigint/encoding.ha \ - $(STDLIB)/crypto/bigint/monty.ha \ - $(STDLIB)/crypto/bigint/types.ha \ - $(STDLIB)/crypto/bigint/util.ha \ - $(STDLIB)/crypto/bigint/+test/arithm_test.ha \ - $(STDLIB)/crypto/bigint/+test/encoding_test.ha \ - $(STDLIB)/crypto/bigint/+test/monty_test.ha \ - $(STDLIB)/crypto/bigint/+test/utils.ha - -$(TESTCACHE)/crypto/bigint/crypto_bigint-any.ssa: $(testlib_crypto_bigint_any_srcs) $(testlib_rt) $(testlib_bytes_$(PLATFORM)) $(testlib_crypto_math_$(PLATFORM)) $(testlib_encoding_hex_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/crypto/bigint - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Ncrypto::bigint \ - -t$(TESTCACHE)/crypto/bigint/crypto_bigint.td $(testlib_crypto_bigint_any_srcs) - -# crypto::chacha (+any) -testlib_crypto_chacha_any_srcs = \ - $(STDLIB)/crypto/chacha/chacha20.ha \ - $(STDLIB)/crypto/chacha/+test.ha - -$(TESTCACHE)/crypto/chacha/crypto_chacha-any.ssa: $(testlib_crypto_chacha_any_srcs) $(testlib_rt) $(testlib_bytes_$(PLATFORM)) $(testlib_crypto_cipher_$(PLATFORM)) $(testlib_crypto_math_$(PLATFORM)) $(testlib_endian_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_memio_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/crypto/chacha - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Ncrypto::chacha \ - -t$(TESTCACHE)/crypto/chacha/crypto_chacha.td $(testlib_crypto_chacha_any_srcs) - -# crypto::chachapoly (+any) -testlib_crypto_chachapoly_any_srcs = \ - $(STDLIB)/crypto/chachapoly/chachapoly.ha \ - $(STDLIB)/crypto/chachapoly/encryption+test.ha - -$(TESTCACHE)/crypto/chachapoly/crypto_chachapoly-any.ssa: $(testlib_crypto_chachapoly_any_srcs) $(testlib_rt) $(testlib_bufio_$(PLATFORM)) $(testlib_bytes_$(PLATFORM)) $(testlib_crypto_chacha_$(PLATFORM)) $(testlib_crypto_mac_$(PLATFORM)) $(testlib_crypto_math_$(PLATFORM)) $(testlib_crypto_poly1305_$(PLATFORM)) $(testlib_endian_$(PLATFORM)) $(testlib_errors_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_types_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/crypto/chachapoly - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Ncrypto::chachapoly \ - -t$(TESTCACHE)/crypto/chachapoly/crypto_chachapoly.td $(testlib_crypto_chachapoly_any_srcs) - -# crypto::cipher (+any) -testlib_crypto_cipher_any_srcs = \ - $(STDLIB)/crypto/cipher/cipher.ha \ - $(STDLIB)/crypto/cipher/block.ha \ - $(STDLIB)/crypto/cipher/cbc.ha \ - $(STDLIB)/crypto/cipher/ctr.ha \ - $(STDLIB)/crypto/cipher/stream.ha \ - $(STDLIB)/crypto/cipher/gcm.ha \ - $(STDLIB)/crypto/cipher/ghash.ha - -$(TESTCACHE)/crypto/cipher/crypto_cipher-any.ssa: $(testlib_crypto_cipher_any_srcs) $(testlib_rt) $(testlib_crypto_math_$(PLATFORM)) $(testlib_bytes_$(PLATFORM)) $(testlib_endian_$(PLATFORM)) $(testlib_errors_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_types_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/crypto/cipher - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Ncrypto::cipher \ - -t$(TESTCACHE)/crypto/cipher/crypto_cipher.td $(testlib_crypto_cipher_any_srcs) - -# crypto::hkdf (+any) -testlib_crypto_hkdf_any_srcs = \ - $(STDLIB)/crypto/hkdf/hkdf.ha \ - $(STDLIB)/crypto/hkdf/+test.ha - -$(TESTCACHE)/crypto/hkdf/crypto_hkdf-any.ssa: $(testlib_crypto_hkdf_any_srcs) $(testlib_rt) $(testlib_bytes_$(PLATFORM)) $(testlib_crypto_hmac_$(PLATFORM)) $(testlib_crypto_mac_$(PLATFORM)) $(testlib_hash_$(PLATFORM)) $(testlib_crypto_sha1_$(PLATFORM)) $(testlib_crypto_sha256_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/crypto/hkdf - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Ncrypto::hkdf \ - -t$(TESTCACHE)/crypto/hkdf/crypto_hkdf.td $(testlib_crypto_hkdf_any_srcs) - -# crypto::hmac (+any) -testlib_crypto_hmac_any_srcs = \ - $(STDLIB)/crypto/hmac/hmac.ha \ - $(STDLIB)/crypto/hmac/sha1.ha \ - $(STDLIB)/crypto/hmac/sha256.ha \ - $(STDLIB)/crypto/hmac/+test.ha - -$(TESTCACHE)/crypto/hmac/crypto_hmac-any.ssa: $(testlib_crypto_hmac_any_srcs) $(testlib_rt) $(testlib_bytes_$(PLATFORM)) $(testlib_crypto_mac_$(PLATFORM)) $(testlib_hash_$(PLATFORM)) $(testlib_crypto_sha1_$(PLATFORM)) $(testlib_crypto_sha256_$(PLATFORM)) $(testlib_encoding_hex_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/crypto/hmac - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Ncrypto::hmac \ - -t$(TESTCACHE)/crypto/hmac/crypto_hmac.td $(testlib_crypto_hmac_any_srcs) - -# crypto::mac (+any) -testlib_crypto_mac_any_srcs = \ - $(STDLIB)/crypto/mac/mac.ha - -$(TESTCACHE)/crypto/mac/crypto_mac-any.ssa: $(testlib_crypto_mac_any_srcs) $(testlib_rt) $(testlib_io_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/crypto/mac - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Ncrypto::mac \ - -t$(TESTCACHE)/crypto/mac/crypto_mac.td $(testlib_crypto_mac_any_srcs) - -# crypto::math (+any) -testlib_crypto_math_any_srcs = \ - $(STDLIB)/crypto/math/arithm.ha \ - $(STDLIB)/crypto/math/bits.ha - -$(TESTCACHE)/crypto/math/crypto_math-any.ssa: $(testlib_crypto_math_any_srcs) $(testlib_rt) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/crypto/math - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Ncrypto::math \ - -t$(TESTCACHE)/crypto/math/crypto_math.td $(testlib_crypto_math_any_srcs) - -# crypto::random (+linux) -testlib_crypto_random_linux_srcs = \ - $(STDLIB)/crypto/random/+linux.ha \ - $(STDLIB)/crypto/random/random.ha - -$(TESTCACHE)/crypto/random/crypto_random-linux.ssa: $(testlib_crypto_random_linux_srcs) $(testlib_rt) $(testlib_rt_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_errors_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/crypto/random - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Ncrypto::random \ - -t$(TESTCACHE)/crypto/random/crypto_random.td $(testlib_crypto_random_linux_srcs) - -# crypto::random (+freebsd) -testlib_crypto_random_freebsd_srcs = \ - $(STDLIB)/crypto/random/+freebsd.ha \ - $(STDLIB)/crypto/random/random.ha - -$(TESTCACHE)/crypto/random/crypto_random-freebsd.ssa: $(testlib_crypto_random_freebsd_srcs) $(testlib_rt) $(testlib_rt_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_errors_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/crypto/random - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Ncrypto::random \ - -t$(TESTCACHE)/crypto/random/crypto_random.td $(testlib_crypto_random_freebsd_srcs) - -# crypto::rsa (+any) -testlib_crypto_rsa_any_srcs = \ - $(STDLIB)/crypto/rsa/core.ha \ - $(STDLIB)/crypto/rsa/errors.ha \ - $(STDLIB)/crypto/rsa/keys.ha \ - $(STDLIB)/crypto/rsa/pkcs1.ha \ - $(STDLIB)/crypto/rsa/+test/core_test.ha \ - $(STDLIB)/crypto/rsa/+test/keys_test.ha \ - $(STDLIB)/crypto/rsa/+test/pkcs1_test.ha - -$(TESTCACHE)/crypto/rsa/crypto_rsa-any.ssa: $(testlib_crypto_rsa_any_srcs) $(testlib_rt) $(testlib_bufio_$(PLATFORM)) $(testlib_bytes_$(PLATFORM)) $(testlib_crypto_bigint_$(PLATFORM)) $(testlib_crypto_math_$(PLATFORM)) $(testlib_crypto_sha1_$(PLATFORM)) $(testlib_crypto_sha256_$(PLATFORM)) $(testlib_crypto_sha512_$(PLATFORM)) $(testlib_endian_$(PLATFORM)) $(testlib_errors_$(PLATFORM)) $(testlib_hash_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_memio_$(PLATFORM)) $(testlib_types_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/crypto/rsa - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Ncrypto::rsa \ - -t$(TESTCACHE)/crypto/rsa/crypto_rsa.td $(testlib_crypto_rsa_any_srcs) - -# crypto::poly1305 (+any) -testlib_crypto_poly1305_any_srcs = \ - $(STDLIB)/crypto/poly1305/poly1305.ha \ - $(STDLIB)/crypto/poly1305/+test.ha - -$(TESTCACHE)/crypto/poly1305/crypto_poly1305-any.ssa: $(testlib_crypto_poly1305_any_srcs) $(testlib_rt) $(testlib_bytes_$(PLATFORM)) $(testlib_crypto_mac_$(PLATFORM)) $(testlib_endian_$(PLATFORM)) $(testlib_encoding_hex_$(PLATFORM)) $(testlib_io_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/crypto/poly1305 - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Ncrypto::poly1305 \ - -t$(TESTCACHE)/crypto/poly1305/crypto_poly1305.td $(testlib_crypto_poly1305_any_srcs) - -# crypto::salsa (+any) -testlib_crypto_salsa_any_srcs = \ - $(STDLIB)/crypto/salsa/salsa20.ha \ - $(STDLIB)/crypto/salsa/+test.ha - -$(TESTCACHE)/crypto/salsa/crypto_salsa-any.ssa: $(testlib_crypto_salsa_any_srcs) $(testlib_rt) $(testlib_bytes_$(PLATFORM)) $(testlib_crypto_cipher_$(PLATFORM)) $(testlib_crypto_math_$(PLATFORM)) $(testlib_endian_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_memio_$(PLATFORM)) $(testlib_types_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/crypto/salsa - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Ncrypto::salsa \ - -t$(TESTCACHE)/crypto/salsa/crypto_salsa.td $(testlib_crypto_salsa_any_srcs) - -# crypto::sha1 (+any) -testlib_crypto_sha1_any_srcs = \ - $(STDLIB)/crypto/sha1/sha1.ha \ - $(STDLIB)/crypto/sha1/+test.ha - -$(TESTCACHE)/crypto/sha1/crypto_sha1-any.ssa: $(testlib_crypto_sha1_any_srcs) $(testlib_rt) $(testlib_crypto_math_$(PLATFORM)) $(testlib_bytes_$(PLATFORM)) $(testlib_hash_$(PLATFORM)) $(testlib_endian_$(PLATFORM)) $(testlib_fmt_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) $(testlib_encoding_hex_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/crypto/sha1 - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Ncrypto::sha1 \ - -t$(TESTCACHE)/crypto/sha1/crypto_sha1.td $(testlib_crypto_sha1_any_srcs) - -# crypto::sha256 (+any) -testlib_crypto_sha256_any_srcs = \ - $(STDLIB)/crypto/sha256/sha256.ha \ - $(STDLIB)/crypto/sha256/+test.ha - -$(TESTCACHE)/crypto/sha256/crypto_sha256-any.ssa: $(testlib_crypto_sha256_any_srcs) $(testlib_rt) $(testlib_crypto_math_$(PLATFORM)) $(testlib_bytes_$(PLATFORM)) $(testlib_hash_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_endian_$(PLATFORM)) $(testlib_fmt_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) $(testlib_encoding_hex_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/crypto/sha256 - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Ncrypto::sha256 \ - -t$(TESTCACHE)/crypto/sha256/crypto_sha256.td $(testlib_crypto_sha256_any_srcs) - -# crypto::sha512 (+any) -testlib_crypto_sha512_any_srcs = \ - $(STDLIB)/crypto/sha512/sha512.ha \ - $(STDLIB)/crypto/sha512/+test.ha - -$(TESTCACHE)/crypto/sha512/crypto_sha512-any.ssa: $(testlib_crypto_sha512_any_srcs) $(testlib_rt) $(testlib_crypto_math_$(PLATFORM)) $(testlib_bytes_$(PLATFORM)) $(testlib_hash_$(PLATFORM)) $(testlib_endian_$(PLATFORM)) $(testlib_fmt_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) $(testlib_encoding_hex_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/crypto/sha512 - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Ncrypto::sha512 \ - -t$(TESTCACHE)/crypto/sha512/crypto_sha512.td $(testlib_crypto_sha512_any_srcs) - -# crypto::curve25519 (+any) -testlib_crypto_curve25519_any_srcs = \ - $(STDLIB)/crypto/curve25519/curve25519.ha \ - $(STDLIB)/crypto/curve25519/+test.ha - -$(TESTCACHE)/crypto/curve25519/crypto_curve25519-any.ssa: $(testlib_crypto_curve25519_any_srcs) $(testlib_rt) $(testlib_bytes_$(PLATFORM)) $(testlib_fmt_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_encoding_hex_$(PLATFORM)) $(testlib_crypto_random_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/crypto/curve25519 - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Ncrypto::curve25519 \ - -t$(TESTCACHE)/crypto/curve25519/crypto_curve25519.td $(testlib_crypto_curve25519_any_srcs) - -# crypto::ed25519 (+any) -testlib_crypto_ed25519_any_srcs = \ - $(STDLIB)/crypto/ed25519/ed25519.ha \ - $(STDLIB)/crypto/ed25519/edwards25519.ha \ - $(STDLIB)/crypto/ed25519/+test.ha - -$(TESTCACHE)/crypto/ed25519/crypto_ed25519-any.ssa: $(testlib_crypto_ed25519_any_srcs) $(testlib_rt) $(testlib_bytes_$(PLATFORM)) $(testlib_crypto_sha512_$(PLATFORM)) $(testlib_hash_$(PLATFORM)) $(testlib_encoding_hex_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/crypto/ed25519 - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Ncrypto::ed25519 \ - -t$(TESTCACHE)/crypto/ed25519/crypto_ed25519.td $(testlib_crypto_ed25519_any_srcs) - -# crypto::x25519 (+any) -testlib_crypto_x25519_any_srcs = \ - $(STDLIB)/crypto/x25519/x25519.ha \ - $(STDLIB)/crypto/x25519/+test.ha - -$(TESTCACHE)/crypto/x25519/crypto_x25519-any.ssa: $(testlib_crypto_x25519_any_srcs) $(testlib_rt) $(testlib_bytes_$(PLATFORM)) $(testlib_crypto_curve25519_$(PLATFORM)) $(testlib_encoding_hex_$(PLATFORM)) $(testlib_crypto_random_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/crypto/x25519 - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Ncrypto::x25519 \ - -t$(TESTCACHE)/crypto/x25519/crypto_x25519.td $(testlib_crypto_x25519_any_srcs) - -# dirs (+any) -testlib_dirs_any_srcs = \ - $(STDLIB)/dirs/xdg.ha - -$(TESTCACHE)/dirs/dirs-any.ssa: $(testlib_dirs_any_srcs) $(testlib_rt) $(testlib_errors_$(PLATFORM)) $(testlib_fs_$(PLATFORM)) $(testlib_os_$(PLATFORM)) $(testlib_path_$(PLATFORM)) $(testlib_fmt_$(PLATFORM)) $(testlib_unix_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/dirs - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Ndirs \ - -t$(TESTCACHE)/dirs/dirs.td $(testlib_dirs_any_srcs) - -# encoding::base64 (+any) -testlib_encoding_base64_any_srcs = \ - $(STDLIB)/encoding/base64/base64.ha - -$(TESTCACHE)/encoding/base64/encoding_base64-any.ssa: $(testlib_encoding_base64_any_srcs) $(testlib_rt) $(testlib_ascii_$(PLATFORM)) $(testlib_bytes_$(PLATFORM)) $(testlib_errors_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_os_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) $(testlib_memio_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/encoding/base64 - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nencoding::base64 \ - -t$(TESTCACHE)/encoding/base64/encoding_base64.td $(testlib_encoding_base64_any_srcs) - -# encoding::base32 (+any) -testlib_encoding_base32_any_srcs = \ - $(STDLIB)/encoding/base32/base32.ha - -$(TESTCACHE)/encoding/base32/encoding_base32-any.ssa: $(testlib_encoding_base32_any_srcs) $(testlib_rt) $(testlib_ascii_$(PLATFORM)) $(testlib_bytes_$(PLATFORM)) $(testlib_errors_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) $(testlib_os_$(PLATFORM)) $(testlib_memio_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/encoding/base32 - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nencoding::base32 \ - -t$(TESTCACHE)/encoding/base32/encoding_base32.td $(testlib_encoding_base32_any_srcs) - -# encoding::hex (+any) -testlib_encoding_hex_any_srcs = \ - $(STDLIB)/encoding/hex/hex.ha - -$(TESTCACHE)/encoding/hex/encoding_hex-any.ssa: $(testlib_encoding_hex_any_srcs) $(testlib_rt) $(testlib_ascii_$(PLATFORM)) $(testlib_bytes_$(PLATFORM)) $(testlib_errors_$(PLATFORM)) $(testlib_fmt_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_strconv_$(PLATFORM)) $(testlib_memio_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/encoding/hex - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nencoding::hex \ - -t$(TESTCACHE)/encoding/hex/encoding_hex.td $(testlib_encoding_hex_any_srcs) - -# encoding::pem (+any) -testlib_encoding_pem_any_srcs = \ - $(STDLIB)/encoding/pem/pem.ha \ - $(STDLIB)/encoding/pem/+test.ha - -$(TESTCACHE)/encoding/pem/encoding_pem-any.ssa: $(testlib_encoding_pem_any_srcs) $(testlib_rt) $(testlib_strings_$(PLATFORM)) $(testlib_memio_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_errors_$(PLATFORM)) $(testlib_encoding_base64_$(PLATFORM)) $(testlib_ascii_$(PLATFORM)) $(testlib_os_$(PLATFORM)) $(testlib_fmt_$(PLATFORM)) $(testlib_bytes_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/encoding/pem - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nencoding::pem \ - -t$(TESTCACHE)/encoding/pem/encoding_pem.td $(testlib_encoding_pem_any_srcs) - -# encoding::utf8 (+any) -testlib_encoding_utf8_any_srcs = \ - $(STDLIB)/encoding/utf8/decode.ha \ - $(STDLIB)/encoding/utf8/decodetable.ha \ - $(STDLIB)/encoding/utf8/encode.ha \ - $(STDLIB)/encoding/utf8/rune.ha - -$(TESTCACHE)/encoding/utf8/encoding_utf8-any.ssa: $(testlib_encoding_utf8_any_srcs) $(testlib_rt) $(testlib_types_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/encoding/utf8 - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nencoding::utf8 \ - -t$(TESTCACHE)/encoding/utf8/encoding_utf8.td $(testlib_encoding_utf8_any_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-any.ssa: $(testlib_endian_any_srcs) $(testlib_rt) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/endian - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nendian \ - -t$(TESTCACHE)/endian/endian.td $(testlib_endian_any_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-any.ssa: $(testlib_errors_any_srcs) $(testlib_rt) $(testlib_rt_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/errors - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nerrors \ - -t$(TESTCACHE)/errors/errors.td $(testlib_errors_any_srcs) - -# fmt (+any) -testlib_fmt_any_srcs = \ - $(STDLIB)/fmt/fmt.ha - -$(TESTCACHE)/fmt/fmt-any.ssa: $(testlib_fmt_any_srcs) $(testlib_rt) $(testlib_ascii_$(PLATFORM)) $(testlib_encoding_utf8_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_memio_$(PLATFORM)) $(testlib_os_$(PLATFORM)) $(testlib_strconv_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) $(testlib_types_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/fmt - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nfmt \ - -t$(TESTCACHE)/fmt/fmt.td $(testlib_fmt_any_srcs) - -# fnmatch (+any) -testlib_fnmatch_any_srcs = \ - $(STDLIB)/fnmatch/fnmatch.ha \ - $(STDLIB)/fnmatch/+test.ha - -$(TESTCACHE)/fnmatch/fnmatch-any.ssa: $(testlib_fnmatch_any_srcs) $(testlib_rt) $(testlib_ascii_$(PLATFORM)) $(testlib_errors_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) $(testlib_sort_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/fnmatch - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nfnmatch \ - -t$(TESTCACHE)/fnmatch/fnmatch.td $(testlib_fnmatch_any_srcs) - -# format::elf (+any) -testlib_format_elf_any_srcs = \ - $(STDLIB)/format/elf/arch+$(ARCH).ha \ - $(STDLIB)/format/elf/platform+$(PLATFORM).ha \ - $(STDLIB)/format/elf/types.ha - -$(TESTCACHE)/format/elf/format_elf-any.ssa: $(testlib_format_elf_any_srcs) $(testlib_rt) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/format/elf - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nformat::elf \ - -t$(TESTCACHE)/format/elf/format_elf.td $(testlib_format_elf_any_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-any.ssa: $(testlib_format_ini_any_srcs) $(testlib_rt) $(testlib_encoding_utf8_$(PLATFORM)) $(testlib_fmt_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_memio_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/format/ini - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nformat::ini \ - -t$(TESTCACHE)/format/ini/format_ini.td $(testlib_format_ini_any_srcs) - -# format::tar (+any) -testlib_format_tar_any_srcs = \ - $(STDLIB)/format/tar/types.ha \ - $(STDLIB)/format/tar/reader.ha - -$(TESTCACHE)/format/tar/format_tar-any.ssa: $(testlib_format_tar_any_srcs) $(testlib_rt) $(testlib_bytes_$(PLATFORM)) $(testlib_endian_$(PLATFORM)) $(testlib_errors_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_strconv_$(PLATFORM)) $(testlib_memio_$(PLATFORM)) $(testlib_types_c_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/format/tar - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nformat::tar \ - -t$(TESTCACHE)/format/tar/format_tar.td $(testlib_format_tar_any_srcs) - -# fs (+any) -testlib_fs_any_srcs = \ - $(STDLIB)/fs/types.ha \ - $(STDLIB)/fs/fs.ha \ - $(STDLIB)/fs/util.ha - -$(TESTCACHE)/fs/fs-any.ssa: $(testlib_fs_any_srcs) $(testlib_rt) $(testlib_io_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) $(testlib_path_$(PLATFORM)) $(testlib_time_$(PLATFORM)) $(testlib_errors_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/fs - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nfs \ - -t$(TESTCACHE)/fs/fs.td $(testlib_fs_any_srcs) - -# getopt (+any) -testlib_getopt_any_srcs = \ - $(STDLIB)/getopt/getopts.ha - -$(TESTCACHE)/getopt/getopt-any.ssa: $(testlib_getopt_any_srcs) $(testlib_rt) $(testlib_encoding_utf8_$(PLATFORM)) $(testlib_fmt_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_os_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/getopt - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Ngetopt \ - -t$(TESTCACHE)/getopt/getopt.td $(testlib_getopt_any_srcs) - -# glob (+any) -testlib_glob_any_srcs = \ - $(STDLIB)/glob/glob.ha \ - $(STDLIB)/glob/+test.ha - -$(TESTCACHE)/glob/glob-any.ssa: $(testlib_glob_any_srcs) $(testlib_rt) $(testlib_fnmatch_$(PLATFORM)) $(testlib_fs_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_os_$(PLATFORM)) $(testlib_sort_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) $(testlib_memio_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/glob - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nglob \ - -t$(TESTCACHE)/glob/glob.td $(testlib_glob_any_srcs) - -# hare::ast (+any) -testlib_hare_ast_any_srcs = \ - $(STDLIB)/hare/ast/decl.ha \ - $(STDLIB)/hare/ast/expr.ha \ - $(STDLIB)/hare/ast/ident.ha \ - $(STDLIB)/hare/ast/import.ha \ - $(STDLIB)/hare/ast/type.ha \ - $(STDLIB)/hare/ast/unit.ha - -$(TESTCACHE)/hare/ast/hare_ast-any.ssa: $(testlib_hare_ast_any_srcs) $(testlib_rt) $(testlib_hare_lex_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/hare/ast - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nhare::ast \ - -t$(TESTCACHE)/hare/ast/hare_ast.td $(testlib_hare_ast_any_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-any.ssa: $(testlib_hare_lex_any_srcs) $(testlib_rt) $(testlib_ascii_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_encoding_utf8_$(PLATFORM)) $(testlib_fmt_$(PLATFORM)) $(testlib_memio_$(PLATFORM)) $(testlib_sort_$(PLATFORM)) $(testlib_sort_cmp_$(PLATFORM)) $(testlib_strconv_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) $(testlib_path_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/hare/lex - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nhare::lex \ - -t$(TESTCACHE)/hare/lex/hare_lex.td $(testlib_hare_lex_any_srcs) - -# hare::module (+any) -testlib_hare_module_any_srcs = \ - $(STDLIB)/hare/module/cache.ha \ - $(STDLIB)/hare/module/deps.ha \ - $(STDLIB)/hare/module/types.ha \ - $(STDLIB)/hare/module/format.ha \ - $(STDLIB)/hare/module/srcs.ha \ - $(STDLIB)/hare/module/util.ha - -$(TESTCACHE)/hare/module/hare_module-any.ssa: $(testlib_hare_module_any_srcs) $(testlib_rt) $(testlib_ascii_$(PLATFORM)) $(testlib_memio_$(PLATFORM)) $(testlib_bytes_$(PLATFORM)) $(testlib_datetime_$(PLATFORM)) $(testlib_encoding_utf8_$(PLATFORM)) $(testlib_fmt_$(PLATFORM)) $(testlib_fs_$(PLATFORM)) $(testlib_hare_ast_$(PLATFORM)) $(testlib_hare_lex_$(PLATFORM)) $(testlib_hare_parse_$(PLATFORM)) $(testlib_hare_unparse_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_os_$(PLATFORM)) $(testlib_path_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) $(testlib_time_$(PLATFORM)) $(testlib_time_chrono_$(PLATFORM)) $(testlib_time_date_$(PLATFORM)) $(testlib_types_$(PLATFORM)) $(testlib_encoding_hex_$(PLATFORM)) $(testlib_sort_$(PLATFORM)) $(testlib_sort_cmp_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/hare/module - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nhare::module \ - -t$(TESTCACHE)/hare/module/hare_module.td $(testlib_hare_module_any_srcs) - -# hare::parse (+any) -testlib_hare_parse_any_srcs = \ - $(STDLIB)/hare/parse/decl.ha \ - $(STDLIB)/hare/parse/expr.ha \ - $(STDLIB)/hare/parse/ident.ha \ - $(STDLIB)/hare/parse/import.ha \ - $(STDLIB)/hare/parse/parse.ha \ - $(STDLIB)/hare/parse/type.ha \ - $(STDLIB)/hare/parse/unit.ha \ - $(STDLIB)/hare/parse/+test/expr_test.ha \ - $(STDLIB)/hare/parse/+test/ident_test.ha \ - $(STDLIB)/hare/parse/+test/loc.ha \ - $(STDLIB)/hare/parse/+test/roundtrip.ha \ - $(STDLIB)/hare/parse/+test/types.ha \ - $(STDLIB)/hare/parse/+test/unit_test.ha - -$(TESTCACHE)/hare/parse/hare_parse-any.ssa: $(testlib_hare_parse_any_srcs) $(testlib_rt) $(testlib_ascii_$(PLATFORM)) $(testlib_memio_$(PLATFORM)) $(testlib_hare_ast_$(PLATFORM)) $(testlib_hare_lex_$(PLATFORM)) $(testlib_hare_unparse_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_fmt_$(PLATFORM)) $(testlib_types_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) $(testlib_math_$(PLATFORM)) $(testlib_encoding_utf8_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/hare/parse - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nhare::parse \ - -t$(TESTCACHE)/hare/parse/hare_parse.td $(testlib_hare_parse_any_srcs) - -# hare::parse::doc (+any) -testlib_hare_parse_doc_any_srcs = \ - $(STDLIB)/hare/parse/doc/doc.ha - -$(TESTCACHE)/hare/parse/doc/hare_parse_doc-any.ssa: $(testlib_hare_parse_doc_any_srcs) $(testlib_rt) $(testlib_ascii_$(PLATFORM)) $(testlib_encoding_utf8_$(PLATFORM)) $(testlib_fmt_$(PLATFORM)) $(testlib_hare_ast_$(PLATFORM)) $(testlib_hare_parse_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) $(testlib_memio_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/hare/parse/doc - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nhare::parse::doc \ - -t$(TESTCACHE)/hare/parse/doc/hare_parse_doc.td $(testlib_hare_parse_doc_any_srcs) - -# hare::types (+any) -testlib_hare_types_any_srcs = \ - $(STDLIB)/hare/types/+$(ARCH)/writesize.ha \ - $(STDLIB)/hare/types/arch.ha \ - $(STDLIB)/hare/types/builtins.ha \ - $(STDLIB)/hare/types/class.ha \ - $(STDLIB)/hare/types/hash.ha \ - $(STDLIB)/hare/types/lookup.ha \ - $(STDLIB)/hare/types/store.ha \ - $(STDLIB)/hare/types/types.ha \ - $(STDLIB)/hare/types/+test.ha - -$(TESTCACHE)/hare/types/hare_types-any.ssa: $(testlib_hare_types_any_srcs) $(testlib_rt) $(testlib_hare_ast_$(PLATFORM)) $(testlib_hash_$(PLATFORM)) $(testlib_hash_fnv_$(PLATFORM)) $(testlib_endian_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) $(testlib_errors_$(PLATFORM)) $(testlib_sort_$(PLATFORM)) $(testlib_fmt_$(PLATFORM)) $(testlib_hare_lex_$(PLATFORM)) $(testlib_hare_parse_$(PLATFORM)) $(testlib_io_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/hare/types - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nhare::types \ - -t$(TESTCACHE)/hare/types/hare_types.td $(testlib_hare_types_any_srcs) - -# hare::unit (+any) -testlib_hare_unit_any_srcs = \ - $(STDLIB)/hare/unit/check.ha \ - $(STDLIB)/hare/unit/context.ha \ - $(STDLIB)/hare/unit/errors.ha \ - $(STDLIB)/hare/unit/expr.ha \ - $(STDLIB)/hare/unit/process.ha \ - $(STDLIB)/hare/unit/scan.ha \ - $(STDLIB)/hare/unit/scope.ha \ - $(STDLIB)/hare/unit/unit.ha \ - $(STDLIB)/hare/unit/+test.ha - -$(TESTCACHE)/hare/unit/hare_unit-any.ssa: $(testlib_hare_unit_any_srcs) $(testlib_rt) $(testlib_hare_ast_$(PLATFORM)) $(testlib_hare_types_$(PLATFORM)) $(testlib_hash_$(PLATFORM)) $(testlib_hash_fnv_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) $(testlib_hare_lex_$(PLATFORM)) $(testlib_hare_parse_$(PLATFORM)) $(testlib_memio_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/hare/unit - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nhare::unit \ - -t$(TESTCACHE)/hare/unit/hare_unit.td $(testlib_hare_unit_any_srcs) - -# hare::unparse (+any) -testlib_hare_unparse_any_srcs = \ - $(STDLIB)/hare/unparse/expr.ha \ - $(STDLIB)/hare/unparse/decl.ha \ - $(STDLIB)/hare/unparse/ident.ha \ - $(STDLIB)/hare/unparse/import.ha \ - $(STDLIB)/hare/unparse/type.ha \ - $(STDLIB)/hare/unparse/unit.ha \ - $(STDLIB)/hare/unparse/util.ha - -$(TESTCACHE)/hare/unparse/hare_unparse-any.ssa: $(testlib_hare_unparse_any_srcs) $(testlib_rt) $(testlib_fmt_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) $(testlib_memio_$(PLATFORM)) $(testlib_hare_ast_$(PLATFORM)) $(testlib_hare_lex_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/hare/unparse - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nhare::unparse \ - -t$(TESTCACHE)/hare/unparse/hare_unparse.td $(testlib_hare_unparse_any_srcs) - -# hash (+any) -testlib_hash_any_srcs = \ - $(STDLIB)/hash/hash.ha - -$(TESTCACHE)/hash/hash-any.ssa: $(testlib_hash_any_srcs) $(testlib_rt) $(testlib_crypto_math_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_fmt_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/hash - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nhash \ - -t$(TESTCACHE)/hash/hash.td $(testlib_hash_any_srcs) - -# hash::adler32 (+any) -testlib_hash_adler32_any_srcs = \ - $(STDLIB)/hash/adler32/adler32.ha - -$(TESTCACHE)/hash/adler32/hash_adler32-any.ssa: $(testlib_hash_adler32_any_srcs) $(testlib_rt) $(testlib_endian_$(PLATFORM)) $(testlib_hash_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/hash/adler32 - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nhash::adler32 \ - -t$(TESTCACHE)/hash/adler32/hash_adler32.td $(testlib_hash_adler32_any_srcs) - -# hash::crc16 (+any) -testlib_hash_crc16_any_srcs = \ - $(STDLIB)/hash/crc16/crc16.ha - -$(TESTCACHE)/hash/crc16/hash_crc16-any.ssa: $(testlib_hash_crc16_any_srcs) $(testlib_rt) $(testlib_endian_$(PLATFORM)) $(testlib_hash_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/hash/crc16 - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nhash::crc16 \ - -t$(TESTCACHE)/hash/crc16/hash_crc16.td $(testlib_hash_crc16_any_srcs) - -# hash::crc32 (+any) -testlib_hash_crc32_any_srcs = \ - $(STDLIB)/hash/crc32/crc32.ha - -$(TESTCACHE)/hash/crc32/hash_crc32-any.ssa: $(testlib_hash_crc32_any_srcs) $(testlib_rt) $(testlib_endian_$(PLATFORM)) $(testlib_hash_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/hash/crc32 - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nhash::crc32 \ - -t$(TESTCACHE)/hash/crc32/hash_crc32.td $(testlib_hash_crc32_any_srcs) - -# hash::crc64 (+any) -testlib_hash_crc64_any_srcs = \ - $(STDLIB)/hash/crc64/crc64.ha - -$(TESTCACHE)/hash/crc64/hash_crc64-any.ssa: $(testlib_hash_crc64_any_srcs) $(testlib_rt) $(testlib_endian_$(PLATFORM)) $(testlib_hash_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/hash/crc64 - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nhash::crc64 \ - -t$(TESTCACHE)/hash/crc64/hash_crc64.td $(testlib_hash_crc64_any_srcs) - -# hash::fnv (+any) -testlib_hash_fnv_any_srcs = \ - $(STDLIB)/hash/fnv/+$(ARCH).ha \ - $(STDLIB)/hash/fnv/fnv.ha - -$(TESTCACHE)/hash/fnv/hash_fnv-any.ssa: $(testlib_hash_fnv_any_srcs) $(testlib_rt) $(testlib_endian_$(PLATFORM)) $(testlib_hash_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/hash/fnv - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nhash::fnv \ - -t$(TESTCACHE)/hash/fnv/hash_fnv.td $(testlib_hash_fnv_any_srcs) - -# hash::siphash (+any) -testlib_hash_siphash_any_srcs = \ - $(STDLIB)/hash/siphash/siphash.ha \ - $(STDLIB)/hash/siphash/+test.ha - -$(TESTCACHE)/hash/siphash/hash_siphash-any.ssa: $(testlib_hash_siphash_any_srcs) $(testlib_rt) $(testlib_hash_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_endian_$(PLATFORM)) $(testlib_crypto_math_$(PLATFORM)) $(testlib_fmt_$(PLATFORM)) $(testlib_memio_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/hash/siphash - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nhash::siphash \ - -t$(TESTCACHE)/hash/siphash/hash_siphash.td $(testlib_hash_siphash_any_srcs) - -# io (+linux) -testlib_io_linux_srcs = \ - $(STDLIB)/io/arch+$(ARCH).ha \ - $(STDLIB)/io/+linux/mmap.ha \ - $(STDLIB)/io/+linux/platform_file.ha \ - $(STDLIB)/io/+linux/vector.ha \ - $(STDLIB)/io/copy.ha \ - $(STDLIB)/io/drain.ha \ - $(STDLIB)/io/empty.ha \ - $(STDLIB)/io/file.ha \ - $(STDLIB)/io/handle.ha \ - $(STDLIB)/io/limit.ha \ - $(STDLIB)/io/stream.ha \ - $(STDLIB)/io/tee.ha \ - $(STDLIB)/io/types.ha \ - $(STDLIB)/io/util.ha \ - $(STDLIB)/io/zero.ha \ - $(STDLIB)/io/+test/limit_test.ha \ - $(STDLIB)/io/+test/stream_test.ha - -# io (+freebsd) -testlib_io_freebsd_srcs = \ - $(STDLIB)/io/arch+$(ARCH).ha \ - $(STDLIB)/io/+freebsd/mmap.ha \ - $(STDLIB)/io/+freebsd/platform_file.ha \ - $(STDLIB)/io/+freebsd/vector.ha \ - $(STDLIB)/io/copy.ha \ - $(STDLIB)/io/drain.ha \ - $(STDLIB)/io/empty.ha \ - $(STDLIB)/io/file.ha \ - $(STDLIB)/io/handle.ha \ - $(STDLIB)/io/limit.ha \ - $(STDLIB)/io/stream.ha \ - $(STDLIB)/io/tee.ha \ - $(STDLIB)/io/types.ha \ - $(STDLIB)/io/util.ha \ - $(STDLIB)/io/zero.ha \ - $(STDLIB)/io/+test/limit_test.ha \ - $(STDLIB)/io/+test/stream_test.ha - -$(TESTCACHE)/io/io-linux.ssa: $(testlib_io_linux_srcs) $(testlib_rt) $(testlib_errors_$(PLATFORM)) $(testlib_bytes_$(PLATFORM)) $(testlib_rt_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/io - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nio \ - -t$(TESTCACHE)/io/io.td $(testlib_io_linux_srcs) - -$(TESTCACHE)/io/io-freebsd.ssa: $(testlib_io_freebsd_srcs) $(testlib_rt) $(testlib_errors_$(PLATFORM)) $(testlib_bytes_$(PLATFORM)) $(testlib_rt_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/io - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nio \ - -t$(TESTCACHE)/io/io.td $(testlib_io_freebsd_srcs) - -# linux (+linux) -testlib_linux_linux_srcs = \ - $(STDLIB)/linux/start.ha \ - $(STDLIB)/linux/env.ha - -$(TESTCACHE)/linux/linux-linux.ssa: $(testlib_linux_linux_srcs) $(testlib_rt) $(testlib_format_elf_$(PLATFORM)) $(testlib_rt_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/linux - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nlinux \ - -t$(TESTCACHE)/linux/linux.td $(testlib_linux_linux_srcs) - -# linux::keyctl (+linux) -testlib_linux_keyctl_linux_srcs = \ - $(STDLIB)/linux/keyctl/keyctl.ha \ - $(STDLIB)/linux/keyctl/types.ha - -$(TESTCACHE)/linux/keyctl/linux_keyctl-linux.ssa: $(testlib_linux_keyctl_linux_srcs) $(testlib_rt) $(testlib_rt_$(PLATFORM)) $(testlib_errors_$(PLATFORM)) $(testlib_bytes_$(PLATFORM)) $(testlib_types_c_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/linux/keyctl - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nlinux::keyctl \ - -t$(TESTCACHE)/linux/keyctl/linux_keyctl.td $(testlib_linux_keyctl_linux_srcs) - -# linux::timerfd (+linux) -testlib_linux_timerfd_linux_srcs = \ - $(STDLIB)/linux/timerfd/timerfd.ha - -$(TESTCACHE)/linux/timerfd/linux_timerfd-linux.ssa: $(testlib_linux_timerfd_linux_srcs) $(testlib_rt) $(testlib_errors_$(PLATFORM)) $(testlib_rt_$(PLATFORM)) $(testlib_time_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_endian_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/linux/timerfd - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nlinux::timerfd \ - -t$(TESTCACHE)/linux/timerfd/linux_timerfd.td $(testlib_linux_timerfd_linux_srcs) - -# linux::vdso (+linux) -testlib_linux_vdso_linux_srcs = \ - $(STDLIB)/linux/vdso/vdso.ha - -$(TESTCACHE)/linux/vdso/linux_vdso-linux.ssa: $(testlib_linux_vdso_linux_srcs) $(testlib_rt) $(testlib_linux_$(PLATFORM)) $(testlib_format_elf_$(PLATFORM)) $(testlib_types_c_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/linux/vdso - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nlinux::vdso \ - -t$(TESTCACHE)/linux/vdso/linux_vdso.td $(testlib_linux_vdso_linux_srcs) - -# log (+linux) -testlib_log_linux_srcs = \ - $(STDLIB)/log/logger.ha \ - $(STDLIB)/log/global.ha \ - $(STDLIB)/log/funcs.ha \ - $(STDLIB)/log/silent.ha - -$(TESTCACHE)/log/log-linux.ssa: $(testlib_log_linux_srcs) $(testlib_rt) $(testlib_fmt_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_os_$(PLATFORM)) $(testlib_time_date_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/log - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nlog \ - -t$(TESTCACHE)/log/log.td $(testlib_log_linux_srcs) - -# log (+freebsd) -testlib_log_freebsd_srcs = \ - $(STDLIB)/log/logger.ha \ - $(STDLIB)/log/global.ha \ - $(STDLIB)/log/funcs.ha \ - $(STDLIB)/log/silent.ha - -$(TESTCACHE)/log/log-freebsd.ssa: $(testlib_log_freebsd_srcs) $(testlib_rt) $(testlib_fmt_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_os_$(PLATFORM)) $(testlib_time_date_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/log - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nlog \ - -t$(TESTCACHE)/log/log.td $(testlib_log_freebsd_srcs) - -# math (+any) -testlib_math_any_srcs = \ - $(STDLIB)/math/math.ha \ - $(STDLIB)/math/fenv_func.ha \ - $(STDLIB)/math/fenv+$(ARCH).ha \ - $(STDLIB)/math/floats.ha \ - $(STDLIB)/math/ints.ha \ - $(STDLIB)/math/uints.ha \ - $(STDLIB)/math/trig.ha \ - $(STDLIB)/math/+test/data.ha \ - $(STDLIB)/math/+test/math_test.ha \ - $(STDLIB)/math/+test/floats_test.ha \ - $(STDLIB)/math/+test/trig_test.ha - -$(TESTCACHE)/math/math-any.ssa: $(testlib_math_any_srcs) $(testlib_rt) $(testlib_types_$(PLATFORM)) $(testlib_rt_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/math - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nmath \ - -t$(TESTCACHE)/math/math.td $(testlib_math_any_srcs) - -# math::checked (+any) -testlib_math_checked_any_srcs = \ - $(STDLIB)/math/checked/checked.ha - -$(TESTCACHE)/math/checked/math_checked-any.ssa: $(testlib_math_checked_any_srcs) $(testlib_rt) $(testlib_math_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/math/checked - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nmath::checked \ - -t$(TESTCACHE)/math/checked/math_checked.td $(testlib_math_checked_any_srcs) - -# math::complex (+any) -testlib_math_complex_any_srcs = \ - $(STDLIB)/math/complex/complex.ha \ - $(STDLIB)/math/complex/+test.ha - -$(TESTCACHE)/math/complex/math_complex-any.ssa: $(testlib_math_complex_any_srcs) $(testlib_rt) $(testlib_math_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/math/complex - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nmath::complex \ - -t$(TESTCACHE)/math/complex/math_complex.td $(testlib_math_complex_any_srcs) - -# math::random (+any) -testlib_math_random_any_srcs = \ - $(STDLIB)/math/random/random.ha - -$(TESTCACHE)/math/random/math_random-any.ssa: $(testlib_math_random_any_srcs) $(testlib_rt) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/math/random - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nmath::random \ - -t$(TESTCACHE)/math/random/math_random.td $(testlib_math_random_any_srcs) - -# memio (+any) -testlib_memio_any_srcs = \ - $(STDLIB)/memio/stream.ha \ - $(STDLIB)/memio/ops.ha - -$(TESTCACHE)/memio/memio-any.ssa: $(testlib_memio_any_srcs) $(testlib_rt) $(testlib_errors_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) $(testlib_encoding_utf8_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/memio - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nmemio \ - -t$(TESTCACHE)/memio/memio.td $(testlib_memio_any_srcs) - -# net (+linux) -testlib_net_linux_srcs = \ - $(STDLIB)/net/+linux.ha \ - $(STDLIB)/net/errors.ha \ - $(STDLIB)/net/msg.ha \ - $(STDLIB)/net/types.ha - -$(TESTCACHE)/net/net-linux.ssa: $(testlib_net_linux_srcs) $(testlib_rt) $(testlib_io_$(PLATFORM)) $(testlib_errors_$(PLATFORM)) $(testlib_rt_$(PLATFORM)) $(testlib_fmt_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/net - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nnet \ - -t$(TESTCACHE)/net/net.td $(testlib_net_linux_srcs) - -# net (+freebsd) -testlib_net_freebsd_srcs = \ - $(STDLIB)/net/+freebsd.ha \ - $(STDLIB)/net/errors.ha \ - $(STDLIB)/net/msg.ha \ - $(STDLIB)/net/types.ha - -$(TESTCACHE)/net/net-freebsd.ssa: $(testlib_net_freebsd_srcs) $(testlib_rt) $(testlib_io_$(PLATFORM)) $(testlib_errors_$(PLATFORM)) $(testlib_rt_$(PLATFORM)) $(testlib_fmt_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/net - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nnet \ - -t$(TESTCACHE)/net/net.td $(testlib_net_freebsd_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-any.ssa: $(testlib_net_dial_any_srcs) $(testlib_rt) $(testlib_net_$(PLATFORM)) $(testlib_net_ip_$(PLATFORM)) $(testlib_net_tcp_$(PLATFORM)) $(testlib_net_udp_$(PLATFORM)) $(testlib_net_dns_$(PLATFORM)) $(testlib_net_uri_$(PLATFORM)) $(testlib_crypto_random_$(PLATFORM)) $(testlib_strconv_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) $(testlib_unix_hosts_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/net/dial - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nnet::dial \ - -t$(TESTCACHE)/net/dial/net_dial.td $(testlib_net_dial_any_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/strdomain.ha \ - $(STDLIB)/net/dns/types.ha - -$(TESTCACHE)/net/dns/net_dns-any.ssa: $(testlib_net_dns_any_srcs) $(testlib_rt) $(testlib_ascii_$(PLATFORM)) $(testlib_endian_$(PLATFORM)) $(testlib_net_$(PLATFORM)) $(testlib_net_udp_$(PLATFORM)) $(testlib_net_ip_$(PLATFORM)) $(testlib_fmt_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) $(testlib_unix_resolvconf_$(PLATFORM)) $(testlib_unix_poll_$(PLATFORM)) $(testlib_time_$(PLATFORM)) $(testlib_errors_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/net/dns - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nnet::dns \ - -t$(TESTCACHE)/net/dns/net_dns.td $(testlib_net_dns_any_srcs) - -# net::ip (+linux) -testlib_net_ip_linux_srcs = \ - $(STDLIB)/net/ip/+linux.ha \ - $(STDLIB)/net/ip/ip.ha \ - $(STDLIB)/net/ip/test+test.ha - -# net::ip (+freebsd) -testlib_net_ip_freebsd_srcs = \ - $(STDLIB)/net/ip/+freebsd.ha \ - $(STDLIB)/net/ip/ip.ha \ - $(STDLIB)/net/ip/test+test.ha - -$(TESTCACHE)/net/ip/net_ip-linux.ssa: $(testlib_net_ip_linux_srcs) $(testlib_rt) $(testlib_bytes_$(PLATFORM)) $(testlib_endian_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_strconv_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) $(testlib_memio_$(PLATFORM)) $(testlib_fmt_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/net/ip - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nnet::ip \ - -t$(TESTCACHE)/net/ip/net_ip.td $(testlib_net_ip_linux_srcs) - -$(TESTCACHE)/net/ip/net_ip-freebsd.ssa: $(testlib_net_ip_freebsd_srcs) $(testlib_rt) $(testlib_bytes_$(PLATFORM)) $(testlib_endian_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_strconv_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) $(testlib_memio_$(PLATFORM)) $(testlib_fmt_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/net/ip - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nnet::ip \ - -t$(TESTCACHE)/net/ip/net_ip.td $(testlib_net_ip_freebsd_srcs) - -# 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-linux.ssa: $(testlib_net_tcp_linux_srcs) $(testlib_rt) $(testlib_errors_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_net_$(PLATFORM)) $(testlib_net_ip_$(PLATFORM)) $(testlib_os_$(PLATFORM)) $(testlib_rt_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/net/tcp - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nnet::tcp \ - -t$(TESTCACHE)/net/tcp/net_tcp.td $(testlib_net_tcp_linux_srcs) - -# net::tcp (+freebsd) -testlib_net_tcp_freebsd_srcs = \ - $(STDLIB)/net/tcp/+freebsd.ha \ - $(STDLIB)/net/tcp/listener.ha \ - $(STDLIB)/net/tcp/options.ha - -$(TESTCACHE)/net/tcp/net_tcp-freebsd.ssa: $(testlib_net_tcp_freebsd_srcs) $(testlib_rt) $(testlib_errors_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_net_$(PLATFORM)) $(testlib_net_ip_$(PLATFORM)) $(testlib_os_$(PLATFORM)) $(testlib_rt_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/net/tcp - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nnet::tcp \ - -t$(TESTCACHE)/net/tcp/net_tcp.td $(testlib_net_tcp_freebsd_srcs) - -# net::udp (+linux) -testlib_net_udp_linux_srcs = \ - $(STDLIB)/net/udp/+linux.ha \ - $(STDLIB)/net/udp/options.ha - -$(TESTCACHE)/net/udp/net_udp-linux.ssa: $(testlib_net_udp_linux_srcs) $(testlib_rt) $(testlib_errors_$(PLATFORM)) $(testlib_net_$(PLATFORM)) $(testlib_net_ip_$(PLATFORM)) $(testlib_errors_$(PLATFORM)) $(testlib_rt_$(PLATFORM)) $(testlib_os_$(PLATFORM)) $(testlib_io_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/net/udp - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nnet::udp \ - -t$(TESTCACHE)/net/udp/net_udp.td $(testlib_net_udp_linux_srcs) - -# net::udp (+freebsd) -testlib_net_udp_freebsd_srcs = \ - $(STDLIB)/net/udp/+freebsd.ha \ - $(STDLIB)/net/udp/options.ha - -$(TESTCACHE)/net/udp/net_udp-freebsd.ssa: $(testlib_net_udp_freebsd_srcs) $(testlib_rt) $(testlib_errors_$(PLATFORM)) $(testlib_net_$(PLATFORM)) $(testlib_net_ip_$(PLATFORM)) $(testlib_errors_$(PLATFORM)) $(testlib_rt_$(PLATFORM)) $(testlib_os_$(PLATFORM)) $(testlib_io_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/net/udp - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nnet::udp \ - -t$(TESTCACHE)/net/udp/net_udp.td $(testlib_net_udp_freebsd_srcs) - -# net::unix (+linux) -testlib_net_unix_linux_srcs = \ - $(STDLIB)/net/unix/+linux.ha \ - $(STDLIB)/net/unix/addr.ha \ - $(STDLIB)/net/unix/cmsg.ha \ - $(STDLIB)/net/unix/dial.ha \ - $(STDLIB)/net/unix/listener.ha \ - $(STDLIB)/net/unix/options.ha \ - $(STDLIB)/net/unix/socketpair.ha - -$(TESTCACHE)/net/unix/net_unix-linux.ssa: $(testlib_net_unix_linux_srcs) $(testlib_rt) $(testlib_net_$(PLATFORM)) $(testlib_errors_$(PLATFORM)) $(testlib_os_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) $(testlib_types_$(PLATFORM)) $(testlib_fmt_$(PLATFORM)) $(testlib_net_dial_$(PLATFORM)) $(testlib_rt_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/net/unix - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nnet::unix \ - -t$(TESTCACHE)/net/unix/net_unix.td $(testlib_net_unix_linux_srcs) - -# net::unix (+freebsd) -testlib_net_unix_freebsd_srcs = \ - $(STDLIB)/net/unix/+freebsd.ha \ - $(STDLIB)/net/unix/addr.ha \ - $(STDLIB)/net/unix/cmsg.ha \ - $(STDLIB)/net/unix/dial.ha \ - $(STDLIB)/net/unix/listener.ha \ - $(STDLIB)/net/unix/options.ha \ - $(STDLIB)/net/unix/socketpair.ha - -$(TESTCACHE)/net/unix/net_unix-freebsd.ssa: $(testlib_net_unix_freebsd_srcs) $(testlib_rt) $(testlib_net_$(PLATFORM)) $(testlib_errors_$(PLATFORM)) $(testlib_os_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) $(testlib_types_$(PLATFORM)) $(testlib_fmt_$(PLATFORM)) $(testlib_net_dial_$(PLATFORM)) $(testlib_rt_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/net/unix - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nnet::unix \ - -t$(TESTCACHE)/net/unix/net_unix.td $(testlib_net_unix_freebsd_srcs) - -# net::uri (+any) -testlib_net_uri_any_srcs = \ - $(STDLIB)/net/uri/fmt.ha \ - $(STDLIB)/net/uri/parse.ha \ - $(STDLIB)/net/uri/query.ha \ - $(STDLIB)/net/uri/uri.ha \ - $(STDLIB)/net/uri/+test.ha - -$(TESTCACHE)/net/uri/net_uri-any.ssa: $(testlib_net_uri_any_srcs) $(testlib_rt) $(testlib_ascii_$(PLATFORM)) $(testlib_encoding_utf8_$(PLATFORM)) $(testlib_fmt_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_net_ip_$(PLATFORM)) $(testlib_strconv_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) $(testlib_memio_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/net/uri - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nnet::uri \ - -t$(TESTCACHE)/net/uri/net_uri.td $(testlib_net_uri_any_srcs) - -# os (+linux) -testlib_os_linux_srcs = \ - $(STDLIB)/os/+linux/dirfdfs.ha \ - $(STDLIB)/os/+linux/platform_environ.ha \ - $(STDLIB)/os/+linux/exit+test.ha \ - $(STDLIB)/os/+linux/fs.ha \ - $(STDLIB)/os/+linux/memory.ha \ - $(STDLIB)/os/+linux/status.ha \ - $(STDLIB)/os/+linux/stdfd.ha \ - $(STDLIB)/os/environ.ha \ - $(STDLIB)/os/os.ha - -$(TESTCACHE)/os/os-linux.ssa: $(testlib_os_linux_srcs) $(testlib_rt) $(testlib_io_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) $(testlib_fs_$(PLATFORM)) $(testlib_encoding_utf8_$(PLATFORM)) $(testlib_bufio_$(PLATFORM)) $(testlib_errors_$(PLATFORM)) $(testlib_math_$(PLATFORM)) $(testlib_types_c_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/os - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nos \ - -t$(TESTCACHE)/os/os.td $(testlib_os_linux_srcs) - -# os (+freebsd) -testlib_os_freebsd_srcs = \ - $(STDLIB)/os/+freebsd/platform_environ.ha \ - $(STDLIB)/os/+freebsd/exit+test.ha \ - $(STDLIB)/os/+freebsd/dirfdfs.ha \ - $(STDLIB)/os/+freebsd/status.ha \ - $(STDLIB)/os/+freebsd/stdfd.ha \ - $(STDLIB)/os/+freebsd/fs.ha \ - $(STDLIB)/os/environ.ha \ - $(STDLIB)/os/os.ha - -$(TESTCACHE)/os/os-freebsd.ssa: $(testlib_os_freebsd_srcs) $(testlib_rt) $(testlib_io_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) $(testlib_fs_$(PLATFORM)) $(testlib_encoding_utf8_$(PLATFORM)) $(testlib_bufio_$(PLATFORM)) $(testlib_errors_$(PLATFORM)) $(testlib_types_c_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/os - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nos \ - -t$(TESTCACHE)/os/os.td $(testlib_os_freebsd_srcs) - -# 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-linux.ssa: $(testlib_os_exec_linux_srcs) $(testlib_rt) $(testlib_os_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) $(testlib_fmt_$(PLATFORM)) $(testlib_errors_$(PLATFORM)) $(testlib_unix_$(PLATFORM)) $(testlib_rt_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_ascii_$(PLATFORM)) $(testlib_unix_signal_$(PLATFORM)) $(testlib_types_c_$(PLATFORM)) $(testlib_time_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/os/exec - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nos::exec \ - -t$(TESTCACHE)/os/exec/os_exec.td $(testlib_os_exec_linux_srcs) - -# os::exec (+freebsd) -testlib_os_exec_freebsd_srcs = \ - $(STDLIB)/os/exec/exec+freebsd.ha \ - $(STDLIB)/os/exec/process+freebsd.ha \ - $(STDLIB)/os/exec/types.ha \ - $(STDLIB)/os/exec/cmd.ha - -$(TESTCACHE)/os/exec/os_exec-freebsd.ssa: $(testlib_os_exec_freebsd_srcs) $(testlib_rt) $(testlib_os_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) $(testlib_fmt_$(PLATFORM)) $(testlib_errors_$(PLATFORM)) $(testlib_unix_$(PLATFORM)) $(testlib_rt_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_ascii_$(PLATFORM)) $(testlib_unix_signal_$(PLATFORM)) $(testlib_types_c_$(PLATFORM)) $(testlib_time_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/os/exec - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nos::exec \ - -t$(TESTCACHE)/os/exec/os_exec.td $(testlib_os_exec_freebsd_srcs) - -# path (+any) -testlib_path_any_srcs = \ - $(STDLIB)/path/+$(PLATFORM).ha \ - $(STDLIB)/path/buffer.ha \ - $(STDLIB)/path/error.ha \ - $(STDLIB)/path/stack.ha \ - $(STDLIB)/path/ext_stack.ha \ - $(STDLIB)/path/posix.ha \ - $(STDLIB)/path/prefix.ha \ - $(STDLIB)/path/iter.ha - -$(TESTCACHE)/path/path-any.ssa: $(testlib_path_any_srcs) $(testlib_rt) $(testlib_strings_$(PLATFORM)) $(testlib_bytes_$(PLATFORM)) $(testlib_errors_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/path - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Npath \ - -t$(TESTCACHE)/path/path.td $(testlib_path_any_srcs) - -# regex (+any) -testlib_regex_any_srcs = \ - $(STDLIB)/regex/regex.ha \ - $(STDLIB)/regex/+test.ha - -$(TESTCACHE)/regex/regex-any.ssa: $(testlib_regex_any_srcs) $(testlib_rt) $(testlib_encoding_utf8_$(PLATFORM)) $(testlib_errors_$(PLATFORM)) $(testlib_strconv_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) $(testlib_fmt_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_os_$(PLATFORM)) $(testlib_bufio_$(PLATFORM)) $(testlib_types_$(PLATFORM)) $(testlib_memio_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/regex - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nregex \ - -t$(TESTCACHE)/regex/regex.td $(testlib_regex_any_srcs) - -# shlex (+any) -testlib_shlex_any_srcs = \ - $(STDLIB)/shlex/escape.ha \ - $(STDLIB)/shlex/split.ha \ - $(STDLIB)/shlex/+test.ha - -$(TESTCACHE)/shlex/shlex-any.ssa: $(testlib_shlex_any_srcs) $(testlib_rt) $(testlib_ascii_$(PLATFORM)) $(testlib_encoding_utf8_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) $(testlib_memio_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/shlex - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nshlex \ - -t$(TESTCACHE)/shlex/shlex.td $(testlib_shlex_any_srcs) - -# sort (+any) -testlib_sort_any_srcs = \ - $(STDLIB)/sort/bisect.ha \ - $(STDLIB)/sort/search.ha \ - $(STDLIB)/sort/sort.ha \ - $(STDLIB)/sort/types.ha \ - $(STDLIB)/sort/+test.ha - -$(TESTCACHE)/sort/sort-any.ssa: $(testlib_sort_any_srcs) $(testlib_rt) $(testlib_math_$(PLATFORM)) $(testlib_math_random_$(PLATFORM)) $(testlib_sort_cmp_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) $(testlib_types_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/sort - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nsort \ - -t$(TESTCACHE)/sort/sort.td $(testlib_sort_any_srcs) - -# sort::cmp (+any) -testlib_sort_cmp_any_srcs = \ - $(STDLIB)/sort/cmp/cmp.ha - -$(TESTCACHE)/sort/cmp/sort_cmp-any.ssa: $(testlib_sort_cmp_any_srcs) $(testlib_rt) $(testlib_strings_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/sort/cmp - @$(testlib_env) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nsort::cmp \ - -t$(TESTCACHE)/sort/cmp/sort_cmp.td $(testlib_sort_cmp_any_srcs) - -# strconv (+any) -testlib_strconv_any_srcs = \ - $(STDLIB)/strconv/types.ha \ - $(STDLIB)/strconv/itos.ha \ - $(STDLIB)/strconv/utos.ha \ - $(STDLIB)/strconv/stou.ha \ - $(STDLIB)/strconv/stoi.ha \ - $(STDLIB)/strconv/numeric.ha \ - $(STDLIB)/strconv/ftos.ha \ - $(STDLIB)/strconv/stof.ha \ - $(STDLIB)/strconv/stof_data.ha \ - $(STDLIB)/strconv/+test/stou_test.ha \ - $(STDLIB)/strconv/+test/stoi_test.ha - -$(TESTCACHE)/strconv/strconv-any.ssa: $(testlib_strconv_any_srcs) $(testlib_rt) $(testlib_types_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) $(testlib_ascii_$(PLATFORM)) $(testlib_math_$(PLATFORM)) $(testlib_bytes_$(PLATFORM)) $(testlib_encoding_utf8_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/strconv - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nstrconv \ - -t$(TESTCACHE)/strconv/strconv.td $(testlib_strconv_any_srcs) - -# strings (+any) -testlib_strings_any_srcs = \ - $(STDLIB)/strings/concat.ha \ - $(STDLIB)/strings/contains.ha \ - $(STDLIB)/strings/dup.ha \ - $(STDLIB)/strings/iter.ha \ - $(STDLIB)/strings/runes.ha \ - $(STDLIB)/strings/sub.ha \ - $(STDLIB)/strings/suffix.ha \ - $(STDLIB)/strings/tokenize.ha \ - $(STDLIB)/strings/utf8.ha \ - $(STDLIB)/strings/index.ha \ - $(STDLIB)/strings/trim.ha \ - $(STDLIB)/strings/compare.ha \ - $(STDLIB)/strings/pad.ha \ - $(STDLIB)/strings/replace.ha - -$(TESTCACHE)/strings/strings-any.ssa: $(testlib_strings_any_srcs) $(testlib_rt) $(testlib_bytes_$(PLATFORM)) $(testlib_encoding_utf8_$(PLATFORM)) $(testlib_types_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/strings - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nstrings \ - -t$(TESTCACHE)/strings/strings.td $(testlib_strings_any_srcs) - -# strings::template (+any) -testlib_strings_template_any_srcs = \ - $(STDLIB)/strings/template/template.ha - -$(TESTCACHE)/strings/template/strings_template-any.ssa: $(testlib_strings_template_any_srcs) $(testlib_rt) $(testlib_ascii_$(PLATFORM)) $(testlib_errors_$(PLATFORM)) $(testlib_fmt_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) $(testlib_memio_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/strings/template - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nstrings::template \ - -t$(TESTCACHE)/strings/template/strings_template.td $(testlib_strings_template_any_srcs) - -# temp (+linux) -testlib_temp_linux_srcs = \ - $(STDLIB)/temp/+linux.ha - -$(TESTCACHE)/temp/temp-linux.ssa: $(testlib_temp_linux_srcs) $(testlib_rt) $(testlib_crypto_random_$(PLATFORM)) $(testlib_encoding_hex_$(PLATFORM)) $(testlib_errors_$(PLATFORM)) $(testlib_fs_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_os_$(PLATFORM)) $(testlib_path_$(PLATFORM)) $(testlib_memio_$(PLATFORM)) $(testlib_fmt_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/temp - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Ntemp \ - -t$(TESTCACHE)/temp/temp.td $(testlib_temp_linux_srcs) - -# temp (+freebsd) -testlib_temp_freebsd_srcs = \ - $(STDLIB)/temp/+freebsd.ha - -$(TESTCACHE)/temp/temp-freebsd.ssa: $(testlib_temp_freebsd_srcs) $(testlib_rt) $(testlib_crypto_random_$(PLATFORM)) $(testlib_encoding_hex_$(PLATFORM)) $(testlib_errors_$(PLATFORM)) $(testlib_fs_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_os_$(PLATFORM)) $(testlib_path_$(PLATFORM)) $(testlib_memio_$(PLATFORM)) $(testlib_fmt_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/temp - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Ntemp \ - -t$(TESTCACHE)/temp/temp.td $(testlib_temp_freebsd_srcs) - -# test (+any) -testlib_test_any_srcs = \ - $(STDLIB)/test/common.ha \ - $(STDLIB)/test/+test.ha \ - $(STDLIB)/test/fail+test.ha - -$(TESTCACHE)/test/test-any.ssa: $(testlib_test_any_srcs) $(testlib_rt) $(testlib_bufio_$(PLATFORM)) $(testlib_encoding_hex_$(PLATFORM)) $(testlib_encoding_utf8_$(PLATFORM)) $(testlib_fmt_$(PLATFORM)) $(testlib_fnmatch_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_os_$(PLATFORM)) $(testlib_rt_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) $(testlib_memio_$(PLATFORM)) $(testlib_time_$(PLATFORM)) $(testlib_unix_signal_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/test - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Ntest \ - -t$(TESTCACHE)/test/test.td $(testlib_test_any_srcs) - -# time (+linux) -testlib_time_linux_srcs = \ - $(STDLIB)/time/+linux/functions.ha \ - $(STDLIB)/time/+linux/+$(ARCH).ha \ - $(STDLIB)/time/arithm.ha \ - $(STDLIB)/time/conv.ha \ - $(STDLIB)/time/types.ha - -$(TESTCACHE)/time/time-linux.ssa: $(testlib_time_linux_srcs) $(testlib_rt) $(testlib_linux_vdso_$(PLATFORM)) $(testlib_math_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/time - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Ntime \ - -t$(TESTCACHE)/time/time.td $(testlib_time_linux_srcs) - -# time (+freebsd) -testlib_time_freebsd_srcs = \ - $(STDLIB)/time/+freebsd/functions.ha \ - $(STDLIB)/time/arithm.ha \ - $(STDLIB)/time/conv.ha \ - $(STDLIB)/time/types.ha - -$(TESTCACHE)/time/time-freebsd.ssa: $(testlib_time_freebsd_srcs) $(testlib_rt) $(testlib_math_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/time - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Ntime \ - -t$(TESTCACHE)/time/time.td $(testlib_time_freebsd_srcs) - -# time::chrono (+linux) -testlib_time_chrono_linux_srcs = \ - $(STDLIB)/time/chrono/arithmetic.ha \ - $(STDLIB)/time/chrono/+linux.ha \ - $(STDLIB)/time/chrono/chronology.ha \ - $(STDLIB)/time/chrono/error.ha \ - $(STDLIB)/time/chrono/leapsec.ha \ - $(STDLIB)/time/chrono/timescale.ha \ - $(STDLIB)/time/chrono/timezone.ha \ - $(STDLIB)/time/chrono/tzdb.ha - -$(TESTCACHE)/time/chrono/time_chrono-linux.ssa: $(testlib_time_chrono_linux_srcs) $(testlib_rt) $(testlib_bufio_$(PLATFORM)) $(testlib_bytes_$(PLATFORM)) $(testlib_encoding_utf8_$(PLATFORM)) $(testlib_endian_$(PLATFORM)) $(testlib_errors_$(PLATFORM)) $(testlib_fmt_$(PLATFORM)) $(testlib_fs_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_os_$(PLATFORM)) $(testlib_strconv_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) $(testlib_time_$(PLATFORM)) $(testlib_path_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/time/chrono - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Ntime::chrono \ - -t$(TESTCACHE)/time/chrono/time_chrono.td $(testlib_time_chrono_linux_srcs) - -# time::chrono (+freebsd) -testlib_time_chrono_freebsd_srcs = \ - $(STDLIB)/time/chrono/arithmetic.ha \ - $(STDLIB)/time/chrono/+freebsd.ha \ - $(STDLIB)/time/chrono/chronology.ha \ - $(STDLIB)/time/chrono/error.ha \ - $(STDLIB)/time/chrono/leapsec.ha \ - $(STDLIB)/time/chrono/timescale.ha \ - $(STDLIB)/time/chrono/timezone.ha \ - $(STDLIB)/time/chrono/tzdb.ha - -$(TESTCACHE)/time/chrono/time_chrono-freebsd.ssa: $(testlib_time_chrono_freebsd_srcs) $(testlib_rt) $(testlib_bufio_$(PLATFORM)) $(testlib_bytes_$(PLATFORM)) $(testlib_encoding_utf8_$(PLATFORM)) $(testlib_endian_$(PLATFORM)) $(testlib_errors_$(PLATFORM)) $(testlib_fmt_$(PLATFORM)) $(testlib_fs_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_os_$(PLATFORM)) $(testlib_strconv_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) $(testlib_time_$(PLATFORM)) $(testlib_path_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/time/chrono - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Ntime::chrono \ - -t$(TESTCACHE)/time/chrono/time_chrono.td $(testlib_time_chrono_freebsd_srcs) - -# time::date (+linux) -testlib_time_date_linux_srcs = \ - $(STDLIB)/time/date/date.ha \ - $(STDLIB)/time/date/daydate.ha \ - $(STDLIB)/time/date/daytime.ha \ - $(STDLIB)/time/date/error.ha \ - $(STDLIB)/time/date/format.ha \ - $(STDLIB)/time/date/locality.ha \ - $(STDLIB)/time/date/observe.ha \ - $(STDLIB)/time/date/parithm.ha \ - $(STDLIB)/time/date/parse.ha \ - $(STDLIB)/time/date/period.ha \ - $(STDLIB)/time/date/reckon.ha \ - $(STDLIB)/time/date/tarithm.ha \ - $(STDLIB)/time/date/virtual.ha - -$(TESTCACHE)/time/date/time_date-linux.ssa: $(testlib_time_date_linux_srcs) $(testlib_rt) $(testlib_ascii_$(PLATFORM)) $(testlib_errors_$(PLATFORM)) $(testlib_fmt_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_strconv_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) $(testlib_memio_$(PLATFORM)) $(testlib_time_$(PLATFORM)) $(testlib_time_chrono_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/time/date - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Ntime::date \ - -t$(TESTCACHE)/time/date/time_date.td $(testlib_time_date_linux_srcs) - -# time::date (+freebsd) -testlib_time_date_freebsd_srcs = \ - $(STDLIB)/time/date/date.ha \ - $(STDLIB)/time/date/daydate.ha \ - $(STDLIB)/time/date/daytime.ha \ - $(STDLIB)/time/date/error.ha \ - $(STDLIB)/time/date/format.ha \ - $(STDLIB)/time/date/locality.ha \ - $(STDLIB)/time/date/observe.ha \ - $(STDLIB)/time/date/parithm.ha \ - $(STDLIB)/time/date/parse.ha \ - $(STDLIB)/time/date/period.ha \ - $(STDLIB)/time/date/reckon.ha \ - $(STDLIB)/time/date/tarithm.ha \ - $(STDLIB)/time/date/virtual.ha - -$(TESTCACHE)/time/date/time_date-freebsd.ssa: $(testlib_time_date_freebsd_srcs) $(testlib_rt) $(testlib_ascii_$(PLATFORM)) $(testlib_errors_$(PLATFORM)) $(testlib_fmt_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_strconv_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) $(testlib_memio_$(PLATFORM)) $(testlib_time_$(PLATFORM)) $(testlib_time_chrono_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/time/date - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Ntime::date \ - -t$(TESTCACHE)/time/date/time_date.td $(testlib_time_date_freebsd_srcs) - -# types (+any) -testlib_types_any_srcs = \ - $(STDLIB)/types/limits.ha \ - $(STDLIB)/types/classes.ha \ - $(STDLIB)/types/arch+$(ARCH).ha - -$(TESTCACHE)/types/types-any.ssa: $(testlib_types_any_srcs) $(testlib_rt) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/types - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Ntypes \ - -t$(TESTCACHE)/types/types.td $(testlib_types_any_srcs) - -# types::c (+any) -testlib_types_c_any_srcs = \ - $(STDLIB)/types/c/+test.ha \ - $(STDLIB)/types/c/strings.ha \ - $(STDLIB)/types/c/types.ha \ - $(STDLIB)/types/c/arch+$(ARCH).ha - -$(TESTCACHE)/types/c/types_c-any.ssa: $(testlib_types_c_any_srcs) $(testlib_rt) $(testlib_encoding_utf8_$(PLATFORM)) $(testlib_types_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/types/c - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Ntypes::c \ - -t$(TESTCACHE)/types/c/types_c.td $(testlib_types_c_any_srcs) - -# unix (+linux) -testlib_unix_linux_srcs = \ - $(STDLIB)/unix/+linux/nice.ha \ - $(STDLIB)/unix/+linux/pipe.ha \ - $(STDLIB)/unix/+linux/umask.ha \ - $(STDLIB)/unix/+linux/getuid.ha \ - $(STDLIB)/unix/+linux/setuid.ha \ - $(STDLIB)/unix/+linux/groups.ha - -$(TESTCACHE)/unix/unix-linux.ssa: $(testlib_unix_linux_srcs) $(testlib_rt) $(testlib_errors_$(PLATFORM)) $(testlib_fs_$(PLATFORM)) $(testlib_io_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/unix - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nunix \ - -t$(TESTCACHE)/unix/unix.td $(testlib_unix_linux_srcs) - -# unix (+freebsd) -testlib_unix_freebsd_srcs = \ - $(STDLIB)/unix/+freebsd/nice.ha \ - $(STDLIB)/unix/+freebsd/pipe.ha \ - $(STDLIB)/unix/+freebsd/umask.ha \ - $(STDLIB)/unix/+freebsd/getuid.ha \ - $(STDLIB)/unix/+freebsd/setuid.ha \ - $(STDLIB)/unix/+freebsd/groups.ha - -$(TESTCACHE)/unix/unix-freebsd.ssa: $(testlib_unix_freebsd_srcs) $(testlib_rt) $(testlib_errors_$(PLATFORM)) $(testlib_fs_$(PLATFORM)) $(testlib_io_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/unix - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nunix \ - -t$(TESTCACHE)/unix/unix.td $(testlib_unix_freebsd_srcs) - -# unix::hosts (+linux) -testlib_unix_hosts_linux_srcs = \ - $(STDLIB)/unix/hosts/+linux.ha \ - $(STDLIB)/unix/hosts/test+test.ha \ - $(STDLIB)/unix/hosts/hosts.ha - -$(TESTCACHE)/unix/hosts/unix_hosts-linux.ssa: $(testlib_unix_hosts_linux_srcs) $(testlib_rt) $(testlib_bufio_$(PLATFORM)) $(testlib_encoding_utf8_$(PLATFORM)) $(testlib_fs_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_net_ip_$(PLATFORM)) $(testlib_os_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) $(testlib_memio_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/unix/hosts - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nunix::hosts \ - -t$(TESTCACHE)/unix/hosts/unix_hosts.td $(testlib_unix_hosts_linux_srcs) - -# unix::hosts (+freebsd) -testlib_unix_hosts_freebsd_srcs = \ - $(STDLIB)/unix/hosts/+freebsd.ha \ - $(STDLIB)/unix/hosts/test+test.ha \ - $(STDLIB)/unix/hosts/hosts.ha - -$(TESTCACHE)/unix/hosts/unix_hosts-freebsd.ssa: $(testlib_unix_hosts_freebsd_srcs) $(testlib_rt) $(testlib_bufio_$(PLATFORM)) $(testlib_encoding_utf8_$(PLATFORM)) $(testlib_fs_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_net_ip_$(PLATFORM)) $(testlib_os_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) $(testlib_memio_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/unix/hosts - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nunix::hosts \ - -t$(TESTCACHE)/unix/hosts/unix_hosts.td $(testlib_unix_hosts_freebsd_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-any.ssa: $(testlib_unix_passwd_any_srcs) $(testlib_rt) $(testlib_bufio_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_os_$(PLATFORM)) $(testlib_strconv_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) $(testlib_memio_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/unix/passwd - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nunix::passwd \ - -t$(TESTCACHE)/unix/passwd/unix_passwd.td $(testlib_unix_passwd_any_srcs) - -# unix::poll (+linux) -testlib_unix_poll_linux_srcs = \ - $(STDLIB)/unix/poll/+linux.ha \ - $(STDLIB)/unix/poll/types.ha - -$(TESTCACHE)/unix/poll/unix_poll-linux.ssa: $(testlib_unix_poll_linux_srcs) $(testlib_rt) $(testlib_rt_$(PLATFORM)) $(testlib_errors_$(PLATFORM)) $(testlib_time_$(PLATFORM)) $(testlib_io_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/unix/poll - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nunix::poll \ - -t$(TESTCACHE)/unix/poll/unix_poll.td $(testlib_unix_poll_linux_srcs) - -# unix::poll (+freebsd) -testlib_unix_poll_freebsd_srcs = \ - $(STDLIB)/unix/poll/+freebsd.ha \ - $(STDLIB)/unix/poll/types.ha - -$(TESTCACHE)/unix/poll/unix_poll-freebsd.ssa: $(testlib_unix_poll_freebsd_srcs) $(testlib_rt) $(testlib_rt_$(PLATFORM)) $(testlib_errors_$(PLATFORM)) $(testlib_time_$(PLATFORM)) $(testlib_io_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/unix/poll - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nunix::poll \ - -t$(TESTCACHE)/unix/poll/unix_poll.td $(testlib_unix_poll_freebsd_srcs) - -# unix::resolvconf (+linux) -testlib_unix_resolvconf_linux_srcs = \ - $(STDLIB)/unix/resolvconf/+linux.ha \ - $(STDLIB)/unix/resolvconf/load.ha - -$(TESTCACHE)/unix/resolvconf/unix_resolvconf-linux.ssa: $(testlib_unix_resolvconf_linux_srcs) $(testlib_rt) $(testlib_os_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_bufio_$(PLATFORM)) $(testlib_memio_$(PLATFORM)) $(testlib_net_ip_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/unix/resolvconf - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nunix::resolvconf \ - -t$(TESTCACHE)/unix/resolvconf/unix_resolvconf.td $(testlib_unix_resolvconf_linux_srcs) - -# unix::resolvconf (+freebsd) -testlib_unix_resolvconf_freebsd_srcs = \ - $(STDLIB)/unix/resolvconf/+freebsd.ha \ - $(STDLIB)/unix/resolvconf/load.ha - -$(TESTCACHE)/unix/resolvconf/unix_resolvconf-freebsd.ssa: $(testlib_unix_resolvconf_freebsd_srcs) $(testlib_rt) $(testlib_os_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_bufio_$(PLATFORM)) $(testlib_memio_$(PLATFORM)) $(testlib_net_ip_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/unix/resolvconf - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nunix::resolvconf \ - -t$(TESTCACHE)/unix/resolvconf/unix_resolvconf.td $(testlib_unix_resolvconf_freebsd_srcs) - -# unix::signal (+linux) -testlib_unix_signal_linux_srcs = \ - $(STDLIB)/unix/signal/types.ha \ - $(STDLIB)/unix/signal/+linux.ha - -$(TESTCACHE)/unix/signal/unix_signal-linux.ssa: $(testlib_unix_signal_linux_srcs) $(testlib_rt) $(testlib_io_$(PLATFORM)) $(testlib_errors_$(PLATFORM)) $(testlib_rt_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/unix/signal - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nunix::signal \ - -t$(TESTCACHE)/unix/signal/unix_signal.td $(testlib_unix_signal_linux_srcs) - -# unix::signal (+freebsd) -testlib_unix_signal_freebsd_srcs = \ - $(STDLIB)/unix/signal/types.ha \ - $(STDLIB)/unix/signal/+freebsd.ha - -$(TESTCACHE)/unix/signal/unix_signal-freebsd.ssa: $(testlib_unix_signal_freebsd_srcs) $(testlib_rt) $(testlib_io_$(PLATFORM)) $(testlib_errors_$(PLATFORM)) $(testlib_rt_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/unix/signal - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nunix::signal \ - -t$(TESTCACHE)/unix/signal/unix_signal.td $(testlib_unix_signal_freebsd_srcs) - -# unix::tty (+linux) -testlib_unix_tty_linux_srcs = \ - $(STDLIB)/unix/tty/types.ha \ - $(STDLIB)/unix/tty/pty_common.ha \ - $(STDLIB)/unix/tty/+linux/isatty.ha \ - $(STDLIB)/unix/tty/+linux/open.ha \ - $(STDLIB)/unix/tty/+linux/pty.ha \ - $(STDLIB)/unix/tty/+linux/termios.ha \ - $(STDLIB)/unix/tty/+linux/winsize.ha - -$(TESTCACHE)/unix/tty/unix_tty-linux.ssa: $(testlib_unix_tty_linux_srcs) $(testlib_rt) $(testlib_bufio_$(PLATFORM)) $(testlib_errors_$(PLATFORM)) $(testlib_fmt_$(PLATFORM)) $(testlib_fs_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_os_$(PLATFORM)) $(testlib_rt_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/unix/tty - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nunix::tty \ - -t$(TESTCACHE)/unix/tty/unix_tty.td $(testlib_unix_tty_linux_srcs) - -# unix::tty (+freebsd) -testlib_unix_tty_freebsd_srcs = \ - $(STDLIB)/unix/tty/types.ha \ - $(STDLIB)/unix/tty/pty_common.ha \ - $(STDLIB)/unix/tty/+freebsd/isatty.ha \ - $(STDLIB)/unix/tty/+freebsd/open.ha \ - $(STDLIB)/unix/tty/+freebsd/pty.ha \ - $(STDLIB)/unix/tty/+freebsd/winsize.ha - -$(TESTCACHE)/unix/tty/unix_tty-freebsd.ssa: $(testlib_unix_tty_freebsd_srcs) $(testlib_rt) $(testlib_bufio_$(PLATFORM)) $(testlib_errors_$(PLATFORM)) $(testlib_fmt_$(PLATFORM)) $(testlib_fs_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_os_$(PLATFORM)) $(testlib_rt_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) $(testlib_types_c_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/unix/tty - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nunix::tty \ - -t$(TESTCACHE)/unix/tty/unix_tty.td $(testlib_unix_tty_freebsd_srcs) - -# uuid (+any) -testlib_uuid_any_srcs = \ - $(STDLIB)/uuid/uuid.ha - -$(TESTCACHE)/uuid/uuid-any.ssa: $(testlib_uuid_any_srcs) $(testlib_rt) $(testlib_crypto_random_$(PLATFORM)) $(testlib_fmt_$(PLATFORM)) $(testlib_endian_$(PLATFORM)) $(testlib_io_$(PLATFORM)) $(testlib_bytes_$(PLATFORM)) $(testlib_memio_$(PLATFORM)) $(testlib_strings_$(PLATFORM)) $(testlib_strconv_$(PLATFORM)) - @printf 'HAREC \t$@\n' - @mkdir -p $(TESTCACHE)/uuid - @$(testlib_env) $(HAREC) $(TESTHARECFLAGS) -o $@ -Nuuid \ - -t$(TESTCACHE)/uuid/uuid.td $(testlib_uuid_any_srcs) - diff --git a/targets.mk b/targets.mk @@ -1,17 +0,0 @@ -HARE_DEFINES:=\ - -D PLATFORM:str='"'"$(PLATFORM)"'"' \ - -D ARCH:str='"'"$(ARCH)"'"' \ - -D VERSION:str='"'"$$(./scripts/version)"'"' \ - -D HAREPATH:str='"'"$(HAREPATH)"'"' \ - -D AARCH64_AS:str='"'"$(AARCH64_AS)"'"' \ - -D AARCH64_AR:str='"'"$(AARCH64_AR)"'"' \ - -D AARCH64_CC:str='"'"$(AARCH64_CC)"'"' \ - -D AARCH64_LD:str='"'"$(AARCH64_LD)"'"' \ - -D RISCV64_AS:str='"'"$(RISCV64_AS)"'"' \ - -D RISCV64_AR:str='"'"$(RISCV64_AR)"'"' \ - -D RISCV64_CC:str='"'"$(RISCV64_CC)"'"' \ - -D RISCV64_LD:str='"'"$(RISCV64_LD)"'"' \ - -D X86_64_AS:str='"'"$(X86_64_AS)"'"' \ - -D X86_64_AR:str='"'"$(X86_64_AR)"'"' \ - -D X86_64_CC:str='"'"$(X86_64_CC)"'"' \ - -D X86_64_LD:str='"'"$(X86_64_LD)"'"'