60 lines
1.9 KiB
Makefile
60 lines
1.9 KiB
Makefile
# Apple IIgs build rules.
|
|
#
|
|
# Uses GoldenGate's iix to drive ORCA/C 2.1.0 + ORCA Linker. The
|
|
# toolchains/iigs/iix-build.sh wrapper handles ORCA's case-sensitivity
|
|
# quirks (lowercase .a/.root/.sym vs linker demands for uppercase),
|
|
# multi-source compile/link, and pragma injection for include paths
|
|
# and the stdint/stdbool shim headers.
|
|
|
|
include $(dir $(lastword $(MAKEFILE_LIST)))/common.mk
|
|
|
|
PLATFORM := iigs
|
|
BUILD := $(REPO_DIR)/build/$(PLATFORM)
|
|
BINDIR := $(BUILD)/bin
|
|
|
|
PORT_C_SRCS := $(wildcard $(SRC_PORT)/iigs/*.c)
|
|
|
|
LIB_SRCS := $(CORE_C_SRCS) $(PORT_C_SRCS)
|
|
|
|
HELLO_SRC := $(EXAMPLES)/hello/hello.c
|
|
HELLO_BIN := $(BINDIR)/HELLO
|
|
PATTERN_SRC := $(EXAMPLES)/pattern/pattern.c
|
|
PATTERN_BIN := $(BINDIR)/PATTERN
|
|
DISK_IMG := $(BINDIR)/joey.2mg
|
|
|
|
IIGS_PACKAGE := $(REPO_DIR)/toolchains/iigs/package-disk.sh
|
|
|
|
IIX_INCLUDES := \
|
|
-I $(IIGS_INCLUDE_SHIM) \
|
|
-I $(INCLUDE_DIR) \
|
|
-I $(INCLUDE_DIR)/joey \
|
|
-I $(SRC_CORE)
|
|
|
|
.PHONY: all iigs iigs-disk clean-iigs
|
|
all iigs: $(HELLO_BIN) $(PATTERN_BIN)
|
|
|
|
# iix-build.sh takes MAIN.c first, then EXTRA sources (compiled with
|
|
# #pragma noroot). The example source supplies main(); libjoey sources
|
|
# are the extras. The chtyp post-step tags the output as GS/OS S16
|
|
# ($B3) so GS/OS recognizes it as launchable; the file-type lives in
|
|
# a user.com.apple.FinderInfo xattr that iix and profuse preserve.
|
|
$(HELLO_BIN): $(HELLO_SRC) $(LIB_SRCS) $(IIGS_BUILD)
|
|
@mkdir -p $(dir $@)
|
|
$(IIGS_BUILD) $(IIX_INCLUDES) -o $@ $(HELLO_SRC) $(LIB_SRCS)
|
|
$(IIGS_IIX) chtyp -t S16 $@
|
|
|
|
$(PATTERN_BIN): $(PATTERN_SRC) $(LIB_SRCS) $(IIGS_BUILD)
|
|
@mkdir -p $(dir $@)
|
|
$(IIGS_BUILD) $(IIX_INCLUDES) -o $@ $(PATTERN_SRC) $(LIB_SRCS)
|
|
$(IIGS_IIX) chtyp -t S16 $@
|
|
|
|
# Assemble an 800KB ProDOS 2img containing both examples, ready to
|
|
# mount in GSplus alongside a GS/OS boot volume.
|
|
iigs-disk: $(DISK_IMG)
|
|
|
|
$(DISK_IMG): $(HELLO_BIN) $(PATTERN_BIN) $(IIGS_PACKAGE)
|
|
@mkdir -p $(dir $@)
|
|
$(IIGS_PACKAGE) $@ $(HELLO_BIN) $(PATTERN_BIN)
|
|
|
|
clean-iigs:
|
|
rm -rf $(BUILD)
|