To check out this repository please hg clone the following URL, or open the URL using EasyMercurial or your preferred Mercurial client.

Statistics Download as Zip
| Branch: | Tag: | Revision:

root / configure.ac @ 105:fa09c8e155ec

History | View | Annotate | Download (6.25 KB)

1

    
2
AC_INIT([Sonic Vector], [], cannam@all-day-breakfast.com)
3

    
4
AC_CONFIG_SRCDIR(main/main.cpp)
5

    
6
# Autoconf will set CXXFLAGS; we don't usually want it to, because we
7
# either define our own flags (at least if GCC is in use) or else use
8
# the user's preferences.  We need to ensure CXXFLAGS is only set if
9
# the user has expressly set it.  So, save the user's (or empty)
10
# setting now and restore it after Autoconf has done its bit of
11
# piddling about.
12
USER_CXXFLAGS="$CXXFLAGS"
13

    
14
# If the user supplied CFLAGS but not CXXFLAGS, use CFLAGS instead
15
if test x"$USER_CXXFLAGS" = x; then
16
   if test x"$CFLAGS" != x; then
17
      USER_CXXFLAGS="$CFLAGS"
18
   fi
19
fi
20

    
21
AC_LANG_CPLUSPLUS
22

    
23
AC_PROG_CC
24
AC_PROG_CXX
25
AC_PROG_INSTALL
26
AC_PROG_MKDIR_P
27

    
28
# We are daringly making use of C++11 now
29
AX_CXX_COMPILE_STDCXX_11(noext)
30

    
31
AC_HEADER_STDC
32

    
33
# These are the flags Autoconf guesses for us; we use them later if
34
# the user has set none and we are not using GCC (so lack our own
35
# preferred flags)
36
AUTOCONF_CXXFLAGS="$CXXFLAGS"
37

    
38
PKG_PROG_PKG_CONFIG
39

    
40
SV_CHECK_QT
41

    
42
SV_DEFINES_DEBUG="-DDEBUG -DBUILD_DEBUG -DWANT_TIMING"
43
SV_DEFINES_RELEASE="-DNDEBUG -DBUILD_RELEASE -DNO_TIMING"
44
SV_DEFINES_MINIMAL="$SV_DEFINES_RELEASE"
45

    
46
# Now we have: USER_CXXFLAGS contains any flags the user set
47
# explicitly; AUTOCONF_CXXFLAGS contains flags that Autoconf thought
48
# we should use.  If we have GCC, we override the latter but then
49
# allow ourselves to be overridden (later) by the former
50

    
51
CXXFLAGS_DEBUG="$AUTOCONF_CXXFLAGS"
52
CXXFLAGS_RELEASE="$AUTOCONF_CXXFLAGS"
53
CXXFLAGS_MINIMAL="$AUTOCONF_CXXFLAGS"
54

    
55
if test "x$GCC" = "xyes"; then
56
   	CXXFLAGS_ANY="-std=c++11 -fpic -Wall -Wextra -Woverloaded-virtual -Wformat-nonliteral -Wformat-security -Winit-self -Wswitch-enum -Wconversion -pipe"
57
        CXXFLAGS_DEBUG="$CXXFLAGS_ANY -g -Werror"
58
   	CXXFLAGS_RELEASE="$CXXFLAGS_ANY -g0 -O3 -ffast-math"
59
   	CXXFLAGS_MINIMAL="$CXXFLAGS_ANY -g0 -O0"
60
fi
61

    
62
CXXFLAGS_BUILD="$CXXFLAGS_RELEASE"
63
SV_DEFINES_BUILD="$SV_DEFINES_RELEASE"
64

    
65
QMAKE_CONFIG="release"
66

    
67
AC_ARG_ENABLE(debug, [AS_HELP_STRING([--enable-debug],[enable debug support [default=no]])],[AC_MSG_NOTICE([enabling debug build])
68
QMAKE_CONFIG="debug"
69
CXXFLAGS_BUILD="$CXXFLAGS_DEBUG"
70
SV_DEFINES_BUILD="$SV_DEFINES_DEBUG"])
71

    
72
if test x"$USER_CXXFLAGS" != x; then
73
   	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.)
75
	CXXFLAGS_BUILD="$USER_CXXFLAGS"
76
	CXXFLAGS_MINIMAL="$USER_CXXFLAGS"
