comparison configure.ac @ 2008:55d9bbf1fe45 zoom

Merge from default branch
author Chris Cannam
date Mon, 17 Sep 2018 14:05:41 +0100
parents 810a0b8f5472
children 5ffcb4e10e1b
comparison
equal deleted inserted replaced
2007:246bdf94ef7b 2008:55d9bbf1fe45
38 PKG_PROG_PKG_CONFIG 38 PKG_PROG_PKG_CONFIG
39 39
40 SV_CHECK_QT 40 SV_CHECK_QT
41 41
42 SV_DEFINES_DEBUG="-DDEBUG -DBUILD_DEBUG -DWANT_TIMING" 42 SV_DEFINES_DEBUG="-DDEBUG -DBUILD_DEBUG -DWANT_TIMING"
43 SV_DEFINES_RELEASE="-DNDEBUG -DBUILD_RELEASE -DWANT_TIMING" # -DNO_TIMING" 43 SV_DEFINES_RELEASE="-DNDEBUG -DBUILD_RELEASE -DNO_TIMING -DNO_HIT_COUNTS"
44 SV_DEFINES_MINIMAL="$SV_DEFINES_RELEASE" 44 SV_DEFINES_MINIMAL="$SV_DEFINES_RELEASE"
45 45
46 # Now we have: USER_CXXFLAGS contains any flags the user set 46 # Now we have: USER_CXXFLAGS contains any flags the user set
47 # explicitly; AUTOCONF_CXXFLAGS contains flags that Autoconf thought 47 # explicitly; AUTOCONF_CXXFLAGS contains flags that Autoconf thought
48 # we should use. If we have GCC, we override the latter but then 48 # we should use. If we have GCC, we override the latter but then
49 # allow ourselves to be overridden (later) by the former 49 # allow ourselves to be overridden (later) by the former
50 50
51 CXXFLAGS_DEBUG="$AUTOCONF_CXXFLAGS" 51 CXXFLAGS_DEBUG="$AUTOCONF_CXXFLAGS"
52 CXXFLAGS_RELEASE="$AUTOCONF_CXXFLAGS" 52 CXXFLAGS_RELEASE="$AUTOCONF_CXXFLAGS"
53 CXXFLAGS_MINIMAL="$AUTOCONF_CXXFLAGS" 53 CXXFLAGS_MINIMAL="$AUTOCONF_CXXFLAGS"
54 CXXSTANDARD=c++14
54 55
55 if test "x$GCC" = "xyes"; then 56 if test "x$GCC" = "xyes"; then
56 CXXFLAGS_ANY="-Wall -Wextra -Woverloaded-virtual -Wformat-nonliteral -Wformat-security -Winit-self -Wswitch-enum -Wconversion -pipe" 57 CXXFLAGS_ANY="-fpic -Wall -Wextra -Woverloaded-virtual -Wformat-nonliteral -Wformat-security -Winit-self -Wswitch-enum -Wconversion -pipe"
57 CXXFLAGS_DEBUG="$CXXFLAGS_ANY -g -Werror" 58 CXXFLAGS_DEBUG="$CXXFLAGS_ANY -g -O2 -Werror"
58 CXXFLAGS_RELEASE="$CXXFLAGS_ANY -g0 -O2" 59 CXXFLAGS_RELEASE="$CXXFLAGS_ANY -g0 -O3 -ffast-math"
59 CXXFLAGS_MINIMAL="$CXXFLAGS_ANY -g0 -O0" 60 CXXFLAGS_MINIMAL="$CXXFLAGS_ANY -g0 -O0"
61 LIBS_DEBUG="$LIBS"
62 AX_CHECK_COMPILE_FLAG(--std=$CXXSTANDARD, [], [AC_MSG_NOTICE([Compiler does not appear to support $CXXSTANDARD, falling back to c++11])
63 CXXSTANDARD=c++11])
60 fi 64 fi
61 65
62 CXXFLAGS_BUILD="$CXXFLAGS_RELEASE" 66 CXXFLAGS_BUILD="$CXXFLAGS_RELEASE"
63 SV_DEFINES_BUILD="$SV_DEFINES_RELEASE" 67 SV_DEFINES_BUILD="$SV_DEFINES_RELEASE"
64 68
65 QMAKE_CONFIG="release" 69 QMAKE_CONFIG="release"
66 70
67 AC_ARG_ENABLE(debug, [AS_HELP_STRING([--enable-debug],[enable debug support [default=no]])],[AC_MSG_NOTICE([enabling debug build]) 71 AC_ARG_ENABLE(debug, [AS_HELP_STRING([--enable-debug],[enable debug support [default=no]])],[AC_MSG_NOTICE([enabling debug build])
68 QMAKE_CONFIG="debug" 72 QMAKE_CONFIG="debug"
69 CXXFLAGS_BUILD="$CXXFLAGS_DEBUG" 73 CXXFLAGS_BUILD="$CXXFLAGS_DEBUG"
70 SV_DEFINES_BUILD="$SV_DEFINES_DEBUG"]) 74 SV_DEFINES_BUILD="$SV_DEFINES_DEBUG"
75 LIBS="$LIBS_DEBUG"])
71 76
72 if test x"$USER_CXXFLAGS" != x; then 77 if test x"$USER_CXXFLAGS" != x; then
73 AC_MSG_NOTICE([The CXXFLAGS environment variable is set to "$USER_CXXFLAGS".]) 78 AC_MSG_NOTICE([The CXXFLAGS environment variable is set to "$USER_CXXFLAGS".])
74 AC_MSG_NOTICE(Overriding default compiler flags with the above user setting.) 79 AC_MSG_NOTICE(Overriding default compiler flags with the above user setting.)
75 CXXFLAGS_BUILD="$USER_CXXFLAGS" 80 CXXFLAGS_BUILD="$USER_CXXFLAGS"
84 SV_MODULE_REQUIRED([sndfile],[sndfile >= 1.0.16],[sndfile.h],[sndfile],[sf_open]) 89 SV_MODULE_REQUIRED([sndfile],[sndfile >= 1.0.16],[sndfile.h],[sndfile],[sf_open])
85 SV_MODULE_REQUIRED([libsamplerate],[samplerate >= 0.1.2],[samplerate.h],[samplerate],[src_new]) 90 SV_MODULE_REQUIRED([libsamplerate],[samplerate >= 0.1.2],[samplerate.h],[samplerate],[src_new])
86 SV_MODULE_REQUIRED([rubberband],[rubberband],[rubberband/RubberBandStretcher.h],[rubberband],[rubberband_new]) 91 SV_MODULE_REQUIRED([rubberband],[rubberband],[rubberband/RubberBandStretcher.h],[rubberband],[rubberband_new])
87 SV_MODULE_REQUIRED([sord],[sord-0 >= 0.5],[sord/sord.h],[sord-0],[sord_world_new]) 92 SV_MODULE_REQUIRED([sord],[sord-0 >= 0.5],[sord/sord.h],[sord-0],[sord_world_new])
88 SV_MODULE_REQUIRED([serd],[serd-0 >= 0.5],[serd/serd.h],[serd-0],[serd_reader_read_file]) 93 SV_MODULE_REQUIRED([serd],[serd-0 >= 0.5],[serd/serd.h],[serd-0],[serd_reader_read_file])
89 SV_MODULE_REQUIRED([capnp],[capnp >= 0.6],[capnp/common.h],[capnp],[]) 94
90 SV_MODULE_REQUIRED([kj],[kj >= 0.6],[kj/common.h],[kj],[]) 95 # We need a Cap'n Proto version with the expectedSizeInWordsFromPrefix
96 # function, which appeared in v0.6. If we can't find at least that
97 # version with pkg-config, we check for the symbol with the compiler.
98 PKG_CHECK_MODULES([capnp],[capnp >= 0.6],[HAVES="$HAVES HAVE_CAPNP";CXXFLAGS="$CXXFLAGS $capnp_CFLAGS";LIBS="$LIBS $capnp_LIBS"],[AC_MSG_NOTICE([Failed to find required module capnp using pkg-config, trying again by old-fashioned means])])
99 if test -z "$capnp_LIBS" ; then
100 AC_COMPILE_IFELSE([
101 AC_LANG_SOURCE([[
102 #include <capnp/serialize.h>
103 int main() {
104 kj::Array<capnp::word> prefix;
105 return capnp::expectedSizeInWordsFromPrefix(prefix.asPtr());
106 }]])],
107 [HAVES="$HAVES HAVE_CAPNP";LIBS="$LIBS -lcapnp -lkj"],
108 [AC_MSG_ERROR([Failed to find appropriate capnp library])]
109 )
110 fi
91 111
92 SV_MODULE_OPTIONAL([liblo],[],[lo/lo.h],[lo],[lo_address_new]) 112 SV_MODULE_OPTIONAL([liblo],[],[lo/lo.h],[lo],[lo_address_new])
93 SV_MODULE_OPTIONAL([portaudio],[portaudio-2.0 >= 19],[portaudio.h],[portaudio],[Pa_IsFormatSupported]) 113 SV_MODULE_OPTIONAL([portaudio],[portaudio-2.0 >= 19],[portaudio.h],[portaudio],[Pa_IsFormatSupported])
94 SV_MODULE_OPTIONAL([JACK],[jack >= 0.100],[jack/jack.h],[jack],[jack_client_open]) 114 SV_MODULE_OPTIONAL([JACK],[jack >= 0.100],[jack/jack.h],[jack],[jack_client_open])
95 SV_MODULE_OPTIONAL([libpulse],[libpulse >= 0.9],[pulse/pulseaudio.h],[pulse],[pa_stream_new]) 115 SV_MODULE_OPTIONAL([libpulse],[libpulse >= 0.9],[pulse/pulseaudio.h],[pulse],[pa_stream_new])
109 AC_SUBST(CUT) 129 AC_SUBST(CUT)
110 130
111 AC_SUBST(CFLAGS) 131 AC_SUBST(CFLAGS)
112 AC_SUBST(CXXFLAGS) 132 AC_SUBST(CXXFLAGS)
113 AC_SUBST(CXXFLAGS_MINIMAL) 133 AC_SUBST(CXXFLAGS_MINIMAL)
134 AC_SUBST(CXXSTANDARD)
114 AC_SUBST(LDFLAGS) 135 AC_SUBST(LDFLAGS)
115 AC_SUBST(HAVES) 136 AC_SUBST(HAVES)
116 AC_SUBST(LIBS) 137 AC_SUBST(LIBS)
117 138
118 AC_SUBST(CC) 139 AC_SUBST(CC)
119 AC_SUBST(CXX) 140 AC_SUBST(CXX)
120 141
142 AC_SUBST(prefix)
143
121 AC_SUBST(QMAKE_CONFIG) 144 AC_SUBST(QMAKE_CONFIG)
122 145
123 AC_CONFIG_FILES([config.pri]) 146 AC_CONFIG_FILES([config.pri])
124 147
125 AC_OUTPUT 148 AC_OUTPUT
149
150 if test -x repoint ; then
151 if test -d .hg -o -d .git ; then
152 if ! ./repoint install; then
153 AC_MSG_ERROR([Repoint failed; please fix any reported errors and try again])
154 fi
155 else
156 AC_MSG_NOTICE([Repoint executable found but not in an Hg or Git working-copy: not running it])
157 if ! test -d vamp-plugin-sdk ; then
158 AC_MSG_WARN([No vamp-plugin-sdk directory present, so external libraries might not have been updated])
159 fi
160 fi
161 else
162 AC_MSG_NOTICE([No Repoint executable found: assuming external libraries are already here])
163 if ! test -d vamp-plugin-sdk ; then
164 AC_MSG_WARN([No vamp-plugin-sdk directory present, so external libraries might not have been updated])
165 fi
166 fi
126 167
127 if ! $QMAKE -r sonic-visualiser.pro; then 168 if ! $QMAKE -r sonic-visualiser.pro; then
128 AC_MSG_ERROR([qmake failed: Command was "$QMAKE -r"]) 169 AC_MSG_ERROR([qmake failed: Command was "$QMAKE -r"])
129 fi 170 fi
130 171