eet now has an eet_version you can runtime check:
[framework/uifw/eet.git] / configure.ac
index 8df66dc..624062e 100644 (file)
@@ -1,7 +1,7 @@
 # get rid of that stupid cache mechanism
 rm -f config.cache
 
-AC_INIT([eet], [1.1.0], [enlightenment-devel@lists.sourceforge.net])
+AC_INIT([eet], [1.2.3], [enlightenment-devel@lists.sourceforge.net])
 AC_PREREQ([2.52])
 AC_CONFIG_SRCDIR([configure.ac])
 AC_CONFIG_MACRO_DIR([m4])
@@ -9,8 +9,9 @@ AC_CANONICAL_BUILD
 AC_CANONICAL_HOST
 AC_ISC_POSIX
 
-AM_INIT_AUTOMAKE(1.6 dist-bzip2)
-AM_CONFIG_HEADER(config.h)
+AM_INIT_AUTOMAKE([1.6 dist-bzip2])
+AM_CONFIG_HEADER([config.h])
+m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
 
 AC_LIBTOOL_WIN32_DLL
 define([AC_LIBTOOL_LANG_CXX_CONFIG], [:])dnl
@@ -21,14 +22,32 @@ VMAJ=`echo $PACKAGE_VERSION | awk -F. '{printf("%s", $1);}'`
 VMIN=`echo $PACKAGE_VERSION | awk -F. '{printf("%s", $2);}'`
 VMIC=`echo $PACKAGE_VERSION | awk -F. '{printf("%s", $3);}'`
 SNAP=`echo $PACKAGE_VERSION | awk -F. '{printf("%s", $4);}'`
+
+VREV="0"
+SVNVERSION=`which svnversion`
+if test -n "$SVNVERSION"; then
+  VREV=`$SVNVERSION . | awk -F : '{printf("%s\n", $1);}' | tr 'A-z' ' '`
+fi
+# When released uncomment the following
+##VREV="0"
+
+AC_SUBST(VREV)
+
+AC_DEFINE_UNQUOTED(VMAJ, $VMAJ, [Major version])
+AC_DEFINE_UNQUOTED(VMIN, $VMIN, [Minor version])
+AC_DEFINE_UNQUOTED(VMIC, $VMIC, [Micro version])
+AC_DEFINE_UNQUOTED(VREV, $VREV, [Revison])
 version_info=`expr $VMAJ + $VMIN`":$VMIC:$VMIN"
+##release="ver-pre-svn-00"
+##release_info="-release $release"
+release_info=""
 AC_SUBST(version_info)
-
+AC_SUBST(release_info)
 
 ### Default options with respect to host
 
 case "$host_os" in
-   mingw* | cegcc*)
+   mingw*)
       want_gnutls="no"
       want_openssl="no"
       want_cipher="no"
@@ -47,6 +66,22 @@ requirement_eet=""
 
 ### Additional options to configure
 
+# Amalgamation
+
+AC_ARG_ENABLE([amalgamation],
+   [AC_HELP_STRING([--enable-amalgamation], [enable generation of one single file with all source code in it, helps compiler optimizations.])],
+   [if test "x${enableval}" = "xyes"; then
+       do_amalgamation="yes"
+    else
+       do_amalgamation="no"
+    fi
+   ],
+   [do_amalgamation="no"]
+)
+AM_CONDITIONAL(EET_AMALGAMATION, test "x${do_amalgamation}" = "xyes")
+
+EFL_ENABLE_BIN([eet])
+
 # Old eet file format support
 
 old_eet_file_format="yes"
