affbbe2ce5d61043d6ce0c4c727f1c05bf5d6628
[sdk] / ecere / Makefile.bootstrap
1 .PHONY: all objdir cleantarget clean realclean distclean
2
3 # CORE VARIABLES
4
5 MODULE := ecere
6 VERSION := 0.44
7 CONFIG := bootstrap
8 ifndef COMPILER
9 COMPILER := default
10 endif
11
12 TARGET_TYPE = staticlib
13
14 # FLAGS
15
16 ECFLAGS =
17 ifndef DEBIAN_PACKAGE
18 CFLAGS =
19 LDFLAGS =
20 endif
21 PRJ_CFLAGS =
22 CECFLAGS =
23 OFLAGS =
24 LIBS =
25
26 ifdef DEBUG
27 NOSTRIP := y
28 endif
29
30 CONSOLE = -mwindows
31
32 # INCLUDES
33
34 _CF_DIR = ../
35 ifndef BS_REGEN_COMP
36 BS_REGEN_COMP := default
37 endif
38
39 include $(_CF_DIR)crossplatform.mk
40 include $(_CF_DIR)$(BS_REGEN_COMP).cf
41
42 # POST-INCLUDES VARIABLES
43
44 OBJ = obj/$(CONFIG).$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/
45
46 RES = res/
47
48 _ECSOURCES = \
49         src/sys/BufferedFile.ec \
50         src/sys/DualPipe.ec \
51         src/sys/File.ec \
52         src/sys/memory.ec \
53         src/sys/System.ec \
54         src/sys/TempFile.ec \
55         src/sys/i18n.ec \
56         src/com/containers/Array.ec \
57         src/com/containers/AVLTree.ec \
58         src/com/containers/BuiltInContainer.ec \
59         src/com/containers/Container.ec \
60         src/com/containers/CustomAVLTree.ec \
61         src/com/containers/LinkList.ec \
62         src/com/containers/List.ec \
63         src/com/containers/Map.ec \
64         src/com/BinaryTree.ec \
65         src/com/BTNode.ec \
66         src/com/dataTypes.ec \
67         src/com/instance.ec \
68         src/com/String.ec \
69         src/com/OldList.ec
70
71 ECSOURCES = $(call shwspace,$(_ECSOURCES))
72
73 _COBJECTS = $(addprefix $(OBJ),$(patsubst %.ec,%$(C),$(notdir $(_ECSOURCES))))
74
75 _SYMBOLS = $(addprefix $(OBJ),$(patsubst %.ec,%$(S),$(notdir $(_ECSOURCES))))
76
77 _IMPORTS = $(addprefix $(OBJ),$(patsubst %.ec,%$(I),$(notdir $(_ECSOURCES))))
78
79 _ECOBJECTS = $(addprefix $(OBJ),$(patsubst %.ec,%$(O),$(notdir $(_ECSOURCES))))
80
81 _BOWLS = $(addprefix $(OBJ),$(patsubst %.ec,%$(B),$(notdir $(_ECSOURCES))))
82
83 COBJECTS = $(call shwspace,$(_COBJECTS))
84
85 SYMBOLS = $(call shwspace,$(_SYMBOLS))
86
87 IMPORTS = $(call shwspace,$(_IMPORTS))
88
89 ECOBJECTS = $(call shwspace,$(_ECOBJECTS))
90
91 BOWLS = $(call shwspace,$(_BOWLS))
92
93 SOURCES = $(ECSOURCES)
94
95 RESOURCES =
96
97 PRJ_CFLAGS += \
98          $(if $(DEBUG),-g) $(FPIC) -Wall -DREPOSITORY_VERSION="\"$(REPOSITORY_VER)\"" \
99                          -DBUILDING_ECERE_COM \
100                          -DECERE_BOOTSTRAP \
101                          -DECERE_STATIC \
102                          -I../compiler/bootstrap/include
103
104 CUSTOM1_PRJ_CFLAGS = \
105                          -DECERE_COM_MODULE \
106          $(PRJ_CFLAGS)
107
108 ECFLAGS += -module $(MODULE)
109 ECFLAGS += \
110          -nolinenumbers -defaultns ecere
111
112 CECFLAGS += -cpp $(_CPP)
113
114 # TARGETS
115
116 all: objdir $(COBJECTS) $(OBJ)$(MODULE).main.c
117
118 objdir:
119         $(if $(wildcard $(OBJ)),,$(call mkdir,$(OBJ)))
120         $(if $(ECERE_SDK_SRC),$(if $(wildcard $(call escspace,$(ECERE_SDK_SRC)/crossplatform.mk)),,@$(call echo,Ecere SDK Source Warning: The value of ECERE_SDK_SRC is pointing to an incorrect ($(ECERE_SDK_SRC)) location.)),)
121         $(if $(ECERE_SDK_SRC),,$(if $(ECP_DEBUG)$(ECC_DEBUG)$(ECS_DEBUG),@$(call echo,ECC Debug Warning: Please define ECERE_SDK_SRC before using ECP_DEBUG, ECC_DEBUG or ECS_DEBUG),))
122
123 $(OBJ)$(MODULE).main.ec: $(SYMBOLS) $(COBJECTS)
124         @$(call rm,$(OBJ)symbols.lst)
125         @$(call touch,$(OBJ)symbols.lst)
126         @$(call echo,$(SYMBOLS)) >> $(OBJ)symbols.lst
127         @$(call echo,$(IMPORTS)) >> $(OBJ)symbols.lst
128         $(ECS) $(ARCH_FLAGS) $(ECSLIBOPT) @$(OBJ)symbols.lst -symbols obj/$(CONFIG).$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX) -o $(call quote_path,$@)
129
130 $(OBJ)$(MODULE).main.c: $(OBJ)$(MODULE).main.ec
131         $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c $(OBJ)$(MODULE).main.ec -o $(OBJ)$(MODULE).main.sym -symbols $(OBJ)
132         $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)$(MODULE).main.ec -o $(call quote_path,$@) -symbols $(OBJ)
133
134 $(SYMBOLS): | objdir
135
136 # SYMBOL RULES
137
138 $(OBJ)BufferedFile.sym: src/sys/BufferedFile.ec
139         $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c $(call quote_path,src/sys/BufferedFile.ec) -o $(call quote_path,$@)
140
141 $(OBJ)DualPipe.sym: src/sys/DualPipe.ec
142         $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c $(call quote_path,src/sys/DualPipe.ec) -o $(call quote_path,$@)
143
144 $(OBJ)File.sym: src/sys/File.ec
145         $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c $(call quote_path,src/sys/File.ec) -o $(call quote_path,$@)
146
147 $(OBJ)memory.sym: src/sys/memory.ec
148         $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c $(call quote_path,src/sys/memory.ec) -o $(call quote_path,$@)
149
150 $(OBJ)System.sym: src/sys/System.ec
151         $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c $(call quote_path,src/sys/System.ec) -o $(call quote_path,$@)
152
153 $(OBJ)TempFile.sym: src/sys/TempFile.ec
154         $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c $(call quote_path,src/sys/TempFile.ec) -o $(call quote_path,$@)
155
156 $(OBJ)i18n.sym: src/sys/i18n.ec
157         $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/sys/i18n.ec) -o $(call quote_path,$@)
158
159 $(OBJ)Array.sym: src/com/containers/Array.ec
160         $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/com/containers/Array.ec) -o $(call quote_path,$@)
161
162 $(OBJ)AVLTree.sym: src/com/containers/AVLTree.ec
163         $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/com/containers/AVLTree.ec) -o $(call quote_path,$@)
164
165 $(OBJ)BuiltInContainer.sym: src/com/containers/BuiltInContainer.ec
166         $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/com/containers/BuiltInContainer.ec) -o $(call quote_path,$@)
167
168 $(OBJ)Container.sym: src/com/containers/Container.ec
169         $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/com/containers/Container.ec) -o $(call quote_path,$@)
170
171 $(OBJ)CustomAVLTree.sym: src/com/containers/CustomAVLTree.ec
172         $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/com/containers/CustomAVLTree.ec) -o $(call quote_path,$@)
173
174 $(OBJ)LinkList.sym: src/com/containers/LinkList.ec
175         $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/com/containers/LinkList.ec) -o $(call quote_path,$@)
176
177 $(OBJ)List.sym: src/com/containers/List.ec
178         $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/com/containers/List.ec) -o $(call quote_path,$@)
179
180 $(OBJ)Map.sym: src/com/containers/Map.ec
181         $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/com/containers/Map.ec) -o $(call quote_path,$@)
182
183 $(OBJ)BinaryTree.sym: src/com/BinaryTree.ec
184         $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/com/BinaryTree.ec) -o $(call quote_path,$@)
185
186 $(OBJ)BTNode.sym: src/com/BTNode.ec
187         $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/com/BTNode.ec) -o $(call quote_path,$@)
188
189 $(OBJ)dataTypes.sym: src/com/dataTypes.ec
190         $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/com/dataTypes.ec) -o $(call quote_path,$@)
191
192 $(OBJ)instance.sym: src/com/instance.ec
193         $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/com/instance.ec) -o $(call quote_path,$@)
194
195 $(OBJ)String.sym: src/com/String.ec
196         $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/com/String.ec) -o $(call quote_path,$@)
197
198 $(OBJ)OldList.sym: src/com/OldList.ec
199         $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/com/OldList.ec) -o $(call quote_path,$@)
200
201 # C OBJECT RULES
202
203 $(OBJ)BufferedFile.c: src/sys/BufferedFile.ec $(OBJ)BufferedFile.sym | $(SYMBOLS)
204         $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/sys/BufferedFile.ec) -o $(call quote_path,$@) -symbols $(OBJ)
205
206 $(OBJ)DualPipe.c: src/sys/DualPipe.ec $(OBJ)DualPipe.sym | $(SYMBOLS)
207         $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/sys/DualPipe.ec) -o $(call quote_path,$@) -symbols $(OBJ)
208
209 $(OBJ)File.c: src/sys/File.ec $(OBJ)File.sym | $(SYMBOLS)
210         $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/sys/File.ec) -o $(call quote_path,$@) -symbols $(OBJ)
211
212 $(OBJ)memory.c: src/sys/memory.ec $(OBJ)memory.sym | $(SYMBOLS)
213         $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/sys/memory.ec) -o $(call quote_path,$@) -symbols $(OBJ)
214
215 $(OBJ)System.c: src/sys/System.ec $(OBJ)System.sym | $(SYMBOLS)
216         $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/sys/System.ec) -o $(call quote_path,$@) -symbols $(OBJ)
217
218 $(OBJ)TempFile.c: src/sys/TempFile.ec $(OBJ)TempFile.sym | $(SYMBOLS)
219         $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/sys/TempFile.ec) -o $(call quote_path,$@) -symbols $(OBJ)
220
221 $(OBJ)i18n.c: src/sys/i18n.ec $(OBJ)i18n.sym | $(SYMBOLS)
222         $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/sys/i18n.ec) -o $(call quote_path,$@) -symbols $(OBJ)
223
224 $(OBJ)Array.c: src/com/containers/Array.ec $(OBJ)Array.sym | $(SYMBOLS)
225         $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/com/containers/Array.ec) -o $(call quote_path,$@) -symbols $(OBJ)
226
227 $(OBJ)AVLTree.c: src/com/containers/AVLTree.ec $(OBJ)AVLTree.sym | $(SYMBOLS)
228         $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/com/containers/AVLTree.ec) -o $(call quote_path,$@) -symbols $(OBJ)
229
230 $(OBJ)BuiltInContainer.c: src/com/containers/BuiltInContainer.ec $(OBJ)BuiltInContainer.sym | $(SYMBOLS)
231         $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/com/containers/BuiltInContainer.ec) -o $(call quote_path,$@) -symbols $(OBJ)
232
233 $(OBJ)Container.c: src/com/containers/Container.ec $(OBJ)Container.sym | $(SYMBOLS)
234         $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/com/containers/Container.ec) -o $(call quote_path,$@) -symbols $(OBJ)
235
236 $(OBJ)CustomAVLTree.c: src/com/containers/CustomAVLTree.ec $(OBJ)CustomAVLTree.sym | $(SYMBOLS)
237         $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/com/containers/CustomAVLTree.ec) -o $(call quote_path,$@) -symbols $(OBJ)
238
239 $(OBJ)LinkList.c: src/com/containers/LinkList.ec $(OBJ)LinkList.sym | $(SYMBOLS)
240         $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/com/containers/LinkList.ec) -o $(call quote_path,$@) -symbols $(OBJ)
241
242 $(OBJ)List.c: src/com/containers/List.ec $(OBJ)List.sym | $(SYMBOLS)
243         $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/com/containers/List.ec) -o $(call quote_path,$@) -symbols $(OBJ)
244
245 $(OBJ)Map.c: src/com/containers/Map.ec $(OBJ)Map.sym | $(SYMBOLS)
246         $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/com/containers/Map.ec) -o $(call quote_path,$@) -symbols $(OBJ)
247
248 $(OBJ)BinaryTree.c: src/com/BinaryTree.ec $(OBJ)BinaryTree.sym | $(SYMBOLS)
249         $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/com/BinaryTree.ec) -o $(call quote_path,$@) -symbols $(OBJ)
250
251 $(OBJ)BTNode.c: src/com/BTNode.ec $(OBJ)BTNode.sym | $(SYMBOLS)
252         $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/com/BTNode.ec) -o $(call quote_path,$@) -symbols $(OBJ)
253
254 $(OBJ)dataTypes.c: src/com/dataTypes.ec $(OBJ)dataTypes.sym | $(SYMBOLS)
255         $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/com/dataTypes.ec) -o $(call quote_path,$@) -symbols $(OBJ)
256
257 $(OBJ)instance.c: src/com/instance.ec $(OBJ)instance.sym | $(SYMBOLS)
258         $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/com/instance.ec) -o $(call quote_path,$@) -symbols $(OBJ)
259
260 $(OBJ)String.c: src/com/String.ec $(OBJ)String.sym | $(SYMBOLS)
261         $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/com/String.ec) -o $(call quote_path,$@) -symbols $(OBJ)
262
263 $(OBJ)OldList.c: src/com/OldList.ec $(OBJ)OldList.sym | $(SYMBOLS)
264         $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/com/OldList.ec) -o $(call quote_path,$@) -symbols $(OBJ)
265
266 cleantarget: objdir
267         $(call rm,$(OBJ)$(MODULE).main.c $(OBJ)$(MODULE).main.ec $(OBJ)$(MODULE).main$(I) $(OBJ)$(MODULE).main$(S))
268         $(call rm,$(OBJ)symbols.lst)
269         $(call rm,$(OBJ)objects.lst)
270
271 clean: cleantarget
272         $(call rm,$(_ECOBJECTS))
273         $(call rm,$(_COBJECTS))
274         $(call rm,$(_BOWLS))
275         $(call rm,$(_IMPORTS))
276         $(call rm,$(_SYMBOLS))
277
278 realclean: cleantarget
279         $(call rmr,$(OBJ))
280
281 distclean: cleantarget
282         $(call rmr,obj/)
283
284 Makefile.bootstrap: ;
285 $(_CF_DIR)crossplatform.mk: ;
286 $(_CF_DIR)$(TARGET_PLATFORM)-$(COMPILER).cf: ;