Small documentation fixups regarding joysticks/gamepads
[lsnes.git] / Makefile
blob9859e9e90dcd6b4309a2abb003b002790d7cda0b
1 EXECUTABLE_SUFFIX = exe
2 OBJECT_SUFFIX = o
3 ARCHIVE_SUFFIX = a
4 FONT_SRC := unifontfull-5.1.20080820.hex
5 CC := g++-4.5
6 HOSTCC = $(CC)
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)
14 PLATFORM = SDL
15 PLATFORM_CFLAGS = $(CFLAGS)
16 PLATFORM_LDFLAGS = $(LDFLAGS)
18 PROGRAMS = lsnes.$(EXECUTABLE_SUFFIX) movieinfo.$(EXECUTABLE_SUFFIX) lsnes-dumpavi.$(EXECUTABLE_SUFFIX)
21 #Lua.
22 ifdef NO_LUA
23 CFLAGS += -DNO_LUA
24 else
25 OBJECTS += $(patsubst %.cpp,%.$(OBJECT_SUFFIX),$(wildcard lua/*.cpp))
26 CFLAGS += $(shell pkg-config lua5.1 --cflags)
27 LDFLAGS += $(shell pkg-config lua5.1 --libs)
28 endif
30 #Some misc defines.
31 ifdef NO_THREADS
32 CFLAGS += -DNO_THREADS
33 endif
34 ifdef USE_THREADS
35 CFLAGS += -DUSE_THREADS
36 endif
37 ifdef TEST_WIN32
38 CFLAGS += -DTEST_WIN32_CODE
39 endif
40 ifdef BSNES_IS_COMPAT
41 CFLAGS += -DBSNES_IS_COMPAT
42 endif
44 all: $(PROGRAMS)
45 .PRECIOUS: %.$(EXECUTABLE_SUFFIX) %.$(OBJECT_SUFFIX)
48 #Platform stuff.
49 ifeq ($(PLATFORM), SDL)
50 LSNES_MAIN = lsnes.$(OBJECT_SUFFIX)
51 PLATFORM_OBJECTS += $(patsubst %.cpp,%.$(OBJECT_SUFFIX),$(wildcard SDL/*.cpp))
52 PLATFORM_CFLAGS += $(shell sdl-config --cflags)
53 PLATFORM_LDFLAGS += $(shell sdl-config --libs)
54 ifdef TEST_WIN32
55 PLATFORM_LDFLAGS += -lSDLmain
56 endif
57 SDL/%.$(OBJECT_SUFFIX): SDL/%.cpp
58 $(CC) -I. -Igeneric -g -std=gnu++0x -I$(BSNES_PATH) -c -o $@ $< $(CFLAGS) $(PLATFORM_CFLAGS)
59 lsnes.$(OBJECT_SUFFIX): lsnes.cpp
60 $(CC) -I. -Igeneric -g -std=gnu++0x -I$(BSNES_PATH) -c -o $@ $< $(CFLAGS) $(PLATFORM_CFLAGS)
61 lsnes.$(EXECUTABLE_SUFFIX): lsnes.$(OBJECT_SUFFIX) $(OBJECTS) $(PLATFORM_OBJECTS)
62 $(CC) -o $@ $^ $(BSNES_PATH)/out/libsnes.$(ARCHIVE_SUFFIX) $(LDFLAGS) $(PLATFORM_LDFLAGS)
63 else
64 lsnes.$(OBJECT_SUFFIX):
65 echo "Unsupported platform" $(PLATFORM)
66 false
67 endif
70 %.$(EXECUTABLE_SUFFIX): %.$(OBJECT_SUFFIX) $(OBJECTS) dummy/window-dummy.$(OBJECT_SUFFIX)
71 $(CC) -o $@ $^ $(BSNES_PATH)/out/libsnes.$(ARCHIVE_SUFFIX) $(LDFLAGS)
73 %.$(OBJECT_SUFFIX): %.cpp
74 $(CC) -I. -Igeneric -g -std=gnu++0x -I$(BSNES_PATH) -c -o $@ $< $(CFLAGS)
76 fonts/font.$(OBJECT_SUFFIX): fonts/$(FONT_SRC) fonts/parsehexfont.$(EXECUTABLE_SUFFIX)
77 fonts/parsehexfont.$(EXECUTABLE_SUFFIX) <fonts/$(FONT_SRC) >fonts/font.cpp
78 $(CC) -std=gnu++0x $(HOSTCCFLAGS) -c -o fonts/font.$(OBJECT_SUFFIX) fonts/font.cpp
79 $(HOSTCC) -std=gnu++0x $(HOSTCCFLAGS) -o fonts/verifyhexfont.$(EXECUTABLE_SUFFIX) fonts/verifyhexfont.cpp fonts/font.cpp
80 fonts/verifyhexfont.$(EXECUTABLE_SUFFIX)
82 fonts/parsehexfont.$(EXECUTABLE_SUFFIX): fonts/parsehexfont.cpp
83 $(HOSTCC) -std=gnu++0x $(HOSTCCFLAGS) -o $@ $^
85 clean:
86 rm -f $(PROGRAMS) $(patsubst %.$(EXECUTABLE_SUFFIX),%.$(OBJECT_SUFFIX),$(PROGRAMS)) SDL/*.$(OBJECT_SUFFIX) avidump/*.$(OBJECT_SUFFIX) generic/*.$(OBJECT_SUFFIX) fonts/font.o fonts/font.cpp