diff options
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 457 |
1 files changed, 457 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..f8c4ead --- /dev/null +++ b/configure.ac @@ -0,0 +1,457 @@ +# Filename: configure.in + +AC_INIT([drumgizmo], m4_esyscmd_s([cat version.h | cut -d'"' -f2])) +AC_CONFIG_SRCDIR([src/drumgizmo.cc]) +AM_INIT_AUTOMAKE + +AC_PROG_CXX +#AM_PROG_CC_C_O + +AC_PROG_LIBTOOL +AM_PROG_LIBTOOL + +AM_CONFIG_HEADER(config.h) +AC_STDC_HEADERS + +need_jack=no + +dnl ====================== +dnl Init pkg-config +dnl ====================== +PKG_PROG_PKG_CONFIG(0.23) + +HUGIN_PARM="-DDISABLE_HUGIN" +AC_ARG_WITH(debug, [ --with-debug Build with debug support]) +if test x$with_debug == xyes; then + AC_MSG_WARN([*** Building with debug support!]) + CXXFLAGS="$CXXFLAGS -Wall -Werror -g" + HUGIN_PARM="" +fi +CXXFLAGS="$CXXFLAGS $HUGIN_PARM" + +AC_ARG_WITH(experimental, [ --with-experimental Build with experimental features]) +if test x$with_experimental == xyes; then + AC_MSG_WARN([*** Building with experimental support!]) + CXXFLAGS="$CXXFLAGS -DEXPERIMENTAL" +fi + +AC_ARG_WITH(pugl, [ --with-pugl Build with Pugl support]) +if test x$with_pugl == xyes; then + AC_MSG_WARN([*** Building with pugl support!]) + PUGL_LIBS="-lGL -lGLU -lX11" + PUGL_CFLAGS="" + AC_SUBST(PUGL_CFLAGS) + AC_SUBST(PUGL_LIBS) +fi + +AC_ARG_WITH(test, [ --with-test Build unit tests]) +if test x$with_test == xyes; then + AC_MSG_WARN([*** Building unittests!]) + AM_PATH_CPPUNIT(1.9.6) + AC_OUTPUT(test/Makefile) +fi + +dnl ====================== +dnl Compile LV2 plugin +dnl ====================== +AC_ARG_ENABLE([lv2], +[ --enable-lv2 Compile the LV2 plugin [default=yes]],, + [enable_lv2="yes"]) +if test "x$enable_lv2" = "xyes"; then + enable_lv2=yes + dnl ====================== + dnl Check for lv2core + dnl ====================== + PKG_CHECK_MODULES(LV2, lv2 >= 1.0) + + dnl ====================== + dnl Check for Xlib + dnl ====================== + PKG_CHECK_MODULES(X11, x11 >= 1.0) +else + AC_MSG_RESULT([*** LV2 plugin will not be compiled ***]) + enable_lv2=no +fi +AM_CONDITIONAL([ENABLE_LV2], [test "x$enable_lv2" = "xyes"]) + +#dnl ====================== +#dnl Compile VST plugin +#dnl ====================== +#AC_ARG_ENABLE([vst], +#[ --enable-vst Compile the VST plugin [default=yes]],, +# [enable_vst="yes"]) +#if test "x$enable_vst" = "xyes"; then +# enable_vst=yes +# dnl ====================== +# dnl Check for vstcore +# dnl ====================== +# PKG_CHECK_MODULES(VST, vstcore >= 4.1) +#else +# AC_MSG_RESULT([*** VST plugin will not be compiled ***]) +# enable_vst=no +#fi +#AM_CONDITIONAL([ENABLE_VST], [test "x$enable_vst" = "xyes"]) + +dnl ====================== +dnl Compile AU plugin +dnl ====================== +#AC_ARG_ENABLE([au], +#[ --enable-au Compile the audio units plugin [default=no]],, +# [enable_au="no"]) +#if test "x$enable_au" = "xyes"; then +# enable_au=yes +#else +# AC_MSG_RESULT([*** Audio Units plugin will not be compiled ***]) +# enable_au=no +#fi +#AM_CONDITIONAL([ENABLE_AU], [test "x$enable_au" = "xyes"]) + +dnl ====================== +dnl Compile cli client +dnl ====================== +AC_ARG_ENABLE([cli], +[ --enable-cli Compile the command line interface [default=yes]],, + [enable_cli="yes"]) +if test "x$enable_cli" = "xyes"; then + enable_cli=yes + + dnl ====================== + dnl Check for getopt + dnl ====================== + AC_HAVE_HEADERS(getopt.h) + + dnl *** + dnl *** Input plugins + dnl *** + + dnl *** Dummy + AC_ARG_ENABLE([input_dummy], + [ --disable-input-dummy Disable input dummy plugin [default=enabled]],, + [enable_input_dummy="yes"]) + if test "x$enable_input_dummy" = "xyes"; then + have_input_dummy=yes + else + AC_MSG_RESULT([*** input dummy plugin disabled per user request ***]) + have_input_dummy=no + fi + + dnl *** Test + AC_ARG_ENABLE([input_test], + [ --disable-input-test Disable input test plugin [default=enabled]],, + [enable_input_test="yes"]) + if test "x$enable_input_test" = "xyes"; then + have_input_test=yes + else + AC_MSG_RESULT([*** input test plugin disabled per user request ***]) + have_input_test=no + fi + + dnl *** Jackmidi + AC_ARG_ENABLE([input_jackmidi], + [ --disable-input-jackmidi Disable input jackmidi plugin [default=enabled]],, + [enable_input_jackmidi="yes"]) + if test "x$enable_input_jackmidi" = "xyes"; then + have_input_jackmidi=yes + need_jack=yes + else + AC_MSG_RESULT([*** input jackmidi plugin disabled per user request ***]) + have_input_jackmidi=no + fi + + dnl *** Midifile + AC_ARG_ENABLE([input_midifile], + [ --disable-input-midifile Disable input midifile plugin [default=enabled]],, + [enable_input_midifile="yes"]) + if test "x$enable_input_midifile" = "xyes"; then + have_input_midifile=yes + dnl ====================== + dnl Check for libsmf + dnl ====================== + PKG_CHECK_MODULES(SMF, smf >= 1.2) + else + AC_MSG_RESULT([*** input midifile plugin disabled per user request ***]) + have_input_midifile=no + fi + + INPUT_PLUGINS="midifile jackmidi dummy test" + AC_SUBST(INPUT_PLUGINS) + + + dnl *** + dnl *** Output plugins + dnl *** + + dnl *** dummy + AC_ARG_ENABLE([output_dummy], + [ --disable-output-dummy Disable output dummy plugin [default=enabled]],, + [enable_output_dummy="yes"]) + if test "x$enable_output_dummy" = "xyes"; then + have_output_dummy=yes + else + AC_MSG_RESULT([*** output dummy plugin disabled per user request ***]) + have_output_dummy=no + fi + + dnl *** Jackaudio + AC_ARG_ENABLE([output_jackaudio], + [ --disable-output-jackaudio Disable output jack plugin [default=enabled]],, + [enable_output_jackaudio="yes"]) + if test "x$enable_output_jackaudio" = "xyes"; then + have_output_jackaudio=yes + need_jack=yes + else + AC_MSG_RESULT([*** output jack plugin disabled per user request ***]) + have_output_jackaudio=no + fi + + dnl *** alsa + AC_ARG_ENABLE([output_alsa], + [ --disable-output-alsa Disable output alsa plugin [default=enabled]],, + [enable_output_alsa="yes"]) + if test "x$enable_output_alsa" = "xyes"; then + have_output_alsa=yes + dnl ====================== + dnl Check for alsa library + dnl ====================== + PKG_CHECK_MODULES(ALSA, alsa >= 1.0.18) + else + AC_MSG_RESULT([*** output alsa plugin disabled per user request ***]) + have_output_alsa=no + fi + + dnl *** wavfile + AC_ARG_ENABLE([output_wavfile], + [ --disable-output-wavfile Disable output wavfile plugin [default=enabled]],, + [enable_output_wavfile="yes"]) + if test "x$enable_output_wavfile" = "xyes"; then + have_output_wavfile=yes + else + AC_MSG_RESULT([*** output wavfile plugin disabled per user request ***]) + have_output_wavfile=no + fi + + OUTPUT_PLUGINS="dummy alsa wavfile jackaudio" + AC_SUBST(OUTPUT_PLUGINS) + + dnl + dnl Setup plugin paths + dnl + dgplugindir=${libdir}/drumgizmo + AC_SUBST([dgplugindir]) + + INPUT_PLUGIN_DIR=${dgplugindir}/input + OUTPUT_PLUGIN_DIR=${dgplugindir}/output + AC_SUBST([INPUT_PLUGIN_DIR]) + AC_SUBST([OUTPUT_PLUGIN_DIR]) + + AC_DEFINE_UNQUOTED(INPUT_PLUGIN_DIR, "${prefix}/lib/drumgizmo/input", + [Input plugin dir]) + AC_DEFINE_UNQUOTED(OUTPUT_PLUGIN_DIR, "${prefix}/lib/drumgizmo/output", + [Output plugin dir]) +else + AC_MSG_RESULT([*** Command line interface disabled per user request ***]) + enable_cli=no +fi +AM_CONDITIONAL([ENABLE_CLI], [test "x$enable_cli" == "xyes"]) +AM_CONDITIONAL([HAVE_INPUT_DUMMY], [test "x$have_input_dummy" = "xyes"]) +AM_CONDITIONAL([HAVE_INPUT_TEST], [test "x$have_input_test" = "xyes"]) +AM_CONDITIONAL([HAVE_INPUT_JACKMIDI], [test "x$have_input_jackmidi" = "xyes"]) +AM_CONDITIONAL([HAVE_INPUT_MIDIFILE], [test "x$have_input_midifile" = "xyes"]) +AM_CONDITIONAL([HAVE_OUTPUT_DUMMY], [test "x$have_output_dummy" = "xyes"]) +AM_CONDITIONAL([HAVE_OUTPUT_ALSA], [test "x$have_output_alsa" = "xyes"]) +AM_CONDITIONAL([HAVE_OUTPUT_WAVFILE], [test "x$have_output_wavfile" = "xyes"]) +AM_CONDITIONAL([HAVE_OUTPUT_JACKAUDIO], [test "x$have_output_jackaudio" = "xyes"]) + + +AC_ARG_ENABLE([editor], +[ --disable-editor Disable Qt editor [default=enabled]],, + [enable_editor="yes"]) +if test "x$enable_editor" = "xyes"; then + have_editor=yes + dnl ====================== + dnl Check for Qt + dnl ====================== + PKG_CHECK_MODULES(QT, QtCore QtGui QtXml >= 4.5) + AC_CHECK_PROGS(QT_MOC, [moc4 moc-qt4 moc], []) + AC_CHECK_PROGS(QT_RCC, [rcc4 rcc-qt4 rcc], []) + AC_CHECK_PROGS(QT_UIC, [uic4 uic-qt4 uic], []) + if (test "$QT_MOC" = ""); then + AC_MSG_ERROR([QT4 moc is required.]) + fi + if (test "$QT_RCC" = ""); then + AC_MSG_ERROR([QT4 rcc is required.]) + fi + if (test "$QT_UIC" = ""); then + AC_MSG_ERROR([QT4 uic is required.]) + fi + + dnl ====================== + dnl Check for libao + dnl ====================== + PKG_CHECK_MODULES(AO, ao >= 0.8.8) +else + AC_MSG_RESULT([*** Qt Drumkit Editor disabled per user request ***]) + have_editor=no +fi +AM_CONDITIONAL([HAVE_EDITOR], [test "x$have_editor" = "xyes"]) + +dnl ====================== +dnl Check for sndfile +dnl ====================== +PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.20) + +dnl ====================== +dnl Check for libsamplerate +dnl ====================== +PKG_CHECK_MODULES(SAMPLERATE, samplerate >= 0.1.7) + +#dnl ====================== +#dnl Check for libpng +#dnl ====================== +PKG_CHECK_MODULES(PNG, libpng >= 1.2) + +#dnl ====================== +#dnl Check for zlib +#dnl ====================== +#PKG_CHECK_MODULES(ZLIB, zlib >= 1.2.7) + +dnl ====================== +dnl Check for the pthread library +dnl ====================== +tmp_CXXFLAGS="$CXXFLAGS" +tmp_CPPFLAGS="$CPPFLAGS" +tmp_CFLAGS="$CFLAGS" +tmp_LDFLAGS="$LDFLAGS" +tmp_LIBS="$LIBS" +CXXFLAGS="" +CPPFLAGS="" +CFLAGS="" +LDFLAGS="" +LIBS="" +AC_CHECK_HEADER(pthread.h, , AC_MSG_ERROR([*** pthread header file not found!])) +AC_CHECK_LIB(pthread, pthread_mutex_init, , AC_MSG_ERROR([*** pthread library not found!])) +PTHREAD_CFLAGS="$CXXFLAGS $CPPFLAGS $CFLAGS" +PTHREAD_LIBS="$LDFLAGS $LIBS" +CXXFLAGS="$tmp_CXXFLAGS" +CPPFLAGS="$tmp_CPPFLAGS" +CFLAGS="$tmp_CFLAGS" +LDFLAGS="$tmp_LDFLAGS" +LIBS="$tmp_LIBS" +AC_SUBST(PTHREAD_CFLAGS) +AC_SUBST(PTHREAD_LIBS) + +dnl ====================== +dnl Check for eXpat library +dnl ====================== +tmp_CXXFLAGS="$CXXFLAGS" +tmp_CPPFLAGS="$CPPFLAGS" +tmp_CFLAGS="$CFLAGS" +tmp_LDFLAGS="$LDFLAGS" +tmp_LIBS="$LIBS" +CXXFLAGS="" +CPPFLAGS="" +CFLAGS="" +LDFLAGS="" +LIBS="" +AC_CHECK_HEADER(expat.h, , AC_MSG_ERROR([*** eXpat header file not found!])) +AC_CHECK_LIB(expat, XML_ParserCreate, , AC_MSG_ERROR([*** eXpat library not found!])) +EXPAT_CFLAGS="$CXXFLAGS $CPPFLAGS $CFLAGS" +EXPAT_LIBS="$LDFLAGS $LIBS" +CXXFLAGS="$tmp_CXXFLAGS" +CPPFLAGS="$tmp_CPPFLAGS" +CFLAGS="$tmp_CFLAGS" +LDFLAGS="$tmp_LDFLAGS" +LIBS="$tmp_LIBS" +AC_SUBST(EXPAT_CFLAGS) +AC_SUBST(EXPAT_LIBS) + +dnl =========================== +dnl Check for SSE instructions +dnl =========================== +AC_ARG_ENABLE([sse], +[ --enable-sse[=level] Enable SSE Level 1, 2, 3 or auto [default=auto]],, + [enable_sse="auto"]) +if test "x$enable_sse" = "xyes"; then + enable_sse="auto" +fi +#AC_MSG_RESULT([SSE: $enable_sse]) +if test "x$enable_sse" = "x3"; then + AC_MSG_RESULT([Setting sse level 3]) + SSEFLAGS="-DSSE -msse -msse2 -mss3" +elif test "x$enable_sse" = "x2"; then + AC_MSG_RESULT([Setting sse level 2]) + SSEFLAGS="-DSSE -msse -msse2" +elif test "x$enable_sse" = "x1"; then + AC_MSG_RESULT([Setting sse level 1]) + SSEFLAGS="-DSSE -msse" +elif test "x$enable_sse" = "xauto"; then + AC_MSG_RESULT([Auto setting sse level]) + AC_MSG_CHECKING([for sse3 instructions]) + if grep -q "sse3" /proc/cpuinfo + then + AC_MSG_RESULT([yes]) + SSEFLAGS="-msse3" + AC_SUBST(SSEFLAGS) + else + AC_MSG_RESULT([no]) + fi + AC_MSG_CHECKING([for sse2 instructions]) + if grep -q "sse2" /proc/cpuinfo + then + AC_MSG_RESULT([yes]) + SSEFLAGS="$SSEFLAGS -msse2" + AC_SUBST(SSEFLAGS) + else + AC_MSG_RESULT([no]) + fi + AC_MSG_CHECKING([for sse instructions]) + if grep -q "sse" /proc/cpuinfo + then + AC_MSG_RESULT([yes]) + SSEFLAGS="$SSEFLAGS -DSSE -msse" + AC_SUBST(SSEFLAGS) + else + AC_MSG_RESULT([no]) + fi +else + AC_MSG_RESULT([*** Disabling SSE ***]) +fi + +if test "x$need_jack" = "xyes" +then + dnl ====================== + dnl Check for jack + dnl ====================== + PKG_CHECK_MODULES(JACK, jack >= 0.120.1) +fi + +AC_SUBST(CFLAGS) +AC_SUBST(CPPFLAGS) +AC_SUBST(CXXFLAGS) +AC_SUBST(LDFLAGS) + + + +# au/Makefile + +AC_OUTPUT( + Makefile + tools/Makefile + src/Makefile + vst/Makefile + lv2/Makefile + plugingui/Makefile + include/Makefile + drumgizmo/Makefile + drumgizmo/input/Makefile + drumgizmo/input/dummy/Makefile + drumgizmo/input/test/Makefile + drumgizmo/input/jackmidi/Makefile + drumgizmo/input/midifile/Makefile + drumgizmo/output/Makefile + drumgizmo/output/dummy/Makefile + drumgizmo/output/alsa/Makefile + drumgizmo/output/jackaudio/Makefile + drumgizmo/output/wavfile/Makefile + dgedit/Makefile) + |