annotate configure.ac @ 1155:d1bab6a99100 project-file-rework

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