Merge remote branch 'bitshark/burx_support' into wip/burx_support
[debian/gnuradio] / configure.ac
index 342d57059d9e86164cd857bc3db0e0395a8d3e3f..a170933858129292469d33c743192dabc54b2248 100644 (file)
@@ -1,4 +1,4 @@
-dnl Copyright 2001,2002,2003,2004,2005,2006,2007,2008 Free Software Foundation, Inc.
+dnl Copyright 2001,2002,2003,2004,2005,2006,2007,2008,2009,2010 Free Software Foundation, Inc.
 dnl 
 dnl This file is part of GNU Radio
 dnl 
 dnl 
 dnl This file is part of GNU Radio
 dnl 
@@ -26,26 +26,42 @@ AC_CANONICAL_BUILD
 AC_CANONICAL_HOST
 AC_CANONICAL_TARGET
 
 AC_CANONICAL_HOST
 AC_CANONICAL_TARGET
 
-AM_INIT_AUTOMAKE(gnuradio,3.1svn)
+GR_VERSION
+dnl ustar required to have pathnames > 99 chars
+_AM_SET_OPTION([tar-ustar])
+AM_INIT_AUTOMAKE(gnuradio,$RELEASE)
 
 DEFINES=""
 AC_SUBST(DEFINES)
 
 
 DEFINES=""
 AC_SUBST(DEFINES)
 
+dnl Remember if the user explicity set CFLAGS
+if test -n "${CFLAGS}"; then
+  user_set_cflags=yes
+fi
 dnl Remember if the user explicity set CXXFLAGS
 if test -n "${CXXFLAGS}"; then
   user_set_cxxflags=yes
 fi
 
 dnl Remember if the user explicity set CXXFLAGS
 if test -n "${CXXFLAGS}"; then
   user_set_cxxflags=yes
 fi
 
+
 LF_CONFIGURE_CC
 LF_CONFIGURE_CXX
 GR_LIB64               dnl check for lib64 suffix after choosing compilers
 
 LF_CONFIGURE_CC
 LF_CONFIGURE_CXX
 GR_LIB64               dnl check for lib64 suffix after choosing compilers
 
-cxx_warnings_as_errors=""
-AC_ARG_ENABLE(
-    [warnings-as-errors],
-    [--enable-warnings-as-errors Treat compiler warnings as errors],
-    [cxx_warnings_as_errors="-Werror"]    
-)
+
+dnl The three macros above are known to override CFLAGS if the user
+dnl didn't specify them.  Though I'm sure somebody thought this was
+dnl a good idea, it makes it hard to use other than -g -O2 when compiling
+dnl selected files.  Thus we "undo" the damage here...
+dnl 
+dnl If the user specified CFLAGS, we use them.
+dnl See Makefile.common for the rest of the magic.
+if test "$user_set_cflags" != yes; then
+  autoconf_default_CFLAGS="$CFLAGS"
+  CFLAGS=""
+fi
+AC_SUBST(autoconf_default_CFLAGS)
+
 
 dnl The three macros above are known to override CXXFLAGS if the user
 dnl didn't specify them.  Though I'm sure somebody thought this was
 
 dnl The three macros above are known to override CXXFLAGS if the user
 dnl didn't specify them.  Though I'm sure somebody thought this was
@@ -57,16 +73,16 @@ dnl the output of swig use use -O1 if we're using g++.
 dnl See Makefile.common for the rest of the magic.
 if test "$user_set_cxxflags" != yes; then
   autoconf_default_CXXFLAGS="$CXXFLAGS"
 dnl See Makefile.common for the rest of the magic.
 if test "$user_set_cxxflags" != yes; then
   autoconf_default_CXXFLAGS="$CXXFLAGS"
-  CXXFLAGS=$cxx_warnings_as_errors
+  CXXFLAGS=""
   if test "$GXX" = yes; then
     case "$host_cpu" in
        powerpc*)
           dnl "-O1" is broken on the PPC for some reason
           dnl (at least as of g++ 4.1.1)
   if test "$GXX" = yes; then
     case "$host_cpu" in
        powerpc*)
           dnl "-O1" is broken on the PPC for some reason
           dnl (at least as of g++ 4.1.1)
-          swig_CXXFLAGS="-g1 -O2 -fno-strict-aliasing"
+          swig_CXXFLAGS="-g1 -O2 -Wno-strict-aliasing -Wno-parentheses"
        ;;
        *) 
        ;;
        *) 
-       swig_CXXFLAGS="-g -O1 -fno-strict-aliasing"
+       swig_CXXFLAGS="-g -O1 -Wno-strict-aliasing -Wno-parentheses"
        ;;
     esac
   fi
        ;;
     esac
   fi
