GOOSE ?= goose GOOSE_CC ?= clang ifneq ($(wildcard ../goose/stdlib/std.goose),) GOOSE_STDLIB ?= $(abspath ../goose/stdlib) export GOOSE_STDLIB endif .PHONY: all check test test-debug test-compatibility bench bench-startup clean PLAN9PORT_RC ?= /usr/local/plan9/bin/rc RAKITZIS_RC ?= .build/reference-rc/rc COMPATIBILITY_REPORT ?= .build/compatibility.json all: $(GOOSE) build rc2.goose --cc $(GOOSE_CC) --standalone check: $(GOOSE) check rc2.goose $(GOOSE) check tests.goose test: all .build/terminal-driver bb tests/run.clj $(GOOSE) tests.goose bb tests/completion.clj bb tests/declarations.clj python3 tests/terminal.py python3 tests/stream.py bb tests/adversarial.clj python3 tests/memory.py python3 tests/signals.py node tests/history.mjs node tests/jobs.mjs node tests/editor.mjs node tests/prompt.mjs node tests/bind.mjs node tests/bind-context.mjs node tests/automatic.mjs node tests/groups.mjs node tests/positionals.mjs node tests/passthrough.mjs node tests/subcommands.mjs node tests/unix.mjs node tests/source-read.mjs node tests/source-signals.mjs node tests/compatibility-test.mjs node tests/startup.mjs node tests/profile.mjs node tests/cli.mjs node tests/conformance.mjs bb ci/release-test.clj test-debug: .build/terminal-driver mkdir -p .build $(GOOSE) build --debug rc2.goose --cc $(GOOSE_CC) -o .build/rc2-debug bb tests/run.clj .build/rc2-debug $(GOOSE) --debug tests.goose bb tests/completion.clj .build/rc2-debug bb tests/declarations.clj .build/rc2-debug python3 tests/terminal.py .build/rc2-debug python3 tests/stream.py .build/rc2-debug bb tests/adversarial.clj .build/rc2-debug python3 tests/memory.py .build/rc2-debug python3 tests/signals.py .build/rc2-debug node tests/history.mjs .build/rc2-debug node tests/jobs.mjs .build/rc2-debug node tests/editor.mjs .build/rc2-debug node tests/prompt.mjs .build/rc2-debug node tests/bind.mjs .build/rc2-debug node tests/bind-context.mjs .build/rc2-debug node tests/automatic.mjs .build/rc2-debug node tests/groups.mjs .build/rc2-debug node tests/positionals.mjs .build/rc2-debug node tests/passthrough.mjs .build/rc2-debug node tests/subcommands.mjs .build/rc2-debug node tests/unix.mjs .build/rc2-debug node tests/source-read.mjs .build/rc2-debug node tests/source-signals.mjs .build/rc2-debug node tests/compatibility-test.mjs node tests/conformance.mjs .build/rc2-debug node tests/profile.mjs .build/rc2-debug node tests/cli.mjs .build/rc2-debug bb ci/release-test.clj test-compatibility: all node tests/compatibility.mjs ./rc2 --reference plan9port="$(PLAN9PORT_RC)" --reference rakitzis="$(RAKITZIS_RC)" --report "$(COMPATIBILITY_REPORT)" .build/terminal-driver: tests/terminal-driver.c mkdir -p .build $(GOOSE_CC) -Wall -Wextra -Werror -O2 $< -o $@ bench: all bb bench/run.clj bench-startup: all node bench/startup.mjs rc2=./rc2 plan9port="$(PLAN9PORT_RC)" rakitzis="$(RAKITZIS_RC)" clean: rm -f rc2