#!/usr/bin/make
-CPPFLAGS := -I. $(shell sdl-config --cflags) $(shell pkg-config --cflags x11) -I/usr/include/hgw
-LDLIBS := -lz $(shell sdl-config --libs) $(shell pkg-config --libs x11) -lpopt -lhgw
+CPPFLAGS := -I. $(shell sdl-config --cflags) $(shell pkg-config --cflags x11)
+LDLIBS := -lz $(shell sdl-config --libs) $(shell pkg-config --libs x11) -lpopt
-include config.mk
-# GUI needs this
-export DESTDIR
-
-# Configuration settings
-CONF_BUILD_ASM_CPU=0
-CONF_BUILD_ASM_SPC700=0
-CONF_BUILD_ASM_SA1=0 # Still not there
-CONF_XSP=0
-
-# Sane defaults (override if needed)
+# Sane defaults
+CONF_GUI?=1
ifeq ($(ARCH),armel)
- CONF_BUILD_ASM_CPU=1
- CONF_BUILD_ASM_SPC700=1
- CONF_XSP=1
- CONF_BUILD_MISC_ROUTINES=misc_armel
+ CONF_BUILD_ASM_CPU?=1
+ CONF_BUILD_ASM_SPC700?=1
+ CONF_BUILD_ASM_SA1?=0 # Still not there
+ CONF_BUILD_MISC_ROUTINES?=misc_armel
else ifeq ($(ARCH),i386)
- CONF_BUILD_MISC_ROUTINES=misc_i386
+ CONF_BUILD_ASM_CPU?=0
+ CONF_BUILD_ASM_SPC700?=0
+ CONF_BUILD_ASM_SA1?=0
+ CONF_BUILD_MISC_ROUTINES?=misc_i386
+else ifeq ($(ARCH),amd64)
+ CONF_BUILD_ASM_CPU?=0
+ CONF_BUILD_ASM_SPC700?=0
+ CONF_BUILD_ASM_SA1?=0
+ CONF_BUILD_MISC_ROUTINES?=misc_amd64
endif
+# Hardware pixel doubling (in N8x0)
+CONF_XSP?=0
+# Hildon Desktop compositing (in Fremantle)
+CONF_HD?=0
+# Link to libzeemote
+CONF_ZEEMOTE?=0
# SNES stuff
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 += sa1.o sdd1.o sdd1emu.o snapshot.o soundux.o spc700.o srtc.o tile.o
+OBJS += dma.o dsp1.o font.o fxemu.o fxinst.o gfx.o globals.o loadzip.o memmap.o
+OBJS += ppu.o 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 += sa1cpu.o
endif
-ifeq ($(CONF_XSP), 1)
- CPPFLAGS += -DCONF_XSP=1 $(shell pkg-config --cflags xsp)
- LDLIBS += $(shell pkg-config --libs xsp)
-endif
-
OBJS += $(CONF_BUILD_MISC_ROUTINES).o
# from open-whatever sdk
# 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/config.o platform/hgw.o
+OBJS += platform/path.o platform/config.o
OBJS += platform/sdl.o platform/sdlv.o platform/sdla.o platform/sdli.o
+OBJS += platform/sdlvscalers.o
+
+ifeq ($(CONF_XSP), 1)
+ CPPFLAGS += -DCONF_XSP=1 $(shell pkg-config --cflags xsp)
+ LDLIBS += $(shell pkg-config --libs xsp)
+endif
+ifeq ($(CONF_HD), 1)
+ CPPFLAGS += -DCONF_HD=1
+ LDLIBS += -lSDL_haa
+ CONF_EXIT_BUTTON ?= 1
+endif
+ifeq ($(CONF_GUI), 1)
+ CPPFLAGS += -DCONF_GUI=1 $(shell pkg-config --cflags libosso gconf-2.0)
+ LDLIBS += $(shell pkg-config --libs libosso gconf-2.0)
+ OBJS += platform/osso.o
+endif
+ifeq ($(CONF_EXIT_BUTTON), 1)
+ CPPFLAGS += -DCONF_EXIT_BUTTON=1
+ LDLIBS += -lSDL_image
+ OBJS += platform/sdlvexit.o
+endif
+ifeq ($(CONF_ZEEMOTE), 1)
+ CPPFLAGS += -DCONF_ZEEMOTE=1
+ LDLIBS += -lzeemote -lzeemote-conf -lbluetooth
+ OBJS += platform/zeemote.o
+endif
# automatic dependencies
DEPS := $(OBJS:.o=.d)
-all: drnoksnes gui
+all: drnoksnes
-clean: gui_clean
+clean:
rm -f drnoksnes *.o *.d platform/*.o platform/*.d
rm -f build-stamp configure-stamp
+ echo "$(OBJS)"
remake: clean deps all
install: drnoksnes
install drnoksnes $(DESTDIR)/usr/games
- $(MAKE) -C gui install
deps: $(DEPS)
%.d: %.cpp
%.d: %.s
@touch $@
+# GUI
gui:
$(MAKE) -C gui all
gui_clean:
$(MAKE) -C gui clean
+
+gui_install:
+ $(MAKE) -C gui install DESTDIR="$(DESTDIR)"
+
+ifeq ($(CONF_GUI), 1)
+all: gui
+clean: gui_clean
+install: gui_install
+endif
+
+profclean: clean
+ find . -name '*.gcno' -delete
+ find . -name '*.gcda' -delete
+
+distclean: profclean clean
+ rm -f config.mk
-.PHONY: all clean remake deps install gui gui_clean
+.PHONY: all clean remake deps install gui gui_clean distclean