@@ -74,7 +90,6 @@ fi
 AC_SUBST(autoconf_default_CXXFLAGS)
 AC_SUBST(swig_CXXFLAGS)
 
 AC_SUBST(autoconf_default_CXXFLAGS)
 AC_SUBST(swig_CXXFLAGS)
 
-
 dnl add ${prefix}/lib${gr_libdir_suffix}/pkgconfig to the head of the PKG_CONFIG_PATH
 if test x${PKG_CONFIG_PATH} = x; then
     PKG_CONFIG_PATH=${prefix}/lib${gr_libdir_suffix}/pkgconfig
 dnl add ${prefix}/lib${gr_libdir_suffix}/pkgconfig to the head of the PKG_CONFIG_PATH
 if test x${PKG_CONFIG_PATH} = x; then
     PKG_CONFIG_PATH=${prefix}/lib${gr_libdir_suffix}/pkgconfig
@@ -83,7 +98,6 @@ else
 fi
 export PKG_CONFIG_PATH
 
 fi
 export PKG_CONFIG_PATH
 
-
 LF_SET_WARNINGS
 GR_SET_GPROF
 GR_SET_PROF
 LF_SET_WARNINGS
 GR_SET_GPROF
 GR_SET_PROF
@@ -91,6 +105,18 @@ AM_PROG_AS
 AC_PROG_LN_S
 AC_PROG_MAKE_SET
 AC_PROG_INSTALL
 AC_PROG_LN_S
 AC_PROG_MAKE_SET
 AC_PROG_INSTALL
+
+# AC_PROG_MKDIR_P
+# is a backport of autoconf-2.60's AC_PROG_MKDIR_P.
+# Remove this macro when we can assume autoconf >= 2.60.
+m4_ifdef([AC_PROG_MKDIR_P], [], [
+  AC_DEFUN([AC_PROG_MKDIR_P],
+    [AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake
+     MKDIR_P='$(mkdir_p)'
+     AC_SUBST([MKDIR_P])])
+])
+AC_PROG_MKDIR_P
+
 AC_PATH_PROG([RM_PROG], [rm])
 
 AC_LIBTOOL_WIN32_DLL
 AC_PATH_PROG([RM_PROG], [rm])
 
 AC_LIBTOOL_WIN32_DLL
@@ -103,17 +129,26 @@ GR_FORTRAN
 GR_NO_UNDEFINED                dnl do we need the -no-undefined linker flag
 GR_SCRIPTING
 
 GR_NO_UNDEFINED                dnl do we need the -no-undefined linker flag
 GR_SCRIPTING
 
+# Allow user to choose whether to generate SWIG/Python 
+# Default is enabled
+AC_ARG_ENABLE([python],
+  [AS_HELP_STRING([--enable-python],
+    [generate SWIG/Python components (default is yes)])],
+  [case "${enableval}" in
+     yes) enable_python=yes ;;
+     no) enable_python=no ;;
+     *) AC_MSG_ERROR([bad value ${enableval} for --enable-python]) ;;
+   esac],
+  [enable_python=yes]
+)
+AM_CONDITIONAL([PYTHON], [test x$enable_python = xyes])
+
 AC_CHECK_PROG([XMLTO],[xmlto],[yes],[])
 AM_CONDITIONAL([HAS_XMLTO], [test x$XMLTO = xyes])
 
 dnl Checks for libraries.
 AC_CHECK_LIB(socket,socket)
 
 AC_CHECK_PROG([XMLTO],[xmlto],[yes],[])
 AM_CONDITIONAL([HAS_XMLTO], [test x$XMLTO = xyes])
 
 dnl Checks for libraries.
 AC_CHECK_LIB(socket,socket)
 
-dnl check for omnithreads (will soon be removed)
-GR_OMNITHREAD
-CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
-CXXFLAGS="$CXXFLAGS $PTHREAD_CFLAGS"
-
 dnl Set the c++ compiler that we use for the build system when cross compiling
 if test x$CXX_FOR_BUILD = x
 then
 dnl Set the c++ compiler that we use for the build system when cross compiling
 if test x$CXX_FOR_BUILD = x
 then
@@ -134,7 +169,7 @@ AC_HEADER_STDC
 AC_HEADER_SYS_WAIT
 AC_CHECK_HEADERS(fcntl.h limits.h strings.h time.h sys/ioctl.h sys/time.h unistd.h)
 AC_CHECK_HEADERS(linux/ppdev.h dev/ppbus/ppi.h sys/mman.h sys/select.h sys/types.h)
 AC_HEADER_SYS_WAIT
 AC_CHECK_HEADERS(fcntl.h limits.h strings.h time.h sys/ioctl.h sys/time.h unistd.h)
 AC_CHECK_HEADERS(linux/ppdev.h dev/ppbus/ppi.h sys/mman.h sys/select.h sys/types.h)
