d5ce9377b9127a1b945d6dec444ef2bba6d3e5ca
[sdk] / compiler / bootstrap / ecs / Makefile
1 .PHONY: all objdir clean realclean distclean
2
3 # CONTENT
4
5 MODULE := ecs
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)/ecs$(E)
17
18 OBJECTS = $(OBJ)ecs.o $(OBJ)$(MODULE).main$(O)
19
20 SOURCES = bootstrap/ecs.c bootstrap/ecs.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
68 # TARGETS
69
70 all: objdir $(TARGET)
71
72 objdir:
73         $(if $(wildcard $(OBJ)),,$(call mkdirq,$(OBJ)))
74
75 $(TARGET): $(SOURCES) $(RESOURCES) | objdir $(SYMBOLS) $(OBJECTS)
76         $(CC) $(OFLAGS) $(OBJECTS) $(LIBS) -o $(TARGET) $(INSTALLNAME)
77         $(STRIP) $(STRIPOPT) $(TARGET)
78
79 $(OBJ)ecs.o: bootstrap/ecs.c
80         $(CC) $(CFLAGS) -c bootstrap/ecs.c -o $(OBJ)ecs.o
81
82 $(OBJ)ecs.main.o: bootstrap/ecs.main.c
83         $(CC) $(CFLAGS) -c bootstrap/ecs.main.c -o $(OBJ)ecs.main.o
84
85 clean: objdir
86         $(call rmq,$(TARGET))
87         $(call rmq,$(OBJECTS))
88
89 realclean:
90         $(call rmrq,$(OBJ))
91
92 distclean:
93         $(call rmrq,obj/)