# -*- Autoconf -*- # Process this file with autoconf to produce a configure script. AC_PREREQ(2.53) AC_INIT(ejabberd, m4_esyscmd([grep -o -E "\{vsn,.\".*\"\}" ejabberd.app | cut -d \" -f 2 | tr -d '\n']), [ejabberd@process-one.net], [ejabberd]) # Checks for programs. AC_PROG_CC AC_PROG_MAKE_SET if test "x$GCC" = "xyes"; then CFLAGS="$CFLAGS -Wall" fi #locating erlang AM_WITH_ERLANG # Checks for typedefs, structures, and compiler characteristics. AC_C_CONST # Check Erlang headers are installed #AC_CHECK_HEADER(erl_driver.h,,[AC_MSG_ERROR([cannot find Erlang header files])]) # Change default prefix AC_PREFIX_DEFAULT(/) # Checks for library functions. AC_FUNC_MALLOC AC_HEADER_STDC AC_MOD_ENABLE(mod_muc, yes) AC_MOD_ENABLE(mod_proxy65, yes) AC_MOD_ENABLE(mod_pubsub, yes) AC_MOD_ENABLE(eldap, yes) AC_MOD_ENABLE(odbc, no) AC_MOD_ENABLE(tls, yes) AC_MOD_ENABLE(web, yes) AC_MOD_ENABLE(pam, no) #locating PAM AM_WITH_PAM AC_ARG_ENABLE(hipe, [AC_HELP_STRING([--enable-hipe], [compile natively with HiPE, not recommended (default: no)])], [case "${enableval}" in yes) hipe=true ;; no) hipe=false ;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-hipe) ;; esac],[hipe=false]) AC_SUBST(hipe) AC_ARG_ENABLE(roster_gateway_workaround, [AC_HELP_STRING([--enable-roster-gateway-workaround], [turn on workaround for processing gateway subscriptions (default: no)])], [case "${enableval}" in yes) roster_gateway_workaround=true ;; no) roster_gateway_workaround=false ;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-roster-gateway-workaround) ;; esac],[roster_gateway_workaround=false]) AC_SUBST(roster_gateway_workaround) AC_ARG_ENABLE(flash_hack, [AC_HELP_STRING([--enable-flash-hack], [support Adobe Flash client XML (default: no)])], [case "${enableval}" in yes) flash_hack=true ;; no) flash_hack=false ;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-flash-hack) ;; esac],[flash_hack=false]) AC_SUBST(flash_hack) AC_ARG_ENABLE(mssql, [AC_HELP_STRING([--enable-mssql], [use Microsoft SQL Server database (default: no, requires --enable-odbc)])], [case "${enableval}" in yes) db_type=mssql ;; no) db_type=generic ;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-mssql) ;; esac],[db_type=generic]) AC_SUBST(db_type) AC_ARG_ENABLE(transient_supervisors, [AC_HELP_STRING([--enable-transient_supervisors], [use Erlang supervision for transient process (default: yes)])], [case "${enableval}" in yes) transient_supervisors=true ;; no) transient_supervisors=false ;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-transient_supervisors) ;; esac],[transient_supervisors=true]) AC_SUBST(transient_supervisors) AC_ARG_ENABLE(full_xml, [AC_HELP_STRING([--enable-full-xml], [use XML features in XMPP stream (ex: CDATA) (default: no, requires XML compliant clients)])], [case "${enableval}" in yes) full_xml=true ;; no) full_xml=false ;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-full-xml) ;; esac],[full_xml=false]) AC_SUBST(full_xml) AC_CONFIG_FILES([Makefile $make_mod_muc $make_mod_pubsub $make_mod_proxy65 $make_eldap $make_pam $make_web stun/Makefile $make_tls $make_odbc]) #openssl AM_WITH_OPENSSL # If ssl is kerberized it need krb5.h # On RedHat and OpenBSD, krb5.h is in an unsual place: KRB5_INCLUDE="`krb5-config --cflags 2>/dev/null`" if test -n "$KRB5_INCLUDE" ; then CPPFLAGS="$CPPFLAGS $KRB5_INCLUDE" else # For RedHat For BSD for D in /usr/kerberos/include /usr/include/kerberos /usr/include/kerberosV do if test -d $D ; then CPPFLAGS="$CPPFLAGS -I$D" fi done fi AC_CHECK_HEADER(krb5.h,,) ENABLEUSER="" AC_ARG_ENABLE(user, [AS_HELP_STRING([--enable-user[[[[=USER]]]]], [allow this system user to start ejabberd (default: no)])], [case "${enableval}" in yes) ENABLEUSER=`whoami` ;; no) ENABLEUSER="" ;; *) ENABLEUSER=$enableval esac], []) if test "$ENABLEUSER" != ""; then echo "allow this system user to start ejabberd: $ENABLEUSER" AC_SUBST([INSTALLUSER], [$ENABLEUSER]) fi AC_CHECK_HEADER(openssl/md2.h, md2=true, md2=false) AC_SUBST(md2) AC_CANONICAL_SYSTEM #AC_DEFINE_UNQUOTED(CPU_VENDOR_OS, "$target") #AC_SUBST(target_os) case "$target_os" in *darwin10*) echo "Target OS is 'Darwin10'" AC_LANG(Erlang) AC_RUN_IFELSE( [AC_LANG_PROGRAM([],[dnl halt(case erlang:system_info(wordsize) of 8 -> 0; 4 -> 1 end)])], [AC_MSG_NOTICE(found 64-bit Erlang) CBIT=-m64], [AC_MSG_NOTICE(found 32-bit Erlang) CBIT=-m32]) ;; *) echo "Target OS is '$target_os'" CBIT="" ;; esac CFLAGS="$CFLAGS $CBIT" LD_SHARED="$LD_SHARED $CBIT" echo "CBIT is set to '$CBIT'" AC_OUTPUT echo echo "********************** WARNING ! ************************" echo "* ejabberd master is NOT ready for real usage yet, *" echo "* because it is still in heavy development. *" echo "* Don't use ejabberd master, it is still alpha code! *" echo "* Please use ejabberd 2.1.x branch instead. *" echo "*********************************************************" echo