ide/Makefiles: Updated tarball makefiles to use FORCE_32BIT; Disabled forcing -m32...
[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 = \
19         $(OBJ)ecs.o \
20         $(OBJ)$(MODULE).main$(O)
21
22 SOURCES = \
23         bootstrap/ecs.c \
24         bootstrap/ecs.main.c
25
26 ifndef DEBIAN_PACKAGE
27 CFLAGS =
28 endif
29 OFLAGS =
30
31 # CROSS-PLATFORM MAGIC
32
33 include ../../../crossplatform.mk
34 include ../../../include.mk
35
36 # FLAGS
37
38 CFLAGS += -fmessage-length=0 -O2 -ffast-math $(FORCE_32_BIT) $(FPIC) -w \
39          -DECERE_STATIC
40
41 CECFLAGS =
42
43 ECFLAGS = -nolinenumbers
44
45 OFLAGS += $(FORCE_32_BIT) \
46          -L../ecere/obj/bootstrap.$(PLATFORM) \
47          -L../libec/obj/bootstrap.$(PLATFORM)
48
49 LIBS = -lecereBootstrap -lecBootstrap $(SHAREDLIB) $(EXECUTABLE) $(LINKOPT)
50
51 UPXFLAGS = -9 -q
52
53 # HARD CODED PLATFORM-SPECIFIC OPTIONS
54 ifdef LINUX_TARGET
55 OFLAGS += -Wl,--no-undefined
56 endif
57
58 # PLATFORM-SPECIFIC OPTIONS
59
60 ifdef WINDOWS_TARGET
61
62 else
63 ifdef LINUX_TARGET
64
65 LIBS += -lm -ldl
66
67 else
68 ifdef OSX_TARGET
69
70 LIBS += -lm -ldl
71
72 endif
73 endif
74 endif
75
76 # TARGETS
77
78 all: objdir $(TARGET)
79
80 objdir:
81         $(if $(wildcard $(OBJ)),,$(call mkdirq,$(OBJ)))
82
83 $(TARGET): $(SOURCES) $(RESOURCES) | objdir $(SYMBOLS) $(OBJECTS)
84         $(CC) $(OFLAGS) $(OBJECTS) $(LIBS) -o $(TARGET) $(INSTALLNAME)
85 ifndef NOSTRIP
86         $(STRIP) $(STRIPOPT) $(TARGET)
87 endif
88
89 $(OBJ)ecs.o: bootstrap/ecs.c
90         $(CC) $(CFLAGS) -c bootstrap/ecs.c -o $(OBJ)ecs.o
91
92 $(OBJ)ecs.main.o: bootstrap/ecs.main.c
93         $(CC) $(CFLAGS) -c bootstrap/ecs.main.c -o $(OBJ)ecs.main.o
94
95 clean: objdir
96         $(call rmq,$(TARGET))
97         $(call rmq,$(OBJECTS))
98
99 realclean:
100         $(call rmrq,$(OBJ))
101
102 distclean:
103         $(call rmrq,obj/)