1 EXECUTABLE_SUFFIX
= exe
4 FONT_SRC
:= unifontfull-5.1
.20080820.hex
9 OBJECTS
= $(patsubst %.
cpp,%.
$(OBJECT_SUFFIX
),$(wildcard generic
/*.
cpp)) $(patsubst %.
cpp,%.
$(OBJECT_SUFFIX
),$(wildcard avidump
/*.
cpp)) fonts
/font.
$(OBJECT_SUFFIX
)
13 GENERIC_LIBS
+= -lboost_iostreams
-lboost_filesystem
-lboost_system
-lz
14 CFLAGS
= $(USER_CFLAGS
)
15 HOSTCCFLAGS
= $(USER_HOSTCCFLAGS
)
16 LDFLAGS
= $(GENERIC_LIBS
) $(USER_LDFLAGS
)
20 PLATFORM_CFLAGS
= $(CFLAGS
)
21 PLATFORM_LDFLAGS
= $(LDFLAGS
)
23 PROGRAMS
= lsnes.
$(EXECUTABLE_SUFFIX
) movieinfo.
$(EXECUTABLE_SUFFIX
) lsnes-dumpavi.
$(EXECUTABLE_SUFFIX
) sdmp2sox.
$(EXECUTABLE_SUFFIX
)
30 OBJECTS
+= $(patsubst %.
cpp,%.
$(OBJECT_SUFFIX
),$(wildcard lua
/*.
cpp))
32 CFLAGS
+= $(shell pkg-config
$(LUAPACKAGE
) --cflags)
33 LDFLAGS
+= $(shell pkg-config
$(LUAPACKAGE
) --libs
)
38 ifdef NO_TIME_INTERCEPT
39 CFLAGS
+= -DNO_TIME_INTERCEPT
41 LDFLAGS
+= -Wl
,--wrap
,time
44 CFLAGS
+= -DNO_THREADS
47 CFLAGS
+= -DUSE_THREADS
50 CFLAGS
+= -DTEST_WIN32_CODE
53 CFLAGS
+= -DBSNES_IS_COMPAT
55 ifeq ($(JOYSTICK
), SDL
)
56 ifneq ($(GRAPHICS
), SDL
)
57 $(error
"SDL Joystick requires SDL graphics")
59 PLATFORM_OBJECTS
+= platform
/SDL
/joystick-sdl.
$(OBJECT_SUFFIX
)
61 ifeq ($(JOYSTICK
), DUMMY
)
62 CFLAGS
+= -DSDL_NO_JOYSTICK
63 PLATFORM_OBJECTS
+= platform
/dummy
/joystick-dummy.
$(OBJECT_SUFFIX
)
65 ifeq ($(JOYSTICK
), EVDEV
)
66 CFLAGS
+= -DSDL_NO_JOYSTICK
67 PLATFORM_OBJECTS
+= platform
/evdev
/joystick-evdev.
$(OBJECT_SUFFIX
) platform
/evdev
/axes.
$(OBJECT_SUFFIX
) platform
/evdev
/buttons.
$(OBJECT_SUFFIX
)
69 $(error
"Unsupported joystick type")
75 ifneq ($(GRAPHICS
), SDL
)
76 $(error
"SDL Sound requires SDL graphics")
78 PLATFORM_OBJECTS
+= platform
/SDL
/sound-sdl.
$(OBJECT_SUFFIX
)
80 ifeq ($(SOUND
), PORTAUDIO
)
81 PLATFORM_OBJECTS
+= platform
/portaudio
/sound-portaudio.
$(OBJECT_SUFFIX
)
82 PLATFORM_LDFLAGS
+= -lportaudio
84 ifeq ($(SOUND
), DUMMY
)
85 PLATFORM_OBJECTS
+= platform
/dummy
/sound-dummy.
$(OBJECT_SUFFIX
)
87 $(error
"Unsupported sound type")
92 ifeq ($(GRAPHICS
), SDL
)
93 LSNES_MAIN
= lsnes.
$(OBJECT_SUFFIX
)
94 PLATFORM_OBJECTS
+= platform
/SDL
/main-sdl.
$(OBJECT_SUFFIX
) platform
/SDL
/window-sdl.
$(OBJECT_SUFFIX
)
96 PLATFORM_CFLAGS
+= $(shell sdl-config
--cflags)
97 PLATFORM_LDFLAGS
+= $(shell sdl-config
--libs
)
100 PLATFORM_LDFLAGS
+= -lSDLmain
102 platform
/SDL
/%.
$(OBJECT_SUFFIX
): platform
/SDL
/%.
cpp
103 $(CC
) -I.
-Igeneric
-g
-std
=gnu
++0x
-I
$(BSNES_PATH
) -c
-o
$@
$< $(CFLAGS
) $(PLATFORM_CFLAGS
)
105 $(error
"Unsupported graphics type")
108 .PRECIOUS
: %.
$(EXECUTABLE_SUFFIX
) %.
$(OBJECT_SUFFIX
)
111 lsnes.
$(EXECUTABLE_SUFFIX
): $(OBJECTS
) $(PLATFORM_OBJECTS
)
112 $(CC
) -o
$@
$^
$(BSNES_PATH
)/out
/libsnes.
$(ARCHIVE_SUFFIX
) $(PLATFORM_LDFLAGS
)
114 %.
$(EXECUTABLE_SUFFIX
): %.
$(OBJECT_SUFFIX
) $(OBJECTS
) $(patsubst %.
cpp,%.
$(OBJECT_SUFFIX
),$(wildcard platform
/dummy
/*.
cpp))
115 $(CC
) -o
$@
$^
$(BSNES_PATH
)/out
/libsnes.
$(ARCHIVE_SUFFIX
) $(LDFLAGS
)
117 %.
$(OBJECT_SUFFIX
): %.
cpp
118 $(CC
) -I.
-Igeneric
-g
-std
=gnu
++0x
-I
$(BSNES_PATH
) -c
-o
$@
$< $(CFLAGS
)
120 fonts
/font.
$(OBJECT_SUFFIX
): fonts
/$(FONT_SRC
) fonts
/parsehexfont.
$(EXECUTABLE_SUFFIX
)
121 fonts
/parsehexfont.
$(EXECUTABLE_SUFFIX
) <fonts
/$(FONT_SRC
) >fonts
/font.
cpp
122 $(CC
) -std
=gnu
++0x
$(HOSTCCFLAGS
) -c
-o fonts
/font.
$(OBJECT_SUFFIX
) fonts
/font.
cpp
123 $(HOSTCC
) -std
=gnu
++0x
$(HOSTCCFLAGS
) -o fonts
/verifyhexfont.
$(EXECUTABLE_SUFFIX
) fonts
/verifyhexfont.
cpp fonts
/font.
cpp
124 fonts
/verifyhexfont.
$(EXECUTABLE_SUFFIX
)
126 fonts
/parsehexfont.
$(EXECUTABLE_SUFFIX
): fonts
/parsehexfont.
cpp
127 $(HOSTCC
) -std
=gnu
++0x
$(HOSTCCFLAGS
) -o
$@
$^
130 rm -f
$(PROGRAMS
) $(patsubst %.
$(EXECUTABLE_SUFFIX
),%.
$(OBJECT_SUFFIX
),$(PROGRAMS
)) platform
/*/*.
$(OBJECT_SUFFIX
) avidump
/*.
$(OBJECT_SUFFIX
) generic
/*.
$(OBJECT_SUFFIX
) lua
/*.
$(OBJECT_SUFFIX
) fonts
/font.o fonts
/font.
cpp