i am really not a big fan of the current "Makefile in each directory" build system in this project. sorry. i don't have any C256 devices, so i've not kept anything for them in this new Makefile. to the best of my knowledge, you can't get any of these devices anymore anyway, so i don't particular care. sorry again.
136 lines
4.3 KiB
Makefile
136 lines
4.3 KiB
Makefile
TARGET = toolbox
|
|
TARGET_RAM = $(TARGET)_ram
|
|
TARGET_ROM = $(TARGET)_rom
|
|
|
|
UNIT = F256K
|
|
|
|
SRCS_BASE = boot.c \
|
|
log.c \
|
|
memory.c \
|
|
proc.c \
|
|
ring_buffer.c \
|
|
simpleio.c \
|
|
sys_general.c \
|
|
timers.c \
|
|
toolbox.c \
|
|
utilities.c \
|
|
dev/block.c \
|
|
dev/channel.c \
|
|
dev/console.c \
|
|
dev/fsys.c \
|
|
dev/sprites.c \
|
|
dev/tiles.c \
|
|
dev/txt_screen.c \
|
|
dev/rtc.c \
|
|
dev/uart.c \
|
|
snd/codec_c256.c \
|
|
snd/psg.c \
|
|
snd/sid.c \
|
|
fatfs/ff.c \
|
|
fatfs/ffsystem.c \
|
|
fatfs/ffunicode.c
|
|
|
|
SRCS_BASE_F256 = cartridge.c \
|
|
dev/txt_f256.c \
|
|
dev/kbd_f256.c \
|
|
dev/indicators_c256.c \
|
|
dev/interrupts_f256.c \
|
|
dev/sdc_f256.c \
|
|
dev/iec.c \
|
|
fatfs/toolbox_bdev.c \
|
|
C256/extras.s \
|
|
C256/f256-cstartup.s \
|
|
C256/iecll.s \
|
|
C256/interrupts.s \
|
|
C256/io_stubs.c \
|
|
C256/jumptable.s
|
|
|
|
ifeq ($(UNIT),F256)
|
|
TOOLCHAIN = 65816
|
|
SRCS_FOR_UNIT = $(SRCS_BASE_F256) dev/kbd_f256jr.c
|
|
CFLAGS_FOR_UNIT = -DMODEL=2 -DCPU=255 --target=f256
|
|
LDFLAGS_FOR_UNIT_ROM = src/C256/f256-flash.scm --cstartup=f256
|
|
LDFLAGS_FOR_UNIT_RAM = src/C256/f256-ld_lc.scm --cstartup=f256
|
|
else ifeq ($(UNIT),F256JR2)
|
|
TOOLCHAIN = 65816
|
|
SRCS_FOR_UNIT = $(SRCS_BASE_F256) dev/kbd_f256jr.c
|
|
CFLAGS_FOR_UNIT = -DMODEL=35 -DCPU=255 --target=f256
|
|
LDFLAGS_FOR_UNIT_ROM = src/C256/f256k2-flash.scm --cstartup=f256
|
|
LDFLAGS_FOR_UNIT_RAM = src/C256/f256-ld_lc.scm --cstartup=f256
|
|
else ifeq ($(UNIT),F256K)
|
|
TOOLCHAIN = 65816
|
|
SRCS_FOR_UNIT = $(SRCS_BASE_F256) dev/kbd_f256k.c
|
|
CFLAGS_FOR_UNIT = -DMODEL=18 -DCPU=255 --target=f256
|
|
LDFLAGS_FOR_UNIT_ROM = src/C256/f256-flash.scm --cstartup=f256
|
|
LDFLAGS_FOR_UNIT_RAM = src/C256/f256-ld_lc.scm --cstartup=f256
|
|
else ifeq ($(UNIT),F256K2)
|
|
TOOLCHAIN = 65816
|
|
SRCS_FOR_UNIT = $(SRCS_BASE_F256) dev/kbd_f256k.c
|
|
CFLAGS_FOR_UNIT = -DMODEL=17 -DCPU=255 --target=f256
|
|
LDFLAGS_FOR_UNIT_ROM = src/C256/f256k2-flash.scm --cstartup=f256
|
|
LDFLAGS_FOR_UNIT_RAM = src/C256/f256-ld_lc.scm --cstartup=f256
|
|
else
|
|
$(error "Unrecognized UNIT: $(UNIT)")
|
|
endif
|
|
|
|
ifeq ($(TOOLCHAIN),65816)
|
|
ifeq ($(strip $(CALYPSI_65816_ROOT)),)
|
|
$(error "Please set CALYPSI_65816_ROOT in your environment!")
|
|
endif
|
|
|
|
CC = cc65816
|
|
AS = as65816
|
|
LD = ln65816
|
|
TOOLCHAIN_ROOT = $(CALYPSI_65816_ROOT)
|
|
else
|
|
$(error "Unrecognized TOOLCHAIN: $(TOOLCHAIN)")
|
|
endif
|
|
|
|
SRC_DIR = src
|
|
SRC_FILES = $(addprefix $(SRC_DIR)/, $(SRCS_BASE) $(SRCS_FOR_UNIT))
|
|
INCLUDE_DIRS = $(SRC_DIR) $(SRC_DIR)/include $(TOOLCHAIN_ROOT)/include
|
|
INCLUDES = $(foreach dir,$(INCLUDE_DIRS),-I$(dir))
|
|
|
|
OBJ_DIR = obj
|
|
OBJ_FILES = $(addprefix $(OBJ_DIR)/, $(addsuffix .o, $(SRC_FILES)))
|
|
|
|
DEPS_DIR = $(OBJ_DIR)
|
|
DEPENDS = $(OBJ_FILES:.o=.d)
|
|
|
|
CFLAGS = --code-model=large --data-model=large --list-file=$@.lst $(INCLUDES) $(CFLAGS_FOR_UNIT)
|
|
AFLAGS = --code-model=large --data-model=large $(INCLUDES)
|
|
|
|
LDFLAGS_FOR_ROM = --rom-code $(LDFLAGS_FOR_UNIT_ROM)
|
|
LDFLAGS_FOR_RAM = $(LDFLAGS_FOR_UNIT_RAM)
|
|
|
|
.PHONY: clean
|
|
|
|
all: rom ram
|
|
|
|
rom: $(TARGET_ROM).s37
|
|
|
|
ram: $(TARGET_RAM).s37
|
|
|
|
clean:
|
|
rm -f *.s37
|
|
rm -f *.lst
|
|
rm -rf $(OBJ_DIR)
|
|
|
|
$(TARGET_ROM).s37: $(OBJ_FILES)
|
|
$(LD) -o $@ $^ $(LDFLAGS_FOR_ROM) --output-format=s37 --list-file=$@.lst
|
|
|
|
$(TARGET_RAM).s37: $(OBJ_FILES)
|
|
$(LD) -o $@ $^ $(LDFLAGS_FOR_RAM) --output-format=s37 --list-file=$@.lst
|
|
|
|
$(OBJ_DIR)/%.c.o: %.c
|
|
@mkdir -p $(dir $@)
|
|
$(CC) -MMD -MP -MF$(DEPS_DIR)/$*.d $(CFLAGS) -o $@ $<
|
|
|
|
$(OBJ_DIR)/%.s.o: %.s
|
|
@mkdir -p $(dir $@)
|
|
$(AS) $(AFLAGS) -o $@ $<
|
|
|
|
-include $(DEPENDS)
|
|
|
|
|