Remove one of the loop when posting new data; calculations are done the same time...
[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 GR_VERSION
30 dnl ustar required to have pathnames > 99 chars
31 _AM_SET_OPTION([tar-ustar])
32 AM_INIT_AUTOMAKE(gnuradio,$RELEASE)
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 BUILD_DATE=`date -R -u`
290 AC_SUBST(BUILD_DATE)
291
292 dnl SYSCONFDIR substitution
293 if test "${sysconfdir}" == "\${prefix}/etc" ; then
294    if test "${prefix}" == "NONE" ; then
295       SYSCONFDIR=["$ac_default_prefix/etc"]
296    else
297       SYSCONFDIR=["${prefix}/etc"]
298    fi
299 else
300    SYSCONFDIR=[${sysconfdir}]
301 fi
302 AC_SUBST(SYSCONFDIR)
303
304 dnl System configuration files
305 GR_PREFSDIR=[$SYSCONFDIR/${PACKAGE}/conf.d]
306 AC_SUBST(GR_PREFSDIR)
307
308 dnl Component specific configuration
309 dnl The order of the GR_ macros determines the order of compilation
310 dnl For -any- checks on $enable_all_components
311 dnl use the following guidelines:
312 dnl   yes : --enable-all-components was specified, so error out if any
313 dnl         components do not pass configuration checks.
314 dnl   no  : --disable-all-components was specified, so try to build the
315 dnl         --enable'd components, and error out if any do not pass
316 dnl         configuration checks.
317 dnl   ""  : this option was not specified on the command line; try to
318 dnl         build all components that are not --with'd, but don't
319 dnl         error out if any component does not pass configuration checks.
320 dnl
321 dnl For each --enable-foo component, if that flag is not specified on
322 dnl the command line, the related variable $enable_foo will be set to
323 dnl $enable_all_components .
324
325 AC_ARG_ENABLE(
326     [all-components],
327     [  --enable-all-components Build all configurable components (default), or stop on failed dependencies]
328 )
329
330 build_dirs="config"
331 GRC_GRUEL                       dnl must come first
332 GRC_OMNITHREAD                  dnl must come before gnuradio-core and mblock
333 GRC_GCELL
334 GRC_GNURADIO_CORE
335 GRC_MBLOCK                      dnl this must come after GRC_GRUEL
336 GRC_USRP
337 GRC_USRP2
338 GRC_VRT
339 GRC_GR_USRP                     dnl this must come after GRC_USRP
340 GRC_GR_USRP2
341 dnl GRC_GR_VRT
342 GRC_GR_GCELL                    dnl this must come after GRC_GCELL and GRC_GNURADIO_CORE
343 GRC_GR_MSDD6000 
344 GRC_GR_AUDIO_ALSA
345 GRC_GR_AUDIO_JACK
346 GRC_GR_AUDIO_OSS
347 GRC_GR_AUDIO_OSX
348 GRC_GR_AUDIO_PORTAUDIO
349 GRC_GR_AUDIO_WINDOWS
350 GRC_GR_ATSC
351 GRC_GR_COMEDI
352 GRC_GR_CVSD_VOCODER
353 GRC_GR_GPIO
354 GRC_GR_GSM_FR_VOCODER
355 GRC_GR_NOAA
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 ])
396
397 dnl run_tests.sh is created from run_tests.sh.in .  Make it executable.
398 AC_CONFIG_COMMANDS([run_tests_build], [chmod +x run_tests.sh])
399
400 AC_OUTPUT
401
402 echo
403 echo "*********************************************************************"
404 echo The following GNU Radio components have been successfully configured:
405 echo 
406 for dir in $build_dirs
407 do
408     echo $dir
409 done
410 echo
411 echo You my now run the 'make' command to build these components.
412 echo
413 if test "$skipped_dirs" != ""; then
414     echo "*********************************************************************"
415     echo The following components were skipped either because you asked not
416     echo to build them or they didn\'t pass configuration checks:
417     echo
418     for dir in $skipped_dirs
419     do
420         echo $dir
421     done
422     echo
423     echo These components will not be built.
424     echo
425 fi
426 if test "$with_dirs" != ""; then
427     echo "*********************************************************************"
428     echo The following components will be included from pre-installed
429     echo libraries and includes:
430     echo
431     for dir in $with_dirs
432     do
433         echo $dir
434     done
435     echo
436     echo These components will not be built.
437     echo
438 fi
439
440 echo Configured GNU Radio release $RELEASE for build.