2017-10-06 14:48:52 +01:00
|
|
|
#
|
2021-09-23 19:52:42 -04:00
|
|
|
# Copyright (c) 2020 The Altra64 project contributors
|
2017-10-06 14:48:52 +01:00
|
|
|
# See LICENSE file in the project root for full license information.
|
|
|
|
#
|
|
|
|
|
2021-09-23 19:52:42 -04:00
|
|
|
ifdef SystemRoot
|
|
|
|
FIXPATH = $(subst /,\,$1)
|
|
|
|
RM = DEL /Q
|
|
|
|
else
|
|
|
|
FIXPATH = $1
|
|
|
|
RM = rm -f
|
|
|
|
endif
|
|
|
|
|
|
|
|
ROOTDIR = $(CURDIR)
|
|
|
|
SRCDIR = $(ROOTDIR)/src
|
|
|
|
OBJDIR = $(ROOTDIR)/obj
|
|
|
|
BINDIR = $(ROOTDIR)/bin
|
|
|
|
LIBDIR = $(ROOTDIR)/lib
|
|
|
|
RESDIR = $(ROOTDIR)/res
|
|
|
|
|
|
|
|
CHKSUM64 = $(ROOTDIR)/toolchain/libdragon/tools/chksum64.exe
|
|
|
|
MKDFS = $(ROOTDIR)/toolchain/libdragon/tools/mkdfs.exe
|
|
|
|
N64TOOL = $(ROOTDIR)/toolchain/libdragon/tools/n64tool.exe
|
2016-09-10 00:13:21 +01:00
|
|
|
|
|
|
|
HEADERNAME = header.ed64
|
|
|
|
HEADERTITLE = "EverDrive OS"
|
2021-09-23 19:52:42 -04:00
|
|
|
PROG_NAME = OS64P
|
2014-06-28 22:10:11 -07:00
|
|
|
|
2021-09-23 19:52:42 -04:00
|
|
|
INCLUDE_DIRS = -I$(ROOTDIR)/inc -I$(ROOTDIR)/include -I$(ROOTDIR)/toolchain/gcc-toolchain-mips64/include -I$(ROOTDIR)/toolchain/gcc-toolchain-mips64/mips64-elf/include -I$(ROOTDIR)/toolchain/libdragon/include
|
2014-06-28 22:10:11 -07:00
|
|
|
|
2021-09-23 19:52:42 -04:00
|
|
|
COMMON_FLAGS = -std=gnu17 -march=vr4300 -mtune=vr4300 -Wall -Wrestrict -Wno-pointer-sign -D_REENTRANT -DUSE_TRUETYPE $(INCLUDE_DIRS) $(SET_DEBUG)
|
|
|
|
COMMON_FLAGS += -DED64PLUS
|
|
|
|
FLAGS_VT = -O0 $(COMMON_FLAGS)
|
|
|
|
FLAGS = -O2 $(COMMON_FLAGS)
|
2014-06-28 22:10:11 -07:00
|
|
|
ASFLAGS = -mtune=vr4300 -march=vr4300
|
2021-09-23 19:52:42 -04:00
|
|
|
LINK_FLAGS = -G0 -L$(ROOTDIR)/lib -L$(ROOTDIR)/toolchain/gcc-toolchain-mips64/mips64-elf/lib -L$(ROOTDIR)/toolchain/libdragon/lib -ldragon -lmad -lyaml -lm -lc -ldragonsys -Tn64ld.x
|
|
|
|
|
|
|
|
GCCN64PREFIX = $(ROOTDIR)/toolchain/gcc-toolchain-mips64/bin/mips64-elf-
|
|
|
|
CC = $(GCCN64PREFIX)gcc.exe
|
|
|
|
AS = $(GCCN64PREFIX)as.exe
|
|
|
|
LD = $(GCCN64PREFIX)ld.exe
|
2014-06-28 22:10:11 -07:00
|
|
|
OBJCOPY = $(GCCN64PREFIX)objcopy
|
|
|
|
|
2021-09-23 19:52:42 -04:00
|
|
|
SRC = $(wildcard $(SRCDIR)/*.c)
|
|
|
|
|
|
|
|
OBJ = $(patsubst $(SRCDIR)/%.c, $(OBJDIR)/%.o, $(SRC))
|
|
|
|
|
|
|
|
all: $(PROG_NAME).v64
|
|
|
|
|
|
|
|
release: $(PROG_NAME).v64
|
2014-06-28 22:10:11 -07:00
|
|
|
|
2021-09-23 19:52:42 -04:00
|
|
|
debug: SET_DEBUG=-DDEBUG
|
|
|
|
debug: $(PROG_NAME).v64
|
|
|
|
|
|
|
|
send: $(PROG_NAME).v64
|
|
|
|
$(TOOLSDIR)/up.bat
|
2016-09-08 01:18:35 +01:00
|
|
|
|
2014-06-28 22:10:11 -07:00
|
|
|
|
2021-09-23 19:52:42 -04:00
|
|
|
$(PROG_NAME).v64: $(PROG_NAME).elf $(PROG_NAME).dfs
|
|
|
|
$(OBJCOPY) $(BINDIR)/$(PROG_NAME).elf $(BINDIR)/$(PROG_NAME).bin -O binary
|
|
|
|
$(N64TOOL) -l 4M -t $(HEADERTITLE) -h $(RESDIR)/$(HEADERNAME) -o $(BINDIR)/$(PROG_NAME).v64 $(BINDIR)/$(PROG_NAME).bin -s 1M $(BINDIR)/$(PROG_NAME).dfs
|
|
|
|
$(CHKSUM64) $(BINDIR)/$(PROG_NAME).v64
|
|
|
|
|
|
|
|
$(PROG_NAME).elf : $(OBJ) $(OBJS)
|
|
|
|
$(LD) -o $(BINDIR)/$(PROG_NAME).elf $(OBJ) $(OBJS) $(LINK_FLAGS)
|
2014-06-28 22:10:11 -07:00
|
|
|
|
2016-09-07 22:38:04 +01:00
|
|
|
$(PROG_NAME).dfs:
|
2021-09-23 19:52:42 -04:00
|
|
|
$(MKDFS) $(BINDIR)/$(PROG_NAME).dfs $(RESDIR)/filesystem/
|
2014-06-28 22:10:11 -07:00
|
|
|
|
2021-09-23 19:52:42 -04:00
|
|
|
$(OBJDIR)/gscore.o: $(SRCDIR)/gscore.c
|
|
|
|
$(CC) $(FLAGS_VT) -c $(SRCDIR)/gscore.c -o $(OBJDIR)/gscore.o
|
2014-06-28 22:10:11 -07:00
|
|
|
|
2021-09-23 19:52:42 -04:00
|
|
|
$(OBJDIR)/%.o : $(SRCDIR)/%.c
|
|
|
|
$(CC) $(FLAGS) -c $< -o $@
|
2016-09-07 22:11:50 +01:00
|
|
|
|
2021-09-23 19:52:42 -04:00
|
|
|
$(OBJDIR)/%.o : $(SRCDIR)/%.s
|
|
|
|
$(AS) $(ASFLAGS) $< -o $@
|
|
|
|
|
2016-09-07 22:11:50 +01:00
|
|
|
|
2014-06-28 22:10:11 -07:00
|
|
|
clean:
|
2021-09-23 19:52:42 -04:00
|
|
|
$(info "Cleaning $(PROG_NAME)...")
|
|
|
|
@$(RM) $(call FIXPATH,$(BINDIR)/$(PROG_NAME).v64)
|
|
|
|
@$(RM) $(call FIXPATH,$(BINDIR)/$(PROG_NAME).bin)
|
|
|
|
@$(RM) $(call FIXPATH,$(BINDIR)/$(PROG_NAME).elf)
|
|
|
|
@$(RM) $(call FIXPATH,$(OBJ))
|