1 .PHONY: all objdir cleantarget clean realclean distclean
12 TARGET_TYPE = executable
36 include $(_CF_DIR)crossplatform.mk
37 include $(_CF_DIR)$(TARGET_PLATFORM)-$(COMPILER).cf
39 # POST-INCLUDES VARIABLES
41 OBJ = obj/$(CONFIG).$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/
48 ECSOURCES = $(call shwspace,$(_ECSOURCES))
50 _COBJECTS = $(addprefix $(OBJ),$(patsubst %.ec,%$(C),$(notdir $(_ECSOURCES))))
52 _SYMBOLS = $(addprefix $(OBJ),$(patsubst %.ec,%$(S),$(notdir $(_ECSOURCES))))
54 _IMPORTS = $(addprefix $(OBJ),$(patsubst %.ec,%$(I),$(notdir $(_ECSOURCES))))
56 _ECOBJECTS = $(addprefix $(OBJ),$(patsubst %.ec,%$(O),$(notdir $(_ECSOURCES))))
58 _BOWLS = $(addprefix $(OBJ),$(patsubst %.ec,%$(B),$(notdir $(_ECSOURCES))))
60 COBJECTS = $(call shwspace,$(_COBJECTS))
62 SYMBOLS = $(call shwspace,$(_SYMBOLS))
64 IMPORTS = $(call shwspace,$(_IMPORTS))
66 ECOBJECTS = $(call shwspace,$(_ECOBJECTS))
68 BOWLS = $(call shwspace,$(_BOWLS))
70 SOURCES = $(ECSOURCES)
73 $(if $(DEBUG), -g, -O2 -ffast-math) $(FPIC) -Wall -DREPOSITORY_VERSION="\"$(REPOSITORY_VER)\"" \
77 ECFLAGS += -module $(MODULE)
81 CECFLAGS += -cpp $(_CPP)
85 all: objdir $(COBJECTS) $(OBJ)$(MODULE).main.c
88 $(if $(wildcard $(OBJ)),,$(call mkdirq,$(OBJ)))
89 $(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.)),)
90 $(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),))
92 $(OBJ)$(MODULE).main.ec: $(SYMBOLS) $(COBJECTS)
93 @$(call rmq,$(OBJ)symbols.lst)
94 @$(call touch,$(OBJ)symbols.lst)
95 @$(call echo,$(SYMBOLS)) >> $(OBJ)symbols.lst
96 @$(call echo,$(IMPORTS)) >> $(OBJ)symbols.lst
97 $(ECS) -console $(ARCH_FLAGS) $(ECSLIBOPT) @$(OBJ)symbols.lst -symbols obj/$(CONFIG).$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX) -o $(call quote_path,$@)
99 $(OBJ)$(MODULE).main.c: $(OBJ)$(MODULE).main.ec
100 $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c $(OBJ)$(MODULE).main.ec -o $(OBJ)$(MODULE).main.sym -symbols $(OBJ)
101 $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)$(MODULE).main.ec -o $(call quote_path,$@) -symbols $(OBJ)
107 $(OBJ)ecs.sym: ecs.ec
108 $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c $(call quote_path,ecs.ec) -o $(call quote_path,$@)
112 $(OBJ)ecs.c: ecs.ec $(OBJ)ecs.sym | $(SYMBOLS)
113 $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,ecs.ec) -o $(call quote_path,$@) -symbols $(OBJ)
116 $(call rmq,$(OBJ)$(MODULE).main.c $(OBJ)$(MODULE).main.ec $(OBJ)$(MODULE).main$(I) $(OBJ)$(MODULE).main$(S))
117 $(call rmq,$(OBJ)symbols.lst)
118 $(call rmq,$(OBJ)objects.lst)
121 $(call rmq,$(_ECOBJECTS))
122 $(call rmq,$(_COBJECTS))
123 $(call rmq,$(_BOWLS))
124 $(call rmq,$(_IMPORTS))
125 $(call rmq,$(_SYMBOLS))
127 realclean: cleantarget
130 distclean: cleantarget