aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile202
1 files changed, 97 insertions, 105 deletions
diff --git a/Makefile b/Makefile
index cc24000..7cbb503 100644
--- a/Makefile
+++ b/Makefile
@@ -1,124 +1,116 @@
-#1-0----------------------------------------------------------------------------
-
-DS2SDKPATH :=/opt/ds2sdk
-
-#The name final target
-TARGET := CATSFC
-#The directory where object files & intermediate files will be placed
-BUILD := build
-
-#1-1----------------------------------------------------------------------------
-ifneq ($(BUILD),$(notdir $(CURDIR)))
-#-------------------------------------------------------------------------------
-
-export OUTPUT := $(CURDIR)/$(TARGET)
-
-.PHONY: $(BUILD) clean
-
-#---------------------------------------------------------------------------------
-$(BUILD):
- @[ -d $@ ] || mkdir -p $@
- $(MAKE) -C $(BUILD) -f $(CURDIR)/Makefile
-
-#---------------------------------------------------------------------------------
-clean:
- rm -fr $(BUILD) $(OUTPUT).plg
-
-#---------------------------------------------------------------------------------
-
-#1-1----------------------------------------------------------------------------
-else
-#-------------------------------------------------------------------------------
-
-# CROSS :=#
-CROSS := /opt/mipsel-4.1.2-nopic/bin/
-
-CC = $(CROSS)mipsel-linux-gcc
-AR = $(CROSS)mipsel-linux-ar rcsv
-LD = $(CROSS)mipsel-linux-ld
-OBJCOPY = $(CROSS)mipsel-linux-objcopy
-NM = $(CROSS)mipsel-linux-nm
-OBJDUMP = $(CROSS)mipsel-linux-objdump
-
-TOPDIR = ./..
-SFCDIR = $(TOPDIR)/source
-
-FS_DIR = $(DS2SDKPATH)/libsrc/fs
-CONSOLE_DIR = $(DS2SDKPATH)/libsrc/console
-KEY_DIR = $(DS2SDKPATH)/libsrc/key
-ZLIB_DIR = $(DS2SDKPATH)/libsrc/zlib
-
-SRC :=
-
-
-SSRC :=
-
-LIBS := $(DS2SDKPATH)/lib/libds2b.a -lc -lm -lgcc
-EXTLIBS := $(DS2SDKPATH)/lib/libds2a.a
-
-INC := -I$(DS2SDKPATH)/include -I$(FS_DIR) -I$(CONSOLE_DIR) -I$(KEY_DIR) -I$(ZLIB_DIR)
-
+# - - - Modifiable paths - - -
+DS2SDKPATH := /opt/ds2sdk
+CROSS := /opt/mipsel-4.1.2-nopic/bin/mipsel-linux-
+
+# - - - Libraries and includes - - -
+FS_DIR = $(DS2SDKPATH)/libsrc/fs
+CONSOLE_DIR = $(DS2SDKPATH)/libsrc/console
+KEY_DIR = $(DS2SDKPATH)/libsrc/key
+ZLIB_DIR = $(DS2SDKPATH)/libsrc/zlib
+
+LIBS := $(DS2SDKPATH)/lib/libds2b.a -lc -lm -lgcc
+EXTLIBS := $(DS2SDKPATH)/lib/libds2a.a
+
+INCLUDE := -Isource -Isource/unzip -Isource/nds -I$(DS2SDKPATH)/include \
+ -I$(FS_DIR) -I$(CONSOLE_DIR) -I$(KEY_DIR) -I$(ZLIB_DIR)
+
+LINK_SPEC := $(DS2SDKPATH)/specs/link.xn
+START_ASM := $(DS2SDKPATH)/specs/start.S
+START_O := start.o
+
+# - - - Names - - -
+OUTPUT := catsfc
+PLUGIN_DIR := CATSFC
+
+# - - - Tools - - -
+CC = $(CROSS)gcc
+AR = $(CROSS)ar rcsv
+LD = $(CROSS)ld
+OBJCOPY = $(CROSS)objcopy
+NM = $(CROSS)nm
+OBJDUMP = $(CROSS)objdump
+
+# - - - Sources and objects - - -
+C_SOURCES = source/unicode.c \
+ source/unzip/explode.c source/unzip/unreduce.c \
+ source/unzip/unshrink.c source/unzip/unzip.c \
+ source/nds/bdf_font.c source/nds/bitmap.c source/nds/charsets.c \
+ source/nds/draw.c source/nds/ds2_main.c source/nds/gcheat.c \
+ source/nds/gui.c
+CPP_SOURCES = source/apu.cpp source/apudebug.cpp source/c4.cpp \
+ source/c4emu.cpp source/cheats2.cpp source/cheats.cpp \
+ source/clip.cpp source/cpu.cpp source/cpuexec.cpp \
+ source/cpuops.cpp source/data.cpp source/debug.cpp \
+ source/dma.cpp source/dsp1.cpp \
+ source/fxdbg.cpp source/fxemu.cpp source/fxinst.cpp \
+ source/gfx.cpp source/globals.cpp source/loadzip.cpp \
+ source/memmap.cpp source/movie.cpp source/netplay.cpp \
+ source/obc1.cpp source/offsets.cpp source/ppu.cpp \
+ source/sa1.cpp source/sa1cpu.cpp source/screenshot.cpp \
+ source/sdd1.cpp source/sdd1emu.cpp source/server.cpp \
+ source/seta010.cpp source/seta011.cpp source/seta018.cpp \
+ source/seta.cpp source/snaporig.cpp source/snapshot.cpp \
+ source/snes9x.cpp source/soundux.cpp \
+ source/spc700.cpp source/spc7110.cpp \
+ source/srtc.cpp \
+ source/tile.cpp source/nds/cheats3.cpp \
+ source/nds/displaymodes.cpp source/nds/entry.cpp
+# spctool.cpp, sound.cpp, dsp* except dsp1.cpp, spc.cpp, spccycles.cpp have been deleted!
+SOURCES = $(C_SOURCES) $(CPP_SOURCES)
+C_OBJECTS = $(C_SOURCES:.c=.o)
+CPP_OBJECTS = $(CPP_SOURCES:.cpp=.o)
+OBJECTS = $(C_OBJECTS) $(CPP_OBJECTS)
+
+# - - - Compilation flags - - -
CFLAGS := -mips32 -Os -mno-abicalls -fno-pic -fno-builtin \
- -fno-exceptions -fno-function-sections -mlong-calls\
- -fomit-frame-pointer -msoft-float -G 4
-
-
+ -fno-exceptions -fno-function-sections -mlong-calls \
+ -fomit-frame-pointer -msoft-float -G 4
-LINKS := $(DS2SDKPATH)/specs/link.xn
-STARTS := $(DS2SDKPATH)/specs/start.S
-STARTO := start.o
+DEFS := -DSPC700_C -DEXECUTE_SUPERFX_PER_LINE -DSDD1_DECOMP \
+ -DVAR_CYCLES -DCPU_SHUTDOWN -DSPC700_SHUTDOWN \
+ -DNO_INLINE_SET_GET -DNOASM -DHAVE_MKSTEMP '-DACCEPT_SIZE_T=size_t' \
+ -DUNZIP_SUPPORT
-include $(SFCDIR)/sfc.mk
+.PHONY: clean makedirs
+.SUFFIXES: .elf .dat .plg
-OBJS := $(addsuffix .o , $(basename $(notdir $(SRC))))
-SOBJS := $(addsuffix .o , $(basename $(notdir $(SSRC))))
+all: $(OUTPUT).plg makedirs
-# OBJS := $(SRC:.c=.o)
-# SOBJS := $(SSRC:.S=.o)
+# $< is the source (OUTPUT.dat); $@ is the target (OUTPUT.plg)
+.dat.plg:
+ $(DS2SDKPATH)/tools/makeplug $< $@
+# $< is the source (OUTPUT.elf); $@ is the target (OUTPUT.dat)
+.elf.dat:
+ $(OBJCOPY) -x -O binary $< $@
-APP := sfc.elf
+$(OUTPUT).elf: Makefile $(OBJECTS) $(START_O) $(LINK_SPEC) $(EXTLIBS)
+ $(CC) -nostdlib -static -T $(LINK_SPEC) -o $@ $(START_O) $(OBJECTS) $(EXTLIBS) $(LIBS)
+$(EXTLIBS):
+ $(MAKE) -C $(DS2SDKPATH)/source/
-all: $(APP)
- @echo $(INC)
- $(OBJCOPY) -x -O binary $(APP) sfc.dat
- $(DS2SDKPATH)/tools/makeplug sfc.dat $(OUTPUT).plg
-# but also, if you want to debug even more
-# $(OBJDUMP) -d $(APP) > sfc.dump
-# $(NM) $(APP) | sort > sfc.sym
-# $(OBJDUMP) -h $(APP) > sfc.map
+$(START_O): $(START_ASM)
+ $(CC) $(CFLAGS) $(INCLUDE) -o $@ -c $<
-$(APP): depend $(SOBJS) $(OBJS) $(STARTO) $(LINKS) $(EXTLIBS)
- $(CC) -nostdlib -static -T $(LINKS) -o $@ $(STARTO) $(SOBJS) $(OBJS) $(EXTLIBS) $(LIBS)
+makedirs:
+ -mkdir $(PLUGIN_DIR)/gamepak
+ -mkdir $(PLUGIN_DIR)/gamecht
+ -mkdir $(PLUGIN_DIR)/gamerts
+ -mkdir $(PLUGIN_DIR)/gamepic
-$(EXTLIBS):
- make -C $(DS2SDKPATH)/source/
-
-$(STARTO):
- $(CC) $(CFLAGS) $(INC) -o $@ -c $(STARTS)
+clean:
+ -rm -rf $(OUTPUT).plg $(OUTPUT).dat $(OUTPUT).elf depend $(OBJECTS)
.c.o:
- $(CC) $(CFLAGS) $(INC) -o $@ -c $<
+ $(CC) $(CFLAGS) $(INCLUDE) $(DEFS) -o $@ -c $<
.cpp.o:
- $(CC) $(CFLAGS) $(INC) -fno-rtti -o $@ -c $<
-.S.o:
- $(CC) $(CFLAGS) $(INC) -D_ASSEMBLER_ -D__ASSEMBLY__ -o $@ -c $<
-
-clean:
- rm -fr *.o $(OBJS) $(OTHER) *.bin *.sym *.map *.dump *.lib
- rm depend
-
-# depend: Makefile $(OBJS:.o=.c) $(SOBJS:.o=.S)
+ $(CC) $(CFLAGS) $(INCLUDE) $(DEFS) -fno-rtti -o $@ -c $<
Makefile: depend
- touch $@
-depend: $(SSRC) $(SRC)
- $(CC) -MM $(CFLAGS) $(INC) $(SSRC) $(SRC) > $@
+depend: $(SOURCES)
+ $(CC) -MM $(CFLAGS) $(INCLUDE) $(DEFS) $(SOURCES) > $@
+ touch Makefile
-include depend
-
-#1-1----------------------------------------------------------------------------
-endif
-#-------------------------------------------------------------------------------