diff options
author | David Robillard <d@drobilla.net> | 2007-08-08 00:30:54 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2007-08-08 00:30:54 +0000 |
commit | 83f9aac1a8355702e4587bdca57451854bab2753 (patch) | |
tree | 26b994a6ba18e3d7f39f4fdcd008bb0c52538285 /configure.ac | |
parent | 66605036825e32783d1b47ade28aa1133a2b11aa (diff) | |
download | patchage-83f9aac1a8355702e4587bdca57451854bab2753.tar.gz patchage-83f9aac1a8355702e4587bdca57451854bab2753.tar.bz2 patchage-83f9aac1a8355702e4587bdca57451854bab2753.zip |
Added individial building stuff for flowcanvas, raul, patchage.
git-svn-id: http://svn.drobilla.net/lad/patchage@684 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 189 |
1 files changed, 189 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..3476f1d --- /dev/null +++ b/configure.ac @@ -0,0 +1,189 @@ + +AC_PREREQ(2.59) +AC_INIT([patchage],[svn],[dave@drobilla.net]) + +AC_CONFIG_AUX_DIR([config]) + + +################### SOURCES + +# Patchage +AC_CONFIG_SRCDIR([src/main.cpp]) + +AC_CONFIG_HEADER([config/config.h]) + +AM_INIT_AUTOMAKE + +#################### ENVIRONMENT + +AC_LANG([C++]) + +AC_PROG_CXX +AC_PROG_CC_C_O + +AC_DISABLE_STATIC +AC_PROG_LIBTOOL + +PKG_CHECK_MODULES(GLIBMM, glibmm-2.4) + +# 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([RAUL], [raul]) + +CONFIG_H_PATH="$builddir/config/config.h" + +#################### 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_assertions, + [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" + CXXFLAGS="$CXXFLAGS -DDEBUG" +else + CFLAGS="$CFLAGS -DNDEBUG" + CXXFLAGS="$CXXFLAGS -DNDEBUG" +fi + +# Boost shared_ptr debugging +pointer_debug="no" +AC_ARG_ENABLE(pointer_debug, + [AS_HELP_STRING(--enable-pointer-debug, [Enable smart pointer debugging (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_MIDI, 1, [Has Jack MIDI]) +fi + +# ALSA support +build_alsa="yes" +AC_ARG_ENABLE(alsa, +[AS_HELP_STRING(--enable-alsa, [Enable Alsa MIDI (yes)])], + [ if test x$enable_alsa = xno ; then build_alsa=no ; fi ]) + +if test "$build_alsa" = "yes"; then + AC_CHECK_LIB(asound, snd_seq_open, ALSA_FOUND="yes", ALSA_FOUND="no", -lm -ldl -lpthread) + + if test "$ALSA_FOUND" = "yes"; then + AC_DEFINE(HAVE_ALSA, 1, [whether or not we have alsa]) + ALSA_CFLAGS="" + ALSA_LIBS="-lasound -lm -ldl -lpthread" + AC_SUBST(ALSA_CFLAGS) + AC_SUBST(ALSA_LIBS) + else + build_alsa="no" + fi +else + ALSA_FOUND="no" +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 + +AM_CONDITIONAL(WITH_ALSA, [test "$ALSA_FOUND" = "yes"]) +AM_CONDITIONAL(WITH_LASH, [test "$have_lash" = "yes"]) +AM_CONDITIONAL(WITH_JACK, [test "$build_jack" = "yes"]) + + +############# PATCHAGE +PKG_CHECK_MODULES(GTHREAD, gthread-2.0) +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) + + +#################### OUTPUT + +# Patchage +AC_CONFIG_FILES([Makefile]) +AC_CONFIG_FILES([src/Makefile]) +AC_CONFIG_FILES([patchage.desktop]) + +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([LASH support: $build_lash]) +AC_MSG_RESULT([ALSA support: $ALSA_FOUND]) +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([]) + |