1 .PHONY: all objdir cleantarget clean realclean distclean
12 TARGET_TYPE = executable
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)/
51 ECSOURCES = $(call shwspace,$(_ECSOURCES))
53 _COBJECTS = $(addprefix $(OBJ),$(patsubst %.ec,%$(C),$(notdir $(_ECSOURCES))))
55 _SYMBOLS = $(addprefix $(OBJ),$(patsubst %.ec,%$(S),$(notdir $(_ECSOURCES))))
57 _IMPORTS = $(addprefix $(OBJ),$(patsubst %.ec,%$(I),$(notdir $(_ECSOURCES))))
59 _ECOBJECTS = $(addprefix $(OBJ),$(patsubst %.ec,%$(O),$(notdir $(_ECSOURCES))))
61 _BOWLS = $(addprefix $(OBJ),$(patsubst %.ec,%$(B),$(notdir $(_ECSOURCES))))
63 COBJECTS = $(call shwspace,$(_COBJECTS))
65 SYMBOLS = $(call shwspace,$(_SYMBOLS))
67 IMPORTS = $(call shwspace,$(_IMPORTS))
69 ECOBJECTS = $(call shwspace,$(_ECOBJECTS))
71 BOWLS = $(call shwspace,$(_BOWLS))
73 SOURCES = $(ECSOURCES)
76 $(if $(DEBUG), -g, -O2 -ffast-math) $(FPIC) -Wall -DREPOSITORY_VERSION="\"$(REPOSITORY_VER)\"" \
80 ECFLAGS += -module $(MODULE)
84 CECFLAGS += -cpp $(_CPP)
88 all: objdir $(COBJECTS) $(OBJ)$(MODULE).main.c
91 $(if $(wildcard $(OBJ)),,$(call mkdir,$(OBJ)))
92 $(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.)),)
93 $(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),))
95 $(OBJ)$(MODULE).main.ec: $(SYMBOLS) $(COBJECTS)
96 @$(call rm,$(OBJ)symbols.lst)
97 @$(call touch,$(OBJ)symbols.lst)
98 $(call addtolistfile,$(SYMBOLS),$(OBJ)symbols.lst)
99 $(call addtolistfile,$(IMPORTS),$(OBJ)symbols.lst)
100 $(ECS) -console $(ARCH_FLAGS) $(ECSLIBOPT) @$(OBJ)symbols.lst -symbols obj/$(CONFIG).$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX) -o $(call quote_path,$@)
102 $(OBJ)$(MODULE).main.c: $(OBJ)$(MODULE).main.ec
103 $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c $(OBJ)$(MODULE).main.ec -o $(OBJ)$(MODULE).main.sym -symbols $(OBJ)
104 $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)$(MODULE).main.ec -o $(call quote_path,$@) -symbols $(OBJ)
110 $(OBJ)ecs.sym: ecs.ec
111 $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c $(call quote_path,ecs.ec) -o $(call quote_path,$@)
115 $(OBJ)ecs.c: ecs.ec $(OBJ)ecs.sym | $(SYMBOLS)
116 $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,ecs.ec) -o $(call quote_path,$@) -symbols $(OBJ)
119 $(call rm,$(OBJ)$(MODULE).main.c $(OBJ)$(MODULE).main.ec $(OBJ)$(MODULE).main$(I) $(OBJ)$(MODULE).main$(S))
120 $(call rm,$(OBJ)symbols.lst)
121 $(call rm,$(OBJ)objects.lst)
124 $(call rm,$(_ECOBJECTS))
125 $(call rm,$(_COBJECTS))
127 $(call rm,$(_IMPORTS))
128 $(call rm,$(_SYMBOLS))
130 realclean: cleantarget
134 $(_MAKE) -f $(_CF_DIR)Cleanfile distclean distclean_all_subdirs
136 Makefile.bootstrap: ;
137 $(_CF_DIR)crossplatform.mk: ;
138 $(_CF_DIR)$(TARGET_PLATFORM)-$(COMPILER).cf: ;