tarball; synced all makefiles with generated makefiles that are now using PRJ_CFLAGS.
[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 CECFLAGS =
21 OFLAGS =
22 LIBS =
23
24 ifdef DEBUG
25 NOSTRIP := y
26 endif
27
28 CONSOLE = -mconsole
29
30 # INCLUDES
31
32 _CF_DIR = ../../../
33
34 include $(_CF_DIR)crossplatform.mk
35 include $(_CF_DIR)default.cf
36
37 # POST-INCLUDES VARIABLES
38
39 OBJ = obj/$(CONFIG).$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/
40
41 RES = 
42
43 TARGET = obj/$(CONFIG).$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ecs$(E)
44
45 OBJECTS = \
46         $(OBJ)ecs.o \
47         $(OBJ)$(MODULE).main$(O)
48
49 SOURCES = \
50         bootstrap/ecs.c \
51         bootstrap/ecs.main.c
52
53 LIBS += $(SHAREDLIB) $(EXECUTABLE) $(LINKOPT)
54
55 ifndef STATIC_LIBRARY_TARGET
56 LIBS += \
57         $(call _L,ecereBootstrap) \
58         $(call _L,ecBootstrap)
59 endif
60
61 CFLAGS += \
62          $(if $(DEBUG), -g, -O2 -ffast-math) $(FORCE_32_BIT) $(FPIC) -w \
63                          -DECERE_STATIC
64
65
66 ECFLAGS += \
67          -nolinenumbers
68
69
70 # PLATFORM-SPECIFIC OPTIONS
71
72 ifdef LINUX_TARGET
73
74 ifndef STATIC_LIBRARY_TARGET
75 LIBS += \
76         $(call _L,m) \
77         $(call _L,dl)
78 endif
79
80 endif
81
82
83
84 CECFLAGS += -cpp $(_CPP)
85
86 ifndef STATIC_LIBRARY_TARGET
87 OFLAGS += $(FORCE_32_BIT) \
88          -L../ecere/obj/bootstrap.$(PLATFORM) \
89          -L../libec/obj/bootstrap.$(PLATFORM)
90 endif
91
92 # TARGETS
93
94 all: objdir $(TARGET)
95
96 objdir:
97         $(if $(wildcard $(OBJ)),,$(call mkdirq,$(OBJ)))
98
99 $(TARGET): $(SOURCES) $(RESOURCES) | objdir $(SYMBOLS) $(OBJECTS)
100         $(CC) $(OFLAGS) $(OBJECTS) $(LIBS) -o $(TARGET) $(INSTALLNAME)
101 ifndef NOSTRIP
102         $(STRIP) $(STRIPOPT) $(TARGET)
103 endif
104
105 # OBJECT RULES
106
107 $(OBJ)ecs.o: bootstrap/ecs.c
108         $(CC) $(CFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c bootstrap/ecs.c -o $(OBJ)ecs.o
109
110 $(OBJ)ecs.main.o: bootstrap/ecs.main.c
111         $(CC) $(CFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c bootstrap/ecs.main.c -o $(OBJ)ecs.main.o
112
113 clean: objdir
114         $(call rmq,$(TARGET))
115         $(call rmq,$(OBJECTS))
116
117 realclean: clean
118         $(call rmrq,$(OBJ))
119
120 distclean:
121         $(call rmrq,obj/)