mirror of
https://github.com/Polprzewodnikowy/SummerCart64.git
synced 2024-11-25 15:16:53 +01:00
58 lines
1.8 KiB
Makefile
58 lines
1.8 KiB
Makefile
|
ROOTDIR = $(N64_INST)
|
||
|
GCCN64PREFIX = $(ROOTDIR)/bin/mips64-elf-
|
||
|
CHKSUM64PATH = $(ROOTDIR)/bin/chksum64
|
||
|
MKDFSPATH = $(ROOTDIR)/bin/mkdfs
|
||
|
HEADERPATH = $(ROOTDIR)/mips64-elf/lib
|
||
|
N64TOOL = $(ROOTDIR)/bin/n64tool
|
||
|
HEADERNAME = header
|
||
|
LINK_FLAGS = -L$(ROOTDIR)/mips64-elf/lib -ldragon -lc -lm -ldragonsys -Tn64.ld
|
||
|
CFLAGS = -std=gnu99 -march=vr4300 -mtune=vr4300 -Os -Wall -Werror -I$(ROOTDIR)/mips64-elf/include
|
||
|
ASFLAGS = -mtune=vr4300 -march=vr4300
|
||
|
CC = $(GCCN64PREFIX)gcc
|
||
|
AS = $(GCCN64PREFIX)as
|
||
|
LD = $(GCCN64PREFIX)ld
|
||
|
OBJCOPY = $(GCCN64PREFIX)objcopy
|
||
|
OBJDUMP = $(GCCN64PREFIX)objdump
|
||
|
|
||
|
SRC_DIRS = src
|
||
|
SRC_FILES = $(wildcard $(patsubst %, %/*.c, . $(SRC_DIRS)))
|
||
|
OBJ_FILES = $(addprefix build/, $(notdir $(SRC_FILES:.c=.o)))
|
||
|
VPATH = $(SRC_DIRS)
|
||
|
|
||
|
ROM_SIZE = 1028k
|
||
|
|
||
|
ifeq ($(N64_BYTE_SWAP),true)
|
||
|
ROM_EXTENSION = .v64
|
||
|
N64_FLAGS = -b -l $(ROM_SIZE) -h $(HEADERPATH)/$(HEADERNAME) -o build/$(PROG_NAME)$(ROM_EXTENSION)
|
||
|
else
|
||
|
ROM_EXTENSION = .z64
|
||
|
N64_FLAGS = -l $(ROM_SIZE) -h $(HEADERPATH)/$(HEADERNAME) -o build/$(PROG_NAME)$(ROM_EXTENSION)
|
||
|
endif
|
||
|
|
||
|
PROG_NAME = SummerLoader64
|
||
|
|
||
|
all: make_output_dir build/$(PROG_NAME)$(ROM_EXTENSION)
|
||
|
|
||
|
$(OBJ_FILES): Makefile
|
||
|
|
||
|
build/$(PROG_NAME)$(ROM_EXTENSION): build/$(PROG_NAME).elf
|
||
|
$(OBJCOPY) build/$(PROG_NAME).elf build/$(PROG_NAME).bin -O binary
|
||
|
$(OBJDUMP) -S build/$(PROG_NAME).elf > build/$(PROG_NAME).lst
|
||
|
rm -f build/$(PROG_NAME)$(ROM_EXTENSION)
|
||
|
$(N64TOOL) $(N64_FLAGS) -t $(PROG_NAME) build/$(PROG_NAME).bin
|
||
|
$(CHKSUM64PATH) build/$(PROG_NAME)$(ROM_EXTENSION)
|
||
|
|
||
|
build/$(PROG_NAME).elf: $(OBJ_FILES)
|
||
|
$(LD) -o build/$(PROG_NAME).elf $(OBJ_FILES) $(LINK_FLAGS)
|
||
|
|
||
|
build/%.o: %.c
|
||
|
$(COMPILE.c) $(OUTPUT_OPTION) $<
|
||
|
|
||
|
make_output_dir:
|
||
|
$(shell mkdir ./build 2>/dev/null)
|
||
|
|
||
|
clean:
|
||
|
rm -rf ./build
|
||
|
|
||
|
.PHONY: all clean make_output_dir
|