Statistics
| Branch: | Tag: | Revision:

root / configure.ac @ ce165145

History | View | Annotate | Download (7.6 kB)

1 cbe1628f eb
dnl Copyright 2001,2002,2003,2004,2005,2006,2007 Free Software Foundation, Inc.
2 5d69a524 jcorgan
dnl 
3 5d69a524 jcorgan
dnl This file is part of GNU Radio
4 5d69a524 jcorgan
dnl 
5 5d69a524 jcorgan
dnl GNU Radio is free software; you can redistribute it and/or modify
6 5d69a524 jcorgan
dnl it under the terms of the GNU General Public License as published by
7 937b719d eb
dnl the Free Software Foundation; either version 3, or (at your option)
8 5d69a524 jcorgan
dnl any later version.
9 5d69a524 jcorgan
dnl 
10 5d69a524 jcorgan
dnl GNU Radio is distributed in the hope that it will be useful,
11 5d69a524 jcorgan
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
12 5d69a524 jcorgan
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 5d69a524 jcorgan
dnl GNU General Public License for more details.
14 5d69a524 jcorgan
dnl 
15 5d69a524 jcorgan
dnl You should have received a copy of the GNU General Public License
16 5d69a524 jcorgan
dnl along with GNU Radio; see the file COPYING.  If not, write to
17 86f5c924 eb
dnl the Free Software Foundation, Inc., 51 Franklin Street,
18 86f5c924 eb
dnl Boston, MA 02110-1301, USA.
19 5d69a524 jcorgan
20 5d69a524 jcorgan
AC_INIT
21 5d69a524 jcorgan
AC_PREREQ(2.57)
22 5d69a524 jcorgan
AM_CONFIG_HEADER(config.h)
23 bf89a844 eb
AC_CONFIG_SRCDIR([gnuradio-core/src/lib/runtime/gr_vmcircbuf.cc])
24 bf89a844 eb
25 bf89a844 eb
AC_CANONICAL_BUILD
26 5d69a524 jcorgan
AC_CANONICAL_HOST
27 bf89a844 eb
AC_CANONICAL_TARGET
28 3f279f89 eb
if test x$cross_compiling != xno; then
29 bf89a844 eb
  AC_MSG_NOTICE([Configuring GNU Radio for cross compilation])
30 bf89a844 eb
else
31 bf89a844 eb
  AC_MSG_NOTICE([Configuring GNU Radio for native compilation])
32 bf89a844 eb
fi
33 bf89a844 eb
34 ba04e0dd jcorgan
AM_INIT_AUTOMAKE(gnuradio,3.1svn)
35 bf89a844 eb
36 5d69a524 jcorgan
37 4d84dd43 eb
DEFINES=""
38 4d84dd43 eb
AC_SUBST(DEFINES)
39 4d84dd43 eb
40 bf89a844 eb
41 cbe1628f eb
dnl Remember if the user explicity set CXXFLAGS
42 cbe1628f eb
if test -n "${CXXFLAGS}"; then
43 cbe1628f eb
  user_set_cxxflags=yes
44 cbe1628f eb
fi
45 cbe1628f eb
46 5d69a524 jcorgan
GR_X86_64		dnl check for lib64 suffix
47 5d69a524 jcorgan
LF_CONFIGURE_CC
48 5d69a524 jcorgan
LF_CONFIGURE_CXX
49 cbe1628f eb
50 cbe1628f eb
dnl The three macros above are known to override CXXFLAGS if the user
51 cbe1628f eb
dnl didn't specify them.  Though I'm sure somebody thought this was
52 cbe1628f eb
dnl a good idea, it makes it hard to use other than -g -O2 when compiling
53 cbe1628f eb
dnl selected files.  Thus we "undo" the damage here...
54 cbe1628f eb
dnl 
55 cbe1628f eb
dnl If the user specified CXXFLAGS, we use them.  Otherwise when compiling
56 cbe1628f eb
dnl the output of swig use use -O1 if we're using g++.
57 cbe1628f eb
dnl See Makefile.common for the rest of the magic.
58 cbe1628f eb
if test "$user_set_cxxflags" != yes; then
59 cbe1628f eb
  autoconf_default_CXXFLAGS="$CXXFLAGS"
60 cbe1628f eb
  CXXFLAGS=""
61 cbe1628f eb
  if test "$GXX" = yes; then
62 e754be97 eb
    case "$host_cpu" in
63 e754be97 eb
    	powerpc*)
64 e754be97 eb
	   # "-O1" is broken on the PPC for some reason
65 e754be97 eb
	   # (at least as of g++ 4.1.1)
66 511ddd6c michaelld
	   swig_CXXFLAGS="-g1 -O2"
67 511ddd6c michaelld
	;;
68 511ddd6c michaelld
    	*) 
69 e01b9886 eb
	swig_CXXFLAGS="-g -O1"
70 511ddd6c michaelld
	;;
71 511ddd6c michaelld
    esac
72 cbe1628f eb
  fi
73 cbe1628f eb
fi
74 cbe1628f eb
AC_SUBST(autoconf_default_CXXFLAGS)
75 cbe1628f eb
AC_SUBST(swig_CXXFLAGS)
76 cbe1628f eb
77 cbe1628f eb
78 5d69a524 jcorgan
LF_SET_WARNINGS
79 5d69a524 jcorgan
GR_SET_GPROF
80 5d69a524 jcorgan
GR_SET_PROF
81 ff432904 jcorgan
AM_PROG_AS
82 5d69a524 jcorgan
AC_PROG_LN_S
83 5d69a524 jcorgan
AC_PROG_MAKE_SET
84 5d69a524 jcorgan
AC_PROG_INSTALL
85 c7aab5e1 jcorgan
AC_PATH_PROG([RM_PROG], [rm])
86 5d69a524 jcorgan
87 5d69a524 jcorgan
AC_LIBTOOL_WIN32_DLL
88 5d69a524 jcorgan
dnl AC_DISABLE_SHARED	dnl don't build shared libraries
89 5d69a524 jcorgan
AC_ENABLE_SHARED	dnl do build shared libraries
90 5d69a524 jcorgan
AC_DISABLE_STATIC	dnl don't build static libraries
91 5d69a524 jcorgan
AC_PROG_LIBTOOL
92 5d69a524 jcorgan
GR_FORTRAN
93 5d69a524 jcorgan
94 5d69a524 jcorgan
GR_NO_UNDEFINED		dnl do we need the -no-undefined linker flag
95 5d69a524 jcorgan
GR_SCRIPTING
96 5d69a524 jcorgan
97 878730dc jcorgan
AC_CHECK_PROG([XMLTO],[xmlto],[yes],[])
98 878730dc jcorgan
AM_CONDITIONAL([HAS_XMLTO], [test x$XMLTO = xyes])
99 878730dc jcorgan
100 5d69a524 jcorgan
dnl Checks for libraries.
101 5d69a524 jcorgan
AC_CHECK_LIB(socket,socket)
102 5d69a524 jcorgan
103 5d69a524 jcorgan
dnl check for threads (mandatory)
104 5d69a524 jcorgan
GR_OMNITHREAD
105 676acd5c jcorgan
#AC_SUBST(PTHREAD_CFLAGS)
106 5d69a524 jcorgan
CFLAGS="${CFLAGS} $PTHREAD_CFLAGS"
107 5d69a524 jcorgan
CXXFLAGS="${CXXFLAGS} $PTHREAD_CFLAGS"
108 5d69a524 jcorgan
109 bf89a844 eb
if test x$CXX_FOR_BUILD = x
110 5d69a524 jcorgan
then
111 bf89a844 eb
  if test x$cross_compiling = xno; then
112 bf89a844 eb
    CXX_FOR_BUILD=${CXX}
113 bf89a844 eb
  else
114 bf89a844 eb
    CXX_FOR_BUILD=g++
115 bf89a844 eb
  fi