@@ -75,6 +110,30 @@ AC_ARG_ENABLE([gnutls],
 AC_MSG_CHECKING([whether to use Gnutls])
 AC_MSG_RESULT([${want_gnutls}])
 
+# Specific GNUTLS improvement
+
+new_gnutls_api="yes"
+AC_ARG_ENABLE(new-gnutls-api,
+   [AC_HELP_STRING(
+      [--disable-new-gnutls-api],
+      [enable use of gnutls_x509_crt_verify_hash. [[default=enable]]]
+    )],
+   [new_gnutls_api=$enableval]
+)
+AC_MSG_CHECKING([whether to use gnutls_x509_crt_verify_hash])
+AC_MSG_RESULT([${new_gnutls_api}])
+
+if test "x${new_gnutls_api}" = "xyes" ; then
+   AC_CHECK_LIB(gnutls, gnutls_x509_crt_verify_hash,
+                [ new_gnutls_api="yes" ],
+               [ new_gnutls_api="no" ]
+               )
+
+   if test "x${new_gnutls_api}" = "xyes"; then
+      AC_DEFINE(EET_USE_NEW_GNUTLS_API, 1, [use gnutls_x509_crt_verify_hash])
+   fi
+fi
+
 # Openssl support
 
 AC_ARG_ENABLE([openssl],
@@ -107,6 +166,34 @@ AC_ARG_ENABLE([assert],
    [prefer_assert=$enableval]
 )
 
+# Examples
+
+AC_ARG_ENABLE([install-examples],
+   [AC_HELP_STRING([--disable-install-examples],
+       [disable installing examples (compiled or just source). @<:@default==enabled@:>@])],
+   [
+    if test "x${enableval}" = "xyes" ; then
+       install_examples="yes"
+    else
+       install_examples="no"
+    fi
+   ],
+   [install_examples="yes"])
+AM_CONDITIONAL([INSTALL_EXAMPLES], [test "x${install_examples}" = "xyes"])
+
+AC_ARG_ENABLE([build-examples],
+   [AC_HELP_STRING([--enable-build-examples],
+       [enable building examples. @<:@default==disabled@:>@])],
+   [
+    if test "x${enableval}" = "xyes" ; then
+       build_examples="yes"
+    else
+       build_examples="no"
+    fi
+   ],
+   [build_examples="no"])
+AM_CONDITIONAL([BUILD_EXAMPLES], [test "x${build_examples}" = "xyes"])
+
 # Unit tests, coverage and benchmarking
 
 EFL_CHECK_TESTS([enable_tests="yes"], [enable_tests="no"])
@@ -124,18 +211,29 @@ AC_SUBST(DEBUG_CFLAGS)
 ### Checks for programs
 AC_PROG_CC
 
+# pkg-config
+PKG_PROG_PKG_CONFIG
+
+# Check whether pkg-config supports Requires.private
+if $PKG_CONFIG --atleast-pkgconfig-version 0.22; then
+   pkgconfig_requires_private="Requires.private"
+else
+   pkgconfig_requires_private="Requires"
+fi
+AC_SUBST(pkgconfig_requires_private)
+
+
 # doxygen program for documentation building
 
 EFL_CHECK_DOXYGEN([build_doc="yes"], [build_doc="no"])
 
-
 ### Checks for libraries
 
 # Evil library for compilation on Windows
 
 EFL_EET_BUILD=""
 case "$host_os" in
-   mingw* | cegcc*)
+   mingw*)
       PKG_CHECK_MODULES([EVIL], [evil])
       AC_DEFINE(HAVE_EVIL, 1, [Set to 1 if Evil library is installed])
       requirement_eet="evil ${requirement_eet}"
@@ -149,9 +247,6 @@ case "$host_os" in
    mingw32ce*)
       EET_LIBS="-lws2"
       ;;
-   cegcc*)
-      EET_LIBS="-lws2"
-      ;;
    mingw*)
       EET_LIBS="-lws2_32"
       ;;
@@ -169,12 +264,18 @@ if test "x${want_gnutls}" = "xyes" -o "x${want_gnutls}" = "xauto" ; then
    PKG_CHECK_MODULES(GNUTLS, [gnutls >= 1.7.6],
       [
        have_gnutls="yes"
+       want_openssl="no"
        AC_DEFINE(HAVE_GNUTLS, 1, [Have Gnutls support])
        requirement_eet="gnutls ${requirement_eet}"
       ],
-      [
-       have_gnutls="no"
-      ])
+      [have_gnutls="no"])
+   if test "x${have_gnutls}" = "xyes" ; then
+      AC_PATH_GENERIC([libgcrypt], [], [have_gnutls="yes"], [have_gnutls="no"])
+      if test "x${have_gnutls}" = "xyes" ; then
+         GNUTLS_CFLAGS="${GNUTLS_CFLAGS} ${LIBGCRYPT_CFLAGS}"
+         GNUTLS_LIBS="${GNUTLS_LIBS} ${LIBGCRYPT_LIBS}"
+      fi
+   fi
 fi
 
 # Openssl library
@@ -213,6 +314,10 @@ fi
 AC_MSG_CHECKING(whether to activate signature support in eet)
 AC_MSG_RESULT(${have_signature})
 
