Lua: Add memory.* functions for reading the VMA table
[lsnes.git] / Makefile
blob3674344ec4123856b1c37fdb2fc42c885cdc4e28
1 EXECUTABLE_SUFFIX = exe
2 OBJECT_SUFFIX = o
3 ARCHIVE_SUFFIX = a
4 FONT_SRC := unifontfull-5.1.20080820.hex
5 CC := g++-4.6
6 HOSTCC = $(CC)
7 LUAPACKAGE=lua5.1
9 OBJECTS = $(patsubst %.cpp,%.$(OBJECT_SUFFIX),$(wildcard generic/*.cpp)) $(patsubst %.cpp,%.$(OBJECT_SUFFIX),$(wildcard avidump/*.cpp)) fonts/font.$(OBJECT_SUFFIX)
10 ifndef NO_LIBDL
11 GENERIC_LIBS += -ldl
12 endif
13 GENERIC_LIBS += -lboost_iostreams -lboost_filesystem -lboost_system -lz
14 CFLAGS = $(USER_CFLAGS)
15 HOSTCCFLAGS = $(USER_HOSTCCFLAGS)
16 LDFLAGS = $(GENERIC_LIBS) $(USER_LDFLAGS)
17 GRAPHICS = SDL
18 SOUND = SDL
19 JOYSTICK = SDL
20 PLATFORM_CFLAGS = $(CFLAGS)
21 PLATFORM_LDFLAGS = $(LDFLAGS)
23 PROGRAMS = lsnes.$(EXECUTABLE_SUFFIX) movieinfo.$(EXECUTABLE_SUFFIX) lsnes-dumpavi.$(EXECUTABLE_SUFFIX) sdmp2sox.$(EXECUTABLE_SUFFIX)
24 all: $(PROGRAMS)
26 #Lua.
27 ifdef NO_LUA
28 CFLAGS += -DNO_LUA
29 else
30 OBJECTS += $(patsubst %.cpp,%.$(OBJECT_SUFFIX),$(wildcard lua/*.cpp))
31 ifndef NO_LUA_SEARCH
32 CFLAGS += $(shell pkg-config $(LUAPACKAGE) --cflags)
33 LDFLAGS += $(shell pkg-config $(LUAPACKAGE) --libs)
34 endif
35 endif
37 #Some misc defines.
38 ifdef NO_TIME_INTERCEPT
39 CFLAGS += -DNO_TIME_INTERCEPT
40 else
41 LDFLAGS += -Wl,--wrap,time
42 endif
43 ifdef NO_THREADS
44 CFLAGS += -DNO_THREADS
45 endif
46 ifdef USE_THREADS
47 CFLAGS += -DUSE_THREADS
48 endif
49 ifdef TEST_WIN32
50 CFLAGS += -DTEST_WIN32_CODE
51 endif
52 ifdef BSNES_IS_COMPAT
53 CFLAGS += -DBSNES_IS_COMPAT
54 endif
55 ifeq ($(JOYSTICK), SDL)
56 ifneq ($(GRAPHICS), SDL)
57 $(error "SDL Joystick requires SDL graphics")
58 endif
59 PLATFORM_OBJECTS += platform/SDL/joystick-sdl.$(OBJECT_SUFFIX)
60 else
61 ifeq ($(JOYSTICK), DUMMY)
62 CFLAGS += -DSDL_NO_JOYSTICK
63 PLATFORM_OBJECTS += platform/dummy/joystick-dummy.$(OBJECT_SUFFIX)
64 else
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)
68 else
69 $(error "Unsupported joystick type")
70 endif
71 endif
72 endif
74 ifeq ($(SOUND), SDL)
75 ifneq ($(GRAPHICS), SDL)
76 $(error "SDL Sound requires SDL graphics")
77 endif
78 PLATFORM_OBJECTS += platform/SDL/sound-sdl.$(OBJECT_SUFFIX)
79 else
80 ifeq ($(SOUND), PORTAUDIO)
81 PLATFORM_OBJECTS += platform/portaudio/sound-portaudio.$(OBJECT_SUFFIX)
82 PLATFORM_LDFLAGS += -lportaudio
83 else
84 ifeq ($(SOUND), DUMMY)
85 PLATFORM_OBJECTS += platform/dummy/sound-dummy.$(OBJECT_SUFFIX)
86 else
87 $(error "Unsupported sound type")
88 endif
89 endif
90 endif
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)
95 ifndef NO_SDL_SEARCH
96 PLATFORM_CFLAGS += $(shell sdl-config --cflags)
97 PLATFORM_LDFLAGS += $(shell sdl-config --libs)
98 endif
99 ifdef TEST_WIN32
100 PLATFORM_LDFLAGS += -lSDLmain
101 endif
102 platform/SDL/%.$(OBJECT_SUFFIX): platform/SDL/%.cpp
103 $(CC) -I. -Igeneric -g -std=gnu++0x -I$(BSNES_PATH) -c -o $@ $< $(CFLAGS) $(PLATFORM_CFLAGS)
104 else
105 $(error "Unsupported graphics type")
106 endif
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 $@ $^
129 clean:
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