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