diff options
-rwxr-xr-x | autogen.sh | 11 | ||||
-rw-r--r-- | configure.ac | 326 | ||||
l--------- | src/common/lv2ext/lv2_osc.h | 1 | ||||
-rw-r--r-- | src/libs/client/Makefile.am | 5 | ||||
-rw-r--r-- | src/libs/client/PluginModel.cpp | 2 | ||||
-rw-r--r-- | src/libs/engine/Makefile.am | 10 | ||||
-rw-r--r-- | src/libs/engine/events/SetPortValueEvent.cpp | 2 | ||||
-rw-r--r-- | src/libs/gui/Makefile.am | 6 | ||||
-rw-r--r-- | src/libs/serialisation/Makefile.am | 3 | ||||
-rw-r--r-- | src/progs/ingen/Makefile.am | 2 |
10 files changed, 348 insertions, 20 deletions
diff --git a/autogen.sh b/autogen.sh new file mode 100755 index 00000000..25cfb35c --- /dev/null +++ b/autogen.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +echo 'Generating necessary files...' +rm -rf config +mkdir -p config +libtoolize --force +aclocal +autoheader -Wall +automake --foreign --add-missing -Wall +autoconf + diff --git a/configure.ac b/configure.ac new file mode 100644 index 00000000..9a1885ec --- /dev/null +++ b/configure.ac @@ -0,0 +1,326 @@ +AC_PREREQ(2.59) +AC_INIT([ingen],[svn],[dave@drobilla.net]) + +AC_CONFIG_AUX_DIR([config]) + + +################### SOURCES + +# Ingen +AC_CONFIG_SRCDIR([src/common/interface/EngineInterface.hpp]) +AC_CONFIG_SRCDIR([src/common/lv2ext/lv2-miditype.h]) +AC_CONFIG_SRCDIR([src/libs/module/Module.cpp]) +AC_CONFIG_SRCDIR([src/libs/engine/JackAudioDriver.cpp]) +AC_CONFIG_SRCDIR([src/libs/serialisation/Loader.cpp]) +AC_CONFIG_SRCDIR([src/libs/client/OSCController.cpp]) +AC_CONFIG_SRCDIR([src/libs/gui/App.cpp]) +AC_CONFIG_SRCDIR([src/progs/ingen/main.cpp]) + +AC_CONFIG_HEADER([config/config.h]) + +AM_INIT_AUTOMAKE + +#################### ENVIRONMENT + +AC_LANG([C++]) + +AC_PROG_CXX +AM_PROG_CC_C_O + +AC_DISABLE_STATIC +AC_PROG_LIBTOOL + +PKG_CHECK_MODULES(GLIBMM, glibmm-2.4) +PKG_CHECK_MODULES(GTHREAD, gthread-2.0) + +# Check for boost smart pointers +AC_CHECK_HEADERS([boost/shared_ptr.hpp], [], + AC_MSG_ERROR([You need the boost headers package (e.g. libboost-dev)])) +AC_CHECK_HEADERS([boost/weak_ptr.hpp], [], + AC_MSG_ERROR([You need the boost headers package (e.g. libboost-dev)])) + +# This is cute... autohell FTW +builddir=`pwd` +cd $srcdir +abs_srcdir=`pwd` +cd $builddir + +PKG_CHECK_MODULES([SLV2], [libslv2]) +PKG_CHECK_MODULES([RAUL], [raul]) +PKG_CHECK_MODULES([FLOWCANVAS], [flowcanvas]) + +CONFIG_H_PATH="$builddir/config/config.h" + +INGEN_CFLAGS="-I$abs_srcdir/src/common -I$abs_srcdir/src/libs -I$abs_srcdir/src/libs/engine/events -I$abs_srcdir/src" +AC_SUBST(INGEN_CFLAGS) + +#################### COMMAND LINE PARAMETERS + +AC_ARG_ENABLE(debug, + [AS_HELP_STRING(--enable-debug, [Enable debugging symbols and assertions (no)])], + [debug="$enableval"]) +if test "$debug" = "yes"; then + debug_symbols="yes" + debug_assertions="yes" +fi + +AC_ARG_ENABLE(debug_symbols, + [AS_HELP_STRING(--enable-debug-symbols, [Enable debugging symbols - overrides CXXFLAGS (no)])], + [debug_symbols="$enableval"]) + +AC_ARG_ENABLE(debug_asertions, + [AS_HELP_STRING(--enable-debug-assertions, [Enable debugging assertions (no)])], + [assertions="$enableval"]) + +if test "$debug_symbols" = "yes"; then + CFLAGS="-O0 -g" + CXXFLAGS="-O0 -g" +fi + +if test "$debug_assertions" = "yes"; then + CFLAGS="$CFLAGS -DDEBUG -DLIBRDF_DEBUG" + CXXFLAGS="$CXXFLAGS -DDEBUG -DLIBRDF_DEBUG" +else + CFLAGS="$CFLAGS -DNDEBUG -DLIBRDF_DEBUG" + CXXFLAGS="$CXXFLAGS -DNDEBUG -DLIBRDF_DEBUG" +fi + +# Boost shared_ptr debugging +pointer_debug="no" +AC_ARG_ENABLE(pointer_debug, + [AS_HELP_STRING(--enable-pointer-debug, [Smart pointer debugging (DEVELOPERS ONLY) (no)])], + [pointer_debug="$enableval"]) +if test "$pointer_debug" = "yes"; then + CFLAGS="$CFLAGS -DBOOST_SP_ENABLE_DEBUG_HOOKS" + CXXFLAGS="$CXXFLAGS -DBOOST_SP_ENABLE_DEBUG_HOOKS" +fi + +# Use strict flags? +strict="no" +AC_ARG_ENABLE(strict, + [AS_HELP_STRING(--enable-strict, [Enable strict compiler warnings and errors (no)])], + [strict="$enableval"]) +if test "$strict" = "yes"; then + # Stupid Gtkmm won't build with -pedantic + CFLAGS="$CFLAGS -Wall -Wextra -Wno-unused-parameter -Winit-self" + CXXFLAGS="$CXXFLAGS -Wall -Wextra -Wno-unused-parameter -Winit-self -Woverloaded-virtual -Wsign-promo" +fi + +# Bolt on a few specific flags to CFLAGS that should always be used +CXXFLAGS="$CXXFLAGS -ansi -pipe -fmessage-length=999 -DCONFIG_H_PATH=\\\"$CONFIG_H_PATH\\\"" +CFLAGS="$CFLAGS -std=c99 -pipe -fmessage-length=999 -DCONFIG_H_PATH=\\\"$CONFIG_H_PATH\\\"" + + +#################### GENERIC OPTIONS + + +# Jack support +build_jack="yes" +AC_ARG_ENABLE(enable-jack, + [AS_HELP_STRING(--enable-jack, [Enable Jack support (yes)])], + [ if test x$enable_jack = xno ; then build_jack=no ; fi ]) +if test "$build_jack" = "yes"; then + PKG_CHECK_MODULES(JACK, jack >= 0.107.0) + AC_DEFINE(HAVE_JACK, 1, [Has Jack]) + AC_DEFINE(HAVE_JACK_MIDI, 1, [Has Jack MIDI]) +fi + +# LV2 support +build_lv2="yes" +AC_ARG_ENABLE(lv2, + [AS_HELP_STRING(--enable-lv2, [Enable LV2 plugin support through libslv2 (yes) - Requires: libslv2])], + [ if test x$enable_lv2 = xno ; then build_lv2=no ; fi ]) +if test "$build_lv2" = "yes"; then + # Configure SLV2 (independent build system) +# AC_CONFIG_SUBDIRS([slv2]) + AC_DEFINE(HAVE_SLV2, 1, [Has libslv2]) +fi + +# Build LV2 GTK GUI +build_lv2_gui="yes" +AC_ARG_ENABLE(lv2-gui, + [AS_HELP_STRING(--enable-lv2-gui, [Build plugin GUIs (requires Gtk2)])], + [ if test x$enable_lv2_gui = xno ; then build_lv2_gui=no ; fi ]) +if test "$build_lv2_gui" = "yes"; then + PKG_CHECK_MODULES(GTK, gtk+-2.0) +fi +AM_CONDITIONAL(WITH_LV2_GUI, [test "$build_lv2_gui" = "yes"]) + + +# LADSPA support +build_ladspa="yes" +AC_ARG_ENABLE(ladspa, + [AS_HELP_STRING(--enable-ladspa, [Enable LADSPA plugin support (yes)])], + [ if test x$enable_ladspa = xno ; then build_ladspa=no ; fi ]) +if test "$build_ladspa" = "yes"; then + build_ladspa="no" + AC_CHECK_HEADER([ladspa.h], [build_ladspa="yes"], + [AC_MSG_WARN([You don't seem to build ladspa.h, Ingen will not be very useful!])]) +fi +if test "$build_ladspa" = "yes"; then + AC_DEFINE(HAVE_LADSPA, 1, [Has ladspa.h]) +fi + + +# LASH support +build_lash="yes" +AC_ARG_ENABLE(lash, + [AS_HELP_STRING(--enable-lash, [Enable LASH session management support (yes)])], + [ if test x$enable_lash = xno ; then build_lash=no ; fi ]) + +have_lash="no" +if test "$build_lash" = "yes"; then + PKG_CHECK_MODULES(LASH, lash-1.0 >= 0.5.2, have_lash="yes", have_lash="no") +fi +if test "$have_lash" = "yes"; then + AC_DEFINE(HAVE_LASH, 1, [Has lash.h]) +else + AC_MSG_WARN([LASH not found, session support will not be built.]) +fi + +# SWIG bindings +bindings="no" +AC_ARG_ENABLE(bindings, + [AS_HELP_STRING(--enable-bindings, [Build language bindings via SWIG (false)])], + [bindings="$enableval"]) +if test "$bindings" = "yes"; then + AC_CHECK_PROGS(SWIG, swig) +fi +AM_CONDITIONAL(WITH_SWIG, [test "$bindings" = "yes"]) +AC_DEFINE(WITH_BINDINGS, 1, [Building with SWIG language bindings]) + +AM_CONDITIONAL(WITH_LASH, [test "$have_lash" = "yes"]) +AM_CONDITIONAL(WITH_JACK, [test "$build_jack" = "yes"]) +AM_CONDITIONAL(BUILD_SERVER, [test "$build_ingen_server" = "yes"]) +AM_CONDITIONAL(BUILD_IN_PROCESS_ENGINE, [test "$build_in_process_engine" = "yes"]) +AM_CONDITIONAL(BUILD_UNIT_TESTS, [test "$build_unit_tests" = "yes"]) +AM_CONDITIONAL(WITH_LADSPA, [test "$build_ladspa" = "yes"]) +AM_CONDITIONAL(WITH_LV2, [test "$build_lv2" = "yes"]) + + +################# INGEN OPTIONS + +# Build support for running as an in-process jack client +build_in_process_engine="no" +AC_ARG_ENABLE([in-process-engine], + AS_HELP_STRING(--enable-in-process-engine, Build engine as an in-process Jack client (no)), + [ if test x$enable_in_process_engine = xyes ; then build_in_process_engine=yes ; fi ]) + +if test "$build_in_process_engine" = "yes"; then + AC_DEFINE(BUILD_IN_PROCESS_ENGINE, 1, [Whether to support running as a Jack in-process client]) +fi + +# Stand-alone engine (OSC controlled) +build_ingen_server="yes" +AC_ARG_ENABLE([ingen-server], + AS_HELP_STRING(--enable-server, Build OSC controlled stand-alone engine (yes)), + [ if test x$enable_server = xno ; then build_ingen_server=no ; fi ]) + +# Command-line clients +build_ingen_client_lib="yes" +AC_ARG_ENABLE([ingen-clients], + AS_HELP_STRING(--enable-ingen-clients, [Build Ingen client library (yes) - Requires: libxml2, raptor, libsigc++]), + [ if test x$enable_ingen_clients = xno ; then build_ingen_client_lib=no ; fi ]) + +# Gtk client (Ingenuity) +build_ingen_gtk_client="yes" +AC_ARG_ENABLE([ingen-gtk-client], + AS_HELP_STRING(--enable-ingen-gtk-client, [Build Ingen GTK client (true)]), + [ if test x$enable_gtk_client = xno ; then build_gtk_client=no ; fi ]) + +if test "$build_ingen_gtk_client" = "yes"; then + build_ingen_clients="yes" +fi + +# Clients +if test "$build_ingen_client_lib" = "yes"; then + AC_CHECK_HEADERS([sys/time.h unistd.h]) + PKG_CHECK_MODULES(LXML2, libxml-2.0 >= 2.6.0) # FIXME: deprecated, make optional + PKG_CHECK_MODULES(RAPTOR, raptor >= 1.4.14, build_raptor="yes", build_raptor="no") + PKG_CHECK_MODULES(RASQAL, rasqal >= 0.9.11, build_rasqal="yes", build_rasqal="no") + PKG_CHECK_MODULES(LSIGCPP, sigc++-2.0) + PKG_CHECK_MODULES(LIBLO, liblo) +else + AC_MSG_WARN([Ingen client library/executable will not be built!]) +fi +AM_CONDITIONAL(BUILD_INGEN_CLIENTS, [test "$build_ingen_clients" = "yes"]) + +if test "$build_ingen_gtk_client" = "yes"; then +# AC_CHECK_HEADERS([sys/time.h unistd.h]) +# AC_CHECK_HEADERS([string.h sys/time.h unistd.h]) +# AC_HEADER_TIME +# AC_FUNC_ERROR_AT_LINE +# AC_FUNC_FORK +# AC_FUNC_MALLOC +# AC_FUNC_STAT +# AC_CHECK_FUNCS([gettimeofday mkdir strcasecmp strchr strdup strtol]) + + PKG_CHECK_MODULES(GTKMM, gtkmm-2.4) + PKG_CHECK_MODULES(GNOMECANVASMM, libgnomecanvasmm-2.6) + PKG_CHECK_MODULES(LIBGLADEMM, libglademm-2.4) + #PKG_CHECK_MODULES(FLOWCANVAS, flowcanvas >= 0.1.0) + PKG_CHECK_MODULES(CURL, libcurl >= 7.15.0, build_curl="yes", build_curl="no") + if test "$build_curl" = "yes"; then + AC_DEFINE(HAVE_CURL, 1, [Has the libcurl library]) + fi +else + AC_MSG_WARN([GTK client will NOT be built!]) +fi +AM_CONDITIONAL(BUILD_GTK_CLIENT, [test "$build_ingen_gtk_client" = "yes"]) +AM_CONDITIONAL(WITH_CURL, [test "$build_curl" = "yes"]) + +# Build ingen client lib if anything above that depends on it is to be built +AM_CONDITIONAL(BUILD_CLIENT_LIB, [test "$build_ingen_clients" = "yes" -o "$build_ingen_gtk_client" = "yes"]) + + +#################### OUTPUT + +# Ingen +AC_CONFIG_FILES([Makefile]) +AC_CONFIG_FILES([src/Makefile]) +AC_CONFIG_FILES([src/common/Makefile]) +AC_CONFIG_FILES([src/common/interface/Makefile]) +AC_CONFIG_FILES([src/common/lv2ext/Makefile]) +AC_CONFIG_FILES([src/libs/Makefile]) +AC_CONFIG_FILES([src/libs/module/Makefile]) +AC_CONFIG_FILES([src/libs/engine/Makefile]) +AC_CONFIG_FILES([src/libs/engine/events/Makefile]) +AC_CONFIG_FILES([src/libs/serialisation/Makefile]) +AC_CONFIG_FILES([src/libs/client/Makefile]) +AC_CONFIG_FILES([src/libs/gui/Makefile]) +AC_CONFIG_FILES([src/bindings/Makefile]) +AC_CONFIG_FILES([src/progs/Makefile]) +AC_CONFIG_FILES([src/progs/ingen/Makefile]) +AC_CONFIG_FILES([src/progs/supercollider/Makefile]) +AC_CONFIG_FILES([src/progs/python/Makefile]) +AC_CONFIG_FILES([src/progs/python/scripts/Makefile]) +AC_CONFIG_FILES([src/progs/ingen/ingen.desktop]) +AC_CONFIG_FILES([patches/Makefile]) +AC_CONFIG_FILES([doc/Doxyfile]) + + +AC_OUTPUT + +AC_MSG_RESULT([]) +AC_MSG_RESULT([]) +AC_MSG_RESULT([**********************************************************************]) +AC_MSG_RESULT([Configuration:]) +AC_MSG_RESULT([]) +AC_MSG_RESULT([Jack support: $build_jack]) +AC_MSG_RESULT([LV2 Plugin support: $build_lv2]) +AC_MSG_RESULT([LADSPA Plugin support: $build_ladspa]) +AC_MSG_RESULT([]) +AC_MSG_RESULT([Ingen:]) +AC_MSG_RESULT([ Engine library/OSC server: $build_ingen_server]) +AC_MSG_RESULT([ JACK in-process engine: $build_in_process_engine]) +AC_MSG_RESULT([ Client library: $build_ingen_client_lib]) +AC_MSG_RESULT([ GTK GUI: $build_ingen_gtk_client]) +AC_MSG_RESULT([]) +AC_MSG_RESULT([*** INGEN IS WITHOUT LASH SUPPORT AT THIS TIME ***]) +AC_MSG_RESULT([]) +AC_MSG_RESULT([C FLAGS: $CFLAGS]) +AC_MSG_RESULT([C++ FLAGS: $CXXFLAGS]) +AC_MSG_RESULT([Please note the above and see README for performance information.]) +AC_MSG_RESULT([**********************************************************************]) +AC_MSG_RESULT([]) + diff --git a/src/common/lv2ext/lv2_osc.h b/src/common/lv2ext/lv2_osc.h new file mode 120000 index 00000000..8c97f7b8 --- /dev/null +++ b/src/common/lv2ext/lv2_osc.h @@ -0,0 +1 @@ +../../../../lv2/extensions/osc/lv2_osc.h
\ No newline at end of file diff --git a/src/libs/client/Makefile.am b/src/libs/client/Makefile.am index ba8afd89..730140ca 100644 --- a/src/libs/client/Makefile.am +++ b/src/libs/client/Makefile.am @@ -6,11 +6,8 @@ moduledir = $(libdir)/ingen module_LTLIBRARIES = libingen_client.la libingen_client_la_CXXFLAGS = \ - -I$(top_srcdir)/slv2 \ - -I$(top_srcdir)/raul \ - -I$(top_srcdir)/ingen/src/common \ - -I$(top_srcdir)/lv2/extensions/osc \ -DPKGDATADIR=\"$(pkgdatadir)\" \ + @INGEN_CFLAGS@ \ @LIBLO_CFLAGS@ \ @LXML2_CFLAGS@ @RASQAL_CFLAGS@ @RAPTOR_CFLAGS@ \ @LSIGCPP_CFLAGS@ @GLIBMM_CFLAGS@ diff --git a/src/libs/client/PluginModel.cpp b/src/libs/client/PluginModel.cpp index 0e6c06b3..069c0157 100644 --- a/src/libs/client/PluginModel.cpp +++ b/src/libs/client/PluginModel.cpp @@ -17,7 +17,7 @@ #include <sstream> #include <raul/Path.hpp> -#include "lv2_osc_print.h" +//#include "lv2_osc_print.h" #include "PluginModel.hpp" #include "PatchModel.hpp" diff --git a/src/libs/engine/Makefile.am b/src/libs/engine/Makefile.am index bbc621ae..4921b0c1 100644 --- a/src/libs/engine/Makefile.am +++ b/src/libs/engine/Makefile.am @@ -6,15 +6,11 @@ moduledir = $(libdir)/ingen module_LTLIBRARIES = libingen_engine.la libingen_engine_la_CXXFLAGS = \ - @SLV2_CFLAGS@ @RAUL_CFLAGS@ \ - -I$(top_srcdir)/ingen/src/common \ - -I$(top_srcdir)/ingen/src/libs \ - -I$(top_srcdir)/ingen/src/libs/engine/events \ - -I$(top_srcdir)/lv2/extensions/osc \ - @JACK_CFLAGS@ @LIBLO_CFLAGS@ @ALSA_CFLAGS@ @LASH_CFLAGS@ @GLIBMM_CFLAGS@ + @SLV2_CFLAGS@ @RAUL_CFLAGS@ @INGEN_CFLAGS@ \ + @JACK_CFLAGS@ @LIBLO_CFLAGS@ @LASH_CFLAGS@ @GLIBMM_CFLAGS@ libingen_engine_la_LDFLAGS = -no-undefined -module -avoid-version -libingen_engine_la_LIBADD = @RAUL_LIBS@ @JACK_LIBS@ @LIBLO_LIBS@ @ALSA_LIBS@ @LASH_LIBS@ @SLV2_LIBS@ @GLIBMM_LIBS@ +libingen_engine_la_LIBADD = @RAUL_LIBS@ @JACK_LIBS@ @LIBLO_LIBS@ @LASH_LIBS@ @SLV2_LIBS@ @GLIBMM_LIBS@ AM_CFLAGS=-std=c99 diff --git a/src/libs/engine/events/SetPortValueEvent.cpp b/src/libs/engine/events/SetPortValueEvent.cpp index 592c09b3..b4d2571c 100644 --- a/src/libs/engine/events/SetPortValueEvent.cpp +++ b/src/libs/engine/events/SetPortValueEvent.cpp @@ -16,7 +16,7 @@ */ #include <sstream> -#include "lv2_osc_print.h" +#include <lv2ext/lv2-midiport.h> #include "Responder.hpp" #include "SetPortValueEvent.hpp" #include "Engine.hpp" diff --git a/src/libs/gui/Makefile.am b/src/libs/gui/Makefile.am index d0d07fd8..e45b095a 100644 --- a/src/libs/gui/Makefile.am +++ b/src/libs/gui/Makefile.am @@ -12,12 +12,10 @@ moduledir = $(libdir)/ingen module_LTLIBRARIES = libingen_gui.la libingen_gui_la_CXXFLAGS = \ - @SLV2_CFLAGS@ @RAUL_CFLAGS@ @FLOWCANVAS_CFLAGS@ \ - -I$(top_srcdir)/ingen/src/common \ - -I$(top_srcdir)/ingen/src/libs \ -DPKGDATADIR=\"$(pkgdatadir)\" \ + @SLV2_CFLAGS@ @RAUL_CFLAGS@ @FLOWCANVAS_CFLAGS@ \ + @INGEN_CFLAGS@ \ -DINGEN_MODULE_DIR=\"$(libdir)/ingen\" \ - -DGTK_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED \ @LIBLO_CFLAGS@ @CURL_CFLAGS@ \ @GTKMM_CFLAGS@ @LIBGLADEMM_CFLAGS@ @GNOMECANVASMM_CFLAGS@ diff --git a/src/libs/serialisation/Makefile.am b/src/libs/serialisation/Makefile.am index 0ceae510..0f5df646 100644 --- a/src/libs/serialisation/Makefile.am +++ b/src/libs/serialisation/Makefile.am @@ -5,8 +5,7 @@ moduledir = $(libdir)/ingen module_LTLIBRARIES = libingen_serialisation.la libingen_serialisation_la_CXXFLAGS = \ - -I$(top_srcdir)/ingen/src/common \ - -I$(top_srcdir)/ingen/src/libs \ + @INGEN_CFLAGS@ \ @RAUL_CFLAGS@ \ @GLIBMM_CFLAGS@ \ @SLV2_CFLAGS@ diff --git a/src/progs/ingen/Makefile.am b/src/progs/ingen/Makefile.am index 2a471c73..9705fd9f 100644 --- a/src/progs/ingen/Makefile.am +++ b/src/progs/ingen/Makefile.am @@ -1,4 +1,4 @@ -AM_CXXFLAGS = @GTHREAD_CFLAGS@ @GLIBMM_CFLAGS@ @RAUL_CFLAGS@ @SLV2_CFLAGS@ -I$(top_srcdir)/ingen/src/common -I$(top_srcdir)/ingen/src/libs -I$(top_srcdir)/ingen/src -DINGEN_MODULE_DIR=\"$(libdir)/ingen\" +AM_CXXFLAGS = @GTHREAD_CFLAGS@ @GLIBMM_CFLAGS@ @RAUL_CFLAGS@ @SLV2_CFLAGS@ @INGEN_CFLAGS@ -DINGEN_MODULE_DIR=\"$(libdir)/ingen\" MAINTAINERCLEANFILES = Makefile.in |