# Amiga (Bebbo m68k-amigaos-gcc) build rules. include $(dir $(lastword $(MAKEFILE_LIST)))/common.mk PLATFORM := amiga BUILD := $(REPO_DIR)/build/$(PLATFORM) LIBDIR := $(BUILD)/lib BINDIR := $(BUILD)/bin CFLAGS := $(COMMON_CFLAGS) -DJOEYLIB_PLATFORM_AMIGA -m68000 -fomit-frame-pointer -noixemul ASFLAGS := -Felf -m68000 -quiet # --allow-multiple-definition lets our user-space tzset stub # (src/port/amiga/libinit.c) win over libnix's version in # __gmtoffset.o. libnix's tzset dereferences a possibly-NULL # LocaleBase; our no-op skips the deref. LDFLAGS := -noixemul -Wl,--allow-multiple-definition PORT_C_SRCS := $(wildcard $(SRC_PORT)/amiga/*.c) PORT_S_SRCS := $(wildcard $(SRC_PORT)/amiga/*.s) SHARED_S := $(wildcard $(SRC_68K)/*.s) LIB_OBJS := \ $(patsubst $(SRC_CORE)/%.c,$(BUILD)/obj/core/%.o,$(CORE_C_SRCS)) \ $(patsubst $(SRC_PORT)/amiga/%.c,$(BUILD)/obj/port/%.o,$(PORT_C_SRCS)) \ $(patsubst $(SRC_PORT)/amiga/%.s,$(BUILD)/obj/port/%.o,$(PORT_S_SRCS)) \ $(patsubst $(SRC_68K)/%.s,$(BUILD)/obj/68k/%.o,$(SHARED_S)) LIB := $(LIBDIR)/libjoey.a HELLO_SRC := $(EXAMPLES)/hello/hello.c HELLO_BIN := $(BINDIR)/Hello PATTERN_SRC := $(EXAMPLES)/pattern/pattern.c PATTERN_BIN := $(BINDIR)/Pattern KEYS_SRC := $(EXAMPLES)/keys/keys.c KEYS_BIN := $(BINDIR)/Keys JOY_SRC := $(EXAMPLES)/joy/joy.c JOY_BIN := $(BINDIR)/Joy SPRITE_SRC := $(EXAMPLES)/sprite/sprite.c SPRITE_BIN := $(BINDIR)/Sprite .PHONY: all amiga clean-amiga all amiga: $(LIB) $(HELLO_BIN) $(PATTERN_BIN) $(KEYS_BIN) $(JOY_BIN) $(SPRITE_BIN) $(BUILD)/obj/core/%.o: $(SRC_CORE)/%.c @mkdir -p $(dir $@) $(AMIGA_CC) $(CFLAGS) -c $< -o $@ $(BUILD)/obj/port/%.o: $(SRC_PORT)/amiga/%.c @mkdir -p $(dir $@) $(AMIGA_CC) $(CFLAGS) -c $< -o $@ $(BUILD)/obj/port/%.o: $(SRC_PORT)/amiga/%.s @mkdir -p $(dir $@) $(AMIGA_AS) $(ASFLAGS) $< -o $@ $(BUILD)/obj/68k/%.o: $(SRC_68K)/%.s @mkdir -p $(dir $@) $(AMIGA_AS) $(ASFLAGS) $< -o $@ $(LIB): $(LIB_OBJS) @mkdir -p $(dir $@) $(AMIGA_AR) rcs $@ $^ $(HELLO_BIN): $(HELLO_SRC) $(LIB) @mkdir -p $(dir $@) $(AMIGA_CC) $(CFLAGS) $< $(LIB) -o $@ $(LDFLAGS) $(PATTERN_BIN): $(PATTERN_SRC) $(LIB) @mkdir -p $(dir $@) $(AMIGA_CC) $(CFLAGS) $< $(LIB) -o $@ $(LDFLAGS) $(KEYS_BIN): $(KEYS_SRC) $(LIB) @mkdir -p $(dir $@) $(AMIGA_CC) $(CFLAGS) $< $(LIB) -o $@ $(LDFLAGS) $(JOY_BIN): $(JOY_SRC) $(LIB) @mkdir -p $(dir $@) $(AMIGA_CC) $(CFLAGS) $< $(LIB) -o $@ $(LDFLAGS) $(SPRITE_BIN): $(SPRITE_SRC) $(LIB) @mkdir -p $(dir $@) $(AMIGA_CC) $(CFLAGS) $< $(LIB) -o $@ $(LDFLAGS) clean-amiga: rm -rf $(BUILD)