Bump version to 1.1.0; Update ChangeLog.
[sort-networks.git] / configure.ac
index 25c2b3e..2ca8cdc 100644 (file)
@@ -1,5 +1,5 @@
-AC_PREREQ([2.65])
-AC_INIT([libsortnetwork], [1.0.0], [ff@octo.it])
+AC_PREREQ([2.61])
+AC_INIT([libsortnetwork], [1.1.0], [ff@octo.it])
 AC_CONFIG_SRCDIR([src/sn_network.c])
 AC_CONFIG_HEADERS([src/config.h])
 AM_INIT_AUTOMAKE(dist-bzip2)
@@ -14,30 +14,111 @@ AC_PROG_INSTALL
 AM_PROG_CC_C_O
 AC_DISABLE_STATIC
 AC_PROG_LIBTOOL
+PKG_PROG_PKG_CONFIG
 
 # Libtool stuff
-LT_CONFIG_LTDL_DIR([libltdl])
 LT_INIT
-LTDL_INIT
 
-# Checks for libraries.
-AC_CHECK_LIB([m], [powl])
-# FIXME: Replace `main' with a function in `-lpopulation':
+if test "x$GCC" = "xyes"
+then
+       CFLAGS="$CFLAGS -std=c99"
+fi
+
+AC_DEFINE([_ISOC99_SOURCE], [1], [Define to use C99])
+AC_DEFINE([_POSIX_C_SOURCE], [200809L], [Set to desired POSIX version])
+AC_DEFINE([_XOPEN_SOURCE], [700], [Set to desired X/Open version])
+
+# TODO: Write check for libpopulation
 #AC_CHECK_LIB([population], [main])
 
 # Checks for header files.
-AC_CHECK_HEADERS([fcntl.h inttypes.h limits.h stdint.h stdlib.h string.h strings.h unistd.h])
+AC_HEADER_STDC
+AC_CHECK_HEADERS([fcntl.h inttypes.h limits.h stdint.h])
 
 # Checks for typedefs, structures, and compiler characteristics.
-AC_TYPE_INT64_T
-AC_TYPE_SIZE_T
-AC_TYPE_UINT32_T
-AC_TYPE_UINT64_T
+#AC_TYPE_INT64_T
+#AC_TYPE_SIZE_T
+#AC_TYPE_UINT32_T
+#AC_TYPE_UINT64_T
 
 # Checks for library functions.
 AC_FUNC_MALLOC
 AC_FUNC_REALLOC
 AC_CHECK_FUNCS([memmove memset strcasecmp strchr strdup strtol])
 
+AC_ARG_VAR([LIBPOPULATION_CPPFLAGS], [C preprocessor flags required to build with libpopulation])
+AC_ARG_VAR([LIBPOPULATION_LDFLAGS],  [Linker flags required to build with libpopulation])
+AC_ARG_VAR([LIBPOPULATION_LIBS],     [Other libraries required to link against libpopulation])
+
+# --with-libpopulation {{{
+LIBPOPULATION_CPPFLAGS="$LIBPOPULATION_CPPFLAGS"
+LIBPOPULATION_LDFLAGS="$LIBPOPULATION_LDFLAGS"
+LIBPOPULATION_LIBS="$LIBPOPULATION_LIBS"
+AC_ARG_WITH(libpopulation, [AS_HELP_STRING([--with-libpopulation@<:@=PREFIX@:>@], [Path to libpopulation.])],
+[
+       if test "x$withval" = "xyes" || test "x$withval" = "xno"
+       then
+               with_libpopulation="$withval"
+       else
+               LIBPOPULATION_CPPFLAGS="$LIBPOPULATION_CPPFLAGS -I$withval/include"
+               LIBPOPULATION_LDFLAGS="$LIBPOPULATION_LDFLAGS -L$withval/lib"
+               with_libpopulation="yes"
+       fi
+],
+[
+       with_libpopulation="yes"
+])
+
+SAVE_CPPFLAGS="$CPPFLAGS"
+SAVE_LDFLAGS="$LDFLAGS"
+CPPFLAGS="$CPPFLAGS $LIBPOPULATION_CPPFLAGS"
+LDFLAGS="$LDFLAGS $LIBPOPULATION_LDFLAGS"
+
+if test "x$with_libpopulation" = "xyes"
+then
+       AC_CHECK_HEADERS(population.h,
+                        [with_libpopulation="yes"],
+                        [with_libpopulation="no"])
+fi
+
+if test "x$with_libpopulation" = "xyes"
+then    
+       if test "x$LIBPOPULATION_LIBS" = "x"
+       then
+               LIBPOPULATION_LIBS="-lpthread"
+       fi
+
+       AC_CHECK_LIB(population, population_create,
+                    [with_libpopulation="yes"],
+                    [with_libpopulation="no"],
+                    [$LIBPOPULATION_LIBS])
+       LIBPOPULATION_LIBS="-lpopulation $LIBPOPULATION_LIBS"
+fi      
+
+CPPFLAGS="$SAVE_CPPFLAGS"
+LDFLAGS="$SAVE_LDFLAGS"
+
+if test "x$with_libpopulation" = "xyes"
+then
+       AC_DEFINE(HAVE_LIBPOPULATION, 1, [Define to 1 if you have the population library (-lpopulation).])
+fi
+
+AC_SUBST(LIBPOPULATION_CPPFLAGS)
+AC_SUBST(LIBPOPULATION_LDFLAGS)
+AC_SUBST(LIBPOPULATION_LIBS)
+AM_CONDITIONAL(BUILD_WITH_LIBPOPULATION, test "x$with_libpopulation" = "xyes")
+# }}} --with-libpopulation
+
+PKG_CHECK_MODULES([glib], [glib-2.0],
+                 [have_libglib="yes"],
+                 [have_libglib="no"])
+
+if test "x$have_libglib" != "xyes"
+then
+       AC_MSG_ERROR([The GLib library could not be found. It is required when building libsortnetwork!])
+fi
+
 AC_CONFIG_FILES([Makefile src/Makefile])
 AC_OUTPUT
+
+# vim: set fdm=marker :