sdk/Build System: Improved the bootstrap Makefiles
[sdk] / compiler / bootstrap / Makefile
1 .PHONY: bindir ecere libec ecp ecc ecs clean realclean distclean
2 .SILENT:
3
4 OBJ = obj/bin.$(PLATFORM)/
5
6 include ../../crossplatform.mk
7 include ../../default.cf
8
9 all: bindir ecere libec ecp ecc ecs
10         $(call cpq,ecp/obj/bootstrap.$(PLATFORM)/ecp$(E) ecc/obj/bootstrap.$(PLATFORM)/ecc$(E) ecs/obj/bootstrap.$(PLATFORM)/ecs$(E),$(OBJ))
11         @$(call echo,All done!)
12
13 bindir:
14         $(if $(wildcard $(OBJ)),,$(call mkdirq,$(OBJ)))
15
16 clean: bindir
17         cd ecere && $(MAKE) clean
18         cd libec && $(MAKE) clean
19         cd ecp && $(MAKE) clean
20         cd ecc && $(MAKE) clean
21         cd ecs && $(MAKE) clean
22         $(call rmq,$(OBJ)ecp$(E) $(OBJ)ecc$(E) $(OBJ)ecs$(E))
23 ifdef WINDOWS_TARGET
24         $(call rmq,$(OBJ)$(LP)ecere$(SO) $(OBJ)$(LP)ec$(SO))
25 endif
26
27 realclean:
28         $(call rmrq,$(OBJ))
29         cd ecere && $(MAKE) realclean
30         cd libec && $(MAKE) realclean
31         cd ecp && $(MAKE) realclean
32         cd ecc && $(MAKE) realclean
33         cd ecs && $(MAKE) realclean
34
35 distclean:
36         $(call rmrq,obj/)
37         cd ecere && $(MAKE) distclean
38         cd libec && $(MAKE) distclean
39         cd ecp && $(MAKE) distclean
40         cd ecc && $(MAKE) distclean
41         cd ecs && $(MAKE) distclean
42
43 ecere:
44         @$(call echo,Building ecere...)
45         cd ecere && $(MAKE)
46         
47 libec:
48         @$(call echo,Building ec...)
49         cd libec && $(MAKE)
50
51 ecp: ecere libec
52         @$(call echo,Building ecp...)
53         cd ecp && $(MAKE)
54
55 ecc: ecere libec
56         @$(call echo,Building ecc...)
57         cd ecc && $(MAKE)
58
59 ecs: ecere libec
60         @$(call echo,Building ecs...)
61         cd ecs && $(MAKE)