-dnl Copyright 2001,2002,2003,2004,2005,2006 Free Software Foundation, Inc.
+dnl Copyright 2001,2002,2003,2004,2005,2006,2007 Free Software Foundation, Inc.
dnl
dnl This file is part of GNU Radio
dnl
dnl GNU Radio is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
-dnl the Free Software Foundation; either version 2, or (at your option)
+dnl the Free Software Foundation; either version 3, or (at your option)
dnl any later version.
dnl
dnl GNU Radio is distributed in the hope that it will be useful,
dnl
dnl You should have received a copy of the GNU General Public License
dnl along with GNU Radio; see the file COPYING. If not, write to
-dnl the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-dnl Boston, MA 02111-1307, USA.
+dnl the Free Software Foundation, Inc., 51 Franklin Street,
+dnl Boston, MA 02110-1301, USA.
AC_INIT
AC_PREREQ(2.57)
AM_CONFIG_HEADER(config.h)
AC_CANONICAL_HOST
AC_CANONICAL_TARGET([])
-AM_INIT_AUTOMAKE(gnuradio,2.8svn)
+AM_INIT_AUTOMAKE(gnuradio,3.0svn)
+AC_CONFIG_SRCDIR([gnuradio-core/src/lib/runtime/gr_vmcircbuf.cc])
+
+DEFINES=""
+AC_SUBST(DEFINES)
+
+dnl Remember if the user explicity set CXXFLAGS
+if test -n "${CXXFLAGS}"; then
+ user_set_cxxflags=yes
+fi
GR_X86_64 dnl check for lib64 suffix
LF_CONFIGURE_CC
LF_CONFIGURE_CXX
+
+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 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 CXXFLAGS, we use them. Otherwise when compiling
+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"
+ CXXFLAGS=""
+ if test "$GXX" = yes; then
+ case "$host_cpu" in
+ powerpc*)
+ # "-O1" is broken on the PPC for some reason
+ # (at least as of g++ 4.1.1)
+ swig_CXXFLAGS="-g1 -O2"
+ ;;
+ *)
+ swig_CXXFLAGS="-g1 -O1"
+ ;;
+ esac
+ fi
+fi
+AC_SUBST(autoconf_default_CXXFLAGS)
+AC_SUBST(swig_CXXFLAGS)
+
+
LF_SET_WARNINGS
GR_SET_GPROF
GR_SET_PROF
-GR_PROG_AS
+AM_PROG_AS
AC_PROG_LN_S
AC_PROG_MAKE_SET
AC_PROG_INSTALL
+AC_PATH_PROG([RM_PROG], [rm])
AC_LIBTOOL_WIN32_DLL
dnl AC_DISABLE_SHARED dnl don't build shared libraries
GR_NO_UNDEFINED dnl do we need the -no-undefined linker flag
GR_SCRIPTING
+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 threads (mandatory)
GR_OMNITHREAD
-
+#AC_SUBST(PTHREAD_CFLAGS)
CFLAGS="${CFLAGS} $PTHREAD_CFLAGS"
CXXFLAGS="${CXXFLAGS} $PTHREAD_CFLAGS"
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 sys/mman.h sys/select.h sys/types.h)
-AC_CHECK_HEADERS(sys/resource.h stdint.h sched.h)
+AC_CHECK_HEADERS(sys/resource.h stdint.h sched.h signal.h sys/syscall.h)
dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
AC_TYPE_SIZE_T
AC_HEADER_TIME
AC_C_BIGENDIAN
+AC_STRUCT_TM
dnl Checks for library functions.
AC_FUNC_ALLOCA
AC_FUNC_VPRINTF
AC_CHECK_FUNCS([mmap select socket strcspn strerror strspn getpagesize sysconf])
AC_CHECK_FUNCS([snprintf gettimeofday nanosleep sched_setscheduler])
+AC_CHECK_FUNCS([modf sqrt sigaction sigprocmask pthread_sigmask])
+AC_CHECK_FUNCS([sched_setaffinity])
AC_CHECK_LIB(m, sincos, [AC_DEFINE([HAVE_SINCOS],[1],[Define to 1 if your system has `sincos'.])])
AC_CHECK_LIB(m, sincosf,[AC_DEFINE([HAVE_SINCOSF],[1],[Define to 1 if your system has `sincosf'.])])
AC_CHECK_LIB(m, sinf, [AC_DEFINE([HAVE_SINF],[1],[Define to 1 if your system has `sinf'.])])
AC_CHECK_LIB(m, cosf, [AC_DEFINE([HAVE_COSF],[1],[Define to 1 if your system has `cosf'.])])
AC_CHECK_LIB(m, trunc, [AC_DEFINE([HAVE_TRUNC],[1],[Define to 1 if your system has `trunc'.])])
+AC_CHECK_LIB(m, exp10, [AC_DEFINE([HAVE_EXP10],[1],[Define to 1 if your system has 'exp10'.])])
+#AC_FUNC_MKTIME
+
AH_BOTTOM([
#ifndef HAVE_TRUNC
#include <math.h>
return x >= 0 ? floor(x) : ceil(x);
}
#endif
+
+#ifndef HAVE_EXP10
+#include <math.h>
+inline static double exp10(double x)
+{
+ return pow(10.0, x);
+}
+#endif
])
GR_CHECK_SHM_OPEN
GR_CHECK_DOXYGEN
GR_SET_MD_CPU
-dnl Define where to look for GNURADIO includes
-GNURADIO_INCLUDES='-I$(top_srcdir)/gnuradio-core/src/lib/runtime -I$(top_srcdir)/gnuradio-core/src/lib/general -I$(top_srcdir)/gnuradio-core/src/lib/filter -I$(top_srcdir)/gnuradio-core/src/lib/io -I$(top_srcdir)/gnuradio-core/src/lib/g72x -I$(top_srcdir)/gnuradio-core/src/lib/atsc -I$(top_srcdir)/gnuradio-core/src/lib/omnithread -I$(top_builddir)/gnuradio-core/src/lib/general -I$(top_builddir)/gnuradio-core/src/lib/filter -I$(top_builddir)/gnuradio-core/src/lib/reed-solomon -I$(top_builddir)/gnuradio-core/src/lib/swig $(FFTW3F_CFLAGS)'
-AC_SUBST(GNURADIO_INCLUDES)
-
dnl Define where to look for cppunit includes and libs
dnl sets CPPUNIT_CFLAGS and CPPUNIT_LIBS
AM_PATH_CPPUNIT([1.9.14],[],
dnl defines BOOST_CFLAGS
GR_REQUIRE_BOOST_INCLUDES
-DEFINES=""
-AC_SUBST(DEFINES)
-
-STD_DEFINES_AND_INCLUDES="$DEFINES $GNURADIO_INCLUDES $BOOST_CFLAGS"
-AC_SUBST(STD_DEFINES_AND_INCLUDES)
-
dnl Component specific configuration
dnl The order of the GR_ macros determines the order of compilation
-subdirs="config"
-GR_GNURADIO_CORE
-GR_GNURADIO_EXAMPLES
-GR_USRP_HW
-GR_USRP dnl this must come after GR_USRP_HW
-GR_AUDIO_ALSA
-GR_AUDIO_JACK
-GR_AUDIO_OSS
-#GR_AUDIO_PORTAUDIO dnl Disabled until portaudio patch figured out
-GR_AUDIO_OSX dnl ***NOT TESTED***
-GR_AUDIO_WINDOWS dnl ***NOT TESTED***
-GR_ATSC
-GR_COMEDI
-#GR_ERROR_CORRECTING_CODES dnl Disabled until compile error fixed from CVS
-GR_GSM_FR_VOCODER
-GR_RADAR
-GR_RADIO_ASTRONOMY
-GR_PMT
-GR_VIDEO_SDL
-GR_WXGUI
-
-dnl Has list of successfully configured components
-AC_SUBST([subdirs],$subdirs)
-AC_SUBST([failed_subdirs], $failed)
+AC_ARG_ENABLE(
+ [all-components],
+ [ --enable-all-components Build all components or stop on failed dependencies]
+)
+
+build_dirs="config"
+GRC_OMNITHREAD dnl must come before gnuradio-core and mblock
+GRC_GNURADIO_CORE
+GRC_PMT
+GRC_MBLOCK dnl this must come after GRC_PMT
+GRC_USRP
+GRC_GR_USRP dnl this must come after GRC_USRP
+GRC_GR_AUDIO_ALSA
+GRC_GR_AUDIO_JACK
+GRC_GR_AUDIO_OSS
+GRC_GR_AUDIO_OSX
+GRC_GR_AUDIO_PORTAUDIO
+GRC_GR_AUDIO_WINDOWS
+GRC_GR_ATSC
+GRC_GR_COMEDI
+GRC_GR_CVSD_VOCODER
+GRC_GR_GSM_FR_VOCODER
+GRC_GR_PAGER
+GRC_GR_RADAR_MONO
+GRC_GR_RADIO_ASTRONOMY
+GRC_GR_TRELLIS
+GRC_GR_VIDEO_SDL
+GRC_GR_QTGUI
+GRC_GR_WXGUI
+GRC_GR_SOUNDER dnl this must come after GRC_USRP
+GRC_GNURADIO_EXAMPLES dnl must come last
+
+# Each component is now either to be built, was skipped, or failed dependencies
+AC_SUBST([build_dirs], [$build_dirs])
+AC_SUBST([skipped_dirs], [$skipped_dirs])
AC_CONFIG_FILES([\
- Makefile \
- config/Makefile
+ Makefile \
+ run_tests.sh
+ config/Makefile
])
+dnl run_tests.sh is created from run_tests.in.sh. Make it executable.
+AC_CONFIG_COMMANDS([run_tests_build], [chmod +x run_tests.sh])
+
AC_OUTPUT
echo
-echo "*******************************************************************"
+echo "*********************************************************************"
echo The following GNU Radio components have been successfully configured:
echo
-for dir in $subdirs
+for dir in $build_dirs
do
echo $dir
done
echo
-if test "$failed" != ""; then
- echo However, the following components did not configure successfully due to
- echo missing dependencies:
+echo You my now run the 'make' command to build these components.
+echo
+if test "$skipped_dirs" != ""; then
+ echo "*********************************************************************"
+ echo The following components were skipped either because you asked not
+ echo to build them or they didn\'t pass configuration checks:
echo
- for dir in $failed
+ for dir in $skipped_dirs
do
echo $dir
done
echo
- echo You may still run the 'make' command to build the successfully configured
- echo components.
+ echo These components will not be built.
echo
- exit 1
fi
-echo You my now run the 'make' command to build these packages.
-echo