Makefile: boot target to bootstrap
[neatcc_make.git] / Makefile
blob73ddb483e5776dde0517fdcb6ce0bdd6975576ec
1 # Neatcc top-level Makefile
3 # output architecture: x64, x86, arm
4 OUT = x64
5 CC = cc
7 BASE = $(PWD)
9 all: help
11 help:
12 @echo "Neatcc top-level makefile"
13 @echo
14 @echo " init Initialise git repositories"
15 @echo " neat Compile the programs"
16 @echo " boot Compile neatcc using itself"
17 @echo " pull Update git repositories"
18 @echo " clean Remove the generated files"
19 @echo
21 init:
22 @test -d neatcc || git clone git://repo.or.cz/neatcc.git
23 @test -d neatld || git clone git://repo.or.cz/ld.git neatld
24 @test -d neatlibc || git clone git://repo.or.cz/neatlibc.git
25 @test -d neatas || git clone git://repo.or.cz/neatas.git
27 pull:
28 cd neatcc && git pull
29 cd neatld && git pull
30 cd neatlibc && git pull
31 cd neatas && git pull
32 git pull
34 neat:
35 # compiling the programs
36 @cd neatcc && $(MAKE) OUT=$(OUT) CC=$(CC)
37 @cd neatld && $(MAKE) OUT=$(OUT) CC=$(CC)
38 @cd neatlibc && $(MAKE) OUT=$(OUT) CC=../neatcc/ncc
39 # setting up neatrun/neatcc
40 @cd neatrun && $(MAKE) OUT=$(OUT) NCC=$(BASE)/neatcc/ncc \
41 NLD=$(BASE)/neatld/nld NLC=$(BASE)/neatlibc clean all
42 # compiling the rest
43 @cd neatas && $(MAKE) CC=../neatrun/neatcc OUT=$(OUT)
44 @cd neatdbg && $(MAKE) CC=../neatrun/neatcc OUT=$(OUT)
46 boot:
47 # the previous version
48 @cp neatrun/neatcc _neatcc
49 @cd neatrun && $(MAKE) OUT=$(OUT) CC=../_neatcc \
50 NCC=../_ncc NLD=../_nld NLC=../neatlibc clean all
51 @cp neatcc/ncc _ncc
52 @cp neatld/nld _nld
53 @cp neatrun/neatcc _neatcc
54 # compiling the programs
55 @cd neatcc && $(MAKE) OUT=$(OUT) CC=../_neatcc clean all
56 @cd neatld && $(MAKE) OUT=$(OUT) CC=../_neatcc clean all
57 @cd neatlibc && $(MAKE) OUT=$(OUT) CC=../neatcc/ncc clean all
58 # setting up neatrun/neatcc
59 @cd neatrun && $(MAKE) OUT=$(OUT) CC=../_neatcc NCC=$(BASE)/neatcc/ncc \
60 NLD=$(BASE)/neatld/nld NLC=$(BASE)/neatlibc clean all
61 @rm _ncc _nld _neatcc
62 # compiling the rest
63 @cd neatas && $(MAKE) CC=../neatrun/neatcc OUT=$(OUT) clean all
64 @cd neatdbg && $(MAKE) CC=../neatrun/neatcc OUT=$(OUT) clean all
66 clean:
67 @cd neatcc && $(MAKE) clean
68 @cd neatlibc && $(MAKE) clean
69 @cd neatas && $(MAKE) clean
70 @cd neatld && $(MAKE) clean
71 @cd neatrun && $(MAKE) clean
72 @cd neatdbg && $(MAKE) clean