configure.ac 7.21 KB
Newer Older
1 2 3
dnl SFLPhone - configure.ac for automake 1.9 and autoconf 2.59
dnl
dnl Process this file with autoconf to produce a configure script.
yanmorin's avatar
yanmorin committed
4
AC_PREREQ(2.59)
yanmorin's avatar
yanmorin committed
5
AC_INIT([SFLPhone],[0.7],[sflphoneteam@savoirfairelinux.com],[sflphone])
6 7 8 9 10
AC_COPYRIGHT([[Copyright (c) Savoir-Faire Linux 2004-2006]])
AC_REVISION([$Revision$])

dnl Compute canonical system name
AC_CANONICAL_TARGET
yanmorin's avatar
 
yanmorin committed
11

12 13
dnl Rewrite name of programs to be installed
AC_ARG_PROGRAM
jpbl's avatar
jpbl committed
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
dnl Automake options
AM_INIT_AUTOMAKE([-Wall -Wno-portability])

dnl Improve make variable MAKE
AC_PROG_MAKE_SET

dnl Where to find configure files
AC_CONFIG_SRCDIR([config.h.in])
AC_CONFIG_MACRO_DIR([m4])

dnl What to generate
AC_CONFIG_FILES([stamp-h], [echo timestamp > stamp-h])
AC_CONFIG_FILES([Makefile])
AC_CONFIG_FILES([libs/Makefile \
  libs/taxidermy/Makefile \
  libs/stund/Makefile \
  libs/utilspp/Makefile \
  libs/utilspp/functor/Makefile \
  libs/utilspp/singleton/Makefile])
AC_CONFIG_FILES([src/Makefile \
  src/sflphone \
  src/audio/Makefile \
  src/audio/gsm/Makefile \
  src/config/Makefile \
  src/gui/Makefile \
  src/gui/qt/Makefile \
  src/gui/cli/Makefile \
  src/gui/server/Makefile \
  src/zeroconf/Makefile])
AC_CONFIG_FILES([skins/Makefile \
  skins/metal/Makefile \
  skins/gmetal/Makefile \
  ringtones/Makefile])
AC_CONFIG_FILES([platform/debian/changelog platform/rpm/sflphone.spec \
  platform/fedora/sflphoned.spec])
AC_CONFIG_HEADERS(config.h)

dnl Get project version
jpbl's avatar
jpbl committed
53 54
VERSION=`sed -ne 's/^#define SFLPHONED_VERSION "\(.*\)"/\1/p' ${srcdir}/src/global.h`

55
dnl Get rid of release number
jpbl's avatar
jpbl committed
56
RPM_VERSION=`echo $VERSION | cut -d- -f1`
57
AC_SUBST(RPM_VERSION)
jpbl's avatar
jpbl committed
58
RPM_RELEASE=`echo $VERSION | sed -ne 's/.*-\(.*\)/\1/p' `
59
AC_SUBST(RPM_RELEASE)
jpbl's avatar
jpbl committed
60
VERSION=`echo $VERSION | cut -d- -f1`
61
AC_SUBST(VERSION)
jpbl's avatar
jpbl committed
62

63
dnl Settings need Standard C++ Library
jpbl's avatar
jpbl committed
64 65 66
LIBS="$LIBS -lstdc++"

dnl Solaris pkgadd support definitions
67
PKGADD_PKG="SFLPhone"
jpbl's avatar
jpbl committed
68 69 70 71 72 73
PKGADD_NAME="SFLPhone - a SIP client and daemon"
PKGADD_VENDOR="http://www.sflphone.org/"
AC_SUBST(PKGADD_PKG)
AC_SUBST(PKGADD_NAME)
AC_SUBST(PKGADD_VENDOR)

74 75
dnl Check for programs
AC_PROG_CC
yanmorin's avatar
yanmorin committed
76
SFL_CXX_WITH_DEBUG
77 78 79 80 81
AC_PROG_CXX
AC_PROG_CPP
AC_PROG_INSTALL
AC_PROG_LN_S
AC_PROG_MAKE_SET
jpbl's avatar
jpbl committed
82 83
AC_PROG_LIBTOOL

84 85
dnl Define C++ as default language
AC_LANG(C++)
yanmorin's avatar
 
yanmorin committed
86

87 88
dnl Setup C++ compiler flags
CXXFLAGS="$CXXFLAGS $USE_EXCEPTIONS $USER_INCLUDES"
jpbl's avatar
jpbl committed
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
dnl Check for header files
AC_FUNC_ALLOCA
AC_HEADER_STDC
AC_CHECK_HEADERS([arpa/inet.h fcntl.h libintl.h limits.h malloc.h \
  memory.h netdb.h netinet/in.h stdlib.h string.h strings.h \
  sys/ioctl.h sys/socket.h sys/time.h unistd.h utime.h ostream])

