configure.ac
git-svn-id: http://libjingle.googlecode.com/svn/trunk@4 dd674b97-3498-5ee5-1854-bdd07cd0ff33
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000..b3daac4
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,182 @@
+AC_INIT([libjingle], [0.4.0], [google-talk-open@googlegroups.com])
+AC_CANONICAL_SYSTEM
+AM_CONFIG_HEADER(config.h)
+AM_INIT_AUTOMAKE([dist-zip])
+AC_PROG_CC
+AC_PROG_CXX
+AM_PROG_LIBTOOL
+LIBTOOL="$LIBTOOL --silent"
+AC_PROG_INSTALL
+AC_DEFINE(PRODUCTION_BUILD, 1, [Build as a production build])
+AC_DEFINE(PRODUCTION, 1, [Build as a production build])
+AC_DEFINE(POSIX, 1, [If we're using configure, we're on POSIX])
+AC_DEFINE(FEATURE_ENABLE_SSL, 1, [Enable SSL])
+AC_DEFINE(FEATURE_ENABLE_CHAT_ARCHIVING, 1, [Chat archving])
+AC_DEFINE(FEATURE_ENABLE_VOICEMAIL, 1, [voice mail])
+AC_DEFINE(LOGGING, 1, [Logging])
+
+HAVE_EXPAT=no
+AC_CHECK_LIB(expat, XML_ParserCreate, HAVE_EXPAT="yes")
+if test "x$HAVE_EXPAT" = xyes ; then
+ EXPAT_LIBS="-lexpat"
+ AC_SUBST(EXPAT_LIBS)
+else
+ AC_ERROR([Expat is required to build libjingle. You can get it from http://expat.sourceforge.net/])
+fi
+
+enable_phone=yes
+if test `uname -s` = Linux ; then
+ AC_DEFINE(LINUX, 1, [Building on Linux])
+ if test x`ls talk/third_party/gips/VoiceEngine_Linux_gcc.a` != x ; then
+ enable_gips=yes
+ MEDIA_LIBS=$PWD/talk/third_party/gips/VoiceEngine_Linux_gcc.a
+ fi
+elif test `uname -s` = Darwin ; then
+ AC_DEFINE(OSX, 1, [Building on OSX])
+ if test x`ls talk/third_party/gips/VoiceEngine_mac_gcc.a` != x ; then
+ enable_gips=yes
+ MEDIA_LIBS="$PWD/talk/third_party/gips/VoiceEngine_mac_gcc.a -framework CoreAudio -framework AudioToolbox"
+ fi
+fi
+
+if test x$enable_gips = xyes ; then
+ AC_DEFINE(HAVE_GIPS, 1, [Have GIPS Voice Engine])
+elif test `uname -s` = Linux ; then
+
+AC_CHECK_HEADERS(alsa/asoundlib.h,
+ [AC_CHECK_LIB(asound, snd_pcm_open,
+ [ALSA_LIBS="-lasound" ; AC_DEFINE(__ALSA_ENABLED__,1,[Defined when alsa support is enabled]) ])
+ ]
+)
+AC_SUBST(ALSA_LIBS)
+
+PKG_CHECK_MODULES(GLIB, glib-2.0 gmodule-2.0 gthread-2.0, enable_glib=yes, enable_glib=no)
+if test x$enable_glib = xno; then
+ enable_phone=no
+ AC_MSG_NOTICE([GLib 2.0 is required to build libjingle. You can get it from http://www.gtk.org/])
+else
+ AC_SUBST(GLIB_CFLAGS)
+ AC_SUBST(GLIB_LIBS)
+ AC_DEFINE(HAVE_GLIB, 1, [Glib is required for oRTP code])
+fi
+
+PKG_CHECK_MODULES(ORTP, ortp >= 0.7.0, enable_ortp=yes, enable_ortp=no)
+if test x$enable_ortp = xno ; then
+ enable_phone=no
+ AC_MSG_NOTICE([oRTP is required to build libjingle. You can get it from http://www.linphone.org/ortp/])
+else
+ AC_SUBST(ORTP_CFLAGS)
+ AC_SUBST(ORTP_LIBS)
+ AC_DEFINE(HAVE_ORTP, 1, [oRTP provides RTP supprt])
+fi
+
+MEDIA_LIBS="$PWD/talk/third_party/mediastreamer/libmediastreamer.la -lasound"
+
+dnl only accept speex>=1.1.6 or 1.0.5 (the versions that have speex_encode_int )
+AC_ARG_WITH( speex,
+ [ --with-speex Set prefix where speex lib can be found (ex:/usr, /usr/local) [default=/usr] ],
+ [ speex_prefix=${withval}],[ speex_prefix="/usr" ])
+
+AC_CHECK_HEADERS(speex.h,[AC_CHECK_LIB(speex,speex_encode_int,speex_found=yes,speex_found=no)
+],speex_found=no)
+
+if test "$speex_found" = "no" ; then
+AC_CHECK_HEADERS(speex/speex.h,[AC_CHECK_LIB(speex,speex_encode_int,speex_found=yes,speex_found=no)
+],speex_found=no)
+fi
+
+if test "$speex_found" = "no" ; then
+AC_MSG_WARN([Could not find a libspeex version that have the speex_encode_int() function. Please install libspeex=1.0.5 or libspeex>=1.1.6 from http://www.speex.org/])
+else
+SPEEX_CFLAGS=" -I${speex_prefix}/include -I${speex_prefix}/include/speex"
+SPEEX_LIBS="-L${speex_prefix}/lib -L${speex_prefix}/speex/lib -lspeex -lm"
+CPPFLAGS_save=$CPPFLAGS
+CPPFLAGS=$SPEEX_CFLAGS
+LDFLAGS_save=$LDFLAGS
+LDFLAGS=$SPEEX_LIBS
+AC_DEFINE(HAVE_SPEEX,1,[has speex])
+fi
+
+AC_SUBST(SPEEX_CFLAGS)
+AC_SUBST(SPEEX_LIBS)
+CPPFLAGS+=$CPPFLAGS_save
+LDFLAGS+=$LDFLAGS_save
+
+AC_ARG_WITH( ilbc,
+ [ --with-ilbc Set prefix where ilbc headers and libs can be found (ex:/usr, /usr/local, none to disable ilbc support) [default=/usr] ],
+ [ ilbc_prefix=${withval}],[ ilbc_prefix="/usr" ])
+
+if test "$ilbc_prefix" = "none" ; then
+ AC_MSG_NOTICE([iLBC codec support disabled. ])
+else
+ ILBC_CFLAGS=" -I${ilbc_prefix}/include/ilbc"
+ ILBC_LIBS="-L${ilbc_prefix}/lib -lilbc -lm"
+ CPPFLAGS_save=$CPPFLAGS
+ CPPFLAGS=$ILBC_CFLAGS
+ LDFLAGS_save=$LDFLAGS
+ LDFLAGS=$ILBC_LIBS
+ AC_CHECK_HEADERS(iLBC_decode.h,[AC_CHECK_LIB(ilbc,iLBC_decode,ilbc_found=yes,ilbc_found=no)
+ ],ilbc_found=no)
+
+ CPPFLAGS=$CPPFLAGS_save
+ LDFLAGS=$LDFLAGS_save
+
+ if test "$ilbc_found" = "no" ; then
+ AC_MSG_WARN([Could not find ilbc headers or libs. Please install ilbc package from http://www.linphone.org if you want iLBC codec support in libjingle.])
+ ILBC_CFLAGS=
+ ILBC_LIBS=
+ else
+ AC_DEFINE(HAVE_ILBC,1,[Defined when we have ilbc codec lib])
+ AC_SUBST(ILBC_CFLAGS)
+ AC_SUBST(ILBC_LIBS)
+ fi
+fi
+
+else
+ enable_phone=no
+fi # Linux check
+
+AM_CONDITIONAL(GIPS, test x$enable_gips = xyes)
+AM_CONDITIONAL(PHONE, test x$enable_phone = xyes)
+AC_SUBST(MEDIA_LIBS)
+
+AC_OUTPUT([Makefile
+ talk/Makefile
+ talk/base/Makefile
+ talk/third_party/Makefile
+ talk/third_party/gips/Makefile
+ talk/third_party/mediastreamer/Makefile
+ talk/examples/Makefile
+ talk/examples/login/Makefile
+ talk/examples/call/Makefile
+ talk/examples/pcp/Makefile
+ talk/p2p/Makefile
+ talk/p2p/base/Makefile
+ talk/p2p/client/Makefile
+ talk/session/Makefile
+ talk/session/fileshare/Makefile
+ talk/session/tunnel/Makefile
+ talk/session/phone/Makefile
+ talk/xmllite/Makefile
+ talk/xmpp/Makefile
+ ])
+
+echo
+echo $PACKAGE $VERSION
+echo
+
+if test x$enable_phone = xyes ; then
+ echo
+ echo Supported Examples: call pcp
+ echo Supported Codecs:
+ if test x$enable_gips = xyes ; then
+ echo GIPS: yes
+ else
+ echo Speex: $speex_found
+ echo iLBC: $ilbc_found
+ echo MULAW: yes
+ fi
+else
+ echo Supported Examples: pcp
+fi
+echo