aboutsummaryrefslogtreecommitdiffhomepage
path: root/justfile
diff options
context:
space:
mode:
Diffstat (limited to 'justfile')
-rw-r--r--justfile50
1 files changed, 50 insertions, 0 deletions
diff --git a/justfile b/justfile
new file mode 100644
index 0000000..24add55
--- /dev/null
+++ b/justfile
@@ -0,0 +1,50 @@
+CFLAGS := "-Wno-builtin-declaration-mismatch"
+
+all: build
+
+build N="1":
+ #!/usr/bin/env bash
+ if [[ {{N}} = 1 ]]; then
+ gcc -g -O0 -o p4dcc main.c {{CFLAGS}}
+ else
+ if [[ {{N}} = 2 ]]; then
+ prev=""
+ else
+ prev=$(({{N}} - 1))
+ fi
+ "./p4dcc${prev}" < main.c > main{{N}}.s
+ gcc -s -Wl,-z,noexecstack -o p4dcc{{N}} main{{N}}.s
+ fi
+
+build-upto-5-gen:
+ just build 1
+ just build 2
+ just build 3
+ just build 4
+ just build 5
+
+test-self-hosted: build-upto-5-gen
+ diff -u ./p4dcc2 ./p4dcc3
+ diff -u ./p4dcc3 ./p4dcc4
+ diff -u ./p4dcc4 ./p4dcc5
+
+test TESTCASE="all" $BIN="p4dcc": build
+ #!/usr/bin/env bash
+ if [[ {{TESTCASE}} = all ]]; then
+ bash tests/all.sh
+ else
+ bash tests/run.sh {{TESTCASE}}
+ fi
+
+test-all:
+ just test-self-hosted
+ just test all p4dcc
+ just test all p4dcc2
+ just test all p4dcc3
+ just test all p4dcc4
+ just test all p4dcc5
+
+clean:
+ rm -f main*.s
+ rm -f p4dcc*
+ rm -rf tests/tmp