Version 47
[jonesforth.git] / Makefile
index 9385631..51fba1e 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,50 @@
-# $Id: Makefile,v 1.1 2007-09-07 23:40:52 rich Exp $
+# $Id: Makefile,v 1.9 2007-10-22 18:53:12 rich Exp $
 
-all:
-       gcc -m32 -nostdlib -static -Wl,-Ttext,0 -o jonesforth jonesforth.S
+#BUILD_ID_NONE := -Wl,--build-id=none 
+BUILD_ID_NONE := 
+
+SHELL  := /bin/bash
+
+all:   jonesforth
+
+jonesforth: jonesforth.S
+       gcc -m32 -nostdlib -static -Wl,-Ttext,0 $(BUILD_ID_NONE) -o $@ $<
 
 run:
-       ./jonesforth
\ No newline at end of file
+       cat jonesforth.f $(PROG) - | ./jonesforth
+
+clean:
+       rm -f jonesforth perf_dupdrop *~ core .test_*
+
+# Tests.
+
+TESTS  := $(patsubst %.f,%.test,$(wildcard test_*.f))
+
+test check: $(TESTS)
+
+test_%.test: test_%.f jonesforth
+       @echo -n "$< ... "
+       @rm -f .$@
+       @cat <(echo ': TEST-MODE ;') jonesforth.f $< <(echo 'TEST') | \
+         ./jonesforth 2>&1 | \
+         sed 's/DSP=[0-9]*//g' > .$@
+       @diff -u .$@ $<.out
+       @rm -f .$@
+       @echo "ok"
+
+# Performance.
+
+perf_dupdrop: perf_dupdrop.c
+       gcc -O3 -Wall -Werror -o $@ $<
+
+run_perf_dupdrop: jonesforth
+       cat <(echo ': TEST-MODE ;') jonesforth.f perf_dupdrop.f | ./jonesforth
+
+.SUFFIXES: .f .test
+.PHONY: test check run run_perf_dupdrop
+
+remote:
+       scp jonesforth.S jonesforth.f rjones@oirase:Desktop/
+       ssh rjones@oirase sh -c '"rm -f Desktop/jonesforth; \
+         gcc -m32 -nostdlib -static -Wl,-Ttext,0 -o Desktop/jonesforth Desktop/jonesforth.S; \
+         cat Desktop/jonesforth.f - | Desktop/jonesforth arg1 arg2 arg3"'