LDLIBS := -lz $(shell sdl-config --libs) $(shell pkg-config --libs x11 xsp) -lpopt -lhgw
# Default CFLAGS for building in N8x0
+ARCH ?= armel
CFLAGS ?= -DMAEMO -DMAEMO_VERSION=4 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -mfloat-abi=softfp -O2 -g -Wall -static-libgcc
ASFLAGS ?= -march=armv6j -mfpu=vfp -mfloat-abi=softfp -g
CXXFLAGS ?= $(CFLAGS)
+# Default CFLAGS for building in PC
+#ARCH := i386
+#CFLAGS := -DMAEMO -DMAEMO_VERSION=4 -O2 -g -Wall
+#ASFLAGS := -g
+#CXXFLAGS := $(CFLAGS)
+
GAME_VERSION ?= $(shell head -n 1 debian/changelog | sed 's/[^0-9.-]//g')-git
export GAME_VERSION
export DESTDIR
+# Configuration settings
+CONF_BUILD_ASM_CPU=0
+CONF_BUILD_ASM_SPC700=0
+CONF_BUILD_ASM_SA1=0 # Still not there
+
+ifeq ($(ARCH),armel)
+ CONF_BUILD_ASM_CPU=1
+ CONF_BUILD_ASM_SPC700=1
+ CONF_BUILD_MISC_ROUTINES=misc_armel
+else ifeq ($(ARCH),i386)
+ CONF_BUILD_MISC_ROUTINES=misc_i386
+endif
+
# SNES stuff
-OBJS = 2xsaiwin.o apu.o c4.o c4emu.o cheats.o cheats2.o clip.o cpu.o cpuexec.o data.o
+OBJS = apu.o c4.o c4emu.o cheats.o cheats2.o clip.o cpu.o cpuexec.o data.o
OBJS += dma.o dsp1.o fxemu.o fxinst.o gfx.o globals.o loadzip.o memmap.o netplay.o ppu.o
-OBJS += sdd1.o sdd1emu.o snapshot.o soundux.o spc700.o srtc.o tile.o
-# ASM CPU Core, ripped from Yoyo's OpenSnes9X
-OBJS += os9x_asm_cpu.o os9x_65c816.o spc700a.o
-# and some asm from LJP...
-OBJS += m3d_func.o misc.o
+OBJS += sa1.o sdd1.o sdd1emu.o snapshot.o soundux.o spc700.o srtc.o tile.o
+
+ifeq ($(CONF_BUILD_ASM_CPU), 1)
+ # ASM CPU Core from yoyofr's OpenSnes9X
+ OBJS += os9x_asm_cpu.o os9x_65c816.o
+ CPPFLAGS += -DCONF_BUILD_ASM_CPU=1
+else
+ OBJS += cpuops.o
+endif
+
+ifeq ($(CONF_BUILD_ASM_SPC700), 1)
+ OBJS += spc700a.o
+ CPPFLAGS += -DCONF_BUILD_ASM_SPC700=1
+endif
+
+ifeq ($(CONF_BUILD_ASM_SA1), 1)
+ crash
+else
+ OBJS += sa1cpu.o
+endif
+
+OBJS += $(CONF_BUILD_MISC_ROUTINES).o
+
# from open-whatever sdk
OBJS += unzip.o ioapi.o
-# my own extensions to snes9x
+# my extensions to snes9x (speedhacks support)
OBJS += hacks.o
# the glue code that sticks it all together in a monstruous way
-OBJS += platform/path.o platform/statef.o platform/config.o
+OBJS += platform/path.o platform/config.o platform/hgw.o
OBJS += platform/sdl.o platform/sdlv.o platform/sdla.o platform/sdli.o
-OBJS += platform/hgw.o
# automatic dependencies
DEPS := $(OBJS:.o=.d)
$(MAKE) -C gui clean
.PHONY: all clean remake deps install gui gui_clean
+