12aa936c5c630054021a7e83c36cc326591ca20d
[mes.git] / GNUmakefile
1 GUILE:=guile
2 GUILE_FLAGS:=--no-auto-compile -L . -L guile -C . -C guile
3
4 include .config.make
5
6 .config.make:
7         ./configure
8
9 PHONY_TARGETS:= all all-go check clean clean-go default help install
10 .PHONY: $(PHONY_TARGETS)
11
12 default: all
13
14 all:
15         ./build.sh
16
17 cc:
18         build-aux/build-cc.sh
19
20 mes-gcc:
21         build-aux/build-mes-gcc.sh
22
23 mes:
24         build-aux/build-mes.sh
25
26 clean:
27         git clean -dfx
28
29 all-go:
30         build-aux/build-guile.sh
31
32 clean-go:
33         rm -f $(shell find . -name '*.go')
34
35 check:
36         ./check.sh
37
38
39 install:
40         ./install.sh
41
42 .config.make: ./configure
43
44 seed: all-go
45         build-aux/build-mes-gcc.sh
46         cd $(TINYCC_SEED) && MES_PREFIX=$(PWD) ./refresh.sh
47         cd $(MES_SEED) && git reset --hard HEAD
48         MES=$(GUILE) GUILE=$(GUILE) SEED=1 build-aux/build-mes.sh
49         cd $(MES_SEED) && MES_PREFIX=$(PWD) ./refresh.sh
50         MES=$(GUILE) GUILE=$(GUILE) SEED=1 build-aux/build-mes.sh
51
52 define HELP_TOP
53 Usage: make [OPTION]... [TARGET]...
54
55 Targets:
56   all             update everything
57   all-go          update .go files
58   cc              update src/mes.gcc-out
59   mes-gcc         update src/mes.mes-gcc-out
60   mes             update src/mes
61   check           run unit tests
62   clean           run git clean -dfx
63   clean-go        clean .go files
64   install         install in $(PREFIX)
65   seed            update mes-seed in $(MES_SEED)
66 endef
67 export HELP_TOP
68 help:
69         @echo "$$HELP_TOP"
70
71 ifdef PREFIX
72 export PREFIX
73 endif
74
75 ifdef VERSION
76 export VERSION
77 endif
78
79 ifdef CC
80 export CC
81 endif
82
83 ifdef CC32
84 export CC32
85 endif
86
87 ifdef BLOOD_ELF
88 export BLOOD_ELF
89 endif
90
91 ifdef M1
92 export M1
93 endif
94
95 ifdef HEX2
96 export HEX2
97 endif
98
99 ifdef GUILE
100 export GUILE
101 endif
102
103 ifdef GUILE_TOOLS
104 export GUILE_TOOLS
105 endif
106
107 ifdef GUILE_LOAD_PATH
108 export GUILE_LOAD_PATH
109 endif
110
111 ifdef GUILE_LOAD_COMPILED_PATH
112 export GUILE_LOAD_COMPILED_PATH
113 endif
114
115 ifdef CFLAGS
116 export CFLAGS
117 endif
118
119 ifdef C32FLAGS
120 export C32FLAGS
121 endif
122
123 ifdef HEX2FLAGS
124 export HEX2FLAGS
125 endif
126
127 ifdef M1FLAGS
128 export M1FLAGS
129 endif
130
131 ifdef MESCCFLAGS
132 export MESCCFLAGS
133 endif
134
135 ifdef MES_SEED
136 export MES_SEED
137 endif
138
139 ifdef TINYCC_SEED
140 export TINYCC_SEED
141 endif