lsnes/Makefile

92 lines
3 KiB
Makefile
Raw Normal View History

EXECUTABLE_SUFFIX = exe
2011-09-21 00:10:34 +03:00
OBJECT_SUFFIX = o
ARCHIVE_SUFFIX = a
FONT_SRC := unifontfull-5.1.20080820.hex
CC := g++-4.6
HOSTCC = $(CC)
2011-09-21 00:10:34 +03:00
2011-09-26 19:02:43 +03:00
OBJECTS = $(patsubst %.cpp,%.$(OBJECT_SUFFIX),$(wildcard generic/*.cpp)) $(patsubst %.cpp,%.$(OBJECT_SUFFIX),$(wildcard avidump/*.cpp)) fonts/font.$(OBJECT_SUFFIX)
2011-09-18 12:42:33 +03:00
GENERIC_LIBS = -ldl -lboost_iostreams -lboost_filesystem -lboost_system -lz
CFLAGS = $(USER_CFLAGS)
HOSTCCFLAGS = $(USER_HOSTCCFLAGS)
LDFLAGS = $(GENERIC_LIBS) $(USER_LDFLAGS)
2011-09-20 22:05:49 +03:00
PLATFORM = SDL
PLATFORM_CFLAGS = $(CFLAGS)
PLATFORM_LDFLAGS = $(LDFLAGS)
2011-09-21 00:10:34 +03:00
PROGRAMS = lsnes.$(EXECUTABLE_SUFFIX) movieinfo.$(EXECUTABLE_SUFFIX) lsnes-dumpavi.$(EXECUTABLE_SUFFIX)
2011-09-20 22:05:49 +03:00
#Lua.
ifdef NO_LUA
2011-09-18 12:42:33 +03:00
CFLAGS += -DNO_LUA
else
2011-09-21 00:10:34 +03:00
OBJECTS += $(patsubst %.cpp,%.$(OBJECT_SUFFIX),$(wildcard lua/*.cpp))
CFLAGS += $(shell pkg-config lua5.1 --cflags)
LDFLAGS += $(shell pkg-config lua5.1 --libs)
endif
2011-09-20 22:05:49 +03:00
#Some misc defines.
ifdef NO_TIME_INTERCEPT
CFLAGS += -DNO_TIME_INTERCEPT
else
LDFLAGS += -Wl,--wrap,time
endif
ifdef NO_THREADS
CFLAGS += -DNO_THREADS
endif
2011-09-20 22:05:49 +03:00
ifdef USE_THREADS
CFLAGS += -DUSE_THREADS
endif
ifdef TEST_WIN32
CFLAGS += -DTEST_WIN32_CODE
endif
ifdef BSNES_IS_COMPAT
CFLAGS += -DBSNES_IS_COMPAT
endif
all: $(PROGRAMS)
2011-09-21 00:10:34 +03:00
.PRECIOUS: %.$(EXECUTABLE_SUFFIX) %.$(OBJECT_SUFFIX)
2011-09-20 22:05:49 +03:00
#Platform stuff.
ifeq ($(PLATFORM), SDL)
2011-09-21 00:10:34 +03:00
LSNES_MAIN = lsnes.$(OBJECT_SUFFIX)
PLATFORM_OBJECTS += $(patsubst %.cpp,%.$(OBJECT_SUFFIX),$(wildcard SDL/*.cpp))
2011-09-20 22:05:49 +03:00
PLATFORM_CFLAGS += $(shell sdl-config --cflags)
PLATFORM_LDFLAGS += $(shell sdl-config --libs)
ifdef TEST_WIN32
PLATFORM_LDFLAGS += -lSDLmain
endif
2011-09-21 00:10:34 +03:00
SDL/%.$(OBJECT_SUFFIX): SDL/%.cpp
$(CC) -I. -Igeneric -g -std=gnu++0x -I$(BSNES_PATH) -c -o $@ $< $(CFLAGS) $(PLATFORM_CFLAGS)
2011-09-21 00:10:34 +03:00
lsnes.$(OBJECT_SUFFIX): lsnes.cpp
$(CC) -I. -Igeneric -g -std=gnu++0x -I$(BSNES_PATH) -c -o $@ $< $(CFLAGS) $(PLATFORM_CFLAGS)
2011-09-21 00:10:34 +03:00
lsnes.$(EXECUTABLE_SUFFIX): lsnes.$(OBJECT_SUFFIX) $(OBJECTS) $(PLATFORM_OBJECTS)
$(CC) -o $@ $^ $(BSNES_PATH)/out/libsnes.$(ARCHIVE_SUFFIX) $(LDFLAGS) $(PLATFORM_LDFLAGS)
2011-09-20 22:05:49 +03:00
else
2011-09-21 00:10:34 +03:00
lsnes.$(OBJECT_SUFFIX):
2011-09-20 22:05:49 +03:00
echo "Unsupported platform" $(PLATFORM)
false
endif
2011-09-21 00:10:34 +03:00
%.$(EXECUTABLE_SUFFIX): %.$(OBJECT_SUFFIX) $(OBJECTS) dummy/window-dummy.$(OBJECT_SUFFIX)
$(CC) -o $@ $^ $(BSNES_PATH)/out/libsnes.$(ARCHIVE_SUFFIX) $(LDFLAGS)
2011-09-21 00:10:34 +03:00
%.$(OBJECT_SUFFIX): %.cpp
$(CC) -I. -Igeneric -g -std=gnu++0x -I$(BSNES_PATH) -c -o $@ $< $(CFLAGS)
2011-09-21 00:10:34 +03:00
fonts/font.$(OBJECT_SUFFIX): fonts/$(FONT_SRC) fonts/parsehexfont.$(EXECUTABLE_SUFFIX)
fonts/parsehexfont.$(EXECUTABLE_SUFFIX) <fonts/$(FONT_SRC) >fonts/font.cpp
$(CC) -std=gnu++0x $(HOSTCCFLAGS) -c -o fonts/font.$(OBJECT_SUFFIX) fonts/font.cpp
$(HOSTCC) -std=gnu++0x $(HOSTCCFLAGS) -o fonts/verifyhexfont.$(EXECUTABLE_SUFFIX) fonts/verifyhexfont.cpp fonts/font.cpp
2011-09-21 00:10:34 +03:00
fonts/verifyhexfont.$(EXECUTABLE_SUFFIX)
2011-09-21 00:10:34 +03:00
fonts/parsehexfont.$(EXECUTABLE_SUFFIX): fonts/parsehexfont.cpp
$(HOSTCC) -std=gnu++0x $(HOSTCCFLAGS) -o $@ $^
clean:
2011-09-22 07:54:57 +03:00
rm -f $(PROGRAMS) $(patsubst %.$(EXECUTABLE_SUFFIX),%.$(OBJECT_SUFFIX),$(PROGRAMS)) SDL/*.$(OBJECT_SUFFIX) avidump/*.$(OBJECT_SUFFIX) generic/*.$(OBJECT_SUFFIX) fonts/font.o fonts/font.cpp