summaryrefslogtreecommitdiff
path: root/gr-howto-write-a-block/config/gr_standalone.m4
blob: 593583e2dde56f23f64f047113af335285d84bfb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
dnl
dnl Copyright 2008,2009 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 3, or (at your option)
dnl any later version.
dnl 
dnl GNU Radio is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
dnl GNU General Public License for more details.
dnl 
dnl You should have received a copy of the GNU General Public License along
dnl with this program; if not, write to the Free Software Foundation, Inc.,
dnl 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
dnl

dnl
dnl GR_STANDALONE([package],[version])
dnl
dnl Handles the bulk of the configure.ac work for an out-of-tree build
dnl
dnl N.B., this is an m4_define because if it were an AC_DEFUN it would
dnl get called too late to be useful.

m4_define([GR_STANDALONE],
[
  AC_CONFIG_SRCDIR([config/gr_standalone.m4])
  AM_CONFIG_HEADER(config.h)

  dnl Remember if the user explicity set CXXFLAGS
  if test -n "${CXXFLAGS}"; then
    user_set_cxxflags=yes
  fi

  LF_CONFIGURE_CC
  LF_CONFIGURE_CXX
  GR_LIB64		dnl check for lib64 suffix after choosing compilers

  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"
    if test "$GXX" = yes; then
      case "$host_cpu" in
    	powerpc*)
	   dnl "-O1" is broken on the PPC for some reason
	   dnl (at least as of g++ 4.1.1)
	   swig_CXXFLAGS="-g1 -O2 -Wno-strict-aliasing -Wno-parentheses"
	;;
    	*) 
	swig_CXXFLAGS="-g -O1 -Wno-strict-aliasing -Wno-parentheses"
	;;
      esac
    fi
  fi
  AC_SUBST(autoconf_default_CXXFLAGS)
  AC_SUBST(swig_CXXFLAGS)

  dnl add ${prefix}/lib${gr_libdir_suffix}/pkgconfig to the head of the PKG_CONFIG_PATH
  if test x${PKG_CONFIG_PATH} = x; then
      PKG_CONFIG_PATH=${prefix}/lib${gr_libdir_suffix}/pkgconfig
  else
      PKG_CONFIG_PATH=${prefix}/lib${gr_libdir_suffix}/pkgconfig:${PKG_CONFIG_PATH}
  fi
  export PKG_CONFIG_PATH

  LF_SET_WARNINGS
  GR_SET_GPROF
  GR_SET_PROF
  AM_PROG_AS
  AC_PROG_LN_S
  AC_PROG_MAKE_SET
  AC_PROG_INSTALL
  AC_PATH_PROG([RM_PROG], [rm])

  AC_LIBTOOL_WIN32_DLL
  AC_ENABLE_SHARED	dnl do build shared libraries
  AC_DISABLE_STATIC	dnl don't build static libraries
  m4_ifdef([LT_INIT],[LT_INIT],[AC_PROG_LIBTOOL])
  dnl GR_FORTRAN

  GR_NO_UNDEFINED	dnl do we need the -no-undefined linker flag
  GR_SCRIPTING		dnl Locate python, SWIG, etc

  dnl Checks for header files.
  AC_HEADER_STDC

  dnl Checks for typedefs, structures, and compiler characteristics.
  AC_C_CONST
  AC_C_INLINE
  AC_TYPE_SIZE_T
  AC_HEADER_TIME
  AC_C_BIGENDIAN

  dnl Check for Mingw support
  GR_PWIN32

  AC_CHECK_PROG([XMLTO],[xmlto],[yes],[])
  AM_CONDITIONAL([HAS_XMLTO], [test x$XMLTO = xyes])

  PKG_CHECK_MODULES(GNURADIO_CORE, gnuradio-core >= 3)
  LIBS="$LIBS $GNURADIO_CORE_LIBS"

  dnl Allow user to choose whether to generate SWIG/Python 
  dnl Default is enabled
  AC_ARG_ENABLE([python],
    [AS_HELP_STRING([--enable-python],
      [generate SWIG/Python components (default is yes)])],
    [case "${enableval}" in
       yes) enable_python=yes ;;
       no) enable_python=no ;;
       *) AC_MSG_ERROR([bad value ${enableval} for --enable-python]) ;;
     esac],
    [enable_python=yes]  
  )
  AM_CONDITIONAL([PYTHON], [test x$enable_python = xyes])
])