new controls dialog; using gconf instead of hgw
[drnoksnes] / Makefile
1 #!/usr/bin/make
2
3 CPPFLAGS := -I. $(shell sdl-config --cflags) $(shell pkg-config --cflags x11)
4 LDLIBS := -lz $(shell sdl-config --libs) $(shell pkg-config --libs x11) -lpopt
5
6 -include config.mk
7
8 # Sane defaults
9 CONF_GUI?=1
10 # Use Hildon Games Wrapper library
11 CONF_HGW?=$(CONF_GUI)
12 ifeq ($(ARCH),armel)
13         CONF_BUILD_ASM_CPU?=1
14         CONF_BUILD_ASM_SPC700?=1
15         CONF_BUILD_ASM_SA1?=0   # Still not there
16         CONF_BUILD_MISC_ROUTINES?=misc_armel
17 else ifeq ($(ARCH),i386)
18         CONF_BUILD_ASM_CPU?=0
19         CONF_BUILD_ASM_SPC700?=0
20         CONF_BUILD_ASM_SA1?=0
21         CONF_BUILD_MISC_ROUTINES?=misc_i386
22 endif
23 # Hardware pixel doubling (in N8x0)
24 CONF_XSP?=0
25 # Hildon Desktop compositing (in Fremantle)
26 CONF_HD?=0
27
28 # SNES stuff
29 OBJS = apu.o c4.o c4emu.o cheats.o cheats2.o clip.o cpu.o cpuexec.o data.o
30 OBJS += dma.o dsp1.o font.o fxemu.o fxinst.o gfx.o globals.o loadzip.o memmap.o 
31 OBJS += ppu.o sa1.o sdd1.o sdd1emu.o snapshot.o soundux.o spc700.o srtc.o tile.o
32
33 ifeq ($(CONF_BUILD_ASM_CPU), 1)
34         # ASM CPU Core from yoyofr's OpenSnes9X
35         OBJS += os9x_asm_cpu.o os9x_65c816.o
36         CPPFLAGS += -DCONF_BUILD_ASM_CPU=1
37 else
38         OBJS += cpuops.o
39 endif
40
41 ifeq ($(CONF_BUILD_ASM_SPC700), 1)
42         OBJS += spc700a.o
43         CPPFLAGS += -DCONF_BUILD_ASM_SPC700=1
44 endif
45
46 ifeq ($(CONF_BUILD_ASM_SA1), 1)
47         crash
48 else
49         OBJS += sa1cpu.o
50 endif
51
52 OBJS += $(CONF_BUILD_MISC_ROUTINES).o
53
54 # from open-whatever sdk
55 OBJS += unzip.o ioapi.o
56 # my extensions to snes9x (speedhacks support)
57 OBJS += hacks.o
58 # the glue code that sticks it all together in a monstruous way
59 OBJS += platform/path.o platform/config.o
60 OBJS += platform/sdl.o platform/sdlv.o platform/sdla.o platform/sdli.o
61 OBJS += platform/sdlvscalers.o
62
63 ifeq ($(CONF_XSP), 1)
64         CPPFLAGS += -DCONF_XSP=1 $(shell pkg-config --cflags xsp)
65         LDLIBS += $(shell pkg-config --libs xsp)
66 endif
67 ifeq ($(CONF_HD), 1)
68         CPPFLAGS += -DCONF_HD=1
69         LDLIBS += -lSDL_haa
70         CONF_EXIT_BUTTON ?= 1
71 endif
72 ifeq ($(CONF_HGW), 1)
73         CPPFLAGS += -DCONF_HGW=1 -I/usr/include/hgw $(shell pkg-config --cflags gconf-2.0)
74         LDLIBS += -lhgw $(shell pkg-config --libs gconf-2.0)
75         OBJS += platform/hgw.o
76 endif
77 ifeq ($(CONF_EXIT_BUTTON), 1)
78         CPPFLAGS += -DCONF_EXIT_BUTTON=1
79         LDLIBS += -lSDL_image
80         OBJS += platform/sdlvexit.o
81 endif
82
83 # automatic dependencies
84 DEPS := $(OBJS:.o=.d)
85
86 all: drnoksnes
87
88 clean:
89         rm -f drnoksnes *.o *.d platform/*.o platform/*.d
90         rm -f build-stamp configure-stamp
91
92 remake: clean deps all
93
94 -include $(DEPS)
95
96 drnoksnes: $(OBJS)
97         $(CXX) $(CXXFLAGS) $(LDFLAGS) $^ $(LDLIBS) -o $@
98
99 install: drnoksnes
100         install drnoksnes $(DESTDIR)/usr/games
101
102 deps: $(DEPS)
103 %.d: %.cpp
104         @$(CXX) $(CPPFLAGS) -MM $^ -MF $@ -MT $@ -MT $*.o
105 %.d: %.c
106         @$(CC) $(CPPFLAGS) -MM $^ -MF $@ -MT $@ -MT $*.o
107 %.d: %.s
108         @touch $@
109
110 # GUI
111 gui:
112         $(MAKE) -C gui all
113
114 gui_clean:
115         $(MAKE) -C gui clean
116         
117 gui_install:
118         $(MAKE) -C gui install DESTDIR="$(DESTDIR)"
119         
120 ifeq ($(CONF_GUI), 1)
121 all: gui
122 clean: gui_clean
123 install: gui_install
124 endif
125
126 distclean: clean
127         rm -f config.mk
128
129 .PHONY: all clean remake deps install gui gui_clean distclean
130