+# pthread library
+
+EFL_CHECK_PTHREAD(["no"], [have_pthread="yes"], [have_pthread="no"])
+
 
 ### Checks for header files
 
@@ -226,10 +331,6 @@ AC_CHECK_HEADER([jpeglib.h],
 
 AC_CHECK_HEADERS(netinet/in.h)
 
-AC_CHECK_HEADER([fnmatch.h],
-   [dummy="yes"],
-   [AC_MSG_ERROR([Cannot find fnmatch.h. Make sure your CFLAGS environment variable contains include lines for the location of this file. MinGW users: see the INSTALL file])])
-
 
 ### Checks for types
 
@@ -276,9 +377,8 @@ case "$host_os" in
    mingw32ce*)
       EET_CPPFLAGS="-D_WIN32_WCE=0x0420"
       ;;
-   cegcc*)
-      EET_CPPFLAGS="-D_WIN32_WCE=0x0420"
-      EET_CFLAGS="-mwin32"
+   mingw*)
+      EET_CPPFLAGS="-D_WIN32_WINNT=0x0501"
       ;;
 esac
 AC_SUBST(EET_CPPFLAGS)
@@ -291,7 +391,7 @@ AC_SUBST(EET_CFLAGS)
 
 lt_enable_auto_import=""
 case "$host_os" in
-   mingw* | cegcc*)
+   mingw*)
       lt_enable_auto_import="-Wl,--enable-auto-import"
       ;;
 esac
@@ -317,19 +417,7 @@ AC_FUNC_ALLOCA
 
 AC_CHECK_FUNCS(fmemopen open_memstream realpath)
 
-fnmatch_libs=""
-AC_CHECK_FUNCS([fnmatch], [res="yes"], [res="no"])
-if test "x$res" = "xno"; then
-   AC_SEARCH_LIBS([fnmatch],
-      [fnmatch evil iberty],
-      [res="yes"],
-      [res="no"])
-   if test "x$res" = "xno"; then
-      AC_MSG_ERROR([Cannot find fnmatch() in neither libc nor libfnmatch, nor libiberty, nor libevil])
-   fi
-   fnmatch_libs="${ac_cv_search_fnmatch}"
-fi
-AC_SUBST(fnmatch_libs)
+EFL_CHECK_FNMATCH([], [AC_MSG_ERROR([Cannot find fnmatch()])])
 
 
 AC_SUBST(requirement_eet)
@@ -343,6 +431,7 @@ src/Makefile
 src/lib/Makefile
 src/bin/Makefile
 src/tests/Makefile
+src/examples/Makefile
 README
 eet.spec
 ])
@@ -360,20 +449,34 @@ echo "------------------------------------------------------------------------"
 echo
 echo "Configuration Options Summary:"
 echo
+echo "  Amalgamation.........: ${do_amalgamation}"
 echo "  Gnutls...............: ${have_gnutls}"
 echo "  Openssl..............: ${have_openssl}"
 echo "    Cipher support.....: ${have_cipher}"
 echo "    Signature..........: ${have_signature}"
+echo "  Thread Support.......: ${have_pthread}"
+echo
+echo "  Old eet file format..: ${old_eet_file_format}"
 echo
-echo "  Documentation........: ${build_doc}"
 echo "  Tests................: ${enable_tests}"
 echo "  Coverage.............: ${enable_coverage}"
 echo
-echo "  Old eet file format..: ${old_eet_file_format}"
+echo "  Build eet............: $have_eet"
 echo
-echo "  Compilation..........: make"
+echo "  Documentation........: ${build_doc}"
+if test "x${build_doc}" = "xyes" ; then
+   echo "    Building...........: make doc"
+fi
+echo "  Examples.............: ${build_examples}"
+if test "x${build_examples}" = "xyes" ; then
+   echo "    Install............: ${install_examples}"
+fi
 echo
-echo "  Installation.........: make install"
+echo "Compilation............: make (or gmake)"
+echo "  CPPFLAGS.............: $CPPFLAGS"
+echo "  CFLAGS...............: $CFLAGS"
+echo "  LDFLAGS..............: $LDFLAGS"
 echo
-echo "    prefix.............: $prefix"
+echo "Installation...........: make install (as root if needed, with 'su' or 'sudo')"
+echo "  prefix...............: $prefix"
 echo