dnl Check for typedefs, structures, and compiler characteristics
AC_HEADER_STAT
AC_HEADER_STDBOOL
AC_C_CONST
AC_C_INLINE
AC_TYPE_PID_T
AC_TYPE_SIZE_T
AC_HEADER_TIME
AC_C_VOLATILE
AC_CHECK_TYPES([ptrdiff_t])

dnl Check for library functions
AC_FUNC_CHOWN
AC_FUNC_ERROR_AT_LINE
AC_FUNC_FORK
AC_PROG_GCC_TRADITIONAL
AC_FUNC_MALLOC
AC_FUNC_MEMCMP
AC_FUNC_REALLOC
AC_FUNC_SELECT_ARGTYPES
AC_TYPE_SIGNAL
AC_FUNC_STAT
AC_FUNC_UTIME_NULL
AC_FUNC_VPRINTF
AC_CHECK_FUNCS([bzero floor gethostbyname gethrtime gettimeofday \
  inet_ntoa memset mkdir pathconf pow regcomp select setlocale socket \
  strchr strdup strerror strrchr strstr strtol utime])

dnl Check for portaudio
126
dnl PORTAUDIO_SETUP
yanmorin's avatar
 
yanmorin committed
127

128
dnl Check for exosip2
yanmorin's avatar
 
yanmorin committed
129
LP_CHECK_EXOSIP2
130
SFLPHONE_LIBS="$SFLPHONE_LIBS $EXOSIP_LIBS"
yanmorin's avatar
 
yanmorin committed
131

yanmorin's avatar
yanmorin committed
132 133 134 135 136
dnl Check for samplerate
AC_CHECK_HEADER([samplerate.h], [
  AC_CHECK_LIB(samplerate, src_simple, [with_samplerate=yes], [with_samplerate=no]) 
  ], [ with_samplerate=no ]
)
yanmorin's avatar
 
yanmorin committed
137
AM_CONDITIONAL(USE_SAMPLERATE, test x$with_samplerate = xyes)
jpbl's avatar
jpbl committed
138

139 140
dnl Check for GNU ccRTP
PKG_PROG_PKG_CONFIG
yanmorin's avatar
 
yanmorin committed
141

jpbl's avatar
jpbl committed
142 143
LIBCCGNU2_MIN_VERSION=1.3.1
PKG_CHECK_MODULES(libccgnu2, libccgnu2 >= ${LIBCCGNU2_MIN_VERSION})
144
SFLPHONE_CFLAGS="$SFLPHONE_CFLAGS $libccgnu2_CFLAGS"
jpbl's avatar
jpbl committed
145 146 147 148
SFLPHONE_LIBS="$SFLPHONE_LIBS $libccgnu2_LIBS"

LIBCCEXT2_MIN_VERSION=1.3.1
PKG_CHECK_MODULES(libccext2, libccext2 >= ${LIBCCEXT2_MIN_VERSION})
149
SFLPHONE_CFLAGS="$SFLPHONE_CFLAGS $libccext2_CFLAGS"
jpbl's avatar
jpbl committed
150 151 152 153
SFLPHONE_LIBS="$SFLPHONE_LIBS $libccext2_LIBS"

LIBCCRT_MIN_VERSION=1.3.0
PKG_CHECK_MODULES(libccrtp1, libccrtp1 >= ${LIBCCRT_MIN_VERSION})
154
SFLPHONE_CFLAGS="$SFLPHONE_CFLAGS $libccrtp1_CFLAGS"
jpbl's avatar
jpbl committed
155 156
SFLPHONE_LIBS="$SFLPHONE_LIBS $libccrtp1_LIBS"

157 158 159 160 161 162 163 164 165 166
LIBPORTAUDIO_MIN_VERSION=19
PKG_CHECK_MODULES(libportaudio, portaudio-2.0 >= ${LIBPORTAUDIO_MIN_VERSION})
SFLPHONE_CFLAGS="$SFLPHONE_CFLAGS $libportaudio_CFLAGS"
SFLPHONE_LIBS="$SFLPHONE_LIBS $libportaudio_LIBS"

LIBPORTAUDIOCPP_MIN_VERSION=12
PKG_CHECK_MODULES(libportaudiocpp, portaudiocpp >= ${LIBPORTAUDIOCPP_MIN_VERSION})
SFLPHONE_CFLAGS="$SFLPHONE_CFLAGS $libportaudiocpp_CFLAGS"
SFLPHONE_LIBS="$SFLPHONE_LIBS $libportaudiocpp_LIBS"

167
dnl Check for speex
yanmorin's avatar
 
yanmorin committed
168
AC_ARG_ENABLE(speex, 
169
  AS_HELP_STRING(
yanmorin's avatar
 
yanmorin committed
170 171 172 173 174 175
    [--enable-speex],
    [compile with speex codec @<:@default=no@:>@]
  ), 
  [with_speex=$enableval], 
  [with_speex=no]
)
jpbl's avatar
jpbl committed
176 177 178 179 180 181 182 183 184 185 186 187