-AC_CHECK_HEADERS(sys/resource.h stdint.h sched.h signal.h sys/syscall.h)
+AC_CHECK_HEADERS(sys/resource.h stdint.h sched.h signal.h sys/syscall.h malloc.h)
 AC_CHECK_HEADERS(netinet/in.h)
 AC_CHECK_HEADERS(windows.h)
 AC_CHECK_HEADERS(vec_types.h)
 AC_CHECK_HEADERS(netinet/in.h)
 AC_CHECK_HEADERS(windows.h)
 AC_CHECK_HEADERS(vec_types.h)
@@ -150,6 +185,7 @@ AC_STRUCT_TM
 
 dnl Checks for library functions.
 AC_FUNC_ALLOCA
 
 dnl Checks for library functions.
 AC_FUNC_ALLOCA
+GR_CHECK_MEMALIGN
 AC_FUNC_SETVBUF_REVERSED
 AC_FUNC_VPRINTF
 AC_CHECK_FUNCS([mmap select socket strcspn strerror strspn getpagesize sysconf])
 AC_FUNC_SETVBUF_REVERSED
 AC_FUNC_VPRINTF
 AC_CHECK_FUNCS([mmap select socket strcspn strerror strspn getpagesize sysconf])
@@ -225,7 +261,17 @@ dnl We require the boost headers, thread lib and date_time lib.
 dnl AX_BOOST_BASE finds the headers and the lib dir (-L<foo>)
 dnl
 dnl calls AC_SUBST(BOOST_CPPFLAGS), AC_SUBST(BOOST_LDFLAGS) and defines HAVE_BOOST
 dnl AX_BOOST_BASE finds the headers and the lib dir (-L<foo>)
 dnl
 dnl calls AC_SUBST(BOOST_CPPFLAGS), AC_SUBST(BOOST_LDFLAGS) and defines HAVE_BOOST
-AX_BOOST_BASE([1.35])
+dnl
+dnl Current Boost version requirement is >=1.35 for all platforms except Darwin,
+dnl which requires >=1.37 for code in usrp host library.
+case "$host_os" in
+     darwin*)
+        AX_BOOST_BASE([1.37])
+        ;;
+      *)
+        AX_BOOST_BASE([1.35])
+        ;;
+esac
 
 dnl calls AC_SUBST(BOOST_THREAD_LIB), AC_SUBST(BOOST_CXXFLAGS) and defines HAVE_BOOST_THREAD
 AX_BOOST_THREAD
 
 dnl calls AC_SUBST(BOOST_THREAD_LIB), AC_SUBST(BOOST_CXXFLAGS) and defines HAVE_BOOST_THREAD
 AX_BOOST_THREAD
@@ -238,7 +284,7 @@ dnl
 AX_BOOST_DATE_TIME
 dnl AX_BOOST_FILESYSTEM
 dnl AX_BOOST_IOSTREAMS
 AX_BOOST_DATE_TIME
 dnl AX_BOOST_FILESYSTEM
 dnl AX_BOOST_IOSTREAMS
-dnl AX_BOOST_PROGRAM_OPTIONS
+AX_BOOST_PROGRAM_OPTIONS
 dnl AX_BOOST_REGEX
 dnl AX_BOOST_SERIALIZATION
 dnl AX_BOOST_SIGNALS
 dnl AX_BOOST_REGEX
 dnl AX_BOOST_SERIALIZATION
 dnl AX_BOOST_SIGNALS
@@ -247,9 +293,24 @@ dnl AX_BOOST_TEST_EXEC_MONITOR
 dnl AX_BOOST_UNIT_TEST_FRAMEWORK
 dnl AX_BOOST_WSERIALIZATION
 
 dnl AX_BOOST_UNIT_TEST_FRAMEWORK
 dnl AX_BOOST_WSERIALIZATION
 
