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
)
10 GENERIC_LIBS
= -ldl
-lboost_iostreams
-lboost_filesystem
-lboost_system
-lz
11 CFLAGS
= $(USER_CFLAGS
)
12 HOSTCCFLAGS
= $(USER_HOSTCCFLAGS
)
13 LDFLAGS
= $(GENERIC_LIBS
) $(USER_LDFLAGS
)
17 PLATFORM_CFLAGS
= $(CFLAGS
)
18 PLATFORM_LDFLAGS
= $(LDFLAGS
)
20 PROGRAMS
= lsnes.
$(EXECUTABLE_SUFFIX
) movieinfo.
$(EXECUTABLE_SUFFIX
) lsnes-dumpavi.
$(EXECUTABLE_SUFFIX
) sdmp2sox.
$(EXECUTABLE_SUFFIX
)
27 OBJECTS
+= $(patsubst %.
cpp,%.
$(OBJECT_SUFFIX
),$(wildcard lua
/*.
cpp))
28 CFLAGS
+= $(shell pkg-config
$(LUAPACKAGE
) --cflags)
29 LDFLAGS
+= $(shell pkg-config
$(LUAPACKAGE
) --libs
)
33 ifdef NO_TIME_INTERCEPT
34 CFLAGS
+= -DNO_TIME_INTERCEPT
36 LDFLAGS
+= -Wl
,--wrap
,time
39 CFLAGS
+= -DNO_THREADS
42 CFLAGS
+= -DUSE_THREADS
45 CFLAGS
+= -DTEST_WIN32_CODE
48 CFLAGS
+= -DBSNES_IS_COMPAT
50 ifeq ($(JOYSTICK
), SDL
)
51 PLATFORM_OBJECTS
+= SDL
/joystick-sdl.
$(OBJECT_SUFFIX
)
53 ifeq ($(JOYSTICK
), DUMMY
)
54 PLATFORM_OBJECTS
+= dummy
/joystick-dummy.
$(OBJECT_SUFFIX
)
56 $(error
"Unsupported joystick type")
61 PLATFORM_OBJECTS
+= SDL
/sound-sdl.
$(OBJECT_SUFFIX
)
63 ifeq ($(SOUND
), PORTAUDIO
)
64 PLATFORM_OBJECTS
+= portaudio
/sound-portaudio.
$(OBJECT_SUFFIX
)
65 PLATFORM_LDFLAGS
+= -lportaudio
67 ifeq ($(SOUND
), DUMMY
)
68 PLATFORM_OBJECTS
+= dummy
/sound-dummy.
$(OBJECT_SUFFIX
)
70 $(error
"Unsupported sound type")
75 ifeq ($(GRAPHICS
), SDL
)
76 ifneq ($(JOYSTICK
), SDL
)
77 $(error
"SDL graphics requires SDL joystick)
79 LSNES_MAIN = lsnes.$(OBJECT_SUFFIX)
80 PLATFORM_OBJECTS += SDL/window-sdl.$(OBJECT_SUFFIX)
81 PLATFORM_CFLAGS += $(shell sdl-config --cflags)
82 PLATFORM_LDFLAGS += $(shell sdl-config --libs)
84 PLATFORM_LDFLAGS += -lSDLmain
86 SDL/%.$(OBJECT_SUFFIX): SDL/%.cpp
87 $(CC) -I. -Igeneric -g -std=gnu++0x -I$(BSNES_PATH) -c -o $@ $< $(CFLAGS) $(PLATFORM_CFLAGS)
88 lsnes.$(OBJECT_SUFFIX): lsnes.cpp
89 $(CC) -I. -Igeneric -g -std=gnu++0x -I$(BSNES_PATH) -c -o $@ $< $(CFLAGS) $(PLATFORM_CFLAGS)
90 lsnes.$(EXECUTABLE_SUFFIX): lsnes.$(OBJECT_SUFFIX) $(OBJECTS) $(PLATFORM_OBJECTS)
91 $(CC) -o $@ $^ $(BSNES_PATH)/out/libsnes.$(ARCHIVE_SUFFIX) $(LDFLAGS) $(PLATFORM_LDFLAGS)
93 $(error "Unsupported graphics type
")
100 .PRECIOUS: %.$(EXECUTABLE_SUFFIX) %.$(OBJECT_SUFFIX)
104 %.$(EXECUTABLE_SUFFIX): %.$(OBJECT_SUFFIX) $(OBJECTS) $(patsubst %.cpp,%.$(OBJECT_SUFFIX),$(wildcard dummy/*.cpp))
105 $(CC) -o $@ $^ $(BSNES_PATH)/out/libsnes.$(ARCHIVE_SUFFIX) $(LDFLAGS)
107 %.$(OBJECT_SUFFIX): %.cpp
108 $(CC) -I. -Igeneric -g -std=gnu++0x -I$(BSNES_PATH) -c -o $@ $< $(CFLAGS)
110 fonts/font.$(OBJECT_SUFFIX): fonts/$(FONT_SRC) fonts/parsehexfont.$(EXECUTABLE_SUFFIX)
111 fonts/parsehexfont.$(EXECUTABLE_SUFFIX) <fonts/$(FONT_SRC) >fonts/font.cpp
112 $(CC) -std=gnu++0x $(HOSTCCFLAGS) -c -o fonts/font.$(OBJECT_SUFFIX) fonts/font.cpp
113 $(HOSTCC) -std=gnu++0x $(HOSTCCFLAGS) -o fonts/verifyhexfont.$(EXECUTABLE_SUFFIX) fonts/verifyhexfont.cpp fonts/font.cpp
114 fonts/verifyhexfont.$(EXECUTABLE_SUFFIX)
116 fonts/parsehexfont.$(EXECUTABLE_SUFFIX): fonts/parsehexfont.cpp
117 $(HOSTCC) -std=gnu++0x $(HOSTCCFLAGS) -o $@ $^
120 rm -f $(PROGRAMS) $(patsubst %.$(EXECUTABLE_SUFFIX),%.$(OBJECT_SUFFIX),$(PROGRAMS)) SDL/*.$(OBJECT_SUFFIX) avidump/*.$(OBJECT_SUFFIX) generic/*.$(OBJECT_SUFFIX) lua/*.$(OBJECT_SUFFIX) fonts/font.o fonts/font.cpp