Makefile improvements
Using a tmp file prevents a failed build from being reported as succeeded. Changes in the compiler should now rebuild the tests automatically.
This commit is contained in:
parent
a08084230e
commit
7568a15093
1
1-lang0py/.gitignore
vendored
1
1-lang0py/.gitignore
vendored
@ -2,3 +2,4 @@
|
|||||||
/lang0py*.exe
|
/lang0py*.exe
|
||||||
/lang0py*.o
|
/lang0py*.o
|
||||||
/lang0py*.py
|
/lang0py*.py
|
||||||
|
/lang0py*.py.tmp
|
||||||
|
|||||||
@ -18,18 +18,22 @@ all: lang0py.exe
|
|||||||
$(CYTHON) -3 --embed $<
|
$(CYTHON) -3 --embed $<
|
||||||
|
|
||||||
lang0py0.py: lang0py.lang0 $(LANG0PY)
|
lang0py0.py: lang0py.lang0 $(LANG0PY)
|
||||||
cat $< | $(LANG0PY) > $@
|
cat $< | $(LANG0PY) > $@.tmp
|
||||||
|
mv $@.tmp $@
|
||||||
|
|
||||||
lang0py1.py: lang0py.lang0 lang0py0.exe
|
lang0py1.py: lang0py.lang0 lang0py0.exe
|
||||||
cat $< | ./lang0py0.exe > $@
|
cat $< | ./lang0py0.exe > $@.tmp
|
||||||
|
mv $@.tmp $@
|
||||||
# Cannot diff on the first iteration - platform change
|
# Cannot diff on the first iteration - platform change
|
||||||
|
|
||||||
lang0py2.py: lang0py.lang0 lang0py1.exe
|
lang0py2.py: lang0py.lang0 lang0py1.exe
|
||||||
cat $< | ./lang0py1.exe > $@
|
cat $< | ./lang0py1.exe > $@.tmp
|
||||||
|
mv $@.tmp $@
|
||||||
-diff lang0py1.py lang0py2.py
|
-diff lang0py1.py lang0py2.py
|
||||||
|
|
||||||
lang0py.py: lang0py.lang0 lang0py2.exe
|
lang0py.py: lang0py.lang0 lang0py2.exe
|
||||||
cat $< | ./lang0py2.exe > $@
|
cat $< | ./lang0py2.exe > $@.tmp
|
||||||
|
mv $@.tmp $@
|
||||||
-diff lang0py2.py lang0py.py
|
-diff lang0py2.py lang0py.py
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
|
|||||||
1
2-lang0c/.gitignore
vendored
1
2-lang0c/.gitignore
vendored
@ -1,4 +1,5 @@
|
|||||||
/lang0c*.c
|
/lang0c*.c
|
||||||
|
/lang0c*.c.tmp
|
||||||
/lang0c*.exe
|
/lang0c*.exe
|
||||||
/lang0c*.o
|
/lang0c*.o
|
||||||
/lang0c*.py
|
/lang0c*.py
|
||||||
|
|||||||
@ -15,7 +15,8 @@ all: lang0c.exe
|
|||||||
gcc -c $<
|
gcc -c $<
|
||||||
|
|
||||||
lang0c0.py: lang0c.lang0 $(LANG0PY)
|
lang0c0.py: lang0c.lang0 $(LANG0PY)
|
||||||
cat $< | $(LANG0PY) > $@
|
cat $< | $(LANG0PY) > $@.tmp
|
||||||
|
mv $@.tmp $@
|
||||||
|
|
||||||
lang0c0.c: lang0c0.py
|
lang0c0.c: lang0c0.py
|
||||||
$(CYTHON) -3 --embed $<
|
$(CYTHON) -3 --embed $<
|
||||||
@ -27,15 +28,18 @@ lang0c0.exe: lang0c0.o
|
|||||||
gcc -o $@ $< -lpython$(PYVERSION)
|
gcc -o $@ $< -lpython$(PYVERSION)
|
||||||
|
|
||||||
lang0c1.c: lang0c.lang0 lang0c0.exe
|
lang0c1.c: lang0c.lang0 lang0c0.exe
|
||||||
cat $< | ./lang0c0.exe > $@
|
cat $< | ./lang0c0.exe > $@.tmp
|
||||||
|
mv $@.tmp $@
|
||||||
# Cannot diff on the first iteration - platform change
|
# Cannot diff on the first iteration - platform change
|
||||||
|
|
||||||
lang0c2.c: lang0c.lang0 lang0c1.exe
|
lang0c2.c: lang0c.lang0 lang0c1.exe
|
||||||
cat $< | ./lang0c1.exe > $@
|
cat $< | ./lang0c1.exe > $@.tmp
|
||||||
|
mv $@.tmp $@
|
||||||
-diff lang0c1.c lang0c2.c
|
-diff lang0c1.c lang0c2.c
|
||||||
|
|
||||||
lang0c.c: lang0c.lang0 lang0c2.exe
|
lang0c.c: lang0c.lang0 lang0c2.exe
|
||||||
cat $< | ./lang0c2.exe > $@
|
cat $< | ./lang0c2.exe > $@.tmp
|
||||||
|
mv $@.tmp $@
|
||||||
-diff lang0c2.c lang0c.c
|
-diff lang0c2.c lang0c.c
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
|
|||||||
@ -1,5 +1,7 @@
|
|||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
.PHONY: all clean
|
.PHONY: all clean
|
||||||
|
.PRECIOUS: build/%.it0.py build/%.it0.c
|
||||||
|
.DELETE_ON_ERROR:
|
||||||
|
|
||||||
PYVERSION=3.10
|
PYVERSION=3.10
|
||||||
PYPREFIX=/usr
|
PYPREFIX=/usr
|
||||||
@ -31,8 +33,12 @@ clean:
|
|||||||
###
|
###
|
||||||
# it0
|
# it0
|
||||||
|
|
||||||
|
../0-lang0py/lang0py.exe: ../0-lang0py/lang0py.py
|
||||||
|
$(MAKE) -C ../0-lang0py
|
||||||
|
|
||||||
build/%.it0.py: %.lang0 ../0-lang0py/lang0py.exe
|
build/%.it0.py: %.lang0 ../0-lang0py/lang0py.exe
|
||||||
cat $< | ../0-lang0py/lang0py.exe > $@
|
cat $< | ../0-lang0py/lang0py.exe > $@.tmp
|
||||||
|
mv $@.tmp $@
|
||||||
|
|
||||||
build/%.it0.c: build/%.it0.py
|
build/%.it0.c: build/%.it0.py
|
||||||
$(CYTHON) -3 --embed -o $@ $^
|
$(CYTHON) -3 --embed -o $@ $^
|
||||||
@ -46,8 +52,12 @@ build/%.it0: build/%.it0.o
|
|||||||
###
|
###
|
||||||
# it1
|
# it1
|
||||||
|
|
||||||
|
../1-lang0py/lang0py.exe: ../0-lang0py/lang0py.exe ../1-lang0py/lang0py.lang0
|
||||||
|
$(MAKE) -C ../1-lang0py
|
||||||
|
|
||||||
build/%.it1.py: %.lang0 ../1-lang0py/lang0py.exe
|
build/%.it1.py: %.lang0 ../1-lang0py/lang0py.exe
|
||||||
cat $< | ../1-lang0py/lang0py.exe > $@
|
cat $< | ../1-lang0py/lang0py.exe > $@.tmp
|
||||||
|
mv $@.tmp $@
|
||||||
|
|
||||||
build/%.it1.c: build/%.it1.py
|
build/%.it1.c: build/%.it1.py
|
||||||
$(CYTHON) -3 --embed -o $@ $^
|
$(CYTHON) -3 --embed -o $@ $^
|
||||||
@ -61,8 +71,12 @@ build/%.it1: build/%.it1.o
|
|||||||
###
|
###
|
||||||
# it2
|
# it2
|
||||||
|
|
||||||
|
../2-lang0c/lang0c.exe: ../0-lang0py/lang0py.exe ../1-lang0py/lang0py.exe ../2-lang0c/lang0c.lang0
|
||||||
|
$(MAKE) -C ../2-lang0c
|
||||||
|
|
||||||
build/%.it2.c: %.lang0 ../2-lang0c/lang0c.exe
|
build/%.it2.c: %.lang0 ../2-lang0c/lang0c.exe
|
||||||
cat $< | ../2-lang0c/lang0c.exe > $@
|
cat $< | ../2-lang0c/lang0c.exe > $@.tmp
|
||||||
|
mv $@.tmp $@
|
||||||
|
|
||||||
build/%.it2.o: build/%.it2.c
|
build/%.it2.o: build/%.it2.c
|
||||||
$(CC) -o $@ -c $^ -I$(PYPREFIX)/include/python$(PYVERSION)
|
$(CC) -o $@ -c $^ -I$(PYPREFIX)/include/python$(PYVERSION)
|
||||||
|
|||||||
3
tests/build/.gitignore
vendored
3
tests/build/.gitignore
vendored
@ -2,10 +2,13 @@
|
|||||||
/*.it0.c
|
/*.it0.c
|
||||||
/*.it0.o
|
/*.it0.o
|
||||||
/*.it0.py
|
/*.it0.py
|
||||||
|
/*.it0.py.tmp
|
||||||
/*.it1
|
/*.it1
|
||||||
/*.it1.c
|
/*.it1.c
|
||||||
/*.it1.o
|
/*.it1.o
|
||||||
/*.it1.py
|
/*.it1.py
|
||||||
|
/*.it1.py.tmp
|
||||||
/*.it2
|
/*.it2
|
||||||
/*.it2.c
|
/*.it2.c
|
||||||
|
/*.it2.c.tmp
|
||||||
/*.it2.o
|
/*.it2.o
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user