Statistics
| Branch: | Tag: | Revision:

root / configure.ac @ ce165145

History | View | Annotate | Download (7.6 kB)

1
dnl Copyright 2001,2002,2003,2004,2005,2006,2007 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
if test x$cross_compiling != xno; then
29
  AC_MSG_NOTICE([Configuring GNU Radio for cross compilation])
30
else
31
  AC_MSG_NOTICE([Configuring GNU Radio for native compilation])
32
fi
33
34
AM_INIT_AUTOMAKE(gnuradio,3.1svn)
35
36
37
DEFINES=""
38
AC_SUBST(DEFINES)
39
40
41
dnl Remember if the user explicity set CXXFLAGS
42
if test -n "${CXXFLAGS}"; then
43
  user_set_cxxflags=yes
44
fi
45
46
GR_X86_64		dnl check for lib64 suffix
47
LF_CONFIGURE_CC
48
LF_CONFIGURE_CXX
49
50
dnl The three macros above are known to override CXXFLAGS if the user
51
dnl didn't specify them.  Though I'm sure somebody thought this was
52
dnl a good idea, it makes it hard to use other than -g -O2 when compiling
53
dnl selected files.  Thus we "undo" the damage here...
54
dnl 
55
dnl If the user specified CXXFLAGS, we use them.  Otherwise when compiling
56
dnl the output of swig use use -O1 if we're using g++.
57
dnl See Makefile.common for the rest of the magic.
58
if test "$user_set_cxxflags" != yes; then
59
  autoconf_default_CXXFLAGS="$CXXFLAGS"
60
  CXXFLAGS=""
61
  if test "$GXX" = yes; then
62
    case "$host_cpu" in
63
    	powerpc*)
64
	   # "-O1" is broken on the PPC for some reason
65
	   # (at least as of g++ 4.1.1)
66
	   swig_CXXFLAGS="-g1 -O2"
67
	;;
68
    	*) 
69
	swig_CXXFLAGS="-g -O1"
70
	;;
71
    esac
72
  fi
73
fi
74
AC_SUBST(autoconf_default_CXXFLAGS)
75
AC_SUBST(swig_CXXFLAGS)
76
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
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
#AC_SUBST(PTHREAD_CFLAGS)
106
CFLAGS="${CFLAGS} $PTHREAD_CFLAGS"
107
CXXFLAGS="${CXXFLAGS} $PTHREAD_CFLAGS"
108
109
if test x$CXX_FOR_BUILD = x
110
then
111
  if test x$cross_compiling = xno; then
112
    CXX_FOR_BUILD=${CXX}
113
  else
114
    CXX_FOR_BUILD=g++
115
  fi
116
fi
117
118
AC_SUBST(CXX_FOR_BUILD)
119
120
dnl Check for SysV shm (mandatory)
121
dnl FIXME this is no longer mandatory.  Check the macro.
122
GR_SYSV_SHM
123
124
dnl Checks for header files.
125
AC_HEADER_STDC
126
AC_HEADER_SYS_WAIT
127
AC_CHECK_HEADERS(fcntl.h limits.h strings.h time.h sys/ioctl.h sys/time.h unistd.h)
128
AC_CHECK_HEADERS(linux/ppdev.h sys/mman.h sys/select.h sys/types.h)
129
AC_CHECK_HEADERS(sys/resource.h stdint.h sched.h signal.h sys/syscall.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_FUNC_MKTIME
156
157
AH_BOTTOM([
158
#ifndef HAVE_TRUNC
159
#include <math.h>
160
inline static double trunc(double x)
161
{
162
  return x >= 0 ? floor(x) : ceil(x);
163
}
164
#endif
165
166
#ifndef HAVE_EXP10
167
#include <math.h>
168
inline static double exp10(double x)
169
{
170
  return pow(10.0, x);
171
}
172
#endif
173
174
#ifdef HAVE_WINDOWS_H
175
#define NOMINMAX
176
#endif
177
])
178
179
GR_CHECK_SHM_OPEN
180
GR_LIBGNURADIO_CORE_EXTRA_LDFLAGS
181
GR_CHECK_CREATEFILEMAPPING
182
183
dnl Check for Mingw support
184
GR_PWIN32
185
186
dnl Do we have "dot", part of the graphviz package from AT&T?
187
dnl Doxgen will use it to draw pretty diagrams ;-)
188
AC_CHECK_PROG(HAVE_DOT, [dot],[YES],[NO])
189
190
PKG_CHECK_MODULES(FFTW3F, fftw3f >= 3.0)
191
AC_SUBST(FFTW3F_LIBS)
192
193
dnl conditional build stuff
194
GR_CHECK_DOXYGEN
195
GR_SET_MD_CPU
196
197
dnl Define where to look for cppunit includes and libs
198
dnl sets CPPUNIT_CFLAGS and CPPUNIT_LIBS
199
dnl Try using pkg-config first, then fall back to cppunit-config.
200
PKG_CHECK_EXISTS(cppunit,
201
  [PKG_CHECK_MODULES(CPPUNIT, cppunit >= 1.9.14)],
202
  [AM_PATH_CPPUNIT([1.9.14],[],
203
		[AC_MSG_ERROR([GNU Radio requires cppunit.  Stop])])])
