From 6c140099d7e659b05f1ad2ae69c78cf22b2c315a Mon Sep 17 00:00:00 2001 From: falkTX Date: Sun, 7 Aug 2011 13:37:31 +0100 Subject: [PATCH] Add new files --- demo/Build/Makefile | 25 +++++++++++++++++++++ demo/Build/premake.lua | 37 +++++++++++++++++++++++++++++++ juce_lv2_ttl_generator.c | 57 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 119 insertions(+) create mode 100644 demo/Build/Makefile create mode 100644 demo/Build/premake.lua create mode 100644 juce_lv2_ttl_generator.c diff --git a/demo/Build/Makefile b/demo/Build/Makefile new file mode 100644 index 0000000..92d6c56 --- /dev/null +++ b/demo/Build/Makefile @@ -0,0 +1,25 @@ +# Makefile autogenerated by premake +# Don't edit this file! Instead edit `premake.lua` then rerun `make` +# Options: +# CONFIG=[Release|Debug] + +ifndef CONFIG + CONFIG=Release +endif + +export CONFIG + +.PHONY: all clean Juce_Demo_Plugin + +all: Juce_Demo_Plugin + +Makefile: premake.lua + @echo ==== Regenerating Makefiles ==== + @premake --file $^ --cc gcc --os linux --target gnu + +Juce_Demo_Plugin: + @echo ==== Building Juce_Demo_Plugin ==== + @$(MAKE) --no-print-directory -C . -f Juce_Demo_Plugin.make + +clean: + @$(MAKE) --no-print-directory -C . -f Juce_Demo_Plugin.make clean diff --git a/demo/Build/premake.lua b/demo/Build/premake.lua new file mode 100644 index 0000000..97d97e5 --- /dev/null +++ b/demo/Build/premake.lua @@ -0,0 +1,37 @@ + +project.name = "Juce_Demo_Plugin" +project.bindir = "." +project.libdir = project.bindir + +project.configs = { "Release", "Debug" } + +package = newpackage() +package.name = project.name +package.target = project.name +package.language = "c++" + +package.objdir = project.bindir .. "/intermediate" +package.includepaths = { "/usr/include", "/usr/include/freetype2", "../../juce/source", "../JuceLibraryCode", "../Source" } +package.libpaths = { "/usr/X11R6/lib/", "../.." } +package.linkflags = { "static-runtime" } +package.kind = "dll" + +package.config["Release"].target = project.name +package.config["Release"].objdir = package.objdir .. "/" .. project.name .. "_Release" +package.config["Release"].buildoptions = { "-march=native -Os -fPIC -fvisibility=hidden" } +package.config["Release"].defines = { "LINUX=1", "NDEBUG=1", "JUCE_ALSA=0", "JucePlugin_Build_LV2=1" } +package.config["Release"].links = { "freetype", "pthread", "rt", "X11", "GL", "juce" } + +package.config["Debug"].target = project.name .. "_debug" +package.config["Debug"].objdir = package.objdir .. "/" .. project.name .. "_Debug" +package.config["Debug"].buildoptions = { "-march=native -ggdb -O0 -fPIC -fvisibility=hidden" } +package.config["Debug"].defines = { "LINUX=1", "DEBUG=1", "_DEBUG=1", "JUCE_ALSA=0", "JucePlugin_Build_LV2=1" } +package.config["Debug"].links = { "freetype", "pthread", "rt", "X11", "GL", "juce_debug" } + +package.files = { + matchfiles ( + "../Source/*.cpp", + "../JuceLibraryCode/*.cpp", + "../../juce/source/src/audio/plugin_client/LV2/juce_LV2_Wrapper.cpp" + ) +} diff --git a/juce_lv2_ttl_generator.c b/juce_lv2_ttl_generator.c new file mode 100644 index 0000000..70d3a88 --- /dev/null +++ b/juce_lv2_ttl_generator.c @@ -0,0 +1,57 @@ +/* + * JUCE LV2 *.ttl generator + */ + +#include + +#if defined(_WIN32) || defined (_WIN64) +#include +#define TTL_GENERATOR_WINDOWS +#else +#include +#endif + +typedef void (*TTL_Generator_Function)(void); + +int main(int argc, char *argv[]) +{ + if (argc != 2) { + printf("usage: %s /path/to/binary.so\n", argv[0]); + return 1; + } + +#ifdef TTL_GENERATOR_WINDOWS + void* handle = LoadLibrary(argv[1]); +#else + void* handle = dlopen(argv[1], RTLD_LAZY); +#endif + + if (!handle) { +#ifdef TTL_GENERATOR_WINDOWS + printf("Failed to open library\n"); +#else + printf("Failed to open library, error was:\n%s\n", dlerror()); +#endif + return 2; + } + +#ifdef TTL_GENERATOR_WINDOWS + TTL_Generator_Function ttl_fcn = (TTL_Generator_Function)GetProcAddress((HMODULE)handle, "juce_lv2_ttl_generator"); +#else + TTL_Generator_Function ttl_fcn = (TTL_Generator_Function)dlsym(handle, "juce_lv2_ttl_generator"); +#endif + + if (ttl_fcn) { + ttl_fcn(); + } else { + printf("Failed to find 'juce_lv2_ttl_generator' function\n"); + } + +#ifdef TTL_GENERATOR_WINDOWS + FreeLibrary((HMODULE)handle); +#else + dlclose(handle); +#endif + + return 0; +} -- 2.11.4.GIT