From d45b3163805964dcc05e8ffa0adb531a462260ff Mon Sep 17 00:00:00 2001 From: Ilari Liusvaara Date: Mon, 6 Feb 2012 04:38:53 +0200 Subject: [PATCH] Refactor makefile Refactor the makefile and move some code files to more logical places. --- .gitignore | 3 + Makefile | 179 +++--------------- .../{core/lua-int.hpp => lua/internal.hpp} | 0 include/{core => lua}/lua.hpp | 0 {avi => include/video}/avi_structure.hpp | 0 {avi => include/video}/cscd.hpp | 6 - {avi => include/video}/sox.hpp | 0 src/Makefile | 83 ++++++++ src/core/Makefile | 16 ++ src/core/advdumper.cpp | 2 +- src/core/framebuffer.cpp | 2 +- src/core/keymapper.cpp | 3 +- src/core/mainloop.cpp | 2 +- src/core/moviedata.cpp | 2 +- src/dummy/Makefile | 16 ++ src/{plat-dummy => dummy}/graphics.cpp | 0 src/dummy/joystick.cpp | 19 ++ src/dummy/sound.cpp | 46 +++++ src/{plat-dummy => dummy}/thread.cpp | 0 src/fonts/Makefile | 23 +++ src/lua/Makefile | 24 +++ src/lua/bit.cpp | 4 +- src/lua/core.cpp | 2 +- src/lua/dummy.cpp | 28 +++ src/lua/gui-circle.cpp | 2 +- src/lua/gui-core.cpp | 2 +- src/lua/gui-crosshair.cpp | 2 +- src/lua/gui-line.cpp | 2 +- src/lua/gui-pixel.cpp | 2 +- src/lua/gui-rectangle.cpp | 2 +- src/lua/gui-text.cpp | 2 +- src/lua/hostmemory.cpp | 2 +- src/lua/input.cpp | 2 +- src/{core => lua}/lua.cpp | 33 +--- src/lua/memory.cpp | 2 +- src/lua/movie.cpp | 2 +- src/lua/screenshot.cpp | 2 +- src/lua/settings.cpp | 2 +- src/plat-dummy/Makefile | 22 +++ src/plat-dummy/dummy.cpp | 0 src/plat-evdev/Makefile | 20 ++ src/plat-evdev/dummy.cpp | 0 src/plat-portaudio/Makefile | 23 +++ src/plat-portaudio/dummy.cpp | 0 src/plat-sdl/Makefile | 36 ++++ src/plat-sdl/dummy.cpp | 0 src/plat-sdl/main.cpp | 2 +- src/plat-wxwidgets/Makefile | 23 +++ src/plat-wxwidgets/dummy.cpp | 0 src/plat-wxwidgets/main.cpp | 2 +- src/plat-wxwidgets/mainwindow.cpp | 2 +- src/util/Makefile | 16 ++ src/util/lsnes-dumpavi.cpp | 2 +- src/video/Makefile | 35 ++++ {avi => src/video}/avi_structure.cpp | 2 +- {avi => src/video}/avidump-control.cpp | 6 +- {avi => src/video}/cscd.cpp | 4 +- {avi => src/video}/jmd.cpp | 0 {avi => src/video}/raw.cpp | 0 {avi => src/video}/sdmp.cpp | 0 {avi => src/video}/sox.cpp | 2 +- 61 files changed, 490 insertions(+), 226 deletions(-) rename include/{core/lua-int.hpp => lua/internal.hpp} (100%) rename include/{core => lua}/lua.hpp (100%) rename {avi => include/video}/avi_structure.hpp (100%) rename {avi => include/video}/cscd.hpp (98%) rename {avi => include/video}/sox.hpp (100%) create mode 100644 src/Makefile create mode 100644 src/core/Makefile create mode 100644 src/dummy/Makefile rename src/{plat-dummy => dummy}/graphics.cpp (100%) create mode 100644 src/dummy/joystick.cpp create mode 100644 src/dummy/sound.cpp rename src/{plat-dummy => dummy}/thread.cpp (100%) create mode 100644 src/fonts/Makefile create mode 100644 src/lua/Makefile create mode 100644 src/lua/dummy.cpp rename src/{core => lua}/lua.cpp (89%) create mode 100644 src/plat-dummy/Makefile create mode 100644 src/plat-dummy/dummy.cpp create mode 100644 src/plat-evdev/Makefile create mode 100644 src/plat-evdev/dummy.cpp create mode 100644 src/plat-portaudio/Makefile create mode 100644 src/plat-portaudio/dummy.cpp create mode 100644 src/plat-sdl/Makefile create mode 100644 src/plat-sdl/dummy.cpp create mode 100644 src/plat-wxwidgets/Makefile create mode 100644 src/plat-wxwidgets/dummy.cpp create mode 100644 src/util/Makefile create mode 100644 src/video/Makefile rename {avi => src/video}/avi_structure.cpp (99%) rename {avi => src/video}/avidump-control.cpp (98%) rename {avi => src/video}/cscd.cpp (99%) rename {avi => src/video}/jmd.cpp (100%) rename {avi => src/video}/raw.cpp (100%) rename {avi => src/video}/sdmp.cpp (100%) rename {avi => src/video}/sox.cpp (98%) diff --git a/.gitignore b/.gitignore index 2981d859..48ce6d22 100644 --- a/.gitignore +++ b/.gitignore @@ -3,8 +3,11 @@ *.lib *.obj *.exe +*.ldflags docs rom +lsnes +*.util /core src/fonts/font.cpp src/core/version.cpp diff --git a/Makefile b/Makefile index a16699e3..c73525f4 100644 --- a/Makefile +++ b/Makefile @@ -1,178 +1,45 @@ CROSS_PREFIX= -EXECUTABLE_SUFFIX = exe +DOT_EXECUTABLE_SUFFIX= OBJECT_SUFFIX = o ARCHIVE_SUFFIX = a FONT_SRC := unifontfull-5.1.20080820.hex +USER_CFLAGS= +USER_LDFLAGS= + #Compilers. CC := g++ +LD := ld REALCC = $(CROSS_PREFIX)$(CC) +REALLD = $(CROSS_PREFIX)$(LD) HOSTCC = $(CC) #Flags. HOSTCCFLAGS = -std=gnu++0x -CFLAGS = -I$(BSNES_PATH) -Iinclude -Iavi -std=gnu++0x -LDFLAGS = -lboost_iostreams -lboost_filesystem -lboost_system -lz -PLATFORM_CFLAGS = -PLATFORM_LDFLAGS = +CFLAGS = -I$(BSNES_PATH) -std=gnu++0x $(USER_CFLAGS) +LDFLAGS = -lboost_iostreams -lboost_filesystem -lboost_system -lz $(USER_LDFLAGS) -#Platform defs. -GRAPHICS = SDL -SOUND = SDL -JOYSTICK = SDL +#Platform +GRAPHICS=SDL +SOUND=SDL +JOYSTICK=SDL +THREADS=BOOST -#Core objects and what to build. -CORE_OBJECTS = $(patsubst %.cpp,%.$(OBJECT_SUFFIX),$(wildcard src/core/*.cpp)) \ - $(patsubst %.cpp,%.$(OBJECT_SUFFIX),$(wildcard avi/*.cpp)) \ - src/fonts/font.$(OBJECT_SUFFIX) src/core/version.$(OBJECT_SUFFIX) -PROGRAMS = lsnes.$(EXECUTABLE_SUFFIX) movieinfo.$(EXECUTABLE_SUFFIX) lsnes-dumpavi.$(EXECUTABLE_SUFFIX) sdmp2sox.$(EXECUTABLE_SUFFIX) -all: $(PROGRAMS) - -#Platform objects. -PLATFORM_OBJECTS= - -#Lua. -ifndef LUA -CFLAGS += -DNO_LUA -else -CORE_OBJECTS += $(patsubst %.cpp,%.$(OBJECT_SUFFIX),$(wildcard src/lua/*.cpp)) -CFLAGS += $(shell $(CROSS_PREFIX)pkg-config $(LUA) --cflags) -LDFLAGS += $(shell $(CROSS_PREFIX)pkg-config $(LUA) --libs) -endif - -#Threads -ifdef THREADS -ifeq ($(THREADS), YES) -CFLAGS += -DNATIVE_THREADS -else -ifeq ($(THREADS), BOOST) -CFLAGS += -DBOOST_THREADS -ifdef BOOST_THREAD_LIB -LDFLAGS += -l$(BOOST_THREAD_LIB) -else -LDFLAGS += -lboost_thread-mt -endif -else -$(error "Bad value for THREADS (expected YES or BOOST)") -endif -endif -endif - - -#Some misc defines. ifdef BSNES_IS_COMPAT CFLAGS += -DBSNES_IS_COMPAT endif -#Joystick. -ifeq ($(JOYSTICK), SDL) -ifneq ($(GRAPHICS), SDL) -$(error "SDL Joystick requires SDL graphics") -endif -PLATFORM_OBJECTS += src/plat-sdl/joystick.$(OBJECT_SUFFIX) -else -ifeq ($(JOYSTICK), DUMMY) -CFLAGS += -DSDL_NO_JOYSTICK -PLATFORM_OBJECTS += src/plat-dummy/joystick.$(OBJECT_SUFFIX) -else -ifeq ($(JOYSTICK), EVDEV) -CFLAGS += -DSDL_NO_JOYSTICK -PLATFORM_OBJECTS += $(patsubst %.cpp,%.$(OBJECT_SUFFIX),$(wildcard src/plat-evdev/*.cpp)) -else -$(error "Unsupported joystick type") -endif -endif -endif +export DOT_EXECUTABLE_SUFFIX OBJECT_SUFFIX ARCHIVE_SUFFIX FONT_SRC REALCC HOSTCC REALLD HOSTCCFLAGS CFLAGS LDFLAGS GRAPHICS SOUND JOYSTICK THREADS -#Sound stuff. -ifeq ($(SOUND), SDL) -ifneq ($(GRAPHICS), SDL) -$(error "SDL Sound requires SDL graphics") -endif -PLATFORM_OBJECTS += src/plat-sdl/sound.$(OBJECT_SUFFIX) -else -ifeq ($(SOUND), PORTAUDIO) -PLATFORM_OBJECTS += src/plat-portaudio/sound.$(OBJECT_SUFFIX) -PLATFORM_CFLAGS += $(shell $(CROSS_PREFIX)pkg-config portaudio-2.0 --cflags) -PLATFORM_LDFLAGS += $(shell $(CROSS_PREFIX)pkg-config portaudio-2.0 --libs) -else -ifeq ($(SOUND), DUMMY) -PLATFORM_OBJECTS += src/plat-dummy/sound.$(OBJECT_SUFFIX) -else -$(error "Unsupported sound type") -endif -endif -endif +all: src/__all_files__ -#Graphics stuff. -ifeq ($(GRAPHICS), SDL) -PLATFORM_OBJECTS += src/plat-sdl/commandline.$(OBJECT_SUFFIX) src/plat-sdl/drawprim.$(OBJECT_SUFFIX) src/plat-sdl/graphicsfn.$(OBJECT_SUFFIX) src/plat-sdl/keyboard.$(OBJECT_SUFFIX) src/plat-sdl/main.$(OBJECT_SUFFIX) src/plat-sdl/thread.$(OBJECT_SUFFIX) src/plat-sdl/status.$(OBJECT_SUFFIX) src/plat-sdl/thread.$(OBJECT_SUFFIX) -PLATFORM_CFLAGS += $(shell $(CROSS_PREFIX)sdl-config --cflags) -PLATFORM_LDFLAGS += $(shell $(CROSS_PREFIX)sdl-config --libs) -else -ifeq ($(GRAPHICS), WXWIDGETS) -PLATFORM_OBJECTS += $(patsubst %.cpp,%.$(OBJECT_SUFFIX),$(wildcard src/plat-wxwidgets/*.cpp)) -PLATFORM_CFLAGS += $(shell $(CROSS_PREFIX)wx-config --cxxflags) $(shell $(CROSS_PREFIX)pkg-config libswscale --cflags) -PLATFORM_LDFLAGS += $(shell $(CROSS_PREFIX)wx-config --libs) $(shell $(CROSS_PREFIX)pkg-config libswscale --libs) -else -$(error "Unsupported graphics type") -endif -endif - -CORE_CFLAGS=$(CFLAGS) $(USER_CFLAGS) -SUPPORT_CFLAGS=$(CORE_CFLAGS) $(PLATFORM_CFLAGS) $(USER_PLATFORM_CFLAGS) -CORE_LDFLAGS=$(BSNES_PATH)/out/libsnes.$(ARCHIVE_SUFFIX) $(LDFLAGS) $(USER_LDFLAGS) -SUPPORT_LDFLAGS=$(CORE_LDFLAGS) $(PLATFORM_LDFLAGS) $(USER_PLATFORM_LDFLAGS) -PLAT_DUMMY_OBJECTS=$(patsubst %.cpp,%.$(OBJECT_SUFFIX),$(wildcard src/plat-dummy/*.cpp)) -HOST_CFLAGS=$(HOSTCCFLAGS) $(USER_HOSTCCFLAGS) -HOST_LDFLAGS=$(HOSTLDFLAGS) $(USER_HOSTLDFLAGS) - -.PRECIOUS: % - -#Stuff compiled with core CFLAGS. -avi/%.$(OBJECT_SUFFIX): avi/%.cpp - $(REALCC) -c -o $@ $< $(CORE_CFLAGS) -src/core/%.$(OBJECT_SUFFIX): src/core/%.cpp - $(REALCC) -c -o $@ $< $(CORE_CFLAGS) -src/lua/%.$(OBJECT_SUFFIX): src/lua/%.cpp - $(REALCC) -c -o $@ $< $(CORE_CFLAGS) -src/plat-dummy/%.$(OBJECT_SUFFIX): src/plat-dummy/%.cpp - $(REALCC) -c -o $@ $< $(CORE_CFLAGS) -src/util/%.$(OBJECT_SUFFIX): src/util/%.cpp - $(REALCC) -c -o $@ $< $(CORE_CFLAGS) - -#Platform stuff to be compiled with support CFLAGS. -src/plat-evdev/%.$(OBJECT_SUFFIX): src/plat-evdev/%.cpp - $(REALCC) -c -o $@ $< $(SUPPORT_CFLAGS) -src/plat-portaudio/%.$(OBJECT_SUFFIX): src/plat-portaudio/%.cpp - $(REALCC) -c -o $@ $< $(SUPPORT_CFLAGS) -src/plat-sdl/%.$(OBJECT_SUFFIX): src/plat-sdl/%.cpp - $(REALCC) -c -o $@ $< $(SUPPORT_CFLAGS) -src/plat-wxwidgets/%.$(OBJECT_SUFFIX): src/plat-wxwidgets/%.cpp - $(REALCC) -c -o $@ $< $(SUPPORT_CFLAGS) - -#lsnes main executable. -lsnes.$(EXECUTABLE_SUFFIX): $(CORE_OBJECTS) $(PLATFORM_OBJECTS) - $(REALCC) -o $@ $^ $(SUPPORT_LDFLAGS) - -#Other executables. -%.$(EXECUTABLE_SUFFIX): src/util/%.$(OBJECT_SUFFIX) $(CORE_OBJECTS) $(PLAT_DUMMY_OBJECTS) - $(REALCC) -o $@ $^ $(CORE_LDFLAGS) - -#Fonts. -src/fonts/font.$(OBJECT_SUFFIX): src/fonts/$(FONT_SRC) - echo "extern const char* font_hex_data = " >src/fonts/font.cpp - sed -E -f src/fonts/fonttransform.sed <$^ >>src/fonts/font.cpp - echo ";" >>src/fonts/font.cpp - $(REALCC) $(CORE_CFLAGS) -c -o $@ src/fonts/font.cpp - -#Version info. -buildaux/version.exe: buildaux/version.cpp VERSION - $(HOSTCC) $(HOSTCCFLAGS) -o $@ $< -src/core/version.cpp: buildaux/version.exe FORCE - buildaux/version.exe >$@ - -.PHONY: FORCE +src/__all_files__: forcelook + $(MAKE) -C src precheck + $(MAKE) -C src + cp src/lsnes$(DOT_EXECUTABLE_SUFFIX) . clean: - rm -f $(PROGRAMS) src/*.$(OBJECT_SUFFIX) src/*/*.$(OBJECT_SUFFIX) avi/*.$(OBJECT_SUFFIX) src/fonts/font.o src/fonts/font.cpp + $(MAKE) -C src clean + +forcelook: + @true diff --git a/include/core/lua-int.hpp b/include/lua/internal.hpp similarity index 100% rename from include/core/lua-int.hpp rename to include/lua/internal.hpp diff --git a/include/core/lua.hpp b/include/lua/lua.hpp similarity index 100% rename from include/core/lua.hpp rename to include/lua/lua.hpp diff --git a/avi/avi_structure.hpp b/include/video/avi_structure.hpp similarity index 100% rename from avi/avi_structure.hpp rename to include/video/avi_structure.hpp diff --git a/avi/cscd.hpp b/include/video/cscd.hpp similarity index 98% rename from avi/cscd.hpp rename to include/video/cscd.hpp index 4bd56a3a..11f7126c 100644 --- a/avi/cscd.hpp +++ b/include/video/cscd.hpp @@ -1,12 +1,6 @@ #ifndef _output_cscd__hpp__included__ #define _output_cscd__hpp__included__ -#if defined(__linux__) && !defined(BOOST_THREADS) -#define NATIVE_THREADS 1 -#endif - - - #ifdef NATIVE_THREADS #include #include diff --git a/avi/sox.hpp b/include/video/sox.hpp similarity index 100% rename from avi/sox.hpp rename to include/video/sox.hpp diff --git a/src/Makefile b/src/Makefile new file mode 100644 index 00000000..78a13a72 --- /dev/null +++ b/src/Makefile @@ -0,0 +1,83 @@ +__all_files__: util/__all_files__ \ + lsnes$(DOT_EXECUTABLE_SUFFIX) \ + $(patsubst %.cpp,%.util$(DOT_EXECUTABLE_SUFFIX),$(wildcard util/*.cpp)) + +DUMMY_LIBRARY=core lua fonts video dummy +PLATFORM_LIBRARY=core lua fonts video plat-dummy plat-evdev plat-portaudio plat-sdl plat-wxwidgets +ALLOBJECT=__all__.$(OBJECT_SUFFIX) +ALLFLAGS=__all__.ldflags +DUMMY_LIBRARY_OBJS=$(patsubst %,%/$(ALLOBJECT),$(DUMMY_LIBRARY)) +PLATFORM_LIBRARY_OBJS=$(patsubst %,%/$(ALLOBJECT),$(PLATFORM_LIBRARY)) +DUMMY_LIBRARY_FLAGS=$(patsubst %,%/$(ALLFLAGS),$(DUMMY_LIBRARY)) +PLATFORM_LIBRARY_FLAGS=$(patsubst %,%/$(ALLFLAGS),$(PLATFORM_LIBRARY)) + + +core/$(ALLOBJECT): forcelook + $(MAKE) -C core + +fonts/$(ALLOBJECT): forcelook + $(MAKE) -C fonts + +lua/$(ALLOBJECT): forcelook + $(MAKE) -C lua + +dummy/$(ALLOBJECT): forcelook + $(MAKE) -C dummy + +plat-dummy/$(ALLOBJECT): forcelook + $(MAKE) -C plat-dummy + +plat-evdev/$(ALLOBJECT): forcelook + $(MAKE) -C plat-evdev + +plat-portaudio/$(ALLOBJECT): forcelook + $(MAKE) -C plat-portaudio + +plat-sdl/$(ALLOBJECT): forcelook + $(MAKE) -C plat-sdl + +plat-wxwidgets/$(ALLOBJECT): forcelook + $(MAKE) -C plat-wxwidgets + +util/__all_files__: forcelook + $(MAKE) -C util + +util/%.$(OBJECT_SUFFIX): util/__all_files__ + @true; + +video/$(ALLOBJECT): forcelook + $(MAKE) -C video + +.PRECIOUS: %.$(OBJECT_SUFFIX) util/%.$(OBJECT_SUFFIX) + +%.util$(DOT_EXECUTABLE_SUFFIX): %.$(OBJECT_SUFFIX) $(DUMMY_LIBRARY_OBJS) + $(REALCC) -o $@ $^ $(LDFLAGS) $(BSNES_PATH)/out/libsnes.a `cat $(DUMMY_LIBRARY_FLAGS)` + +lsnes$(DOT_EXECUTABLE_SUFFIX): $(PLATFORM_LIBRARY_OBJS) + $(REALCC) -o $@ $^ $(LDFLAGS) $(BSNES_PATH)/out/libsnes.a `cat $(PLATFORM_LIBRARY_FLAGS)` + +precheck: + $(MAKE) -C core precheck + $(MAKE) -C lua precheck + $(MAKE) -C plat-dummy precheck + $(MAKE) -C plat-evdev precheck + $(MAKE) -C plat-portaudio precheck + $(MAKE) -C plat-sdl precheck + $(MAKE) -C plat-wxwidgets precheck + $(MAKE) -C util precheck + $(MAKE) -C video precheck + +clean: + rm -f *.ldflags + $(MAKE) -C core clean + $(MAKE) -C lua clean + $(MAKE) -C plat-dummy clean + $(MAKE) -C plat-evdev clean + $(MAKE) -C plat-portaudio clean + $(MAKE) -C plat-sdl clean + $(MAKE) -C plat-wxwidgets clean + $(MAKE) -C util clean + $(MAKE) -C video clean + +forcelook: + @true diff --git a/src/core/Makefile b/src/core/Makefile new file mode 100644 index 00000000..4cf17fc4 --- /dev/null +++ b/src/core/Makefile @@ -0,0 +1,16 @@ +OBJECTS=$(patsubst %.cpp,%.$(OBJECT_SUFFIX),$(wildcard *.cpp)) + +.PRECIOUS: %.$(OBJECT_SUFFIX) + +__all__.$(OBJECT_SUFFIX): $(OBJECTS) + $(REALLD) -r -o $@ $^ + touch __all__.ldflags + +%.$(OBJECT_SUFFIX): %.cpp + $(REALCC) $(CFLAGS) -c -o $@ $< -I../../include + +precheck: + @true + +clean: + rm -f *.$(OBJECT_SUFFIX) *.ldflags diff --git a/src/core/advdumper.cpp b/src/core/advdumper.cpp index e0abd241..1da7f5c4 100644 --- a/src/core/advdumper.cpp +++ b/src/core/advdumper.cpp @@ -2,7 +2,7 @@ #include "core/command.hpp" #include "core/dispatch.hpp" #include "core/globalwrap.hpp" -#include "core/lua.hpp" +#include "lua/lua.hpp" #include #include diff --git a/src/core/framebuffer.cpp b/src/core/framebuffer.cpp index 27f099ca..39ed56d6 100644 --- a/src/core/framebuffer.cpp +++ b/src/core/framebuffer.cpp @@ -1,7 +1,7 @@ #include "core/command.hpp" #include "core/dispatch.hpp" #include "core/framebuffer.hpp" -#include "core/lua.hpp" +#include "lua/lua.hpp" #include "core/misc.hpp" #include "core/render.hpp" #include "core/triplebuffer.hpp" diff --git a/src/core/keymapper.cpp b/src/core/keymapper.cpp index 45d1d02d..232ebb8b 100644 --- a/src/core/keymapper.cpp +++ b/src/core/keymapper.cpp @@ -2,11 +2,10 @@ #include "core/dispatch.hpp" #include "core/globalwrap.hpp" #include "core/keymapper.hpp" -#include "core/lua.hpp" #include "core/memorymanip.hpp" #include "core/misc.hpp" #include "core/window.hpp" -#include "core/lua.hpp" +#include "lua/lua.hpp" #include #include diff --git a/src/core/mainloop.cpp b/src/core/mainloop.cpp index 97405947..7335540b 100644 --- a/src/core/mainloop.cpp +++ b/src/core/mainloop.cpp @@ -7,7 +7,7 @@ #include "core/dispatch.hpp" #include "core/framebuffer.hpp" #include "core/framerate.hpp" -#include "core/lua.hpp" +#include "lua/lua.hpp" #include "core/mainloop.hpp" #include "core/movie.hpp" #include "core/moviedata.hpp" diff --git a/src/core/moviedata.cpp b/src/core/moviedata.cpp index cc77625b..2a23619f 100644 --- a/src/core/moviedata.cpp +++ b/src/core/moviedata.cpp @@ -7,7 +7,7 @@ #include "core/dispatch.hpp" #include "core/framebuffer.hpp" #include "core/framerate.hpp" -#include "core/lua.hpp" +#include "lua/lua.hpp" #include "core/misc.hpp" #include "core/moviedata.hpp" #include "core/rrdata.hpp" diff --git a/src/dummy/Makefile b/src/dummy/Makefile new file mode 100644 index 00000000..5fae32bc --- /dev/null +++ b/src/dummy/Makefile @@ -0,0 +1,16 @@ +OBJECTS=$(patsubst %.cpp,%.$(OBJECT_SUFFIX),$(wildcard *.cpp)) + +.PRECIOUS: %.$(OBJECT_SUFFIX) + +__all__.$(OBJECT_SUFFIX): $(OBJECTS) + $(REALLD) -r -o $@ $^ + touch __all__.ldflags + +%.$(OBJECT_SUFFIX): %.cpp + $(REALCC) -c -o $@ $< -I../../include $(CFLAGS) + +precheck: + @true + +clean: + rm -f *.$(OBJECT_SUFFIX) *.ldflags diff --git a/src/plat-dummy/graphics.cpp b/src/dummy/graphics.cpp similarity index 100% rename from src/plat-dummy/graphics.cpp rename to src/dummy/graphics.cpp diff --git a/src/dummy/joystick.cpp b/src/dummy/joystick.cpp new file mode 100644 index 00000000..83c2c611 --- /dev/null +++ b/src/dummy/joystick.cpp @@ -0,0 +1,19 @@ +#include "core/window.hpp" + +void joystick_plugin::init() throw() +{ +} + +void joystick_plugin::quit() throw() +{ +} + +void joystick_plugin::thread_fn() throw() +{ +} + +void joystick_plugin::signal() throw() +{ +} + +const char* joystick_plugin::name = "Dummy joystick plugin"; diff --git a/src/dummy/sound.cpp b/src/dummy/sound.cpp new file mode 100644 index 00000000..940c29f3 --- /dev/null +++ b/src/dummy/sound.cpp @@ -0,0 +1,46 @@ +#include "core/command.hpp" +#include "core/window.hpp" + +#include +#include + +void sound_plugin::init() throw() +{ +} + +void sound_plugin::quit() throw() +{ +} + +void sound_plugin::enable(bool enable) throw() +{ +} + +void sound_plugin::sample(uint16_t left, uint16_t right) throw() +{ +} + +bool sound_plugin::initialized() +{ + return true; +} + +void sound_plugin::set_device(const std::string& dev) throw(std::bad_alloc, std::runtime_error) +{ + if(dev != "null") + throw std::runtime_error("Bad sound device '" + dev + "'"); +} + +std::string sound_plugin::get_device() throw(std::bad_alloc) +{ + return "null"; +} + +std::map sound_plugin::get_devices() throw(std::bad_alloc) +{ + std::map ret; + ret["null"] = "NULL sound output"; + return ret; +} + +const char* sound_plugin::name = "Dummy sound plugin"; diff --git a/src/plat-dummy/thread.cpp b/src/dummy/thread.cpp similarity index 100% rename from src/plat-dummy/thread.cpp rename to src/dummy/thread.cpp diff --git a/src/fonts/Makefile b/src/fonts/Makefile new file mode 100644 index 00000000..49ba1f95 --- /dev/null +++ b/src/fonts/Makefile @@ -0,0 +1,23 @@ +OBJECTS=font.$(OBJECT_SUFFIX) + +.PRECIOUS: %.$(OBJECT_SUFFIX) + +__all__.$(OBJECT_SUFFIX): $(OBJECTS) + $(REALLD) -r -o $@ $^ + touch __all__.ldflags + +.PRECIOUS: font.$(OBJECT_SUFFIX) font.cpp + +font.$(OBJECT_SUFFIX): font.cpp + $(REALCC) $(CORE_CFLAGS) -c -o $@ font.cpp + +font.cpp : $(FONT_SRC) + echo "extern const char* font_hex_data = " >font.cpp + sed -E -f fonttransform.sed <$^ >>font.cpp + echo ";" >>font.cpp + +precheck: + @true + +clean: + rm -f *.$(OBJECT_SUFFIX) font.cpp *.ldflags diff --git a/src/lua/Makefile b/src/lua/Makefile new file mode 100644 index 00000000..cec4cfb8 --- /dev/null +++ b/src/lua/Makefile @@ -0,0 +1,24 @@ +ifndef LUA +CFLAGS += -DNO_LUA +OBJECTS = dummy.$(OBJECT_SUFFIX) +else +OBJECTS = $(patsubst %.cpp,%.$(OBJECT_SUFFIX),$(wildcard src/lua/*.cpp)) +LUA_CFLAGS += $(shell $(CROSS_PREFIX)pkg-config $(LUA) --cflags) +LUA_LDFLAGS += $(shell $(CROSS_PREFIX)pkg-config $(LUA) --libs) +OBJECTS=$(patsubst %.cpp,%.$(OBJECT_SUFFIX),$(wildcard *.cpp)) +endif + +.PRECIOUS: %.$(OBJECT_SUFFIX) + +__all__.$(OBJECT_SUFFIX): $(OBJECTS) + $(REALLD) -r -o $@ $^ + echo $(LUA_LDFLAGS) >__all__.ldflags + +%.$(OBJECT_SUFFIX): %.cpp + $(REALCC) -c -o $@ $< -I../../include $(CFLAGS) $(LUA_CFLAGS) + +precheck: + @true + +clean: + rm -f *.$(OBJECT_SUFFIX) *.ldflags diff --git a/src/lua/bit.cpp b/src/lua/bit.cpp index 109d76b1..8532eff6 100644 --- a/src/lua/bit.cpp +++ b/src/lua/bit.cpp @@ -1,4 +1,4 @@ -#include "core/lua-int.hpp" +#include "lua/internal.hpp" #define BITWISE_BITS 48 #define BITWISE_MASK ((1ULL << (BITWISE_BITS)) - 1) @@ -115,4 +115,4 @@ namespace lua_shifter bit_lshift("bit.lshift"); lua_shifter bit_arshift("bit.arshift"); lua_shifter bit_lrshift("bit.lrshift"); -} \ No newline at end of file +} diff --git a/src/lua/core.cpp b/src/lua/core.cpp index c2d3861a..abe8ca16 100644 --- a/src/lua/core.cpp +++ b/src/lua/core.cpp @@ -1,5 +1,5 @@ #include "core/command.hpp" -#include "core/lua-int.hpp" +#include "lua/internal.hpp" #include "core/window.hpp" namespace diff --git a/src/lua/dummy.cpp b/src/lua/dummy.cpp new file mode 100644 index 00000000..fbd33211 --- /dev/null +++ b/src/lua/dummy.cpp @@ -0,0 +1,28 @@ +#include "lua/lua.hpp" + +#ifdef NO_LUA +struct lua_State { int x; }; +lua_function::lua_function(const std::string& name) throw(std::bad_alloc) {} +lua_function::~lua_function() throw() {} +void lua_callback_do_paint(struct lua_render_context* ctx) throw() {} +void lua_callback_do_video(struct lua_render_context* ctx) throw() {} +void lua_callback_do_input(controller_frame& data, bool subframe) throw() {} +void lua_callback_do_reset() throw() {} +void lua_callback_do_frame() throw() {} +void lua_callback_do_readwrite() throw() {} +void lua_callback_startup() throw() {} +void lua_callback_pre_load(const std::string& name) throw() {} +void lua_callback_err_load(const std::string& name) throw() {} +void lua_callback_post_load(const std::string& name, bool was_state) throw() {} +void lua_callback_pre_save(const std::string& name, bool is_state) throw() {} +void lua_callback_err_save(const std::string& name) throw() {} +void lua_callback_post_save(const std::string& name, bool is_state) throw() {} +void lua_callback_snoop_input(uint32_t port, uint32_t controller, uint32_t index, short value) throw() {} +void lua_callback_quit() throw() {} +void lua_callback_keyhook(const std::string& key, const struct keygroup::parameters& p) throw() {} +void init_lua() throw() {} +void quit_lua() throw() {} +bool lua_requests_repaint = false; +bool lua_requests_subframe_paint = false; +bool lua_supported = false; +#endif diff --git a/src/lua/gui-circle.cpp b/src/lua/gui-circle.cpp index 4d9a9ea8..a489122c 100644 --- a/src/lua/gui-circle.cpp +++ b/src/lua/gui-circle.cpp @@ -1,4 +1,4 @@ -#include "core/lua-int.hpp" +#include "lua/internal.hpp" #include "core/render.hpp" namespace diff --git a/src/lua/gui-core.cpp b/src/lua/gui-core.cpp index 17ab132e..1a2bca50 100644 --- a/src/lua/gui-core.cpp +++ b/src/lua/gui-core.cpp @@ -1,4 +1,4 @@ -#include "core/lua-int.hpp" +#include "lua/internal.hpp" #include "core/window.hpp" namespace diff --git a/src/lua/gui-crosshair.cpp b/src/lua/gui-crosshair.cpp index 9dd4ecc2..32d18b29 100644 --- a/src/lua/gui-crosshair.cpp +++ b/src/lua/gui-crosshair.cpp @@ -1,4 +1,4 @@ -#include "core/lua-int.hpp" +#include "lua/internal.hpp" #include "core/render.hpp" namespace diff --git a/src/lua/gui-line.cpp b/src/lua/gui-line.cpp index d01517cc..2d903ba8 100644 --- a/src/lua/gui-line.cpp +++ b/src/lua/gui-line.cpp @@ -1,4 +1,4 @@ -#include "core/lua-int.hpp" +#include "lua/internal.hpp" #include "core/render.hpp" namespace diff --git a/src/lua/gui-pixel.cpp b/src/lua/gui-pixel.cpp index bbca494f..c2fee788 100644 --- a/src/lua/gui-pixel.cpp +++ b/src/lua/gui-pixel.cpp @@ -1,4 +1,4 @@ -#include "core/lua-int.hpp" +#include "lua/internal.hpp" #include "core/render.hpp" namespace diff --git a/src/lua/gui-rectangle.cpp b/src/lua/gui-rectangle.cpp index bb8bdd2b..b0d3dc82 100644 --- a/src/lua/gui-rectangle.cpp +++ b/src/lua/gui-rectangle.cpp @@ -1,4 +1,4 @@ -#include "core/lua-int.hpp" +#include "lua/internal.hpp" #include "core/render.hpp" namespace diff --git a/src/lua/gui-text.cpp b/src/lua/gui-text.cpp index 6b259836..c4afdd73 100644 --- a/src/lua/gui-text.cpp +++ b/src/lua/gui-text.cpp @@ -1,4 +1,4 @@ -#include "core/lua-int.hpp" +#include "lua/internal.hpp" #include "core/render.hpp" namespace diff --git a/src/lua/hostmemory.cpp b/src/lua/hostmemory.cpp index 60c687db..313d4493 100644 --- a/src/lua/hostmemory.cpp +++ b/src/lua/hostmemory.cpp @@ -1,4 +1,4 @@ -#include "core/lua-int.hpp" +#include "lua/internal.hpp" #include "core/moviedata.hpp" namespace diff --git a/src/lua/input.cpp b/src/lua/input.cpp index e2555156..3e95bdc5 100644 --- a/src/lua/input.cpp +++ b/src/lua/input.cpp @@ -1,5 +1,5 @@ #include "core/keymapper.hpp" -#include "core/lua-int.hpp" +#include "lua/internal.hpp" namespace { diff --git a/src/core/lua.cpp b/src/lua/lua.cpp similarity index 89% rename from src/core/lua.cpp rename to src/lua/lua.cpp index 3fa8240b..89c71ff3 100644 --- a/src/core/lua.cpp +++ b/src/lua/lua.cpp @@ -1,35 +1,7 @@ -#include "core/lua.hpp" - -#ifdef NO_LUA -struct lua_State { int x; }; -lua_function::lua_function(const std::string& name) throw(std::bad_alloc) {} -lua_function::~lua_function() throw() {} -void lua_callback_do_paint(struct lua_render_context* ctx) throw() {} -void lua_callback_do_video(struct lua_render_context* ctx) throw() {} -void lua_callback_do_input(controller_frame& data, bool subframe) throw() {} -void lua_callback_do_reset() throw() {} -void lua_callback_do_frame() throw() {} -void lua_callback_do_readwrite() throw() {} -void lua_callback_startup() throw() {} -void lua_callback_pre_load(const std::string& name) throw() {} -void lua_callback_err_load(const std::string& name) throw() {} -void lua_callback_post_load(const std::string& name, bool was_state) throw() {} -void lua_callback_pre_save(const std::string& name, bool is_state) throw() {} -void lua_callback_err_save(const std::string& name) throw() {} -void lua_callback_post_save(const std::string& name, bool is_state) throw() {} -void lua_callback_snoop_input(uint32_t port, uint32_t controller, uint32_t index, short value) throw() {} -void lua_callback_quit() throw() {} -void lua_callback_keyhook(const std::string& key, const struct keygroup::parameters& p) throw() {} -void init_lua() throw() {} -void quit_lua() throw() {} -bool lua_requests_repaint = false; -bool lua_requests_subframe_paint = false; -bool lua_supported = false; -#else - #include "core/command.hpp" #include "core/globalwrap.hpp" -#include "core/lua-int.hpp" +#include "lua/internal.hpp" +#include "lua/lua.hpp" #include "core/mainloop.hpp" #include "core/memorymanip.hpp" #include "core/misc.hpp" @@ -531,4 +503,3 @@ void quit_lua() throw() bool lua_requests_repaint = false; bool lua_requests_subframe_paint = false; bool lua_supported = true; -#endif diff --git a/src/lua/memory.cpp b/src/lua/memory.cpp index f4cd654a..6406b67f 100644 --- a/src/lua/memory.cpp +++ b/src/lua/memory.cpp @@ -1,4 +1,4 @@ -#include "core/lua-int.hpp" +#include "lua/internal.hpp" #include "core/memorymanip.hpp" #include "core/rom.hpp" diff --git a/src/lua/movie.cpp b/src/lua/movie.cpp index 873ef6f6..8cac05b7 100644 --- a/src/lua/movie.cpp +++ b/src/lua/movie.cpp @@ -1,4 +1,4 @@ -#include "core/lua-int.hpp" +#include "lua/internal.hpp" #include "core/movie.hpp" #include "core/moviedata.hpp" diff --git a/src/lua/screenshot.cpp b/src/lua/screenshot.cpp index 56f3f059..3e47c31a 100644 --- a/src/lua/screenshot.cpp +++ b/src/lua/screenshot.cpp @@ -1,5 +1,5 @@ #include "core/framebuffer.hpp" -#include "core/lua-int.hpp" +#include "lua/internal.hpp" namespace { diff --git a/src/lua/settings.cpp b/src/lua/settings.cpp index f24be377..c0d3edbf 100644 --- a/src/lua/settings.cpp +++ b/src/lua/settings.cpp @@ -1,4 +1,4 @@ -#include "core/lua-int.hpp" +#include "lua/internal.hpp" #include "core/settings.hpp" namespace diff --git a/src/plat-dummy/Makefile b/src/plat-dummy/Makefile new file mode 100644 index 00000000..05e0b858 --- /dev/null +++ b/src/plat-dummy/Makefile @@ -0,0 +1,22 @@ +OBJECTS=dummy.$(OBJECT_SUFFIX) +ifeq ($(SOUND),DUMMY) +OBJECTS += sound.$(OBJECT_SUFFIX) +endif +ifeq ($(JOYSTICK),DUMMY) +OBJECTS += joystick.$(OBJECT_SUFFIX) +endif + +.PRECIOUS: %.$(OBJECT_SUFFIX) + +__all__.$(OBJECT_SUFFIX): $(OBJECTS) + $(REALLD) -r -o $@ $^ + touch __all__.ldflags + +%.$(OBJECT_SUFFIX): %.cpp + $(REALCC) -c -o $@ $< -I../../include $(CFLAGS) + +precheck: + @true + +clean: + rm -f *.$(OBJECT_SUFFIX) *.ldflags diff --git a/src/plat-dummy/dummy.cpp b/src/plat-dummy/dummy.cpp new file mode 100644 index 00000000..e69de29b diff --git a/src/plat-evdev/Makefile b/src/plat-evdev/Makefile new file mode 100644 index 00000000..e586d9c5 --- /dev/null +++ b/src/plat-evdev/Makefile @@ -0,0 +1,20 @@ +ifeq ($(JOYSTICK), EVDEV) +OBJECTS=$(patsubst %.cpp,%.$(OBJECT_SUFFIX),$(wildcard *.cpp)) +else +OBJECTS=dummy.$(OBJECT_SUFFIX) +endif + +.PRECIOUS: %.$(OBJECT_SUFFIX) + +__all__.$(OBJECT_SUFFIX): $(OBJECTS) + $(REALLD) -r -o $@ $^ + touch __all__.ldflags + +%.$(OBJECT_SUFFIX): %.cpp + $(REALCC) -c -o $@ $< -I../../include $(CFLAGS) + +precheck: + @true + +clean: + rm -f *.$(OBJECT_SUFFIX) *.ldflags diff --git a/src/plat-evdev/dummy.cpp b/src/plat-evdev/dummy.cpp new file mode 100644 index 00000000..e69de29b diff --git a/src/plat-portaudio/Makefile b/src/plat-portaudio/Makefile new file mode 100644 index 00000000..9e09e110 --- /dev/null +++ b/src/plat-portaudio/Makefile @@ -0,0 +1,23 @@ +ifeq ($(SOUND), PORTAUDIO) +OBJECTS=$(patsubst %.cpp,%.$(OBJECT_SUFFIX),$(wildcard *.cpp)) +PA_CFLAGS += $(shell $(CROSS_PREFIX)pkg-config portaudio-2.0 --cflags) +PA_LDFLAGS += $(shell $(CROSS_PREFIX)pkg-config portaudio-2.0 --libs) +else +OBJECTS = dummy.$(OBJECT_SUFFIX) +endif + + +.PRECIOUS: %.$(OBJECT_SUFFIX) + +__all__.$(OBJECT_SUFFIX): $(OBJECTS) + $(REALLD) -r -o $@ $^ + echo $(PA_LDFLAGS) >__all__.ldflags + +%.$(OBJECT_SUFFIX): %.cpp + $(REALCC) -c -o $@ $< -I../../include $(CFLAGS) $(PA_CFLAGS) + +precheck: + @true + +clean: + rm -f *.$(OBJECT_SUFFIX) *.ldflags diff --git a/src/plat-portaudio/dummy.cpp b/src/plat-portaudio/dummy.cpp new file mode 100644 index 00000000..e69de29b diff --git a/src/plat-sdl/Makefile b/src/plat-sdl/Makefile new file mode 100644 index 00000000..8392853f --- /dev/null +++ b/src/plat-sdl/Makefile @@ -0,0 +1,36 @@ +ifeq ($(GRAPHICS), SDL) +OBJECTS = commandline.$(OBJECT_SUFFIX) drawprim.$(OBJECT_SUFFIX) graphicsfn.$(OBJECT_SUFFIX) keyboard.$(OBJECT_SUFFIX) main.$(OBJECT_SUFFIX) thread.$(OBJECT_SUFFIX) status.$(OBJECT_SUFFIX) +SDL_CFLAGS += $(shell $(CROSS_PREFIX)sdl-config --cflags) +SDL_LDFLAGS += $(shell $(CROSS_PREFIX)sdl-config --libs) +else +OBJECTS = dummy.$(OBJECT_SUFFIX) +endif + +ifeq ($(SOUND), SDL) +ifneq ($(GRAPHICS), SDL) +$(error "SDL sound requires SDL graphics") +endif +OBJECTS += sound.$(OBJECT_SUFFIX) +endif + +ifeq ($(JOYSTICK), SDL) +ifneq ($(GRAPHICS), SDL) +$(error "SDL joystick requires SDL graphics") +endif +OBJECTS += joystick.$(OBJECT_SUFFIX) +endif + +.PRECIOUS: %.$(OBJECT_SUFFIX) + +__all__.$(OBJECT_SUFFIX): $(OBJECTS) + $(REALLD) -r -o $@ $^ + echo $(SDL_LDFLAGS) >__all__.ldflags + +%.$(OBJECT_SUFFIX): %.cpp + $(REALCC) -c -o $@ $< -I../../include $(CFLAGS) $(SDL_CFLAGS) + +precheck: + @true + +clean: + rm -f *.$(OBJECT_SUFFIX) *.ldflags diff --git a/src/plat-sdl/dummy.cpp b/src/plat-sdl/dummy.cpp new file mode 100644 index 00000000..e69de29b diff --git a/src/plat-sdl/main.cpp b/src/plat-sdl/main.cpp index 25ed2fcd..cc1e3f78 100644 --- a/src/plat-sdl/main.cpp +++ b/src/plat-sdl/main.cpp @@ -5,7 +5,7 @@ #include "core/command.hpp" #include "core/framerate.hpp" #include "core/keymapper.hpp" -#include "core/lua.hpp" +#include "lua/lua.hpp" #include "core/mainloop.hpp" #include "core/misc.hpp" #include "core/moviedata.hpp" diff --git a/src/plat-wxwidgets/Makefile b/src/plat-wxwidgets/Makefile new file mode 100644 index 00000000..a720ce0e --- /dev/null +++ b/src/plat-wxwidgets/Makefile @@ -0,0 +1,23 @@ +ifeq ($(GRAPHICS), WXWIDGETS) +OBJECTS=$(patsubst %.cpp,%.$(OBJECT_SUFFIX),$(wildcard *.cpp)) +WXW_CFLAGS += $(shell $(CROSS_PREFIX)wx-config --cxxflags) $(shell $(CROSS_PREFIX)pkg-config libswscale --cflags) +WXW_LDFLAGS += $(shell $(CROSS_PREFIX)wx-config --libs) $(shell $(CROSS_PREFIX)pkg-config libswscale --libs) +else +OBJECTS = dummy.$(OBJECT_SUFFIX) +endif + + +.PRECIOUS: %.$(OBJECT_SUFFIX) + +__all__.$(OBJECT_SUFFIX): $(OBJECTS) + $(REALLD) -r -o $@ $^ + echo $(WXW_LDFLAGS) >__all__.ldflags + +%.$(OBJECT_SUFFIX): %.cpp + $(REALCC) -c -o $@ $< -I../../include $(CFLAGS) $(WXW_CFLAGS) + +precheck: + @true + +clean: + rm -f *.$(OBJECT_SUFFIX) *.ldflags diff --git a/src/plat-wxwidgets/dummy.cpp b/src/plat-wxwidgets/dummy.cpp new file mode 100644 index 00000000..e69de29b diff --git a/src/plat-wxwidgets/main.cpp b/src/plat-wxwidgets/main.cpp index 068d2306..791a19ad 100644 --- a/src/plat-wxwidgets/main.cpp +++ b/src/plat-wxwidgets/main.cpp @@ -9,7 +9,7 @@ #include "core/controller.hpp" #include "core/dispatch.hpp" #include "core/framerate.hpp" -#include "core/lua.hpp" +#include "lua/lua.hpp" #include "core/mainloop.hpp" #include "core/misc.hpp" #include "core/moviedata.hpp" diff --git a/src/plat-wxwidgets/mainwindow.cpp b/src/plat-wxwidgets/mainwindow.cpp index 710d7e80..df1337d2 100644 --- a/src/plat-wxwidgets/mainwindow.cpp +++ b/src/plat-wxwidgets/mainwindow.cpp @@ -6,7 +6,7 @@ #include "core/dispatch.hpp" #include "core/framebuffer.hpp" #include "core/framerate.hpp" -#include "core/lua.hpp" +#include "lua/lua.hpp" #include "core/mainloop.hpp" #include "core/memorywatch.hpp" #include "core/misc.hpp" diff --git a/src/util/Makefile b/src/util/Makefile new file mode 100644 index 00000000..0549b353 --- /dev/null +++ b/src/util/Makefile @@ -0,0 +1,16 @@ +OBJECTS=$(patsubst %.cpp,%.$(OBJECT_SUFFIX),$(wildcard *.cpp)) + +.PRECIOUS: %.$(OBJECT_SUFFIX) + +__all_files__: $(OBJECTS) + @true + +%.$(OBJECT_SUFFIX): %.cpp + $(REALCC) -c -o $@ $< -I../../include $(CFLAGS) + touch $(patsubst %.$(OBJECT_SUFFIX),%.ldflags,$^) + +precheck: + @true + +clean: + rm -f $(OBJECTS) *.ldflags diff --git a/src/util/lsnes-dumpavi.cpp b/src/util/lsnes-dumpavi.cpp index 14c924fe..fe7972d9 100644 --- a/src/util/lsnes-dumpavi.cpp +++ b/src/util/lsnes-dumpavi.cpp @@ -7,7 +7,7 @@ #include "core/dispatch.hpp" #include "core/framerate.hpp" #include "core/keymapper.hpp" -#include "core/lua.hpp" +#include "lua/lua.hpp" #include "core/mainloop.hpp" #include "core/misc.hpp" #include "core/moviedata.hpp" diff --git a/src/video/Makefile b/src/video/Makefile new file mode 100644 index 00000000..23371f49 --- /dev/null +++ b/src/video/Makefile @@ -0,0 +1,35 @@ +OBJECTS=$(patsubst %.cpp,%.$(OBJECT_SUFFIX),$(wildcard *.cpp)) + +#Threads +ifdef THREADS +ifeq ($(THREADS), NATIVE) +VIDEO_CFLAGS += -DNATIVE_THREADS +else +ifeq ($(THREADS), BOOST) +VIDEO_CFLAGS += -DBOOST_THREADS +ifdef BOOST_THREAD_LIB +VIDEO_LDFLAGS += -l$(BOOST_THREAD_LIB) +else +VIDEO_LDFLAGS += -lboost_thread-mt +endif +else +$(error "Bad value for THREADS (expected NATIVE or BOOST)") +endif +endif +endif + + +.PRECIOUS: %.$(OBJECT_SUFFIX) + +__all__.$(OBJECT_SUFFIX): $(OBJECTS) + $(REALLD) -r -o $@ $^ + echo $(VIDEO_LDFLAGS) >__all__.ldflags + +%.$(OBJECT_SUFFIX): %.cpp + $(REALCC) $(CFLAGS) -c -o $@ $< -I../../include $(VIDEO_CLFAGS) + +precheck: + @true + +clean: + rm -f *.$(OBJECT_SUFFIX) *.ldflags diff --git a/avi/avi_structure.cpp b/src/video/avi_structure.cpp similarity index 99% rename from avi/avi_structure.cpp rename to src/video/avi_structure.cpp index 321a03e7..225a4a31 100644 --- a/avi/avi_structure.cpp +++ b/src/video/avi_structure.cpp @@ -1,4 +1,4 @@ -#include "avi_structure.hpp" +#include "video/avi_structure.hpp" #include "library/serialization.hpp" #include diff --git a/avi/avidump-control.cpp b/src/video/avidump-control.cpp similarity index 98% rename from avi/avidump-control.cpp rename to src/video/avidump-control.cpp index ed7d561d..315ad4cd 100644 --- a/avi/avidump-control.cpp +++ b/src/video/avidump-control.cpp @@ -1,9 +1,9 @@ -#include "cscd.hpp" -#include "sox.hpp" +#include "video/cscd.hpp" +#include "video/sox.hpp" #include "core/advdumper.hpp" #include "core/dispatch.hpp" -#include "core/lua.hpp" +#include "lua/lua.hpp" #include "core/misc.hpp" #include "core/settings.hpp" diff --git a/avi/cscd.cpp b/src/video/cscd.cpp similarity index 99% rename from avi/cscd.cpp rename to src/video/cscd.cpp index e9c8b736..e949f960 100644 --- a/avi/cscd.cpp +++ b/src/video/cscd.cpp @@ -1,4 +1,4 @@ -#include "cscd.hpp" +#include "video/cscd.hpp" #include #include #include @@ -7,7 +7,7 @@ #include #include #include -#include "avi_structure.hpp" +#include "video/avi_structure.hpp" #include "library/serialization.hpp" #define AVI_CUTOFF_SIZE 2100000000 diff --git a/avi/jmd.cpp b/src/video/jmd.cpp similarity index 100% rename from avi/jmd.cpp rename to src/video/jmd.cpp diff --git a/avi/raw.cpp b/src/video/raw.cpp similarity index 100% rename from avi/raw.cpp rename to src/video/raw.cpp diff --git a/avi/sdmp.cpp b/src/video/sdmp.cpp similarity index 100% rename from avi/sdmp.cpp rename to src/video/sdmp.cpp diff --git a/avi/sox.cpp b/src/video/sox.cpp similarity index 98% rename from avi/sox.cpp rename to src/video/sox.cpp index fe6ad567..4727adf6 100644 --- a/avi/sox.cpp +++ b/src/video/sox.cpp @@ -1,4 +1,4 @@ -#include "sox.hpp" +#include "video/sox.hpp" #include