add new Makefile
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.
This commit is contained in:
parent
21fe8ef908
commit
7704756b72
135
Makefile
Normal file
135
Makefile
Normal file
|
@ -0,0 +1,135 @@
|
||||||
|
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)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue