summaryrefslogtreecommitdiff
path: root/src/Makefile.gp2x
diff options
context:
space:
mode:
Diffstat (limited to 'src/Makefile.gp2x')
-rw-r--r--src/Makefile.gp2x105
1 files changed, 105 insertions, 0 deletions
diff --git a/src/Makefile.gp2x b/src/Makefile.gp2x
new file mode 100644
index 0000000..ecc07fd
--- /dev/null
+++ b/src/Makefile.gp2x
@@ -0,0 +1,105 @@
+COPT = -mcpu=arm926ej-s -mtune=arm926ej-s -static -g -D__WIZ__
+COPT += -DASMCPU
+COPT += -DARM
+COPT += -DVAR_CYCLES
+#COPT += -D_C_GW_
+#COPT = -DUSE_SA1
+COPT += -O3
+# -DFAST_LSB_WORD_ACCESS
+COPT += -ffast-math -msoft-float
+COPT += -finline -finline-functions -fexpensive-optimizations
+COPT += -falign-functions=16 -falign-loops -falign-labels
+#COPT += -falign-jumps
+COPT += -fomit-frame-pointer
+COPT += -fstrict-aliasing -mstructure-size-boundary=32 -fweb -fsigned-char -frename-registers
+SDK = /opt/openwiz/toolchain/arm-openwiz-linux-gnu
+TOOLS = $(SDK)/bin
+ARCH = arm-openwiz-linux-gnu-
+GCC = $(TOOLS)/$(ARCH)gcc
+STRIP = $(TOOLS)/$(ARCH)strip
+ADSASM = $(TOOLS)/$(ARCH)as
+COPT += -I$(SDK)/include
+COPT += -L$(SDK)/lib
+#COPT += -fprofile-generate
+#COPT += -fprofile-use
+#
+# SNES stuff (c-based)
+#
+OBJS = memset.o memcpy.o
+OBJS += 2xsaiwin.o apu.o c4.o c4emu.o cheats.o cheats2.o clip.o data.o
+OBJS += dsp1.o fxemu.o fxinst.o globals.o loadzip.o ppu.o
+OBJS += dma.o memmap.o
+OBJS += cpu.o cpuexec.o
+OBJS += cpuops.o
+# OBJS += sa1.o sa1cpu.o
+OBJS += sdd1.o sdd1emu.o snapshot.o soundux.o spc_decode.o spc700.o spc700a.o srtc.o
+OBJS += tile16.o tile16add.cpp tile16sub.cpp gfx16.o
+OBJS += os9x_65c816.o os9x_asm_cpu.o
+OBJS += usbjoy.o
+#
+# and some asm from LJP...
+#
+OBJS += m3d_func.o
+#
+# Dave's minimal SDK
+#
+OBJS += wiz_sdk.o warm.o menu.o input.o gp2x_menutile.o gp2x_highlightbar.o \
+ gp2x_menu_header.o unzip.o ioapi.o squidgehack.o zip.o asm_util.o pollux_set.o
+
+#
+# and the glue code that sticks it all together :)
+#
+OBJS += main.o
+
+# Inopia's menu system, hacked for the GP2X under rlyeh's sdk
+PRELIBS = -lpthread -lz $(LIBS)
+
+all: pocketsnes.gpe
+clean: tidy pocketsnes.gpe
+
+.c.o:
+ $(GCC) $(COPT) -c $< -o $@
+
+.cpp.o:
+ $(GCC) $(COPT) -c $< -o $@
+
+# make seems to lowercase the extensions, so files with '.S' end up being passed to the compiler as '.s', which means thousands of errors.
+# this is a small workaround.
+
+spc700a.o: spc700a.s
+ $(GCC) $(COPT) -c $< -o $@
+
+os9x_65c816.o: os9x_65c816.s
+ $(GCC) $(COPT) -c $< -o $@
+
+osnes9xgp_asmfunc.o: osnes9xgp_asmfunc.s
+ $(GCC) $(COPT) -c $< -o $@
+
+m3d_func.o: m3d_func.S
+ $(GCC) $(COPT) -c $< -o $@
+
+spc_decode.o: spc_decode.S
+ $(GCC) $(COPT) -c $< -o $@
+
+memset.o: memset.s
+ $(GCC) $(COPT) -c $< -o $@
+
+#sa1_asm.o: sa1_asm.s
+# $(GCC) $(COPT) -c $< -o $@
+
+memcpy.o: memcpy.s
+ $(GCC) $(COPT) -c $< -o $@
+
+dspMixer.o: dspMixer.s
+ $(GCC) $(COPT) -c $< -o $@
+
+asm_util.o: asm_util.S
+ $(GCC) $(COPT) -c $< -o $@
+
+pocketsnesd.gpe: $(OBJS)
+ $(GCC) $(COPT) $(OBJS) $(PRELIBS) -o $@ -lstdc++ -lm
+
+pocketsnes.gpe: pocketsnesd.gpe
+ $(STRIP) pocketsnesd.gpe -o pocketsnes_wiz_fast.gpe
+tidy:
+ rm *.o