Makefiles: Force building 32 or 64 bit by setting ARCH=32 or 64
[sdk] / compiler / Makefile
1 .PHONY: all bootstrap cleantarget clean realclean distclean libec ecp ecc ecs
2 .SILENT:
3
4 CONFIG := release
5 PRECOMPILED_SOURCES = libec/precompiled/expression.c libec/precompiled/grammar.c libec/precompiled/grammar.bowl libec/precompiled/type.c
6
7 include ../crossplatform.mk
8 include ../default.cf
9
10 all: ecp ecc ecs
11
12 OBJ = libec/obj/$(CONFIG).$(TARGET_PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/
13
14 libec:
15         @$(call echo,Building 2nd stage libec...)
16 ifeq "$(wildcard libec/precompiled)" "libec/precompiled"
17 ifneq "$(wildcard $(OBJ))" "$(OBJ)"
18         $(call mkdirq,$(OBJ))
19 endif
20         $(call cpq,$(PRECOMPILED_SOURCES),$(OBJ))
21 endif
22         cd libec && $(MAKE)
23
24 ecp: libec
25         @$(call echo,Building 2nd stage ecp...)
26         cd ecp && $(MAKE)
27
28 ecc: libec
29         @$(call echo,Building 2nd stage ecc...)
30         cd ecc && $(MAKE)
31
32 ecs: libec
33         @$(call echo,Building 2nd stage ecs...)
34         cd ecs && $(MAKE)
35
36 bootstrap:
37         @$(call echo,Bootstrapping eC compiling tools...)
38         cd bootstrap && $(MAKE)
39
40 cleantarget:
41         cd bootstrap && $(MAKE) cleantarget
42         cd libec && $(MAKE) cleantarget
43         cd ecp && $(MAKE) cleantarget
44         cd ecc && $(MAKE) cleantarget
45         cd ecs && $(MAKE) cleantarget
46
47 clean:
48         cd bootstrap && $(MAKE) clean
49         cd libec && $(MAKE) clean
50         cd ecp && $(MAKE) clean
51         cd ecc && $(MAKE) clean
52         cd ecs && $(MAKE) clean
53
54 realclean:
55         cd bootstrap && $(MAKE) realclean
56         cd libec && $(MAKE) realclean
57         cd ecp && $(MAKE) realclean
58         cd ecc && $(MAKE) realclean
59         cd ecs && $(MAKE) realclean
60
61 distclean:
62         cd bootstrap && $(MAKE) distclean
63         cd libec && $(MAKE) distclean
64         cd ecp && $(MAKE) distclean
65         cd ecc && $(MAKE) distclean
66         cd ecs && $(MAKE) distclean