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