build system / makefiles / ide: added support for ccache and distcc
[sdk] / compiler / bootstrap / ecp / Makefile
1 .PHONY: all objdir clean realclean distclean
2
3 # CONTENT
4
5 MODULE := ecp
6 CONFIG := bootstrap
7 COMPILER := default
8 TARGET_TYPE = executable
9
10 OBJ = obj/$(CONFIG).$(PLATFORM)/
11
12 RES = 
13
14 CONSOLE = 
15
16 TARGET = obj/$(CONFIG).$(PLATFORM)/ecp$(E)
17
18 OBJECTS = $(OBJ)ecp.o $(OBJ)$(MODULE).main$(O)
19
20 SOURCES = bootstrap/ecp.c bootstrap/ecp.main.c
21
22 # CROSS-PLATFORM MAGIC
23
24 include ../../../include.mk
25
26 # FLAGS
27
28 CFLAGS = -fmessage-length=0 -O2 -ffast-math -m32 $(FPIC) -w \
29          -DECERE_STATIC
30
31 CECFLAGS =
32
33 ECFLAGS = -nolinenumbers
34
35 OFLAGS = -m32 \
36          -L../ecere/obj/bootstrap.$(PLATFORM) \
37          -L../libec/obj/bootstrap.$(PLATFORM)
38
39 LIBS = -lecereBootstrap -lecBootstrap $(SHAREDLIB) $(EXECUTABLE) $(LINKOPT)
40
41 UPXFLAGS = -9 -q
42
43 # HARD CODED PLATFORM-SPECIFIC OPTIONS
44 ifdef LINUX
45 OFLAGS += -Wl,--no-undefined
46 endif
47
48 # PLATFORM-SPECIFIC OPTIONS
49
50 ifdef WINDOWS
51
52 LIBS += -Wl,--enable-stdcall-fixup
53
54 else
55 ifdef LINUX
56
57 LIBS += -lm -ldl
58
59 else
60 ifdef OSX
61
62 LIBS += -lm -ldl
63
64 endif
65 endif
66 endif
67 # TARGETS
68
69 all: objdir $(TARGET)
70
71 objdir:
72         $(if $(wildcard $(OBJ)),,$(call mkdirq,$(OBJ)))
73
74 $(TARGET): $(SOURCES) $(RESOURCES) | objdir $(SYMBOLS) $(OBJECTS)
75         $(CC) $(OFLAGS) $(OBJECTS) $(LIBS) -o $(TARGET) $(INSTALLNAME)
76         $(STRIP) $(STRIPOPT) $(TARGET)
77
78 $(OBJ)ecp.o: bootstrap/ecp.c
79         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/ecp.c -o $(OBJ)ecp.o
80
81 $(OBJ)ecp.main.o: bootstrap/ecp.main.c
82         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/ecp.main.c -o $(OBJ)ecp.main.o
83
84 clean: objdir
85         $(call rmq,$(TARGET))
86         $(call rmq,$(OBJECTS))
87
88 realclean:
89         $(call rmrq,$(OBJ))
90
91 distclean:
92         $(call rmrq,obj/)