116 5d69a524 jcorgan
fi
117 bf89a844 eb
118 5d69a524 jcorgan
AC_SUBST(CXX_FOR_BUILD)
119 5d69a524 jcorgan
120 5d69a524 jcorgan
dnl Check for SysV shm (mandatory)
121 5d69a524 jcorgan
dnl FIXME this is no longer mandatory.  Check the macro.
122 5d69a524 jcorgan
GR_SYSV_SHM
123 5d69a524 jcorgan
124 5d69a524 jcorgan
dnl Checks for header files.
125 5d69a524 jcorgan
AC_HEADER_STDC
126 5d69a524 jcorgan
AC_HEADER_SYS_WAIT
127 5d69a524 jcorgan
AC_CHECK_HEADERS(fcntl.h limits.h strings.h time.h sys/ioctl.h sys/time.h unistd.h)
128 5d69a524 jcorgan
AC_CHECK_HEADERS(linux/ppdev.h sys/mman.h sys/select.h sys/types.h)
129 0bf2128a eb
AC_CHECK_HEADERS(sys/resource.h stdint.h sched.h signal.h sys/syscall.h)
130 a81fada7 eb
AC_CHECK_HEADERS(windows.h)
131 5d69a524 jcorgan
132 5d69a524 jcorgan
dnl Checks for typedefs, structures, and compiler characteristics.
133 5d69a524 jcorgan
AC_C_CONST
134 5d69a524 jcorgan
AC_C_INLINE
135 5d69a524 jcorgan
AC_TYPE_SIZE_T
136 5d69a524 jcorgan
AC_HEADER_TIME
137 5d69a524 jcorgan
AC_C_BIGENDIAN
138 676acd5c jcorgan
AC_STRUCT_TM
139 5d69a524 jcorgan
140 5d69a524 jcorgan
dnl Checks for library functions.
141 5d69a524 jcorgan
AC_FUNC_ALLOCA
142 5d69a524 jcorgan
AC_FUNC_SETVBUF_REVERSED
143 5d69a524 jcorgan
AC_FUNC_VPRINTF
144 5d69a524 jcorgan
AC_CHECK_FUNCS([mmap select socket strcspn strerror strspn getpagesize sysconf])
145 5d69a524 jcorgan
AC_CHECK_FUNCS([snprintf gettimeofday nanosleep sched_setscheduler])
146 29576322 eb
AC_CHECK_FUNCS([modf sqrt sigaction sigprocmask pthread_sigmask])
147 0bf2128a eb
AC_CHECK_FUNCS([sched_setaffinity])
148 5d69a524 jcorgan
149 5d69a524 jcorgan
AC_CHECK_LIB(m, sincos, [AC_DEFINE([HAVE_SINCOS],[1],[Define to 1 if your system has `sincos'.])])
150 5d69a524 jcorgan
AC_CHECK_LIB(m, sincosf,[AC_DEFINE([HAVE_SINCOSF],[1],[Define to 1 if your system has `sincosf'.])])
151 5d69a524 jcorgan
AC_CHECK_LIB(m, sinf, [AC_DEFINE([HAVE_SINF],[1],[Define to 1 if your system has `sinf'.])])
152 5d69a524 jcorgan
AC_CHECK_LIB(m, cosf, [AC_DEFINE([HAVE_COSF],[1],[Define to 1 if your system has `cosf'.])])
153 5d69a524 jcorgan
AC_CHECK_LIB(m, trunc, [AC_DEFINE([HAVE_TRUNC],[1],[Define to 1 if your system has `trunc'.])])
154 e20a5fd2 eb
AC_CHECK_LIB(m, exp10, [AC_DEFINE([HAVE_EXP10],[1],[Define to 1 if your system has 'exp10'.])])
155 676acd5c jcorgan
#AC_FUNC_MKTIME
156 e20a5fd2 eb
157 5d69a524 jcorgan
AH_BOTTOM([
158 5d69a524 jcorgan
#ifndef HAVE_TRUNC
159 5d69a524 jcorgan
#include <math.h>
160 5d69a524 jcorgan
inline static double trunc(double x)
161 5d69a524 jcorgan
{
162 5d69a524 jcorgan
  return x >= 0 ? floor(x) : ceil(x);
163 5d69a524 jcorgan
}
164 5d69a524 jcorgan
#endif
165 e20a5fd2 eb
166 e20a5fd2 eb
#ifndef HAVE_EXP10
167 e20a5fd2 eb
#include <math.h>
168 e20a5fd2 eb
inline static double exp10(double x)
169 e20a5fd2 eb
{
170 e20a5fd2 eb
  return pow(10.0, x);
171 e20a5fd2 eb
}
172 e20a5fd2 eb
#endif
173 a81fada7 eb
174 a81fada7 eb
#ifdef HAVE_WINDOWS_H
175 a81fada7 eb
#define NOMINMAX
176 a81fada7 eb
#endif
177 5d69a524 jcorgan
])
178 5d69a524 jcorgan
179 5d69a524 jcorgan
GR_CHECK_SHM_OPEN
180 5d69a524 jcorgan
GR_LIBGNURADIO_CORE_EXTRA_LDFLAGS
181 5d69a524 jcorgan
GR_CHECK_CREATEFILEMAPPING
182 5d69a524 jcorgan
183 5d69a524 jcorgan
dnl Check for Mingw support
184 5d69a524 jcorgan
GR_PWIN32
185 5d69a524 jcorgan
186 5d69a524 jcorgan
dnl Do we have "dot", part of the graphviz package from AT&T?
187 5d69a524 jcorgan
dnl Doxgen will use it to draw pretty diagrams ;-)
188 5d69a524 jcorgan
AC_CHECK_PROG(HAVE_DOT, [dot],[YES],[NO])
189 5d69a524 jcorgan
190 5d69a524 jcorgan
PKG_CHECK_MODULES(FFTW3F, fftw3f >= 3.0)
191 5d69a524 jcorgan
AC_SUBST(FFTW3F_LIBS)
192 5d69a524 jcorgan
193 5d69a524 jcorgan
dnl conditional build stuff
194 5d69a524 jcorgan
GR_CHECK_DOXYGEN
195 5d69a524 jcorgan
GR_SET_MD_CPU
196 5d69a524 jcorgan
197 5d69a524 jcorgan
dnl Define where to look for cppunit includes and libs
198 5d69a524 jcorgan
dnl sets CPPUNIT_CFLAGS and CPPUNIT_LIBS
199 bf89a844 eb
dnl Try using pkg-config first, then fall back to cppunit-config.
200 bf89a844 eb
PKG_CHECK_EXISTS(cppunit,
201 bf89a844 eb
  [PKG_CHECK_MODULES(CPPUNIT, cppunit >= 1.9.14)],
202 bf89a844 eb
  [AM_PATH_CPPUNIT([1.9.14],[],
203 bf89a844 eb
		[AC_MSG_ERROR([GNU Radio requires cppunit.  Stop])])])
204 5d69a524 jcorgan
205 5d69a524 jcorgan
CPPUNIT_INCLUDES=$CPPUNIT_CFLAGS
206 5d69a524 jcorgan
AC_SUBST(CPPUNIT_INCLUDES)
207 5d69a524 jcorgan
208 5d69a524 jcorgan
dnl Define where to find boost includes
209 5d69a524 jcorgan
dnl defines BOOST_CFLAGS
210 5d69a524 jcorgan
GR_REQUIRE_BOOST_INCLUDES
211 5d69a524 jcorgan
212 62cc4591 jcorgan
# If this is being done from a subversion tree, create variables
213 62cc4591 jcorgan
GR_SUBVERSION
214 62cc4591 jcorgan
215 5d69a524 jcorgan
dnl Component specific configuration
216 5d69a524 jcorgan
dnl The order of the GR_ macros determines the order of compilation
217 287fc41d jcorgan
AC_ARG_ENABLE(
218 287fc41d jcorgan
    [all-components],
219 287fc41d jcorgan
    [  --enable-all-components Build all components or stop on failed dependencies]
220 287fc41d jcorgan
)
221 287fc41d jcorgan
222 287fc41d jcorgan
build_dirs="config"
223 6ff1faed eb
GRC_OMNITHREAD			dnl must come before gnuradio-core and mblock
224 b949d474 jcorgan
GRC_GNURADIO_CORE
225 0bf2128a eb
GRC_PMT
226 0bf2128a eb
GRC_MBLOCK			dnl this must come after GRC_PMT
227 b949d474 jcorgan
GRC_USRP
228 b949d474 jcorgan
GRC_GR_USRP			dnl this must come after GRC_USRP
229 b949d474 jcorgan
GRC_GR_AUDIO_ALSA
230 b949d474 jcorgan
GRC_GR_AUDIO_JACK
231 b949d474 jcorgan
GRC_GR_AUDIO_OSS
232 f3c0065c jcorgan
GRC_GR_AUDIO_OSX
233 287fc41d jcorgan
GRC_GR_AUDIO_PORTAUDIO
234 287fc41d jcorgan
GRC_GR_AUDIO_WINDOWS
235 b949d474 jcorgan
GRC_GR_ATSC
236 b949d474 jcorgan
GRC_GR_COMEDI
237 36c0ba64 trondeau
GRC_GR_CVSD_VOCODER
238 b949d474 jcorgan
GRC_GR_GSM_FR_VOCODER
239 50a6df5e jcorgan
GRC_GR_PAGER
240 c39968a6 jcorgan
GRC_GR_RADAR_MONO
241 b949d474 jcorgan
GRC_GR_RADIO_ASTRONOMY
242 287fc41d jcorgan
GRC_GR_TRELLIS
243 b949d474 jcorgan
GRC_GR_VIDEO_SDL
244 f5fd1a6c jcorgan
GRC_GR_QTGUI
245 b949d474 jcorgan
GRC_GR_WXGUI
246 c6baf9d4 jcorgan
GRC_GR_SOUNDER			dnl this must come after GRC_USRP
247 54d6b928 jcorgan
GRC_GR_UTILS
248 76ed4c2f jcorgan
GRC_GNURADIO_EXAMPLES		dnl must come last
249 5d69a524 jcorgan
250 287fc41d jcorgan
# Each component is now either to be built, was skipped, or failed dependencies
251 287fc41d jcorgan
AC_SUBST([build_dirs], [$build_dirs])
252 287fc41d jcorgan
AC_SUBST([skipped_dirs], [$skipped_dirs])
253 5d69a524 jcorgan
 
254 5d69a524 jcorgan
AC_CONFIG_FILES([\
255 287fc41d jcorgan
    Makefile \
256 6b5a0200 jcorgan
    run_tests.sh
257 287fc41d jcorgan
    config/Makefile
258 5d69a524 jcorgan
])
259 5d69a524 jcorgan
260 6b5a0200 jcorgan
dnl run_tests.sh is created from run_tests.in.sh.  Make it executable.
261 6b5a0200 jcorgan
AC_CONFIG_COMMANDS([run_tests_build], [chmod +x run_tests.sh])
262 6b5a0200 jcorgan
263 5d69a524 jcorgan
AC_OUTPUT
264 5d69a524 jcorgan
265 5d69a524 jcorgan
echo
266 287fc41d jcorgan
echo "*********************************************************************"
267 5d69a524 jcorgan
echo The following GNU Radio components have been successfully configured:
268 5d69a524 jcorgan
echo 
269 287fc41d jcorgan
for dir in $build_dirs
270 5d69a524 jcorgan
do
271 5d69a524 jcorgan
    echo $dir
272 5d69a524 jcorgan
done
273 5d69a524 jcorgan
echo
274 287fc41d jcorgan
echo You my now run the 'make' command to build these components.
275 287fc41d jcorgan
echo
276 287fc41d jcorgan
if test "$skipped_dirs" != ""; then
277 287fc41d jcorgan
    echo "*********************************************************************"
278 287fc41d jcorgan
    echo The following components were skipped either because you asked not
279 287fc41d jcorgan
    echo to build them or they didn\'t pass configuration checks:
280 5d69a524 jcorgan
    echo
281 287fc41d jcorgan
    for dir in $skipped_dirs
282 5d69a524 jcorgan
    do
283 5d69a524 jcorgan
        echo $dir
284 5d69a524 jcorgan
    done
285 5d69a524 jcorgan
    echo
286 287fc41d jcorgan
    echo These components will not be built.
287 5d69a524 jcorgan
    echo
288 5d69a524 jcorgan
fi