bootstrap: add the missing step `nitg_0`
authorJean Privat <jean@pryen.org>
Tue, 13 May 2014 19:18:42 +0000 (15:18 -0400)
committerJean Privat <jean@pryen.org>
Thu, 15 May 2014 14:50:53 +0000 (10:50 -0400)
The compiler in c_src might produce code that does not understand
new phases, annotation or whatever ; or that is just broken outside
the bootstrap.

Thus, an additional phase is used to produce the usable compiler in bin

Signed-off-by: Jean Privat <jean@pryen.org>

src/Makefile
src/ngall.sh

index ecfa44e..211287d 100644 (file)
@@ -18,12 +18,19 @@ NITCOPT=
 
 all: ../bin/nitdoc ../bin/nitmetrics ../bin/nitg ../bin/nit ../bin/nitx ../bin/nitunit ../bin/nitlight ../bin/nitls ../bin/nitdbg_client
 
-../bin/nitg: ../c_src/nitg parser/parser.nit
+nitg_0: ../c_src/nitg parser/parser.nit
+       @echo '***************************************************************'
+       @echo '* Compile nitg_0 from NIT source files                          *'
+       @echo '***************************************************************'
+       ./git-gen-version.sh
+       ../c_src/nitg ${NITCOPT} -o nitg_0 -v nitg.nit
+
+../bin/nitg: nitg_0 parser/parser.nit
        @echo '***************************************************************'
        @echo '* Compile nitg from NIT source files                          *'
        @echo '***************************************************************'
        ./git-gen-version.sh
-       ../c_src/nitg ${NITCOPT} -o ../bin/nitg -v nitg.nit
+       ./nitg_0 ${NITCOPT} -o ../bin/nitg -v nitg.nit
 
 ../bin/nitdoc: ../bin/nitg
        @echo '***************************************************************'
index 02e8d53..e6dd406 100755 (executable)
@@ -2,10 +2,16 @@
 rm nitg nitg_? hello_world 2>/dev/null
 set -x
 set -e
-time ../c_src/nitg nitg.nit -v -o nitg
-time ./nitg nitg.nit -v "$@" -o nitg_2
+make -C ../c_src
+sh git-gen-version.sh
+time ../c_src/nitg nitg.nit -v -o nitg_0
+time ./nitg_0 nitg.nit -v "$@" -o nitg_2
+cp nitg_2 nitg
 time ./nitg_2 nitg.nit -v "$@" -o nitg_3
 time ./nitg_3 nitg.nit -v "$@" -o nitg_4
 ./nitg_4 ../examples/hello_world.nit "$@" -o hello_world
 ./hello_world
 
+# save the last one; may be useful...
+cp ./nitg_4 nitg.good
+