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
d605cf11dc
133
Makefile
Normal file
133
Makefile
Normal file
|
@ -0,0 +1,133 @@
|
|||
################################################################################
|
||||
|
||||
ifeq ($(strip $(CALYPSI_65816_ROOT)),)
|
||||
$(error "Please set CALYPSI_65816_ROOT in your environment!")
|
||||
endif
|
||||
|
||||
################################################################################
|
||||
|
||||
TARGET = toolbox
|
||||
TARGET_RAM = $(TARGET)_ram
|
||||
TARGET_ROM = $(TARGET)_rom
|
||||
|
||||
# just the default, can override
|
||||
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
|
||||
|
||||
SRCS_DEBUGGER = $(DEBUGGER)/agent.c $(DEBUGGER)/c256-uart.c $(DEBUGGER)/low_level_WDC65816.s
|
||||
|
||||
ifeq ($(UNIT),F256)
|
||||
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)
|
||||
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)
|
||||
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)
|
||||
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
|
||||
|
||||
SRC_DIR = src
|
||||
SRC_FILES = $(addprefix $(SRC_DIR)/, $(SRCS_BASE) $(SRCS_FOR_UNIT))
|
||||
INCLUDE_DIRS = $(SRC_DIR) $(SRC_DIR)/include $(CALYPSI_65816_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)
|
||||
|
||||
CC = cc65816
|
||||
AS = as65816
|
||||
LD = ln65816
|
||||
|
||||
.PHONY: clean debug
|
||||
|
||||
all: $(TARGET_ROM).s37 $(TARGET_RAM).s37
|
||||
|
||||
clean:
|
||||
rm -f *.s37
|
||||
rm -f *.lst
|
||||
rm -rf $(OBJ_DIR)
|
||||
|
||||
debug:
|
||||
$(info SRC_FILES is $(SRC_FILES))
|
||||
$(info OBJ_FILES is $(OBJ_FILES))
|
||||
|
||||
$(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