evincarofautumn / kitten

A statically typed concatenative systems programming language.
http://kittenlang.org/
Other
1.09k stars 39 forks source link

Order Makefile deps "properly" and allow parallelism #107

Closed strager closed 10 years ago

strager commented 10 years ago

Expressing order dependencies between PHONY targets is unnatural in GNU Make. This patch introduces a hack in the form of the SOFT_DEP_RULE macro which generates dependencies between phony targets only if the phony targets would be built anyway.

As a side effect, messing up the order of targets when invoking 'make' is accepted:

$ make test-abs build configure -n
cabal configure --enable-tests
cabal build
cp lib/Prelude.ktn ./dist/build/kitten/Prelude.ktn
cp lib/Prelude_*.ktn ./dist/build/kitten
./dist/build/kitten/kitten --no-implicit-prelude
./dist/build/kitten/Prelude.ktn
./test/run.sh $PWD/dist/build/Kitten/kitten "abs"
evincarofautumn commented 10 years ago

Merged in 78344f015e6451c9618161096cfbf8cbe7080774.