i18n: (#858) Matching Launchpad translations layout
[sdk] / compiler / libec / Makefile
1 .PHONY: all objdir cleantarget clean realclean distclean fixprecompile silentfixprecompile
2
3 # CORE VARIABLES
4
5 MODULE := ec
6 CONFIG := release
7 ifndef COMPILER
8 COMPILER := default
9 endif
10
11 TARGET_TYPE = sharedlib
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 = -mwindows
30
31 # INCLUDES
32
33 _CF_DIR = ../../
34 USE_BOOTSTRAP := defined
35
36 include $(_CF_DIR)crossplatform.mk
37 include $(_CF_DIR)default.cf
38
39 # PRECOMPILED FILES SUPPORT
40
41 PRE = precompiled/
42 PRECOMPILED_LIST = expression.c grammar.c grammar.bowl type.c
43 PRECOMPILED_SOURCES = $(addprefix $(PRE),$(PRECOMPILED_LIST))
44 PRECOMPILED_OBJECTS = $(addprefix $(OBJ),$(PRECOMPILED_LIST))
45
46 # POST-INCLUDES VARIABLES
47
48 OBJ = obj/$(CONFIG).$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/
49
50 RES = 
51
52 ifdef LINUX_TARGET
53 TARGET = obj/$(CONFIG).$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ec$(SO).0.44
54 SONAME = -Wl,-soname,libec.so.0
55 else
56 TARGET = obj/$(CONFIG).$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ec$(SO)
57 SONAME =
58 endif
59
60
61 _ECSOURCES = \
62         src/ast.ec \
63         src/copy.ec \
64         src/dbpass.ec \
65         src/ecdefs.ec \
66         src/expression.ec \
67         src/firstPass.ec \
68         src/freeAst.ec \
69         src/grammar.ec \
70         src/lexer.ec \
71         src/loadSymbols.ec \
72         src/output.ec \
73         src/pass0.ec \
74         src/pass1.ec \
75         src/pass15.ec \
76         src/pass16.ec \
77         src/pass2.ec \
78         src/pass3.ec \
79         src/shortcuts.ec \
80         src/type.ec
81
82 ECSOURCES = $(call shwspace,$(_ECSOURCES))
83
84 COBJECTS = $(call shwspace,$(addprefix $(OBJ),$(patsubst %.ec,%$(C),$(notdir $(_ECSOURCES)))))
85
86 SYMBOLS = $(call shwspace,$(addprefix $(OBJ),$(patsubst %.ec,%$(S),$(notdir $(_ECSOURCES)))))
87
88 IMPORTS = $(call shwspace,$(addprefix $(OBJ),$(patsubst %.ec,%$(I),$(notdir $(_ECSOURCES)))))
89
90 ECOBJECTS = $(call shwspace,$(addprefix $(OBJ),$(patsubst %.ec,%$(O),$(notdir $(_ECSOURCES)))))
91
92 BOWLS = $(call shwspace,$(addprefix $(OBJ),$(patsubst %.ec,%$(B),$(notdir $(_ECSOURCES)))))
93
94 _OBJECTS = \
95         $(OBJ)bsl.o
96
97 OBJECTS = $(_OBJECTS) $(ECOBJECTS) $(OBJ)$(MODULE).main$(O)
98
99 SOURCES = $(ECSOURCES) \
100         ../bootstrap/bsl.c
101
102 RESOURCES = \
103         locale/ec-es.mo \
104         locale/ec-mr.mo \
105         locale/ec-zh_CN.mo
106
107 LIBS += $(SHAREDLIB) $(EXECUTABLE) $(LINKOPT)
108
109 ifndef STATIC_LIBRARY_TARGET
110 LIBS += \
111         $(call _L,ecere)
112 endif
113
114 PRJ_CFLAGS += \
115          $(if $(DEBUG), -g, -O2 -ffast-math) $(FPIC) -w
116
117 CUSTOM1_PRJ_CFLAGS = \
118                          -I../bootstrap/include \
119          $(PRJ_CFLAGS)
120
121
122 ECFLAGS += \
123          -nolinenumbers
124
125
126
127
128 CECFLAGS += -cpp $(_CPP)
129
130 ifndef STATIC_LIBRARY_TARGET
131 OFLAGS += \
132          -L../../obj/$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/bin \
133          -L../../obj/$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/lib
134 endif
135
136 # TARGETS
137
138 all: objdir $(TARGET)
139
140 objdir:
141         $(if $(wildcard $(OBJ)),,$(call mkdirq,$(OBJ)))
142
143 $(OBJ)$(MODULE).main.ec: $(SYMBOLS) $(COBJECTS)
144         $(ECS) $(ARCH_FLAGS) $(ECSLIBOPT) $(SYMBOLS) $(IMPORTS) -symbols obj/$(CONFIG).$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX) -o $(OBJ)$(MODULE).main.ec
145
146 $(OBJ)$(MODULE).main.c: $(OBJ)$(MODULE).main.ec
147         $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c $(OBJ)$(MODULE).main.ec -o $(OBJ)$(MODULE).main.sym -symbols $(OBJ)
148         $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)$(MODULE).main.ec -o $(OBJ)$(MODULE).main.c -symbols $(OBJ)
149
150 $(SYMBOLS): | objdir
151 $(OBJECTS): | objdir
152 # PRECOMPILED: added PRECOMPILED_OBJECTS prerequisite
153 $(TARGET): $(SOURCES) $(PRECOMPILED_OBJECTS) $(RESOURCES) $(SYMBOLS) $(OBJECTS) | objdir
154 ifndef STATIC_LIBRARY_TARGET
155         $(CC) $(OFLAGS) $(OBJECTS) $(LIBS) -o $(TARGET) $(SONAME) $(INSTALLNAME)
156 ifndef NOSTRIP
157         $(STRIP) $(STRIPOPT) $(TARGET)
158 endif
159         $(EAR) aw$(EARFLAGS) $(TARGET) locale/ec-es.mo locale/ec-mr.mo locale/ec-zh_CN.mo "locale"
160 else
161         $(AR) rcs $(TARGET) $(OBJECTS) $(LIBS)
162 endif
163         $(call cpq,$(TARGET),../../$(SODESTDIR))
164 ifdef LINUX_TARGET
165         ln -sf $(LP)$(MODULE)$(SO).0.44 ../../$(SODESTDIR)$(LP)$(MODULE)$(SO).0
166         ln -sf $(LP)$(MODULE)$(SO).0.44 ../../$(SODESTDIR)$(LP)$(MODULE)$(SO)
167 endif   
168 ifdef WINDOWS_TARGET
169 ifndef CROSS_TARGET
170         $(call cpq,$(TARGET),../../compiler/bootstrap/obj/bin.$(HOST_PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/)
171 endif
172 endif
173
174 # PRECOMPILED FILES SUPPORT
175
176 fixprecompile:
177         @$(call echo,Stamping precompiled files...)
178         $(call touch,$(PRECOMPILED_SOURCES))
179
180 silentfixprecompile:
181         $(call touch,$(PRECOMPILED_SOURCES))
182
183 ifdef PRECOMPILE_RULES
184
185 precompile: $(if $(wildcard $(PRE)expression.c),$(OBJ)expression.c,)
186 $(OBJ)expression.c: $(PRE)expression.c | objdir
187         $(if $(wildcard $(PRE)expression.c),$(call cpq,$(PRE)expression.c,$@),)
188
189 precompile: $(if $(wildcard $(PRE)grammar.c),$(OBJ)grammar.c,)
190 $(OBJ)grammar.c: $(PRE)grammar.c | objdir
191         $(call cpq,$(PRE)grammar.c,$@)
192
193 precompile: $(if $(wildcard $(PRE)grammar.bowl),$(OBJ)grammar.bowl,)
194 $(OBJ)grammar.bowl: $(PRE)grammar.bowl | objdir
195         $(call cpq,$(PRE)grammar.bowl,$@)
196
197 precompile: $(if $(wildcard $(PRE)type.c),$(OBJ)type.c,)
198 $(OBJ)type.c: $(PRE)type.c | objdir
199         $(call cpq,$(PRE)type.c,$@)
200
201 endif
202
203 # SYMBOL RULES
204
205 $(OBJ)ast.sym: src/ast.ec
206         $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c src/ast.ec -o $(OBJ)ast.sym
207
208 $(OBJ)copy.sym: src/copy.ec
209         $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c src/copy.ec -o $(OBJ)copy.sym
210
211 $(OBJ)dbpass.sym: src/dbpass.ec
212         $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c src/dbpass.ec -o $(OBJ)dbpass.sym
213
214 $(OBJ)ecdefs.sym: src/ecdefs.ec
215         $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c src/ecdefs.ec -o $(OBJ)ecdefs.sym
216
217 $(OBJ)expression.sym: src/expression.ec
218         $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c src/expression.ec -o $(OBJ)expression.sym
219
220 $(OBJ)firstPass.sym: src/firstPass.ec
221         $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c src/firstPass.ec -o $(OBJ)firstPass.sym
222
223 $(OBJ)freeAst.sym: src/freeAst.ec
224         $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c src/freeAst.ec -o $(OBJ)freeAst.sym
225
226 $(OBJ)grammar.sym: src/grammar.ec
227         $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c src/grammar.ec -o $(OBJ)grammar.sym
228
229 $(OBJ)lexer.sym: src/lexer.ec
230         $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c src/lexer.ec -o $(OBJ)lexer.sym
231
232 $(OBJ)loadSymbols.sym: src/loadSymbols.ec
233         $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c src/loadSymbols.ec -o $(OBJ)loadSymbols.sym
234
235 $(OBJ)output.sym: src/output.ec
236         $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c src/output.ec -o $(OBJ)output.sym
237
238 $(OBJ)pass0.sym: src/pass0.ec
239         $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c src/pass0.ec -o $(OBJ)pass0.sym
240
241 $(OBJ)pass1.sym: src/pass1.ec
242         $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c src/pass1.ec -o $(OBJ)pass1.sym
243
244 $(OBJ)pass15.sym: src/pass15.ec
245         $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c src/pass15.ec -o $(OBJ)pass15.sym
246
247 $(OBJ)pass16.sym: src/pass16.ec
248         $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c src/pass16.ec -o $(OBJ)pass16.sym
249
250 $(OBJ)pass2.sym: src/pass2.ec
251         $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c src/pass2.ec -o $(OBJ)pass2.sym
252
253 $(OBJ)pass3.sym: src/pass3.ec
254         $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c src/pass3.ec -o $(OBJ)pass3.sym
255
256 $(OBJ)shortcuts.sym: src/shortcuts.ec
257         $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c src/shortcuts.ec -o $(OBJ)shortcuts.sym
258
259 $(OBJ)type.sym: src/type.ec
260         $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c src/type.ec -o $(OBJ)type.sym
261
262 # C OBJECT RULES
263
264 $(OBJ)ast.c: src/ast.ec $(OBJ)ast.sym | $(SYMBOLS)
265         $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c src/ast.ec -o $(OBJ)ast.c -symbols $(OBJ)
266
267 $(OBJ)copy.c: src/copy.ec $(OBJ)copy.sym | $(SYMBOLS)
268         $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c src/copy.ec -o $(OBJ)copy.c -symbols $(OBJ)
269
270 $(OBJ)dbpass.c: src/dbpass.ec $(OBJ)dbpass.sym | $(SYMBOLS)
271         $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c src/dbpass.ec -o $(OBJ)dbpass.c -symbols $(OBJ)
272
273 $(OBJ)ecdefs.c: src/ecdefs.ec $(OBJ)ecdefs.sym | $(SYMBOLS)
274         $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c src/ecdefs.ec -o $(OBJ)ecdefs.c -symbols $(OBJ)
275
276 ifndef PRECOMPILE_RULES
277 $(OBJ)expression.c: src/expression.ec $(if $(wildcard $(PRE)expression.c),,$(OBJ)expression.sym) | $(SYMBOLS)
278         $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c src/expression.ec -o $(OBJ)expression.c -symbols $(OBJ)
279 endif
280
281 $(OBJ)firstPass.c: src/firstPass.ec $(OBJ)firstPass.sym | $(SYMBOLS)
282         $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c src/firstPass.ec -o $(OBJ)firstPass.c -symbols $(OBJ)
283
284 $(OBJ)freeAst.c: src/freeAst.ec $(OBJ)freeAst.sym | $(SYMBOLS)
285         $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c src/freeAst.ec -o $(OBJ)freeAst.c -symbols $(OBJ)
286
287 ifndef PRECOMPILE_RULES
288 $(OBJ)grammar.c: src/grammar.ec $(if $(wildcard $(PRE)grammar.c),,$(OBJ)grammar.sym) | $(SYMBOLS)
289         $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c src/grammar.ec -o $(OBJ)grammar.c -symbols $(OBJ)
290 endif
291
292 $(OBJ)lexer.c: src/lexer.ec $(OBJ)lexer.sym | $(SYMBOLS)
293         $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c src/lexer.ec -o $(OBJ)lexer.c -symbols $(OBJ)
294
295 $(OBJ)loadSymbols.c: src/loadSymbols.ec $(OBJ)loadSymbols.sym | $(SYMBOLS)
296         $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c src/loadSymbols.ec -o $(OBJ)loadSymbols.c -symbols $(OBJ)
297
298 $(OBJ)output.c: src/output.ec $(OBJ)output.sym | $(SYMBOLS)
299         $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c src/output.ec -o $(OBJ)output.c -symbols $(OBJ)
300
301 $(OBJ)pass0.c: src/pass0.ec $(OBJ)pass0.sym | $(SYMBOLS)
302         $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c src/pass0.ec -o $(OBJ)pass0.c -symbols $(OBJ)
303
304 $(OBJ)pass1.c: src/pass1.ec $(OBJ)pass1.sym | $(SYMBOLS)
305         $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c src/pass1.ec -o $(OBJ)pass1.c -symbols $(OBJ)
306
307 $(OBJ)pass15.c: src/pass15.ec $(OBJ)pass15.sym | $(SYMBOLS)
308         $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c src/pass15.ec -o $(OBJ)pass15.c -symbols $(OBJ)
309
310 $(OBJ)pass16.c: src/pass16.ec $(OBJ)pass16.sym | $(SYMBOLS)
311         $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c src/pass16.ec -o $(OBJ)pass16.c -symbols $(OBJ)
312
313 $(OBJ)pass2.c: src/pass2.ec $(OBJ)pass2.sym | $(SYMBOLS)
314         $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c src/pass2.ec -o $(OBJ)pass2.c -symbols $(OBJ)
315
316 $(OBJ)pass3.c: src/pass3.ec $(OBJ)pass3.sym | $(SYMBOLS)
317         $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c src/pass3.ec -o $(OBJ)pass3.c -symbols $(OBJ)
318
319 $(OBJ)shortcuts.c: src/shortcuts.ec $(OBJ)shortcuts.sym | $(SYMBOLS)
320         $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c src/shortcuts.ec -o $(OBJ)shortcuts.c -symbols $(OBJ)
321
322 ifndef PRECOMPILE_RULES
323 $(OBJ)type.c: src/type.ec $(if $(wildcard $(PRE)type.c),,$(OBJ)type.sym) | $(SYMBOLS)
324         $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c src/type.ec -o $(OBJ)type.c -symbols $(OBJ)
325 endif
326
327 # OBJECT RULES
328
329 $(OBJ)ast.o: $(OBJ)ast.c
330         $(CC) $(CFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)ast.c -o $(OBJ)ast.o
331
332 $(OBJ)copy.o: $(OBJ)copy.c
333         $(CC) $(CFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)copy.c -o $(OBJ)copy.o
334
335 $(OBJ)dbpass.o: $(OBJ)dbpass.c
336         $(CC) $(CFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)dbpass.c -o $(OBJ)dbpass.o
337
338 $(OBJ)ecdefs.o: $(OBJ)ecdefs.c
339         $(CC) $(CFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)ecdefs.c -o $(OBJ)ecdefs.o
340
341 # PRECOMPILED: added optional PRECOMPILED_OBJECTS order only prerequisite
342 $(OBJ)expression.o: $(OBJ)expression.c
343         $(CC) $(CFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)expression.c -o $(OBJ)expression.o
344
345 $(OBJ)firstPass.o: $(OBJ)firstPass.c
346         $(CC) $(CFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)firstPass.c -o $(OBJ)firstPass.o
347
348 $(OBJ)freeAst.o: $(OBJ)freeAst.c
349         $(CC) $(CFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)freeAst.c -o $(OBJ)freeAst.o
350
351 # PRECOMPILED: added optional PRECOMPILED_OBJECTS order only prerequisite
352 $(OBJ)grammar.o: $(OBJ)grammar.c
353         $(CC) $(CFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)grammar.c -o $(OBJ)grammar.o
354
355 $(OBJ)lexer.o: $(OBJ)lexer.c
356         $(CC) $(CFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)lexer.c -o $(OBJ)lexer.o
357
358 $(OBJ)loadSymbols.o: $(OBJ)loadSymbols.c
359         $(CC) $(CFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)loadSymbols.c -o $(OBJ)loadSymbols.o
360
361 $(OBJ)output.o: $(OBJ)output.c
362         $(CC) $(CFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)output.c -o $(OBJ)output.o
363
364 $(OBJ)pass0.o: $(OBJ)pass0.c
365         $(CC) $(CFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)pass0.c -o $(OBJ)pass0.o
366
367 $(OBJ)pass1.o: $(OBJ)pass1.c
368         $(CC) $(CFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)pass1.c -o $(OBJ)pass1.o
369
370 $(OBJ)pass15.o: $(OBJ)pass15.c
371         $(CC) $(CFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)pass15.c -o $(OBJ)pass15.o
372
373 $(OBJ)pass16.o: $(OBJ)pass16.c
374         $(CC) $(CFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)pass16.c -o $(OBJ)pass16.o
375
376 $(OBJ)pass2.o: $(OBJ)pass2.c
377         $(CC) $(CFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)pass2.c -o $(OBJ)pass2.o
378
379 $(OBJ)pass3.o: $(OBJ)pass3.c
380         $(CC) $(CFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)pass3.c -o $(OBJ)pass3.o
381
382 $(OBJ)shortcuts.o: $(OBJ)shortcuts.c
383         $(CC) $(CFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)shortcuts.c -o $(OBJ)shortcuts.o
384
385 # PRECOMPILED: added optional PRECOMPILED_OBJECTS order only prerequisite
386 $(OBJ)type.o: $(OBJ)type.c
387         $(CC) $(CFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)type.c -o $(OBJ)type.o
388
389 $(OBJ)bsl.o: ../bootstrap/bsl.c
390         $(CC) $(CFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c ../bootstrap/bsl.c -o $(OBJ)bsl.o
391
392 $(OBJ)$(MODULE).main$(O): $(OBJ)$(MODULE).main.c
393         $(CC) $(CFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)$(MODULE).main.c -o $(OBJ)$(MODULE).main$(O)
394
395 cleantarget: objdir
396         $(call rmq,$(TARGET))
397
398 clean: cleantarget
399         $(call rmq,$(_OBJECTS))
400         $(call rmq,$(OBJ)$(MODULE).main.o $(OBJ)$(MODULE).main.c $(OBJ)$(MODULE).main.ec $(OBJ)$(MODULE).main$(I) $(OBJ)$(MODULE).main$(S))
401         $(call rmq,$(ECOBJECTS))
402         $(call rmq,$(COBJECTS))
403         $(call rmq,$(BOWLS))
404         $(call rmq,$(IMPORTS))
405         $(call rmq,$(SYMBOLS))
406
407 realclean: cleantarget
408         $(call rmrq,$(OBJ))
409
410 distclean: cleantarget
411         $(call rmrq,obj/)