77
fi
78

    
79
CXXFLAGS="$CXXFLAGS_BUILD $SV_DEFINES_BUILD"
80

    
81
SV_MODULE_REQUIRED([bz2],[],[bzlib.h],[bz2],[BZ2_bzReadOpen])
82
SV_MODULE_REQUIRED([fftw3],[fftw3 >= 3.0.0],[fftw3.h],[fftw3],[fftw_execute])
83
SV_MODULE_REQUIRED([fftw3f],[fftw3f >= 3.0.0],[fftw3.h],[fftw3f],[fftwf_execute])
84
SV_MODULE_REQUIRED([sndfile],[sndfile >= 1.0.16],[sndfile.h],[sndfile],[sf_open])
85
SV_MODULE_REQUIRED([samplerate],[samplerate >= 0.1.2],[samplerate.h],[samplerate],[src_new])
86
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])
88
SV_MODULE_REQUIRED([serd],[serd-0 >= 0.5],[serd/serd.h],[serd-0],[serd_reader_read_file])
89

    
90
# We need a Cap'n Proto version with the expectedSizeInWordsFromPrefix
91
# function, which appeared in v0.6. If we can't find at least that
92
# version with pkg-config, we check for the symbol with the compiler.
93
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])])
94
if test -z "$capnp_LIBS" ; then
95
    AC_COMPILE_IFELSE([
96
        AC_LANG_SOURCE([[
97
        #include <capnp/serialize.h>
98
        int main() {
99
            kj::Array<capnp::word> prefix;
100
            return capnp::expectedSizeInWordsFromPrefix(prefix.asPtr());
101
        }]])],
102
        [HAVES="$HAVES HAVE_CAPNP";LIBS="$LIBS -lcapnp -lkj"],
103
        [AC_MSG_ERROR([Failed to find appropriate capnp library])]
104
    )
105
fi
106

    
107
SV_MODULE_OPTIONAL([liblo],[],[lo/lo.h],[lo],[lo_address_new])
108
SV_MODULE_OPTIONAL([portaudio_2_0],[portaudio-2.0 >= 19],[portaudio.h],[portaudio],[Pa_IsFormatSupported])
109
SV_MODULE_OPTIONAL([JACK],[jack >= 0.100],[jack/jack.h],[jack],[jack_client_open])
110
SV_MODULE_OPTIONAL([libpulse],[libpulse >= 0.9],[pulse/pulseaudio.h],[pulse],[pa_stream_new])
111
SV_MODULE_OPTIONAL([lrdf],[lrdf >= 0.2],[lrdf.h],[lrdf],[lrdf_init])
112
SV_MODULE_OPTIONAL([oggz],[oggz >= 1.0.0],[oggz/oggz.h],[oggz],[oggz_run])
113
SV_MODULE_OPTIONAL([fishsound],[fishsound >= 1.0.0],[fishsound/fishsound.h],[fishsound],[fish_sound_new])
114
SV_MODULE_OPTIONAL([mad],[mad >= 0.15.0],[mad.h],[mad],[mad_decoder_init])
115
SV_MODULE_OPTIONAL([id3tag],[id3tag >= 0.15.0],[id3tag.h],[id3tag],[id3_tag_new])
116

    
117
# Link in -lX11 if it exists -- this is for the X error handler
118
SV_MODULE_OPTIONAL([X11],[x11 >= 1.0.0],[X11/X.h],[x11],[XGetErrorText])
119

    
120
AC_SUBST(PERL)
121
AC_SUBST(XARGS)
122
AC_SUBST(MAKEDEPEND)
123
AC_SUBST(SHA1SUM)
124
AC_SUBST(CUT)
125

    
126
AC_SUBST(CFLAGS)
127
AC_SUBST(CXXFLAGS)
128
AC_SUBST(CXXFLAGS_MINIMAL)
129
AC_SUBST(LDFLAGS)
130
AC_SUBST(HAVES)
131
AC_SUBST(LIBS)
132

    
133
AC_SUBST(CC)
134
AC_SUBST(CXX)
135

    
136
AC_SUBST(QMAKE_CONFIG)
137

    
138
AC_CONFIG_FILES([config.pri])
139

    
140
AC_OUTPUT
141

    
142
if test -x repoint ; then
143
   if test -d .hg -o -d .git ; then 
144
      if ! ./repoint install; then
145
         AC_MSG_ERROR([Repoint failed; please fix any reported errors and try again])
146
      fi
147
   else
148
      AC_MSG_NOTICE([Repoint executable found but not in an Hg or Git working-copy: not running it])
149
      if ! test -d vamp-plugin-sdk ; then
150
          AC_MSG_WARN([No vamp-plugin-sdk directory present, so external libraries might not have been updated])
151
      fi
152
   fi
153
else
154
   AC_MSG_NOTICE([No Repoint executable found: assuming external libraries are already here])
155
   if ! test -d vamp-plugin-sdk ; then
156
      AC_MSG_WARN([No vamp-plugin-sdk directory present, so external libraries might not have been updated])
157
   fi
158
fi
159

    
160
if ! $QMAKE -r vect.pro; then
161
   AC_MSG_ERROR([qmake failed: Command was "$QMAKE -r"])
162
fi
163

    
164
AC_MSG_NOTICE([
165

    
166
Configuration complete.
167
Please check the above messages for any warnings that you
168
might care about, and then run "make".
169

    
170
The file config.pri contains the configuration settings for
171
qmake.  If you want to adjust these by hand, edit config.pri
172
and run "$QMAKE -r" again to regenerate the Makefile.
173
])