ide/sdk: Fixed forcing bit depth option not invoked for static libraries
[sdk] / compiler / bootstrap / ecs / Makefile
1 .PHONY: all objdir clean realclean distclean
2
3 # CORE VARIABLES
4
5 MODULE := ecs
6 CONFIG := bootstrap
7 ifndef COMPILER
8 COMPILER := default
9 endif
10
11 TARGET_TYPE = executable
12
13 # FLAGS
14
15 ECFLAGS =
16 ifndef DEBIAN_PACKAGE
17 CFLAGS =
18 LDFLAGS =
19 endif
20 PRJ_CFLAGS =
21 CECFLAGS =
22 OFLAGS =
23 LIBS =
24
25 ifdef DEBUG
26 NOSTRIP := y
27 endif
28
29 CONSOLE = -mconsole
30
31 # INCLUDES
32
33 _CF_DIR = ../../../
34
35 include $(_CF_DIR)crossplatform.mk
36 include $(_CF_DIR)default.cf
37
38 # POST-INCLUDES VARIABLES
39
40 OBJ = obj/$(CONFIG).$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/
41
42 RES = 
43
44 TARGET = obj/$(CONFIG).$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ecs$(E)
45
46 OBJECTS = \
47         $(OBJ)ecs.o \
48         $(OBJ)$(MODULE).main$(O)
49
50 SOURCES = \
51         bootstrap/ecs.c \
52         bootstrap/ecs.main.c
53
54 LIBS += $(SHAREDLIB) $(EXECUTABLE) $(LINKOPT)
55
56 ifndef STATIC_LIBRARY_TARGET
57 LIBS += \
58         $(call _L,ecereBootstrap) \
59         $(call _L,ecBootstrap)
60 endif
61
62 PRJ_CFLAGS += \
63          $(if $(DEBUG), -g, -O2 -ffast-math) $(FORCE_32_BIT) $(FPIC) -w \
64                          -DECERE_STATIC
65
66
67 ECFLAGS += \
68          -nolinenumbers
69
70
71 # PLATFORM-SPECIFIC OPTIONS
72
73 ifdef LINUX_TARGET
74
75 ifndef STATIC_LIBRARY_TARGET
76 LIBS += \
77         $(call _L,m) \
78         $(call _L,dl)
79 endif
80
81 endif
82
83
84
85 CECFLAGS += -cpp $(_CPP)
86
87 OFLAGS += $(FORCE_32_BIT)
88
89 ifndef STATIC_LIBRARY_TARGET
90 OFLAGS += \
91          -L../ecere/obj/bootstrap.$(PLATFORM) \
92          -L../libec/obj/bootstrap.$(PLATFORM)
93 endif
94
95 # TARGETS
96
97 all: objdir $(TARGET)
98
99 objdir:
100         $(if $(wildcard $(OBJ)),,$(call mkdirq,$(OBJ)))
101
102 $(TARGET): $(SOURCES) $(RESOURCES) | objdir $(SYMBOLS) $(OBJECTS)
103         $(CC) $(OFLAGS) $(OBJECTS) $(LIBS) -o $(TARGET) $(INSTALLNAME)
104 ifndef NOSTRIP
105         $(STRIP) $(STRIPOPT) $(TARGET)
106 endif
107
108 # OBJECT RULES
109
110 $(OBJ)ecs.o: bootstrap/ecs.c
111         $(CC) $(CFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c bootstrap/ecs.c -o $(OBJ)ecs.o
112
113 $(OBJ)ecs.main.o: bootstrap/ecs.main.c
114         $(CC) $(CFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c bootstrap/ecs.main.c -o $(OBJ)ecs.main.o
115
116 clean: objdir
117         $(call rmq,$(TARGET))
118         $(call rmq,$(OBJECTS))
119
120 realclean: objdir
121         $(call rmrq,$(OBJ))
122
123 distclean: objdir
124         $(call rmrq,obj/)