AC_PREREQ(2.59) AC_INIT([patchage],[0.4.2],[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 >= 0.5.0]) 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)])], [debug_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 D-Bus support build_jack_dbus="no" AC_ARG_ENABLE(jack-dbus, [AS_HELP_STRING(--enable-jack-dbus, [Use Jack D-Bus instead of libjack])], [ if test x$enable_jack_dbus = xyes ; then build_jack_dbus=yes ; fi ]) if test "x$build_jack_dbus" = "xyes"; then PKG_CHECK_MODULES(DBUS, dbus-glib-1, [build_jack_dbus="yes"], [build_jack_dbus="no"]) if test "x$build_jack_dbus" = "xyes"; then AC_DEFINE([HAVE_JACK_DBUS], 1, [Defined if Jack D-Bus driver needs to be built]) fi fi # Jack support build_jack="yes" AC_ARG_ENABLE(jack, [AS_HELP_STRING(--enable-jack, [Enable Jack support (yes)])], [ if test x$enable_jack = xno ; then build_jack=no ; fi ]) if test "x$build_jack" = "xyes"; then PKG_CHECK_MODULES(JACK, jack >= 0.107.0, [build_jack="yes"], [build_jack="no"]) if test "x$build_jack" = "xyes"; then AC_DEFINE(HAVE_JACK, 1, [Has Jack]) AC_DEFINE(HAVE_JACK_MIDI, 1, [Has Jack MIDI]) fi 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 # DBUS (for new LASH) build_dbus="yes" AC_ARG_ENABLE(dbus, [AS_HELP_STRING(--enable-dbus, [Enable D-Bus (for new LASH) (yes if available)])], [ if test x$enable_dbus = xno ; then build_dbus=no ; fi ]) have_dbus="no" if test "$build_dbus" = "yes"; then PKG_CHECK_MODULES(DBUS, dbus-glib-1, [have_dbus="yes"], [have_dbus="no"]) fi if test "$have_dbus" = "yes"; then AC_DEFINE(HAVE_DBUS, 1, [Has DBUS]) fi AM_CONDITIONAL(WITH_ALSA, [test "x$ALSA_FOUND" = "xyes"]) AM_CONDITIONAL(WITH_DBUS, [test "x$have_dbus" = "xyes"]) AM_CONDITIONAL(WITH_JACK, [test "x$build_jack" = "xyes"]) AM_CONDITIONAL(WITH_JACK_DBUS, [test "x$build_jack_dbus" = "xyes"]) ############# PATCHAGE PKG_CHECK_MODULES(GTHREAD, gthread-2.0) PKG_CHECK_MODULES(GTKMM, gtkmm-2.4 >= 2.11.12) PKG_CHECK_MODULES(GNOMECANVASMM, libgnomecanvasmm-2.6) PKG_CHECK_MODULES(LIBGLADEMM, libglademm-2.4) PKG_CHECK_MODULES(FLOWCANVAS, flowcanvas >= 0.5.0) #################### OUTPUT # Patchage AC_CONFIG_FILES([Makefile]) AC_CONFIG_FILES([debian-sid/Makefile]) AC_CONFIG_FILES([icons/16x16/Makefile]) AC_CONFIG_FILES([icons/22x22/Makefile]) AC_CONFIG_FILES([icons/24x24/Makefile]) AC_CONFIG_FILES([icons/32x32/Makefile]) AC_CONFIG_FILES([icons/48x48/Makefile]) AC_CONFIG_FILES([icons/Makefile]) AC_CONFIG_FILES([icons/scalable/Makefile]) AC_CONFIG_FILES([patchage.desktop]) AC_CONFIG_FILES([src/Makefile]) AC_OUTPUT AC_MSG_RESULT([]) AC_MSG_RESULT([]) AC_MSG_RESULT([**********************************************************************]) AC_MSG_RESULT([Configuration:]) AC_MSG_RESULT([]) # we are not building libjack driver if jackdbus driver is being built (src/Makefile.am) if test "$build_jack_dbus" = "yes"; then AC_MSG_RESULT([Jack support: yes (D-Bus)]) elif test "$build_jack" = "yes"; then AC_MSG_RESULT([Jack support: yes (libjack)]) else AC_MSG_RESULT([Jack support: no]) fi AC_MSG_RESULT([DBUS/LASH support: $build_dbus]) 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([])