Statistics
| Branch: | Tag: | Revision:

root / configure.ac @ 8b04fb2b

History | View | Annotate | Download (9.7 kB)

1
dnl Copyright 2001,2002,2003,2004,2005,2006,2007,2008 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
AM_INIT_AUTOMAKE(gnuradio,3.1svn)
30
31
dnl add ${prefix}/lib/pkgconfig to the head of the PKG_CONFIG_PATH
32
if test [x]${PKG_CONFIG_PATH} = x; then
33
    PKG_CONFIG_PATH=${prefix}/lib/pkgconfig
34
else
35
    PKG_CONFIG_PATH=${prefix}/lib/pkgconfig:${PKG_CONFIG_PATH}
36
fi
37
export PKG_CONFIG_PATH
38
39
DEFINES=""
40
AC_SUBST(DEFINES)
41
42
dnl Remember if the user explicity set CXXFLAGS
43
if test -n "${CXXFLAGS}"; then
44
  user_set_cxxflags=yes
45
fi
46
47
GR_X86_64		dnl check for lib64 suffix
48
LF_CONFIGURE_CC
49
LF_CONFIGURE_CXX
50
51
dnl The three macros above are known to override CXXFLAGS if the user
52
dnl didn't specify them.  Though I'm sure somebody thought this was
53
dnl a good idea, it makes it hard to use other than -g -O2 when compiling
54
dnl selected files.  Thus we "undo" the damage here...
55
dnl 
56
dnl If the user specified CXXFLAGS, we use them.  Otherwise when compiling
57
dnl the output of swig use use -O1 if we're using g++.
58
dnl See Makefile.common for the rest of the magic.
59
if test "$user_set_cxxflags" != yes; then
60
  autoconf_default_CXXFLAGS="$CXXFLAGS"
61
  CXXFLAGS=""
62
  if test "$GXX" = yes; then
63
    case "$host_cpu" in
64
    	powerpc*)
65
	   dnl "-O1" is broken on the PPC for some reason
66
	   dnl (at least as of g++ 4.1.1)
67
	   swig_CXXFLAGS="-g1 -O2"
68
	;;
69
    	*) 
70
	swig_CXXFLAGS="-g -O1"
71
	;;
72
    esac
73
  fi
74
fi
75
AC_SUBST(autoconf_default_CXXFLAGS)
76
AC_SUBST(swig_CXXFLAGS)
77
78
LF_SET_WARNINGS
79
GR_SET_GPROF
80
GR_SET_PROF
81
AM_PROG_AS
82
AC_PROG_LN_S
83
AC_PROG_MAKE_SET
84
AC_PROG_INSTALL
85
AC_PATH_PROG([RM_PROG], [rm])
86
87
AC_LIBTOOL_WIN32_DLL
88
dnl AC_DISABLE_SHARED	dnl don't build shared libraries
89
AC_ENABLE_SHARED	dnl do build shared libraries
90
AC_DISABLE_STATIC	dnl don't build static libraries
91
m4_ifdef([LT_INIT],[LT_INIT],[AC_PROG_LIBTOOL])
92
GR_FORTRAN
93
94
GR_NO_UNDEFINED		dnl do we need the -no-undefined linker flag
95
GR_SCRIPTING
96
97
AC_CHECK_PROG([XMLTO],[xmlto],[yes],[])
98
AM_CONDITIONAL([HAS_XMLTO], [test x$XMLTO = xyes])
99
100
dnl Checks for libraries.
101
AC_CHECK_LIB(socket,socket)
102
103
dnl check for threads (mandatory)
104
GR_OMNITHREAD
105
CFLAGS="${CFLAGS} $PTHREAD_CFLAGS"
106
CXXFLAGS="${CXXFLAGS} $PTHREAD_CFLAGS"
107
108
if test x$CXX_FOR_BUILD = x
109
then
110
  if test x$cross_compiling = xno; then
111
    CXX_FOR_BUILD=${CXX}
112
  else
113
    CXX_FOR_BUILD=g++
114
  fi
