initial
This commit is contained in:
49
Makefile
Normal file
49
Makefile
Normal file
@@ -0,0 +1,49 @@
|
||||
TARGET := out
|
||||
BUILD_DIR := build
|
||||
|
||||
AS := sdasz80
|
||||
CC := sdcc
|
||||
MAKEBIN := makebin
|
||||
|
||||
ASFLAGS := -plosgff
|
||||
CCFLAGS := -mz80 --no-std-crt0
|
||||
LDFLAGS := -mz80 --no-std-crt0 --code-loc 0x0080 --data-loc 0x8000
|
||||
MAKEBINFLAGS := -p
|
||||
|
||||
ASM_SRCS := boot.asm
|
||||
ASM_BUILDS := $(addprefix $(BUILD_DIR)/,$(notdir $(ASM_SRCS)))
|
||||
C_SRCS := main.c
|
||||
C_BUILDS := $(addprefix $(BUILD_DIR)/,$(notdir $(C_SRCS)))
|
||||
|
||||
ASM_RELS := $(ASM_BUILDS:.asm=.rel)
|
||||
C_RELS := $(C_BUILDS:.c=.rel)
|
||||
|
||||
IHX := $(BUILD_DIR)/$(TARGET).ihx
|
||||
MAP := $(BUILD_DIR)/$(TARGET).map
|
||||
BIN := $(BUILD_DIR)/$(TARGET).bin
|
||||
LST := $(ASM_BUILDS:.asm=.lst)
|
||||
SYM := $(ASM_BUILDS:.asm=.sym)
|
||||
|
||||
GENERATED := $(ASM_BUILDS) $(C_BUILDS) $(ASM_RELS) $(C_RELS) $(LST) $(SYM) $(IHX) $(MAP) $(BIN)
|
||||
|
||||
.PHONY: all clean
|
||||
|
||||
all: $(BIN)
|
||||
|
||||
$(BIN): $(IHX)
|
||||
$(MAKEBIN) $(MAKEBINFLAGS) $< $@
|
||||
|
||||
$(IHX): $(ASM_RELS) $(C_RELS) | $(BUILD_DIR)
|
||||
$(CC) $(LDFLAGS) -o $@ $(ASM_RELS) $(C_RELS)
|
||||
|
||||
$(BUILD_DIR)/%.rel: %.asm | $(BUILD_DIR)
|
||||
$(AS) $(ASFLAGS) -o $@ $<
|
||||
|
||||
$(BUILD_DIR)/%.rel: %.c | $(BUILD_DIR)
|
||||
$(CC) $(CCFLAGS) -c -o $@ $<
|
||||
|
||||
$(BUILD_DIR):
|
||||
mkdir -p $@
|
||||
|
||||
clean:
|
||||
rm -rf $(BUILD_DIR)
|
||||
Reference in New Issue
Block a user