if test "x$with_speex" = "xyes" ; then
  AC_CHECK_HEADER([speex/speex.h], [
    AC_CHECK_LIB(speex, speex_decode_int, 
     [
      with_speex=yes
     ], [ with_speex=no ]
    ) 
   ], [ with_speex=no ]
  )
fi
AM_CONDITIONAL(USE_SPEEX, test "x$with_speex" = "xyes" )
yanmorin's avatar
 
yanmorin committed
188

189
dnl Check for IAX
yanmorin's avatar
 
yanmorin committed
190
AC_ARG_ENABLE(iax2,
191
 AS_HELP_STRING(
yanmorin's avatar
 
yanmorin committed
192 193 194 195 196 197 198
   [--enable-iax2],
   [compile with iax2 library support @<:@default=no@:>@]
 ),
 [with_iax2=$enableval],
 [with_iax2=no]
)
AM_CONDITIONAL(USE_IAX, test x$with_iax2 = xyes)
jpbl's avatar
jpbl committed
199

200
dnl Check for readline
jpbl's avatar
jpbl committed
201
GNUPG_CHECK_READLINE
yanmorin's avatar
 
yanmorin committed
202

203
dnl Check for zeroconf (from apple)
yanmorin's avatar
 
yanmorin committed
204
AC_ARG_ENABLE(zeroconf, 
205
  AS_HELP_STRING(
yanmorin's avatar
 
yanmorin committed
206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223
    [--disable-zeroconf],
    [disables libdns_sd (browsing and publishing DNS-SD services will not be possible) @<:@default=no@:>@]
  ),  
  [without_zeroconf=$enableval], 
  [without_zeroconf="no"]
)
if test "x$without_zeroconf" = "xno"; then
  AC_MSG_CHECKING(for DNS-SD support)
  save_dnssdtest_LIBS="$LIBS"
  save_dnssdtest_LDFLAGS="$LDFLAGS"
  save_dnssdtest_CPPFLAGS="$CPPFLAGS"
  LDFLAGS="$all_libraries $LDFLAGS"
  CPPFLAGS="$CPPFLAGS $all_includes"
  case $host_os in
    darwin*) LIBS="" ;;
    *) LIBS="-ldns_sd" ;;
  esac
  have_libdns_sd="no"
224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242
  AC_LINK_IFELSE(
    [AC_LANG_SOURCE([[
        #include <dns_sd.h>
      ]], [[
        DNSServiceRefDeallocate( (DNSServiceRef) 0);
        TXTRecordDeallocate( (TXTRecordRef*) 0);
      ]])
    ],[
      AC_DEFINE(HAVE_DNSSD, 1, [Define if dns-sd is available])
      case $host_os in
        darwin*) LIB_DNSSD="" ;;
        *) LIB_DNSSD="-ldns_sd" ;;
      esac
      have_libdns_sd="yes"
      AC_MSG_RESULT(yes)
    ],[
      AC_MSG_RESULT(no)
      LIB_DNSSD=""
    ])
yanmorin's avatar
 
yanmorin committed
243 244 245
  CPPFLAGS=$save_dnssdtest_CPPFLAGS
  LDFLAGS=$save_dnssdtest_LDFLAGS
  LIBS=$save_dnssdtest_LIBS
jpbl's avatar
jpbl committed
246
fi
yanmorin's avatar
 
yanmorin committed
247 248
AC_SUBST(LIB_DNSSD)
AM_CONDITIONAL(USE_ZEROCONF, test "$have_libdns_sd" = "yes")	
jpbl's avatar
jpbl committed
249

250
dnl Datadir directory
jpbl's avatar
jpbl committed
251 252 253
sflphone_datadir=$datadir/sflphone
AC_SUBST(sflphone_datadir)

254
dnl QT interface
yanmorin's avatar
 
yanmorin committed
255 256
AC_MSG_CHECKING([whether to enable sflphoneqt])
AC_ARG_ENABLE(sflphoneqt,
257
   AS_HELP_STRING(
yanmorin's avatar
 
yanmorin committed
258 259 260 261 262 263 264 265 266 267 268 269
     [--disable-sflphoneqt],
     [disable sflphone-qt compilation @<:@default=no@:>@]
   ),
   [with_sflphoneqt=$enableval],
   [with_sflphoneqt=yes]
)
AM_CONDITIONAL(WITH_QT, test "x$with_sflphoneqt" = "xyes")
AM_CONDITIONAL(include_x11, test x$with_sflphoneqt = "xyes")
if test "x$with_sflphoneqt" = "xno"; then
  AC_MSG_RESULT(no)
else
  AC_MSG_RESULT(yes)
270
  gw_CHECK_QT
yanmorin's avatar
 
yanmorin committed
271
fi
jpbl's avatar
jpbl committed
272

273 274 275 276 277
# Go!
AC_SUBST(SFLPHONE_CFLAGS)
AC_SUBST(SFLPHONE_LIBS)
AC_OUTPUT
AC_MSG_NOTICE([[Configuration done! Run `make' to build the software.]])