TARGET := ClassiCube-amiga BUILD_DIR := build/amiga_68k SOURCE_DIRS := src src/amiga S_FILES := $(foreach dir,$(SOURCE_DIRS),$(wildcard $(dir)/*.S)) C_FILES := $(foreach dir,$(SOURCE_DIRS),$(wildcard $(dir)/*.c)) OBJS := $(addprefix $(BUILD_DIR)/, $(notdir $(C_FILES:%.c=%.o) $(S_FILES:%.S=%.o))) #--------------------------------------------------------------------------------- # Code generation #--------------------------------------------------------------------------------- AS := m68k-amigaos-as CC := m68k-amigaos-gcc CXX := m68k-amigaos-g++ CFLAGS := -O1 -fno-math-errno -DPLAT_AMIGA -DCC_BUILD_NOFPU # Dependency tracking DEPFLAGS = -MT $@ -MMD -MP -MF $(BUILD_DIR)/$*.d DEPFILES := $(OBJS:%.o=%.d) #--------------------------------------------------------------------------------- # main targets #--------------------------------------------------------------------------------- default: $(BUILD_DIR) $(TARGET).exe $(BUILD_DIR): mkdir -p $(BUILD_DIR) $(TARGET).exe: $(C_OBJECTS) $(CC) $(LDFLAGS) -o $(TARGET).exe $(C_OBJECTS) #--------------------------------------------------------------------------------- # object generation #--------------------------------------------------------------------------------- $(BUILD_DIR)/%.o : src/amiga/%.S $(AS) $< -o $@ $(BUILD_DIR)/%.o : src/%.c $(CC) $(CFLAGS) $(DEPFLAGS) -S -c $< -o $@ $(BUILD_DIR)/%.o : src/amiga/%.c $(CC) $(CFLAGS) $(DEPFLAGS) -S -c $< -o $@ # Dependency tracking $(DEPFILES): include $(wildcard $(DEPFILES))