.SUFFIXES: .PHONY: all clean PYVERSION=3.10 PYPREFIX=/usr CYTHON=cython3 CC=gcc TESTLIST=$(shell ls *.lang0 | sed 's/.lang0//') all: check check: all-it0.results all-it1.results all-it2.results ! grep -v 'Success' $^ all-it0.results: $(addprefix build/,$(addsuffix .it0, $(TESTLIST))) -rm -f $@ $(foreach test,$(TESTLIST), echo -n "$(test) " >> $@; echo "Hello" | ./build/$(test).it0 >> $@ ; echo "" >> $@ ;) all-it1.results: $(addprefix build/,$(addsuffix .it1, $(TESTLIST))) -rm -f $@ $(foreach test,$(TESTLIST), echo -n "$(test) " >> $@; echo "Hello" | ./build/$(test).it1 >> $@ ; echo "" >> $@ ;) all-it2.results: $(addprefix build/,$(addsuffix .it2, $(TESTLIST))) -rm -f $@ $(foreach test,$(TESTLIST), echo -n "$(test) " >> $@; echo "Hello" | ./build/$(test).it2 >> $@ ; echo "" >> $@ ;) clean: -rm -f *.results build/*.it0* build/*.it1* build/*.it2* ### # it0 build/%.it0.py: %.lang0 ../0-lang0py/lang0py.exe cat $< | ../0-lang0py/lang0py.exe > $@ build/%.it0.c: build/%.it0.py $(CYTHON) -3 --embed -o $@ $^ build/%.it0.o: build/%.it0.c $(CC) -o $@ -c $^ -I$(PYPREFIX)/include/python$(PYVERSION) build/%.it0: build/%.it0.o $(CC) -o $@ $^ -lpython$(PYVERSION) ### # it1 build/%.it1.py: %.lang0 ../1-lang0py/lang0py.exe cat $< | ../1-lang0py/lang0py.exe > $@ build/%.it1.c: build/%.it1.py $(CYTHON) -3 --embed -o $@ $^ build/%.it1.o: build/%.it1.c $(CC) -o $@ -c $^ -I$(PYPREFIX)/include/python$(PYVERSION) build/%.it1: build/%.it1.o $(CC) -o $@ $^ -lpython$(PYVERSION) ### # it2 build/%.it2.c: %.lang0 ../2-lang0c/lang0c.exe cat $< | ../2-lang0c/lang0c.exe > $@ build/%.it2.o: build/%.it2.c $(CC) -o $@ -c $^ -I$(PYPREFIX)/include/python$(PYVERSION) build/%.it2: build/%.it2.o $(CC) -o $@ $^ -lpython$(PYVERSION)