204
205
CPPUNIT_INCLUDES=$CPPUNIT_CFLAGS
206
AC_SUBST(CPPUNIT_INCLUDES)
207
208
dnl Define where to find boost includes
209
dnl defines BOOST_CFLAGS
210
GR_REQUIRE_BOOST_INCLUDES
211
212
# If this is being done from a subversion tree, create variables
213
GR_SUBVERSION
214
215
dnl Component specific configuration
216
dnl The order of the GR_ macros determines the order of compilation
217
AC_ARG_ENABLE(
218
    [all-components],
219
    [  --enable-all-components Build all components or stop on failed dependencies]
220
)
221
222
build_dirs="config"
223
GRC_OMNITHREAD			dnl must come before gnuradio-core and mblock
224
GRC_GNURADIO_CORE
225
GRC_PMT
226
GRC_MBLOCK			dnl this must come after GRC_PMT
227
GRC_USRP
228
GRC_GR_USRP			dnl this must come after GRC_USRP
229
GRC_GR_AUDIO_ALSA
230
GRC_GR_AUDIO_JACK
231
GRC_GR_AUDIO_OSS
232
GRC_GR_AUDIO_OSX
233
GRC_GR_AUDIO_PORTAUDIO
234
GRC_GR_AUDIO_WINDOWS
235
GRC_GR_ATSC
236
GRC_GR_COMEDI
237
GRC_GR_CVSD_VOCODER
238
GRC_GR_GSM_FR_VOCODER
239
GRC_GR_PAGER
240
GRC_GR_RADAR_MONO
241
GRC_GR_RADIO_ASTRONOMY
242
GRC_GR_TRELLIS
243
GRC_GR_VIDEO_SDL
244
GRC_GR_QTGUI
245
GRC_GR_WXGUI
246
GRC_GR_SOUNDER			dnl this must come after GRC_USRP
247
GRC_GR_UTILS
248
GRC_GNURADIO_EXAMPLES		dnl must come last
249
250
# Each component is now either to be built, was skipped, or failed dependencies
251
AC_SUBST([build_dirs], [$build_dirs])
252
AC_SUBST([skipped_dirs], [$skipped_dirs])
253
 
254
AC_CONFIG_FILES([\
255
    Makefile \
256
    run_tests.sh
257
    config/Makefile
258
])
259
260
dnl run_tests.sh is created from run_tests.in.sh.  Make it executable.
261
AC_CONFIG_COMMANDS([run_tests_build], [chmod +x run_tests.sh])
262
263
AC_OUTPUT
264
265
echo
266
echo "*********************************************************************"
267
echo The following GNU Radio components have been successfully configured:
268
echo 
269
for dir in $build_dirs
270
do
271
    echo $dir
272
done
273
echo
274
echo You my now run the 'make' command to build these components.
275
echo
276
if test "$skipped_dirs" != ""; then
277
    echo "*********************************************************************"
278
    echo The following components were skipped either because you asked not
279
    echo to build them or they didn\'t pass configuration checks:
280
    echo
281
    for dir in $skipped_dirs
282
    do
283
        echo $dir
284
    done
285
    echo
286
    echo These components will not be built.
287
    echo
288
fi