.PHONY: all objdir clean realclean distclean
-# CONTENT
+# CORE VARIABLES
MODULE := ecp
CONFIG := bootstrap
+ifndef COMPILER
COMPILER := default
+endif
+
TARGET_TYPE = executable
-OBJ = obj/$(CONFIG).$(PLATFORM)/
+# FLAGS
-RES =
+ECFLAGS =
+ifndef DEBIAN_PACKAGE
+CFLAGS =
+LDFLAGS =
+endif
+PRJ_CFLAGS =
+CECFLAGS =
+OFLAGS =
+LIBS =
+
+ifdef DEBUG
+NOSTRIP := y
+endif
+
+CONSOLE = -mconsole
-CONSOLE =
+# INCLUDES
-TARGET = obj/$(CONFIG).$(PLATFORM)/ecp$(E)
+_CF_DIR = ../../../
+
+include $(_CF_DIR)crossplatform.mk
+include $(_CF_DIR)default.cf
+
+# POST-INCLUDES VARIABLES
+
+OBJ = obj/$(CONFIG).$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/
+
+RES =
+
+TARGET = obj/$(CONFIG).$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ecp$(E)
OBJECTS = \
$(OBJ)ecp.o \
bootstrap/ecp.c \
bootstrap/ecp.main.c
-ifndef DEBIAN_PACKAGE
-CFLAGS =
-endif
-OFLAGS =
-
-# CROSS-PLATFORM MAGIC
+LIBS += $(SHAREDLIB) $(EXECUTABLE) $(LINKOPT)
-include ../../../crossplatform.mk
-include ../../../include.mk
+ifndef STATIC_LIBRARY_TARGET
+LIBS += \
+ $(call _L,ecereBootstrap) \
+ $(call _L,ecBootstrap)
+endif
-# FLAGS
+PRJ_CFLAGS += \
+ $(if $(DEBUG), -g, -O2 -ffast-math) $(FORCE_32_BIT) $(FPIC) -w \
+ -DECERE_STATIC
-CFLAGS += -fmessage-length=0 -O2 -ffast-math $(FORCE_32_BIT) $(FPIC) -w \
- -DECERE_STATIC
-CECFLAGS =
+ECFLAGS += \
+ -nolinenumbers
-ECFLAGS = -nolinenumbers
-OFLAGS += $(FORCE_32_BIT) \
- -L../ecere/obj/bootstrap.$(PLATFORM) \
- -L../libec/obj/bootstrap.$(PLATFORM)
-
-LIBS = -lecereBootstrap -lecBootstrap $(SHAREDLIB) $(EXECUTABLE) $(LINKOPT)
-
-UPXFLAGS = -9 -q
+# PLATFORM-SPECIFIC OPTIONS
-# HARD CODED PLATFORM-SPECIFIC OPTIONS
ifdef LINUX_TARGET
-OFLAGS += -Wl,--no-undefined
-endif
-
-# PLATFORM-SPECIFIC OPTIONS
-ifdef WINDOWS_TARGET
+ifndef STATIC_LIBRARY_TARGET
+LIBS += \
+ $(call _L,m) \
+ $(call _L,dl)
+endif
-else
-ifdef LINUX_TARGET
+endif
-LIBS += -lm -ldl
-else
-ifdef OSX_TARGET
-LIBS += -lm -ldl
+CECFLAGS += -cpp $(_CPP)
+ifndef STATIC_LIBRARY_TARGET
+OFLAGS += $(FORCE_32_BIT) \
+ -L../ecere/obj/bootstrap.$(PLATFORM) \
+ -L../libec/obj/bootstrap.$(PLATFORM)
endif
-endif
-endif
+
# TARGETS
all: objdir $(TARGET)
$(STRIP) $(STRIPOPT) $(TARGET)
endif
+# OBJECT RULES
+
$(OBJ)ecp.o: bootstrap/ecp.c
- $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/ecp.c -o $(OBJ)ecp.o
+ $(CC) $(CFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c bootstrap/ecp.c -o $(OBJ)ecp.o
$(OBJ)ecp.main.o: bootstrap/ecp.main.c
- $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/ecp.main.c -o $(OBJ)ecp.main.o
+ $(CC) $(CFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c bootstrap/ecp.main.c -o $(OBJ)ecp.main.o
clean: objdir
$(call rmq,$(TARGET))
$(call rmq,$(OBJECTS))
-realclean:
+realclean: objdir
$(call rmrq,$(OBJ))
-distclean:
+distclean: objdir
$(call rmrq,obj/)