export ECC := $(call psep,$(EC_BINS)ecc$(HOST_E))$(if $(CROSS_TARGET), -t $(TARGET_PLATFORM),)
export ECS := $(call psep,$(EC_BINS)ecs$(HOST_E))$(if $(CROSS_TARGET), -t $(TARGET_PLATFORM),)
export EAR := $(call psep,$(_CF_DIR)obj/$(HOST_PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/bin/ear$(HOST_E))
+ifdef WINDOWS_TARGET
+WINDRES := $(GCC_PREFIX)windres
+ ifdef ARCH
+ ifeq "$(ARCH)" "x32"
+WINDRES_FLAGS := -F pe-i386
+ else
+ ifeq "$(ARCH)" "x64"
+WINDRES_FLAGS := -F pe-x86-64
+ endif
+ endif
+ endif
+endif
UPX := upx
ifndef ARCH
# CORE VARIABLES
MODULE := ide
+VERSION :=
CONFIG := release
ifndef COMPILER
COMPILER := default
BOWLS = $(call shwspace,$(addprefix $(OBJ),$(patsubst %.ec,%$(B),$(notdir $(_ECSOURCES)))))
-OBJECTS = $(ECOBJECTS) $(OBJ)$(MODULE).main$(O)
+ifdef WINDOWS_TARGET
+
+_RCSOURCES = \
+ src/resources.rc
+
+RCSOURCES = $(call shwspace,$(_RCSOURCES))
+
+RCOBJECTS = $(call shwspace,$(addprefix $(OBJ),$(patsubst %.rc,%$(O),$(notdir $(_RCSOURCES)))))
+
+else
+RCSOURCES =
+RCOBJECTS =
+endif
-SOURCES = $(ECSOURCES)
+OBJECTS = $(ECOBJECTS) $(OBJ)$(MODULE).main$(O) $(RCOBJECTS)
+
+SOURCES = $(ECSOURCES) $(RCSOURCES)
RESOURCES = $(RESOURCES1) $(RESOURCES2)
RESOURCES1 = \
# PLATFORM-SPECIFIC OPTIONS
-ifdef WINDOWS_TARGET
-
-ifndef STATIC_LIBRARY_TARGET
-LIBS += $(OBJ)resources.o
-endif
-
-else
ifdef LINUX_TARGET
ifndef STATIC_LIBRARY_TARGET
endif
endif
-endif
$(SYMBOLS): | objdir
$(OBJECTS): | objdir
-$(TARGET): $(SOURCES) $(RESOURCES) $(SYMBOLS) $(OBJECTS) | objdir
+$(TARGET): $(SOURCES) $(RCSOURCES) $(RESOURCES) $(SYMBOLS) $(OBJECTS) | objdir
ifndef STATIC_LIBRARY_TARGET
-ifdef WINDOWS_TARGET
-$(TARGET): $(OBJ)resources.o
-endif
$(CC) $(OFLAGS) $(OBJECTS) $(LIBS) -o $(TARGET) $(INSTALLNAME)
ifndef NOSTRIP
$(STRIP) $(STRIPOPT) $(TARGET)
endif
$(call cpq,$(TARGET),../obj/$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/bin/)
-ifdef WINDOWS_TARGET
-$(OBJ)resources.o: src/icon2.ico src/resources.rc | objdir
- $(GCC_PREFIX)windres src/resources.rc $(OBJ)resources.o
-endif
-
# SYMBOL RULES
$(OBJ)FileSystemIterator.sym: ../extras/FileSystemIterator.ec
$(OBJ)licensing.o: $(OBJ)licensing.c
$(CC) $(CFLAGS) $(PRJ_CFLAGS) -c $(OBJ)licensing.c -o $(OBJ)licensing.o
+ifdef WINDOWS_TARGET
+
+$(OBJ)resources.o: src/resources.rc
+ $(WINDRES) $(WINDRES_FLAGS) $< $@
+endif
+
$(OBJ)$(MODULE).main$(O): $(OBJ)$(MODULE).main.c
$(CC) $(CFLAGS) $(PRJ_CFLAGS) -c $(OBJ)$(MODULE).main.c -o $(OBJ)$(MODULE).main$(O)
clean: cleantarget
$(call rmq,$(_OBJECTS))
+ifdef WINDOWS_TARGET
+ $(call rmq,$(RCOBJECTS))
+endif
$(call rmq,$(OBJ)$(MODULE).main.o $(OBJ)$(MODULE).main.c $(OBJ)$(MODULE).main.ec $(OBJ)$(MODULE).main$(I) $(OBJ)$(MODULE).main$(S))
$(call rmq,$(ECOBJECTS))
$(call rmq,$(COBJECTS))
$(call rmq,$(BOWLS))
$(call rmq,$(IMPORTS))
$(call rmq,$(SYMBOLS))
-ifdef WINDOWS_TARGET
- $(call rmq,$(OBJ)resources.o)
-endif
realclean: cleantarget
$(call rmrq,$(OBJ))