1 .PHONY: all objdir cleantarget clean realclean distclean
12 TARGET_TYPE = staticlib
36 BS_REGEN_COMP := default
39 include $(_CF_DIR)crossplatform.mk
40 include $(_CF_DIR)$(BS_REGEN_COMP).cf
42 # POST-INCLUDES VARIABLES
44 OBJ = obj/$(CONFIG).$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/
67 ECSOURCES = $(call shwspace,$(_ECSOURCES))
69 _COBJECTS = $(addprefix $(OBJ),$(patsubst %.ec,%$(C),$(notdir $(_ECSOURCES))))
71 _SYMBOLS = $(addprefix $(OBJ),$(patsubst %.ec,%$(S),$(notdir $(_ECSOURCES))))
73 _IMPORTS = $(addprefix $(OBJ),$(patsubst %.ec,%$(I),$(notdir $(_ECSOURCES))))
75 _ECOBJECTS = $(addprefix $(OBJ),$(patsubst %.ec,%$(O),$(notdir $(_ECSOURCES))))
77 _BOWLS = $(addprefix $(OBJ),$(patsubst %.ec,%$(B),$(notdir $(_ECSOURCES))))
79 COBJECTS = $(call shwspace,$(_COBJECTS))
81 SYMBOLS = $(call shwspace,$(_SYMBOLS))
83 IMPORTS = $(call shwspace,$(_IMPORTS))
85 ECOBJECTS = $(call shwspace,$(_ECOBJECTS))
87 BOWLS = $(call shwspace,$(_BOWLS))
89 SOURCES = $(ECSOURCES) \
93 $(if $(DEBUG), -g, -O2 -ffast-math) $(FPIC) -Wall -DREPOSITORY_VERSION="\"$(REPOSITORY_VER)\"" \
97 CUSTOM1_PRJ_CFLAGS = \
98 -I../bootstrap/include \
101 ECFLAGS += -module $(MODULE)
105 CECFLAGS += -cpp $(_CPP)
109 all: objdir $(COBJECTS) $(OBJ)$(MODULE).main.c
112 $(if $(wildcard $(OBJ)),,$(call mkdir,$(OBJ)))
113 $(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.)),)
114 $(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),))
116 $(OBJ)$(MODULE).main.ec: $(SYMBOLS) $(COBJECTS)
117 @$(call rm,$(OBJ)symbols.lst)
118 @$(call touch,$(OBJ)symbols.lst)
119 @$(call echo,$(SYMBOLS)) >> $(OBJ)symbols.lst
120 @$(call echo,$(IMPORTS)) >> $(OBJ)symbols.lst
121 $(ECS) $(ARCH_FLAGS) $(ECSLIBOPT) @$(OBJ)symbols.lst -symbols obj/$(CONFIG).$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX) -o $(call quote_path,$@)
123 $(OBJ)$(MODULE).main.c: $(OBJ)$(MODULE).main.ec
124 $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c $(OBJ)$(MODULE).main.ec -o $(OBJ)$(MODULE).main.sym -symbols $(OBJ)
125 $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)$(MODULE).main.ec -o $(call quote_path,$@) -symbols $(OBJ)
131 $(OBJ)ast.sym: src/ast.ec
132 $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/ast.ec) -o $(call quote_path,$@)
134 $(OBJ)copy.sym: src/copy.ec
135 $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/copy.ec) -o $(call quote_path,$@)
137 $(OBJ)dbpass.sym: src/dbpass.ec
138 $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/dbpass.ec) -o $(call quote_path,$@)
140 $(OBJ)ecdefs.sym: src/ecdefs.ec
141 $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/ecdefs.ec) -o $(call quote_path,$@)
143 $(OBJ)expression.sym: src/expression.ec
144 $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/expression.ec) -o $(call quote_path,$@)
146 $(OBJ)firstPass.sym: src/firstPass.ec
147 $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/firstPass.ec) -o $(call quote_path,$@)
149 $(OBJ)freeAst.sym: src/freeAst.ec
150 $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/freeAst.ec) -o $(call quote_path,$@)
152 $(OBJ)grammar.sym: src/grammar.ec
153 $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/grammar.ec) -o $(call quote_path,$@)
155 $(OBJ)lexer.sym: src/lexer.ec
156 $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/lexer.ec) -o $(call quote_path,$@)
158 $(OBJ)loadSymbols.sym: src/loadSymbols.ec
159 $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/loadSymbols.ec) -o $(call quote_path,$@)
161 $(OBJ)output.sym: src/output.ec
162 $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/output.ec) -o $(call quote_path,$@)
164 $(OBJ)pass0.sym: src/pass0.ec
165 $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/pass0.ec) -o $(call quote_path,$@)
167 $(OBJ)pass1.sym: src/pass1.ec
168 $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/pass1.ec) -o $(call quote_path,$@)
170 $(OBJ)pass15.sym: src/pass15.ec
171 $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/pass15.ec) -o $(call quote_path,$@)
173 $(OBJ)pass16.sym: src/pass16.ec
174 $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/pass16.ec) -o $(call quote_path,$@)
176 $(OBJ)pass2.sym: src/pass2.ec
177 $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/pass2.ec) -o $(call quote_path,$@)
179 $(OBJ)pass3.sym: src/pass3.ec
180 $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/pass3.ec) -o $(call quote_path,$@)
182 $(OBJ)shortcuts.sym: src/shortcuts.ec
183 $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/shortcuts.ec) -o $(call quote_path,$@)
185 $(OBJ)type.sym: src/type.ec
186 $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/type.ec) -o $(call quote_path,$@)
190 $(OBJ)ast.c: src/ast.ec $(OBJ)ast.sym | $(SYMBOLS)
191 $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/ast.ec) -o $(call quote_path,$@) -symbols $(OBJ)
193 $(OBJ)copy.c: src/copy.ec $(OBJ)copy.sym | $(SYMBOLS)
194 $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/copy.ec) -o $(call quote_path,$@) -symbols $(OBJ)
196 $(OBJ)dbpass.c: src/dbpass.ec $(OBJ)dbpass.sym | $(SYMBOLS)
197 $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/dbpass.ec) -o $(call quote_path,$@) -symbols $(OBJ)
199 $(OBJ)ecdefs.c: src/ecdefs.ec $(OBJ)ecdefs.sym | $(SYMBOLS)
200 $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/ecdefs.ec) -o $(call quote_path,$@) -symbols $(OBJ)
202 $(OBJ)expression.c: src/expression.ec $(OBJ)expression.sym | $(SYMBOLS)
203 $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/expression.ec) -o $(call quote_path,$@) -symbols $(OBJ)
205 $(OBJ)firstPass.c: src/firstPass.ec $(OBJ)firstPass.sym | $(SYMBOLS)
206 $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/firstPass.ec) -o $(call quote_path,$@) -symbols $(OBJ)
208 $(OBJ)freeAst.c: src/freeAst.ec $(OBJ)freeAst.sym | $(SYMBOLS)
209 $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/freeAst.ec) -o $(call quote_path,$@) -symbols $(OBJ)
211 $(OBJ)grammar.c: src/grammar.ec $(OBJ)grammar.sym | $(SYMBOLS)
212 $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/grammar.ec) -o $(call quote_path,$@) -symbols $(OBJ)
214 $(OBJ)lexer.c: src/lexer.ec $(OBJ)lexer.sym | $(SYMBOLS)
215 $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/lexer.ec) -o $(call quote_path,$@) -symbols $(OBJ)
217 $(OBJ)loadSymbols.c: src/loadSymbols.ec $(OBJ)loadSymbols.sym | $(SYMBOLS)
218 $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/loadSymbols.ec) -o $(call quote_path,$@) -symbols $(OBJ)
220 $(OBJ)output.c: src/output.ec $(OBJ)output.sym | $(SYMBOLS)
221 $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/output.ec) -o $(call quote_path,$@) -symbols $(OBJ)
223 $(OBJ)pass0.c: src/pass0.ec $(OBJ)pass0.sym | $(SYMBOLS)
224 $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/pass0.ec) -o $(call quote_path,$@) -symbols $(OBJ)
226 $(OBJ)pass1.c: src/pass1.ec $(OBJ)pass1.sym | $(SYMBOLS)
227 $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/pass1.ec) -o $(call quote_path,$@) -symbols $(OBJ)
229 $(OBJ)pass15.c: src/pass15.ec $(OBJ)pass15.sym | $(SYMBOLS)
230 $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/pass15.ec) -o $(call quote_path,$@) -symbols $(OBJ)
232 $(OBJ)pass16.c: src/pass16.ec $(OBJ)pass16.sym | $(SYMBOLS)
233 $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/pass16.ec) -o $(call quote_path,$@) -symbols $(OBJ)
235 $(OBJ)pass2.c: src/pass2.ec $(OBJ)pass2.sym | $(SYMBOLS)
236 $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/pass2.ec) -o $(call quote_path,$@) -symbols $(OBJ)
238 $(OBJ)pass3.c: src/pass3.ec $(OBJ)pass3.sym | $(SYMBOLS)
239 $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/pass3.ec) -o $(call quote_path,$@) -symbols $(OBJ)
241 $(OBJ)shortcuts.c: src/shortcuts.ec $(OBJ)shortcuts.sym | $(SYMBOLS)
242 $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/shortcuts.ec) -o $(call quote_path,$@) -symbols $(OBJ)
244 $(OBJ)type.c: src/type.ec $(OBJ)type.sym | $(SYMBOLS)
245 $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/type.ec) -o $(call quote_path,$@) -symbols $(OBJ)
248 $(call rm,$(OBJ)$(MODULE).main.c $(OBJ)$(MODULE).main.ec $(OBJ)$(MODULE).main$(I) $(OBJ)$(MODULE).main$(S))
249 $(call rm,$(OBJ)symbols.lst)
250 $(call rm,$(OBJ)objects.lst)
253 $(call rm,$(_ECOBJECTS))
254 $(call rm,$(_COBJECTS))
256 $(call rm,$(_IMPORTS))
257 $(call rm,$(_SYMBOLS))
259 realclean: cleantarget
263 $(_MAKE) -f $(_CF_DIR)Cleanfile distclean distclean_all_subdirs
265 Makefile.bootstrap: ;
266 $(_CF_DIR)crossplatform.mk: ;
267 $(_CF_DIR)$(TARGET_PLATFORM)-$(COMPILER).cf: ;