annotate configure.ac @ 342:4eccff14b4d8 tonioni

Much fiddling toward getting sessions and individual audio files to load cleanly when they need quite different handling after load
author Chris Cannam
date Wed, 02 Apr 2014 21:25:56 +0100
parents 472bc9c4dd8f
children b3b673d133a0
rev   line source
Chris@198 1
Chris@284 2 AC_INIT([SVapp], [2.1], cannam@all-day-breakfast.com)
Chris@198 3
Chris@199 4 AC_CONFIG_SRCDIR(framework/Document.h)
Chris@198 5
Chris@198 6 # Autoconf will set CXXFLAGS; we don't usually want it to, because we
Chris@198 7 # either define our own flags (at least if GCC is in use) or else use
Chris@198 8 # the user's preferences. We need to ensure CXXFLAGS is only set if
Chris@198 9 # the user has expressly set it. So, save the user's (or empty)
Chris@198 10 # setting now and restore it after Autoconf has done its bit of
Chris@198 11 # piddling about.
Chris@198 12 USER_CXXFLAGS="$CXXFLAGS"
Chris@198 13
Chris@216 14 # If the user supplied CFLAGS but not CXXFLAGS, use CFLAGS instead
Chris@216 15 if test x"$USER_CXXFLAGS" = x; then
Chris@216 16 if test x"$CFLAGS" != x; then
Chris@216 17 USER_CXXFLAGS="$CFLAGS"
Chris@216 18 fi
Chris@216 19 fi
Chris@216 20
Chris@198 21 AC_LANG_CPLUSPLUS
Chris@198 22
Chris@198 23 AC_PROG_CC
Chris@198 24 AC_PROG_CXX
Chris@198 25 AC_PROG_INSTALL
Chris@198 26 AC_PROG_MKDIR_P
Chris@198 27
Chris@198 28 AC_HEADER_STDC
Chris@198 29
Chris@198 30 # These are the flags Autoconf guesses for us; we use them later if
Chris@198 31 # the user has set none and we are not using GCC (so lack our own
Chris@198 32 # preferred flags)
Chris@198 33 AUTOCONF_CXXFLAGS="$CXXFLAGS"
Chris@198 34
Chris@198 35 PKG_PROG_PKG_CONFIG
Chris@198 36
Chris@198 37 SV_CHECK_QT
Chris@198 38
Chris@198 39 SV_DEFINES_DEBUG="-DDEBUG -DBUILD_DEBUG -DWANT_TIMING"
Chris@198 40 SV_DEFINES_RELEASE="-DNDEBUG -DBUILD_RELEASE -DNO_TIMING"
Chris@198 41 SV_DEFINES_MINIMAL="$SV_DEFINES_RELEASE"
Chris@198 42
Chris@198 43 # Now we have: USER_CXXFLAGS contains any flags the user set
Chris@198 44 # explicitly; AUTOCONF_CXXFLAGS contains flags that Autoconf thought
Chris@198 45 # we should use. If we have GCC, we override the latter but then
Chris@198 46 # allow ourselves to be overridden (later) by the former
Chris@198 47
Chris@198 48 CXXFLAGS_DEBUG="$AUTOCONF_CXXFLAGS"
Chris@198 49 CXXFLAGS_RELEASE="$AUTOCONF_CXXFLAGS"
Chris@198 50 CXXFLAGS_MINIMAL="$AUTOCONF_CXXFLAGS"
Chris@198 51
Chris@198 52 if test "x$GCC" = "xyes"; then
Chris@198 53 CXXFLAGS_DEBUG="-Wall -Woverloaded-virtual -Wextra -Wformat-nonliteral -Wformat-security -Winit-self -Wswitch-enum -g -pipe"
Chris@198 54 CXXFLAGS_RELEASE="-g0 -O2 -Wall -pipe"
Chris@198 55 CXXFLAGS_MINIMAL="-g0 -O0"
Chris@198 56 fi
Chris@198 57
Chris@198 58 CXXFLAGS_BUILD="$CXXFLAGS_RELEASE"
Chris@198 59 SV_DEFINES_BUILD="$SV_DEFINES_RELEASE"
Chris@198 60
Chris@209 61 QMAKE_CONFIG="release"
Chris@209 62
Chris@198 63 AC_ARG_ENABLE(debug, [AS_HELP_STRING([--enable-debug],[enable debug support [default=no]])],[AC_MSG_NOTICE([enabling debug build])
Chris@209 64 QMAKE_CONFIG="debug"
Chris@198 65 CXXFLAGS_BUILD="$CXXFLAGS_DEBUG"
Chris@198 66 SV_DEFINES_BUILD="$SV_DEFINES_DEBUG"])
Chris@198 67
Chris@198 68 if test x"$USER_CXXFLAGS" != x; then
Chris@198 69 AC_MSG_NOTICE([The CXXFLAGS environment variable is set to "$USER_CXXFLAGS".])
Chris@198 70 AC_MSG_NOTICE(Overriding default compiler flags with the above user setting.)
Chris@198 71 CXXFLAGS_BUILD="$USER_CXXFLAGS"
Chris@198 72 CXXFLAGS_MINIMAL="$USER_CXXFLAGS"
Chris@198 73 fi
Chris@198 74
Chris@198 75 CXXFLAGS="$CXXFLAGS_BUILD $SV_DEFINES_BUILD"
Chris@198 76
Chris@198 77 SV_MODULE_REQUIRED([bz2],[],[bzlib.h],[bz2],[BZ2_bzReadOpen])
Chris@198 78 SV_MODULE_REQUIRED([fftw3],[fftw3 >= 3.0.0],[fftw3.h],[fftw3],[fftw_execute])
Chris@198 79 SV_MODULE_REQUIRED([fftw3f],[fftw3f >= 3.0.0],[fftw3.h],[fftw3f],[fftwf_execute])
Chris@198 80 SV_MODULE_REQUIRED([sndfile],[sndfile >= 1.0.16],[sndfile.h],[sndfile],[sf_open])
Chris@198 81 SV_MODULE_REQUIRED([samplerate],[samplerate >= 0.1.2],[samplerate.h],[samplerate],[src_new])
Chris@198 82 SV_MODULE_REQUIRED([vamp],[vamp >= 2.1],[vamp/vamp.h],[],[])
Chris@284 83 SV_MODULE_REQUIRED([vamphostsdk],[vamp-hostsdk >= 2.5],[vamp-hostsdk/PluginLoader.h],[vamp-hostsdk],[libvamphostsdk_v_2_5_present])
Chris@198 84 SV_MODULE_REQUIRED([rubberband],[rubberband],[rubberband/RubberBandStretcher.h],[rubberband],[rubberband_new])
Chris@198 85
Chris@198 86 SV_MODULE_OPTIONAL([liblo],[],[lo/lo.h],[lo],[lo_address_new])
Chris@206 87 SV_MODULE_OPTIONAL([portaudio_2_0],[portaudio-2.0 >= 19],[portaudio.h],[portaudio],[Pa_IsFormatSupported])
Chris@198 88 SV_MODULE_OPTIONAL([JACK],[jack >= 0.100],[jack/jack.h],[jack],[jack_client_open])
Chris@198 89 SV_MODULE_OPTIONAL([libpulse],[libpulse >= 0.9],[pulse/pulseaudio.h],[pulse],[pa_stream_new])
Chris@198 90 SV_MODULE_OPTIONAL([lrdf],[lrdf >= 0.2],[lrdf.h],[lrdf],[lrdf_init])
Chris@198 91 SV_MODULE_OPTIONAL([oggz],[oggz >= 1.0.0],[oggz/oggz.h],[oggz],[oggz_run])
Chris@198 92 SV_MODULE_OPTIONAL([fishsound],[fishsound >= 1.0.0],[fishsound/fishsound.h],[fishsound],[fish_sound_new])
Chris@198 93 SV_MODULE_OPTIONAL([mad],[mad >= 0.15.0],[mad.h],[mad],[mad_decoder_init])
Chris@198 94 SV_MODULE_OPTIONAL([id3tag],[id3tag >= 0.15.0],[id3tag.h],[id3tag],[id3_tag_new])
Chris@198 95
Chris@198 96 AC_SUBST(PERL)
Chris@198 97 AC_SUBST(XARGS)
Chris@198 98 AC_SUBST(MAKEDEPEND)
Chris@198 99 AC_SUBST(SHA1SUM)
Chris@198 100 AC_SUBST(CUT)
Chris@198 101
Chris@198 102 AC_SUBST(CFLAGS)
Chris@198 103 AC_SUBST(CXXFLAGS)
Chris@198 104 AC_SUBST(CXXFLAGS_MINIMAL)
Chris@198 105 AC_SUBST(HAVES)
Chris@198 106 AC_SUBST(LIBS)
Chris@198 107
Chris@198 108 AC_SUBST(CC)
Chris@198 109 AC_SUBST(CXX)
Chris@198 110
Chris@209 111 AC_SUBST(QMAKE_CONFIG)
Chris@209 112
Chris@261 113 AC_CONFIG_FILES([config.pri])
Chris@198 114
Chris@261 115 AC_OUTPUT
Chris@198 116
Chris@284 117 if ! $QMAKE -r svapp.pro; then
Chris@198 118 AC_MSG_ERROR([qmake failed: Command was "$QMAKE -r"])
Chris@198 119 fi
Chris@198 120
Chris@198 121 AC_MSG_NOTICE([
Chris@198 122
Chris@198 123 Configuration complete.
Chris@198 124 Please check the above messages for any warnings that you
Chris@198 125 might care about, and then run "make".
Chris@198 126
Chris@198 127 The file config.pri contains the configuration settings for
Chris@198 128 qmake. If you want to adjust these by hand, edit config.pri
Chris@284 129 and run "$QMAKE -r" again to regenerate the Makefile.
Chris@198 130 ])