115
fi
116
117
AC_SUBST(CXX_FOR_BUILD)
118
119
dnl Check for SysV shm (mandatory)
120
dnl FIXME this is no longer mandatory.  Check the macro.
121
GR_SYSV_SHM
122
123
dnl Checks for header files.
124
AC_HEADER_STDC
125
AC_HEADER_SYS_WAIT
126
AC_CHECK_HEADERS(fcntl.h limits.h strings.h time.h sys/ioctl.h sys/time.h unistd.h)
127
AC_CHECK_HEADERS(linux/ppdev.h dev/ppbus/ppi.h sys/mman.h sys/select.h sys/types.h)
128
AC_CHECK_HEADERS(sys/resource.h stdint.h sched.h signal.h sys/syscall.h)
129
AC_CHECK_HEADERS(netinet/in.h)
130
AC_CHECK_HEADERS(windows.h)
131
132
dnl Checks for typedefs, structures, and compiler characteristics.
133
AC_C_CONST
134
AC_C_INLINE
135
AC_TYPE_SIZE_T
136
AC_HEADER_TIME
137
AC_C_BIGENDIAN
138
AC_STRUCT_TM
139
140
dnl Checks for library functions.
141
AC_FUNC_ALLOCA
142
AC_FUNC_SETVBUF_REVERSED
143
AC_FUNC_VPRINTF
144
AC_CHECK_FUNCS([mmap select socket strcspn strerror strspn getpagesize sysconf])
145
AC_CHECK_FUNCS([snprintf gettimeofday nanosleep sched_setscheduler])
146
AC_CHECK_FUNCS([modf sqrt sigaction sigprocmask pthread_sigmask])
147
AC_CHECK_FUNCS([sched_setaffinity])
148
149
AC_CHECK_LIB(m, sincos, [AC_DEFINE([HAVE_SINCOS],[1],[Define to 1 if your system has `sincos'.])])
150
AC_CHECK_LIB(m, sincosf,[AC_DEFINE([HAVE_SINCOSF],[1],[Define to 1 if your system has `sincosf'.])])
151
AC_CHECK_LIB(m, sinf, [AC_DEFINE([HAVE_SINF],[1],[Define to 1 if your system has `sinf'.])])
152
AC_CHECK_LIB(m, cosf, [AC_DEFINE([HAVE_COSF],[1],[Define to 1 if your system has `cosf'.])])
153
AC_CHECK_LIB(m, trunc, [AC_DEFINE([HAVE_TRUNC],[1],[Define to 1 if your system has `trunc'.])])
154
AC_CHECK_LIB(m, exp10, [AC_DEFINE([HAVE_EXP10],[1],[Define to 1 if your system has 'exp10'.])])
155
AC_CHECK_LIB(m, log2, [AC_DEFINE([HAVE_LOG2],[1],[Define to 1 if your system has 'log2'.])])
156
#AC_FUNC_MKTIME
157
158
AH_BOTTOM([
159
#ifndef HAVE_TRUNC
160
#include <math.h>
161
inline static double trunc(double x)
162
{
163
  return x >= 0 ? floor(x) : ceil(x);
164
}
165
#endif
166
167
#ifndef HAVE_EXP10
168
#include <math.h>
169
inline static double exp10(double x)
170
{
171
  return pow(10.0, x);
172
}
173
#endif
174
175
#ifdef HAVE_WINDOWS_H
176
#define NOMINMAX
177
#endif
178
])
179
180
GR_CHECK_SHM_OPEN
181
GR_LIBGNURADIO_CORE_EXTRA_LDFLAGS
182
GR_CHECK_CREATEFILEMAPPING
183
184
dnl Check for Mingw support
185
GR_PWIN32
186
187
dnl Do we have "dot", part of the graphviz package from AT&T?
188
dnl Doxgen will use it to draw pretty diagrams ;-)
189
AC_CHECK_PROG(HAVE_DOT, [dot],[YES],[NO])
190
191
PKG_CHECK_MODULES(FFTW3F, fftw3f >= 3.0)
192
AC_SUBST(FFTW3F_LIBS)
193
194
dnl conditional build stuff
195
GR_CHECK_DOXYGEN
196
GR_SET_MD_CPU
197
198
dnl Define where to look for cppunit includes and libs
199
dnl sets CPPUNIT_CFLAGS and CPPUNIT_LIBS
200
dnl Try using pkg-config first, then fall back to cppunit-config.
201
PKG_CHECK_EXISTS(cppunit,
202
  [PKG_CHECK_MODULES(CPPUNIT, cppunit >= 1.9.14)],
203
  [AM_PATH_CPPUNIT([1.9.14],[],
204
		[AC_MSG_ERROR([GNU Radio requires cppunit.  Stop])])])
205
206
dnl see if GUILE is installed
207
AC_PATH_PROG(GUILE,guile)
208
209
CPPUNIT_INCLUDES=$CPPUNIT_CFLAGS
210
AC_SUBST(CPPUNIT_INCLUDES)
211
212
dnl Define where to find boost includes
213
dnl defines BOOST_CFLAGS
214
GR_REQUIRE_BOOST_INCLUDES
215
216
dnl If this is being done from a subversion tree, create variables
217
GR_SUBVERSION
218
219
dnl Component specific configuration
220
dnl The order of the GR_ macros determines the order of compilation
221
dnl For -any- checks on $enable_all_components
222
dnl use the following guildlines:
223
dnl   yes : --enable-all-components was specified, so error out if any
224
dnl         components do not pass configuration checks.
225
dnl   no  : --disable-all-components was specified, so try to build the
226
dnl         --enable'd components, and error out if any do not pass
227
dnl         configuration checks.
228
dnl   ""  : this option was not specified on the command line; try to
229
dnl         build all components that are not --with'd, but don't
230
dnl         error out if any component does not pass configuration checks.
231
dnl
232
dnl For each --enable-foo component, if that flag is not specified on
233
dnl the command line, the related variable $enable_foo will be set to
234
dnl $enable_all_components .
235
236
AC_ARG_ENABLE(
237
    [all-components],
238
    [  --enable-all-components Build all configurable components (default), or stop on failed dependencies]
239
)
240
241
build_dirs="config"
242
GRC_OMNITHREAD			dnl must come before gnuradio-core and mblock
243
GRC_GCELL
244
GRC_GNURADIO_CORE
245
GRC_PMT
246
GRC_MBLOCK			dnl this must come after GRC_PMT
247
GRC_USRP
248
GRC_GR_USRP			dnl this must come after GRC_USRP
249
GRC_GR_GCELL			dnl this must come after GRC_GCELL and GRC_GNURADIO_CORE
250
GRC_GR_MSDD6000
251
GRC_GR_AUDIO_ALSA
252
GRC_GR_AUDIO_JACK
253
GRC_GR_AUDIO_OSS
254
GRC_GR_AUDIO_OSX
255
GRC_GR_AUDIO_PORTAUDIO
256
GRC_GR_AUDIO_WINDOWS
257
GRC_GR_ATSC
258
GRC_GR_COMEDI
259
GRC_GR_CVSD_VOCODER
260
GRC_GR_GPIO
261
GRC_GR_GSM_FR_VOCODER
262
GRC_GR_PAGER
263
GRC_GR_RADAR_MONO
264
GRC_GR_RADIO_ASTRONOMY
265
GRC_GR_TRELLIS
266
GRC_GR_VIDEO_SDL
267
GRC_GR_WXGUI
268
GRC_GR_SOUNDER			dnl this must come after GRC_USRP
269
GRC_GR_UTILS                    dnl this must come after GRC_GR_WXGUI
270
GRC_GNURADIO_EXAMPLES		dnl must come last
271
272
# Each component is now either to be built, was skipped, will be
273
# included from pre-installed libraries and includes, or failed
274
# dependencies.
275
AC_SUBST([build_dirs], [$build_dirs])
276
AC_SUBST([skipped_dirs], [$skipped_dirs])
277
AC_SUBST([with_dirs], [$with_dirs])
278
279
# fix for older autotools that don't define "abs_top_YYY" by default
280
AC_SUBST(abs_top_srcdir)
281
AC_SUBST(abs_top_builddir)
282
283
# 'with' variables - the pre-installed libraries, includes, and paths
284
# - must always come last in the lists, so they require special
285
# treatment.
286
AC_SUBST(with_INCLUDES)
287
AC_SUBST(with_SWIG_INCLUDES)
288
AC_SUBST(with_PYDIRPATH)
289
AC_SUBST(with_SWIGDIRPATH)
290
AC_SUBST(with_LIBDIRPATH)
291
292
# Local files tweaked by AC
293
AC_CONFIG_FILES([\
294
    Makefile \
295
    run_tests.sh \
296
    config/Makefile \
297
])
298
299
dnl run_tests.sh is created from run_tests.sh.in .  Make it executable.
300
AC_CONFIG_COMMANDS([run_tests_build], [chmod +x run_tests.sh])
301
302
AC_OUTPUT
303
304
echo
305
echo "*********************************************************************"
306
echo The following GNU Radio components have been successfully configured:
307
echo 
308
for dir in $build_dirs
309
do
310
    echo $dir
311
done
312
echo
313
echo You my now run the 'make' command to build these components.
314
echo
315
if test "$skipped_dirs" != ""; then
316
    echo "*********************************************************************"
317
    echo The following components were skipped either because you asked not
318
    echo to build them or they didn\'t pass configuration checks:
319
    echo
320
    for dir in $skipped_dirs
321
    do
322
        echo $dir
323
    done
324
    echo
325
    echo These components will not be built.
326
    echo
327
fi
328
if test "$with_dirs" != ""; then
329
    echo "*********************************************************************"
330
    echo The following components will be included from pre-installed
331
    echo libraries and includes:
332
    echo
333
    for dir in $with_dirs
334
    do
335
        echo $dir
336
    done
337
    echo
338
    echo These components will not be built.
339
    echo
340
fi