Houston, we have a trunk.
[debian/gnuradio] / configure.ac
1 dnl Copyright 2001,2002,2003,2004,2005,2006 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 2, 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., 59 Temple Place - Suite 330,
18 dnl Boston, MA 02111-1307, USA.
19
20 AC_INIT
21 AC_PREREQ(2.57)
22 AM_CONFIG_HEADER(config.h)
23 AC_CANONICAL_HOST
24 AC_CANONICAL_TARGET([])
25 AM_INIT_AUTOMAKE(gnuradio,2.8svn)
26
27 GR_X86_64               dnl check for lib64 suffix
28 LF_CONFIGURE_CC
29 LF_CONFIGURE_CXX
30 LF_SET_WARNINGS
31 GR_SET_GPROF
32 GR_SET_PROF
33 GR_PROG_AS
34 AC_PROG_LN_S
35 AC_PROG_MAKE_SET
36 AC_PROG_INSTALL
37
38 AC_LIBTOOL_WIN32_DLL
39 dnl AC_DISABLE_SHARED   dnl don't build shared libraries
40 AC_ENABLE_SHARED        dnl do build shared libraries
41 AC_DISABLE_STATIC       dnl don't build static libraries
42 AC_PROG_LIBTOOL
43 GR_FORTRAN
44
45 GR_NO_UNDEFINED         dnl do we need the -no-undefined linker flag
46 GR_SCRIPTING
47
48 dnl Checks for libraries.
49 AC_CHECK_LIB(socket,socket)
50
51 dnl check for threads (mandatory)
52 GR_OMNITHREAD
53
54 CFLAGS="${CFLAGS} $PTHREAD_CFLAGS"
55 CXXFLAGS="${CXXFLAGS} $PTHREAD_CFLAGS"
56
57 if test "x$CXX_FOR_BUILD" = x
58 then
59   CXX_FOR_BUILD=${CXX}
60 fi
61 AC_SUBST(CXX_FOR_BUILD)
62
63 dnl Check for SysV shm (mandatory)
64 dnl FIXME this is no longer mandatory.  Check the macro.
65 GR_SYSV_SHM
66
67 dnl Checks for header files.
68 AC_HEADER_STDC
69 AC_HEADER_SYS_WAIT
70 AC_CHECK_HEADERS(fcntl.h limits.h strings.h time.h sys/ioctl.h sys/time.h unistd.h)
71 AC_CHECK_HEADERS(linux/ppdev.h sys/mman.h sys/select.h sys/types.h)
72 AC_CHECK_HEADERS(sys/resource.h stdint.h sched.h)
73
74 dnl Checks for typedefs, structures, and compiler characteristics.
75 AC_C_CONST
76 AC_C_INLINE
77 AC_TYPE_SIZE_T
78 AC_HEADER_TIME
79 AC_C_BIGENDIAN
80
81 dnl Checks for library functions.
82 AC_FUNC_ALLOCA
83 AC_FUNC_SETVBUF_REVERSED
84 AC_FUNC_VPRINTF
85 AC_CHECK_FUNCS([mmap select socket strcspn strerror strspn getpagesize sysconf])
86 AC_CHECK_FUNCS([snprintf gettimeofday nanosleep sched_setscheduler])
87
88 AC_CHECK_LIB(m, sincos, [AC_DEFINE([HAVE_SINCOS],[1],[Define to 1 if your system has `sincos'.])])
89 AC_CHECK_LIB(m, sincosf,[AC_DEFINE([HAVE_SINCOSF],[1],[Define to 1 if your system has `sincosf'.])])
90 AC_CHECK_LIB(m, sinf, [AC_DEFINE([HAVE_SINF],[1],[Define to 1 if your system has `sinf'.])])
91 AC_CHECK_LIB(m, cosf, [AC_DEFINE([HAVE_COSF],[1],[Define to 1 if your system has `cosf'.])])
92 AC_CHECK_LIB(m, trunc, [AC_DEFINE([HAVE_TRUNC],[1],[Define to 1 if your system has `trunc'.])])
93 AH_BOTTOM([
94 #ifndef HAVE_TRUNC
95 #include <math.h>
96 inline static double trunc(double x)
97 {
98   return x >= 0 ? floor(x) : ceil(x);
99 }
100 #endif
101 ])
102
103 GR_CHECK_SHM_OPEN
104 GR_LIBGNURADIO_CORE_EXTRA_LDFLAGS
105 GR_CHECK_CREATEFILEMAPPING
106
107 dnl Check for Mingw support
108 GR_PWIN32
109
110 dnl Do we have "dot", part of the graphviz package from AT&T?
111 dnl Doxgen will use it to draw pretty diagrams ;-)
112 AC_CHECK_PROG(HAVE_DOT, [dot],[YES],[NO])
113
114 PKG_CHECK_MODULES(FFTW3F, fftw3f >= 3.0)
115 AC_SUBST(FFTW3F_LIBS)
116
117 dnl conditional build stuff
118 GR_CHECK_DOXYGEN
119 GR_SET_MD_CPU
120
121 dnl Define where to look for GNURADIO includes
122 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)'
123 AC_SUBST(GNURADIO_INCLUDES)
124
125 dnl Define where to look for cppunit includes and libs
126 dnl sets CPPUNIT_CFLAGS and CPPUNIT_LIBS
127 AM_PATH_CPPUNIT([1.9.14],[],
128                 [AC_MSG_ERROR([GNU Radio requires cppunit.  Stop])])
129
130 CPPUNIT_INCLUDES=$CPPUNIT_CFLAGS
131 AC_SUBST(CPPUNIT_INCLUDES)
132
133 dnl Define where to find boost includes
134 dnl defines BOOST_CFLAGS
135 GR_REQUIRE_BOOST_INCLUDES
136
137 DEFINES=""
138 AC_SUBST(DEFINES)
139
140 STD_DEFINES_AND_INCLUDES="$DEFINES $GNURADIO_INCLUDES $BOOST_CFLAGS"
141 AC_SUBST(STD_DEFINES_AND_INCLUDES)
142
143 dnl Component specific configuration
144 dnl The order of the GR_ macros determines the order of compilation
145 subdirs="config"
146 GR_GNURADIO_CORE
147 GR_GNURADIO_EXAMPLES
148 GR_USRP_HW
149 GR_USRP                         dnl this must come after GR_USRP_HW
150 GR_AUDIO_ALSA
151 GR_AUDIO_JACK
152 GR_AUDIO_OSS
153 #GR_AUDIO_PORTAUDIO             dnl Disabled until portaudio patch figured out
154 GR_AUDIO_OSX                    dnl ***NOT TESTED***
155 GR_AUDIO_WINDOWS                dnl ***NOT TESTED***
156 GR_ATSC
157 GR_COMEDI
158 #GR_ERROR_CORRECTING_CODES      dnl Disabled until compile error fixed from CVS
159 GR_GSM_FR_VOCODER
160 GR_RADAR
161 GR_RADIO_ASTRONOMY
162 GR_PMT
163 GR_VIDEO_SDL
164 GR_WXGUI
165
166 dnl Has list of successfully configured components
167 AC_SUBST([subdirs],$subdirs)
168  
169 AC_CONFIG_FILES([\
170           Makefile \
171           config/Makefile
172 ])
173
174 AC_OUTPUT
175
176 echo
177 echo "*******************************************************************"
178 echo The following GNU Radio components have been successfully configured:
179 echo 
180 for dir in $subdirs
181 do
182     echo $dir
183 done
184 echo
185 if test "$failed" != ""; then
186     echo However, the following components did not configure successfully due to 
187     echo missing dependencies:
188     echo
189     for dir in $failed
190     do
191         echo $dir
192     done
193     echo
194     echo You may still run the 'make' command to build the successfully configured
195     echo components.
196     echo
197     exit 1
198 fi
199 echo You my now run the 'make' command to build these packages.
200 echo