Fixed spectrogram plotting axis.
[debian/gnuradio] / configure.ac
1 dnl Copyright 2001,2002,2003,2004,2005,2006,2007,2008,2009 Free Software Foundation, Inc.
2 dnl 
3 dnl This file is part of GNU Radio
4 dnl 
5 dnl GNU Radio is free software; you can redistribute it and/or modify
6 dnl it under the terms of the GNU General Public License as published by
7 dnl the Free Software Foundation; either version 3, or (at your option)
8 dnl any later version.
9 dnl 
10 dnl GNU Radio is distributed in the hope that it will be useful,
11 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
12 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 dnl GNU General Public License for more details.
14 dnl 
15 dnl You should have received a copy of the GNU General Public License
16 dnl along with GNU Radio; see the file COPYING.  If not, write to
17 dnl the Free Software Foundation, Inc., 51 Franklin Street,
18 dnl Boston, MA 02110-1301, USA.
19
20 AC_INIT
21 AC_PREREQ(2.57)
22 AM_CONFIG_HEADER(config.h)
23 AC_CONFIG_SRCDIR([gnuradio-core/src/lib/runtime/gr_vmcircbuf.cc])
24
25 AC_CANONICAL_BUILD
26 AC_CANONICAL_HOST
27 AC_CANONICAL_TARGET
28
29
30 VERSION=3.3svn
31 AC_SUBST(VERSION)
32 AM_INIT_AUTOMAKE(gnuradio,$VERSION)
33
34 DEFINES=""
35 AC_SUBST(DEFINES)
36
37 dnl Remember if the user explicity set CFLAGS
38 if test -n "${CFLAGS}"; then
39   user_set_cflags=yes
40 fi
41 dnl Remember if the user explicity set CXXFLAGS
42 if test -n "${CXXFLAGS}"; then
43   user_set_cxxflags=yes
44 fi
45
46
47 LF_CONFIGURE_CC
48 LF_CONFIGURE_CXX
49 GR_LIB64                dnl check for lib64 suffix after choosing compilers
50
51
52 dnl The three macros above are known to override CFLAGS if the user
53 dnl didn't specify them.  Though I'm sure somebody thought this was
54 dnl a good idea, it makes it hard to use other than -g -O2 when compiling
55 dnl selected files.  Thus we "undo" the damage here...
56 dnl 
57 dnl If the user specified CFLAGS, we use them.
58 dnl See Makefile.common for the rest of the magic.
59 if test "$user_set_cflags" != yes; then
60   autoconf_default_CFLAGS="$CFLAGS"
61   CFLAGS=""
62 fi
63 AC_SUBST(autoconf_default_CFLAGS)
64
65
66 dnl The three macros above are known to override CXXFLAGS if the user
67 dnl didn't specify them.  Though I'm sure somebody thought this was
68 dnl a good idea, it makes it hard to use other than -g -O2 when compiling
69 dnl selected files.  Thus we "undo" the damage here...
70 dnl 
71 dnl If the user specified CXXFLAGS, we use them.  Otherwise when compiling
72 dnl the output of swig use use -O1 if we're using g++.
73 dnl See Makefile.common for the rest of the magic.
74 if test "$user_set_cxxflags" != yes; then
75   autoconf_default_CXXFLAGS="$CXXFLAGS"
76   CXXFLAGS=""
77   if test "$GXX" = yes; then
78     case "$host_cpu" in
79         powerpc*)
80            dnl "-O1" is broken on the PPC for some reason
81            dnl (at least as of g++ 4.1.1)
82            swig_CXXFLAGS="-g1 -O2 -Wno-strict-aliasing -Wno-parentheses"
83         ;;
84         *) 
85         swig_CXXFLAGS="-g -O1 -Wno-strict-aliasing -Wno-parentheses"
86         ;;
87     esac
88   fi
89 fi
90 AC_SUBST(autoconf_default_CXXFLAGS)
91 AC_SUBST(swig_CXXFLAGS)
92
93 dnl add ${prefix}/lib${gr_libdir_suffix}/pkgconfig to the head of the PKG_CONFIG_PATH
94 if test x${PKG_CONFIG_PATH} = x; then
95     PKG_CONFIG_PATH=${prefix}/lib${gr_libdir_suffix}/pkgconfig
96 else
97     PKG_CONFIG_PATH=${prefix}/lib${gr_libdir_suffix}/pkgconfig:${PKG_CONFIG_PATH}
98 fi
99 export PKG_CONFIG_PATH
100
101 LF_SET_WARNINGS
102 GR_SET_GPROF
103 GR_SET_PROF
104 AM_PROG_AS
105 AC_PROG_LN_S
106 AC_PROG_MAKE_SET
107 AC_PROG_INSTALL
108
109 # AC_PROG_MKDIR_P
110 # is a backport of autoconf-2.60's AC_PROG_MKDIR_P.
111 # Remove this macro when we can assume autoconf >= 2.60.
112 m4_ifdef([AC_PROG_MKDIR_P], [], [
113   AC_DEFUN([AC_PROG_MKDIR_P],
114     [AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake
115      MKDIR_P='$(mkdir_p)'
116      AC_SUBST([MKDIR_P])])
117 ])
118 AC_PROG_MKDIR_P
119
120 AC_PATH_PROG([RM_PROG], [rm])
121
122 AC_LIBTOOL_WIN32_DLL
123 dnl AC_DISABLE_SHARED   dnl don't build shared libraries
124 AC_ENABLE_SHARED        dnl do build shared libraries
125 AC_DISABLE_STATIC       dnl don't build static libraries
126 m4_ifdef([LT_INIT],[LT_INIT],[AC_PROG_LIBTOOL])
127 GR_FORTRAN
128
129 GR_NO_UNDEFINED         dnl do we need the -no-undefined linker flag
130 GR_SCRIPTING
131
132 # Allow user to choose whether to generate SWIG/Python 
133 # Default is enabled
134 AC_ARG_ENABLE([python],
135   [AS_HELP_STRING([--enable-python],
136     [generate SWIG/Python components (default is yes)])],
137   [case "${enableval}" in
138      yes) enable_python=yes ;;
139      no) enable_python=no ;;
140      *) AC_MSG_ERROR([bad value ${enableval} for --enable-python]) ;;
141    esac],
142   [enable_python=yes]
143 )
144 AM_CONDITIONAL([PYTHON], [test x$enable_python = xyes])
145
146 AC_CHECK_PROG([XMLTO],[xmlto],[yes],[])
147 AM_CONDITIONAL([HAS_XMLTO], [test x$XMLTO = xyes])
148
149 dnl Checks for libraries.
150 AC_CHECK_LIB(socket,socket)
151
152 dnl check for omnithreads (will soon be removed)
153 GR_OMNITHREAD
154
155 dnl Set the c++ compiler that we use for the build system when cross compiling
156 if test x$CXX_FOR_BUILD = x
157 then
158   if test x$cross_compiling = xno; then
159     CXX_FOR_BUILD=${CXX}
160   else
161     CXX_FOR_BUILD=g++
162   fi
163 fi
164 AC_SUBST(CXX_FOR_BUILD)
165
166 dnl Check for SysV shm (mandatory)
167 dnl FIXME this is no longer mandatory.  Check the macro.
168 GR_SYSV_SHM
169
170 dnl Checks for header files.
171 AC_HEADER_STDC
172 AC_HEADER_SYS_WAIT
173 AC_CHECK_HEADERS(fcntl.h limits.h strings.h time.h sys/ioctl.h sys/time.h unistd.h)
174 AC_CHECK_HEADERS(linux/ppdev.h dev/ppbus/ppi.h sys/mman.h sys/select.h sys/types.h)
175 AC_CHECK_HEADERS(sys/resource.h stdint.h sched.h signal.h sys/syscall.h malloc.h)
176 AC_CHECK_HEADERS(netinet/in.h)
177 AC_CHECK_HEADERS(windows.h)
178 AC_CHECK_HEADERS(vec_types.h)
179
180 dnl Checks for typedefs, structures, and compiler characteristics.
181 AC_C_CONST
182 AC_C_INLINE
183 AC_TYPE_SIZE_T
184 AC_HEADER_TIME
185 AC_C_BIGENDIAN([GR_ARCH_BIGENDIAN=1],[GR_ARCH_BIGENDIAN=0])
186 AC_SUBST(GR_ARCH_BIGENDIAN)
187 AC_STRUCT_TM
188
189 dnl Checks for library functions.
190 AC_FUNC_ALLOCA
191 GR_CHECK_MEMALIGN
192 AC_FUNC_SETVBUF_REVERSED
193 AC_FUNC_VPRINTF
194 AC_CHECK_FUNCS([mmap select socket strcspn strerror strspn getpagesize sysconf])
195 AC_CHECK_FUNCS([snprintf gettimeofday nanosleep sched_setscheduler])
196 AC_CHECK_FUNCS([modf sqrt sigaction sigprocmask pthread_sigmask])
197 AC_CHECK_FUNCS([sched_setaffinity])
198
199 AC_CHECK_LIB(m, sincos, [AC_DEFINE([HAVE_SINCOS],[1],[Define to 1 if your system has `sincos'.])])
200 AC_CHECK_LIB(m, sincosf,[AC_DEFINE([HAVE_SINCOSF],[1],[Define to 1 if your system has `sincosf'.])])
201 AC_CHECK_LIB(m, sinf, [AC_DEFINE([HAVE_SINF],[1],[Define to 1 if your system has `sinf'.])])
202 AC_CHECK_LIB(m, cosf, [AC_DEFINE([HAVE_COSF],[1],[Define to 1 if your system has `cosf'.])])
203 AC_CHECK_LIB(m, trunc, [AC_DEFINE([HAVE_TRUNC],[1],[Define to 1 if your system has `trunc'.])])
204 AC_CHECK_LIB(m, exp10, [AC_DEFINE([HAVE_EXP10],[1],[Define to 1 if your system has 'exp10'.])])
205 AC_CHECK_LIB(m, log2, [AC_DEFINE([HAVE_LOG2],[1],[Define to 1 if your system has 'log2'.])])
206 #AC_FUNC_MKTIME
207
208 AH_BOTTOM([
209 #ifndef HAVE_TRUNC
210 #include <math.h>
211 inline static double trunc(double x)
212 {
213   return x >= 0 ? floor(x) : ceil(x);
214 }
215 #endif
216
217 #ifndef HAVE_EXP10
218 #include <math.h>
219 inline static double exp10(double x)
220 {
221   return pow(10.0, x);
222 }
223 #endif
224
225 #ifdef HAVE_WINDOWS_H
226 #define NOMINMAX
227 #endif
228 ])
229
230 GR_CHECK_SHM_OPEN
231 GR_LIBGNURADIO_CORE_EXTRA_LDFLAGS
232 GR_CHECK_CREATEFILEMAPPING
233
234 dnl Check for Mingw support
235 GR_PWIN32
236
237 dnl Do we have "dot", part of the graphviz package from AT&T?
238 dnl Doxgen will use it to draw pretty diagrams ;-)
239 AC_CHECK_PROG(HAVE_DOT, [dot],[YES],[NO])
240
241 PKG_CHECK_MODULES(FFTW3F, fftw3f >= 3.0)
242 AC_SUBST(FFTW3F_LIBS)
243
244 dnl conditional build stuff
245 GR_CHECK_DOXYGEN
246 GR_SET_MD_CPU
247
248 dnl Define where to look for cppunit includes and libs
249 dnl sets CPPUNIT_CFLAGS and CPPUNIT_LIBS
250 dnl Try using pkg-config first, then fall back to cppunit-config.
251 PKG_CHECK_EXISTS(cppunit,
252   [PKG_CHECK_MODULES(CPPUNIT, cppunit >= 1.9.14)],
253   [AM_PATH_CPPUNIT([1.9.14],[],
254                 [AC_MSG_ERROR([GNU Radio requires cppunit.  Stop])])])
255
256 CPPUNIT_INCLUDES=$CPPUNIT_CFLAGS
257 AC_SUBST(CPPUNIT_INCLUDES)
258
259 dnl see if GUILE is installed
260 AC_PATH_PROG(GUILE,guile)
261
262 dnl
263 dnl We require the boost headers, thread lib and date_time lib.
264 dnl AX_BOOST_BASE finds the headers and the lib dir (-L<foo>)
265 dnl
266 dnl calls AC_SUBST(BOOST_CPPFLAGS), AC_SUBST(BOOST_LDFLAGS) and defines HAVE_BOOST
267 AX_BOOST_BASE([1.35])
268
269 dnl calls AC_SUBST(BOOST_THREAD_LIB), AC_SUBST(BOOST_CXXFLAGS) and defines HAVE_BOOST_THREAD
270 AX_BOOST_THREAD
271 CXXFLAGS="$CXXFLAGS $BOOST_CXXFLAGS"       dnl often picks up a -pthread or something similar
272 CFLAGS="$CFLAGS $BOOST_CXXFLAGS"           dnl often picks up a -pthread or something similar
273
274 dnl
275 dnl all the rest of these call AC_SUBST(BOOST_<foo>_LIB) and define HAVE_BOOST_<foo>
276 dnl
277 AX_BOOST_DATE_TIME
278 dnl AX_BOOST_FILESYSTEM
279 dnl AX_BOOST_IOSTREAMS
280 AX_BOOST_PROGRAM_OPTIONS
281 dnl AX_BOOST_REGEX
282 dnl AX_BOOST_SERIALIZATION
283 dnl AX_BOOST_SIGNALS
284 dnl AX_BOOST_SYSTEM
285 dnl AX_BOOST_TEST_EXEC_MONITOR
286 dnl AX_BOOST_UNIT_TEST_FRAMEWORK
287 dnl AX_BOOST_WSERIALIZATION
288
289
290 dnl If this is being done from a subversion tree, create variables
291 GR_SUBVERSION
292 BUILD_DATE=`date -R -u`
293 AC_SUBST(BUILD_DATE)
294
295 dnl SYSCONFDIR substitution
296 if test "${sysconfdir}" == "\${prefix}/etc" ; then
297    if test "${prefix}" == "NONE" ; then
298       SYSCONFDIR=["$ac_default_prefix/etc"]
299    else
300       SYSCONFDIR=["${prefix}/etc"]
301    fi
302 else
303    SYSCONFDIR=[${sysconfdir}]
304 fi
305 AC_SUBST(SYSCONFDIR)
306
307 dnl System configuration files
308 GR_PREFSDIR=[$SYSCONFDIR/${PACKAGE}/conf.d]
309 AC_SUBST(GR_PREFSDIR)
310
311 dnl Component specific configuration
312 dnl The order of the GR_ macros determines the order of compilation
313 dnl For -any- checks on $enable_all_components
314 dnl use the following guidelines:
315 dnl   yes : --enable-all-components was specified, so error out if any
316 dnl         components do not pass configuration checks.
317 dnl   no  : --disable-all-components was specified, so try to build the
318 dnl         --enable'd components, and error out if any do not pass
319 dnl         configuration checks.
320 dnl   ""  : this option was not specified on the command line; try to
321 dnl         build all components that are not --with'd, but don't
322 dnl         error out if any component does not pass configuration checks.
323 dnl
324 dnl For each --enable-foo component, if that flag is not specified on
325 dnl the command line, the related variable $enable_foo will be set to
326 dnl $enable_all_components .
327
328 AC_ARG_ENABLE(
329     [all-components],
330     [  --enable-all-components Build all configurable components (default), or stop on failed dependencies]
331 )
332
333 build_dirs="config"
334 GRC_GRUEL                       dnl must come first
335 GRC_OMNITHREAD                  dnl must come before gnuradio-core and mblock
336 GRC_GCELL
337 GRC_GNURADIO_CORE
338 GRC_MBLOCK                      dnl this must come after GRC_GRUEL
339 GRC_USRP
340 GRC_USRP2
341 GRC_GR_USRP                     dnl this must come after GRC_USRP
342 GRC_GR_USRP2
343 GRC_GR_GCELL                    dnl this must come after GRC_GCELL and GRC_GNURADIO_CORE
344 GRC_GR_MSDD6000 
345 GRC_GR_AUDIO_ALSA
346 GRC_GR_AUDIO_JACK
347 GRC_GR_AUDIO_OSS
348 GRC_GR_AUDIO_OSX
349 GRC_GR_AUDIO_PORTAUDIO
350 GRC_GR_AUDIO_WINDOWS
351 GRC_GR_ATSC
352 GRC_GR_COMEDI
353 GRC_GR_CVSD_VOCODER
354 GRC_GR_GPIO
355 GRC_GR_GSM_FR_VOCODER
356 GRC_GR_PAGER
357 GRC_GR_RADAR_MONO
358 GRC_GR_RADIO_ASTRONOMY
359 GRC_GR_TRELLIS
360 GRC_GR_VIDEO_SDL
361 GRC_GR_WXGUI
362 GRC_GR_QTGUI
363 GRC_GR_SOUNDER                  dnl this must come after GRC_USRP
364 GRC_GR_UTILS                   dnl this must come after GRC_GR_WXGUI
365 GRC_GNURADIO_EXAMPLES           dnl must come after all GRC_GR_*
366 GRC_GRC
367 GRC_DOCS                        dnl must be last
368
369 # Each component is now either to be built, was skipped, will be
370 # included from pre-installed libraries and includes, or failed
371 # dependencies.
372 AC_SUBST([build_dirs], [$build_dirs])
373 AC_SUBST([skipped_dirs], [$skipped_dirs])
374 AC_SUBST([with_dirs], [$with_dirs])
375
376 # fix for older autotools that don't define these by default
377 AC_SUBST(abs_top_srcdir)
378 AC_SUBST(abs_top_builddir)
379 AC_SUBST(MKDIR_P)
380
381 # 'with' variables - the pre-installed libraries, includes, and paths
382 # - must always come last in the lists, so they require special
383 # treatment.
384 AC_SUBST(with_INCLUDES)
385 AC_SUBST(with_SWIG_INCLUDES)
386 AC_SUBST(with_PYDIRPATH)
387 AC_SUBST(with_SWIGDIRPATH)
388 AC_SUBST(with_LIBDIRPATH)
389
390 # Local files tweaked by AC
391 AC_CONFIG_FILES([\
392     Makefile \
393     run_tests.sh \
394     config/Makefile \
395     debian/changelog \
396 ])
397
398 dnl run_tests.sh is created from run_tests.sh.in .  Make it executable.
399 AC_CONFIG_COMMANDS([run_tests_build], [chmod +x run_tests.sh])
400
401 AC_OUTPUT
402
403 echo
404 echo "*********************************************************************"
405 echo The following GNU Radio components have been successfully configured:
406 echo 
407 for dir in $build_dirs
408 do
409     echo $dir
410 done
411 echo
412 echo You my now run the 'make' command to build these components.
413 echo
414 if test "$skipped_dirs" != ""; then
415     echo "*********************************************************************"
416     echo The following components were skipped either because you asked not
417     echo to build them or they didn\'t pass configuration checks:
418     echo
419     for dir in $skipped_dirs
420     do
421         echo $dir
422     done
423     echo
424     echo These components will not be built.
425     echo
426 fi
427 if test "$with_dirs" != ""; then
428     echo "*********************************************************************"
429     echo The following components will be included from pre-installed
430     echo libraries and includes:
431     echo
432     for dir in $with_dirs
433     do
434         echo $dir
435     done
436     echo
437     echo These components will not be built.
438     echo
439 fi
440