+BUILD_DATE=`date -R -u`
+AC_SUBST(BUILD_DATE)
+
+dnl SYSCONFDIR substitution
+if test "${sysconfdir}" == "\${prefix}/etc" ; then
+   if test "${prefix}" == "NONE" ; then
+      SYSCONFDIR=["$ac_default_prefix/etc"]
+   else
+      SYSCONFDIR=["${prefix}/etc"]
+   fi
+else
+   SYSCONFDIR=[${sysconfdir}]
+fi
+AC_SUBST(SYSCONFDIR)
 
 
-dnl If this is being done from a subversion tree, create variables
-GR_SUBVERSION
+dnl System configuration files
+GR_PREFSDIR=[$SYSCONFDIR/${PACKAGE}/conf.d]
+AC_SUBST(GR_PREFSDIR)
 
 dnl Component specific configuration
 dnl The order of the GR_ macros determines the order of compilation
 
 dnl Component specific configuration
 dnl The order of the GR_ macros determines the order of compilation
@@ -275,13 +336,13 @@ AC_ARG_ENABLE(
 
 build_dirs="config"
 GRC_GRUEL                       dnl must come first
 
 build_dirs="config"
 GRC_GRUEL                       dnl must come first
-GRC_OMNITHREAD                 dnl must come before gnuradio-core and mblock
 GRC_GCELL
 GRC_GNURADIO_CORE
 GRC_GCELL
 GRC_GNURADIO_CORE
-GRC_PMT
-GRC_MBLOCK                     dnl this must come after GRC_PMT
 GRC_USRP
 GRC_USRP
+GRC_USRP2
+GRC_VRT
 GRC_GR_USRP                    dnl this must come after GRC_USRP
 GRC_GR_USRP                    dnl this must come after GRC_USRP
+GRC_GR_USRP2
 GRC_GR_GCELL                   dnl this must come after GRC_GCELL and GRC_GNURADIO_CORE
 GRC_GR_MSDD6000        
 GRC_GR_AUDIO_ALSA
 GRC_GR_GCELL                   dnl this must come after GRC_GCELL and GRC_GNURADIO_CORE
 GRC_GR_MSDD6000        
 GRC_GR_AUDIO_ALSA
@@ -295,16 +356,19 @@ GRC_GR_COMEDI
 GRC_GR_CVSD_VOCODER
 GRC_GR_GPIO
 GRC_GR_GSM_FR_VOCODER
 GRC_GR_CVSD_VOCODER
 GRC_GR_GPIO
 GRC_GR_GSM_FR_VOCODER
+GRC_GR_NOAA
 GRC_GR_PAGER
 GRC_GR_RADAR_MONO
 GRC_GR_RADIO_ASTRONOMY
 GRC_GR_TRELLIS
 GRC_GR_VIDEO_SDL
 GRC_GR_WXGUI
 GRC_GR_PAGER
 GRC_GR_RADAR_MONO
 GRC_GR_RADIO_ASTRONOMY
 GRC_GR_TRELLIS
 GRC_GR_VIDEO_SDL
 GRC_GR_WXGUI
+GRC_GR_QTGUI
 GRC_GR_SOUNDER                 dnl this must come after GRC_USRP
 GRC_GR_SOUNDER                 dnl this must come after GRC_USRP
-GRC_GR_UTILS                    dnl this must come after GRC_GR_WXGUI
+GRC_GR_UTILS                   dnl this must come after GRC_GR_WXGUI
 GRC_GNURADIO_EXAMPLES          dnl must come after all GRC_GR_*
 GRC_GRC
 GRC_GNURADIO_EXAMPLES          dnl must come after all GRC_GR_*
 GRC_GRC
+GRC_DOCS                       dnl must be last
 
 # Each component is now either to be built, was skipped, will be
 # included from pre-installed libraries and includes, or failed
 
 # Each component is now either to be built, was skipped, will be
 # included from pre-installed libraries and includes, or failed
@@ -313,9 +377,10 @@ AC_SUBST([build_dirs], [$build_dirs])
 AC_SUBST([skipped_dirs], [$skipped_dirs])
 AC_SUBST([with_dirs], [$with_dirs])
 
 AC_SUBST([skipped_dirs], [$skipped_dirs])
 AC_SUBST([with_dirs], [$with_dirs])
 
-# fix for older autotools that don't define "abs_top_YYY" by default
+# fix for older autotools that don't define these by default
 AC_SUBST(abs_top_srcdir)
 AC_SUBST(abs_top_builddir)
 AC_SUBST(abs_top_srcdir)
 AC_SUBST(abs_top_builddir)
+AC_SUBST(MKDIR_P)
 
 # 'with' variables - the pre-installed libraries, includes, and paths
 # - must always come last in the lists, so they require special
 
 # 'with' variables - the pre-installed libraries, includes, and paths
 # - must always come last in the lists, so they require special
@@ -375,3 +440,5 @@ if test "$with_dirs" != ""; then
     echo These components will not be built.
     echo
 fi
     echo These components will not be built.
     echo
 fi
+
+echo Configured GNU Radio release $RELEASE for build.