2 # Process this file with autoconf to produce a configure script.
5 AC_INIT([libmowgli-2], [2.1.0], [https://github.com/atheme/libmowgli-2])
6 AC_CONFIG_SRCDIR([src])
7 AC_CONFIG_HEADER([src/libmowgli/platform/autoconf.h])
18 AS_IF([test "x$ac_cv_prog_cc_c99" = "xno"], [
19 AC_MSG_ERROR([C compiler does not support C99], 1)
22 MORECFLAGS="-pipe -Wall -Wextra -Wno-unused-value -Wno-unused-parameter -Wno-missing-field-initializers"
23 AS_IF([test "x$GCC" = "xyes"], [
24 CFLAGS="$CFLAGS $MORECFLAGS"
27 AC_CHECK_HEADERS([poll.h winsock2.h sys/epoll.h sys/select.h sys/pstat.h sys/prctl.h])
28 AC_CHECK_FUNCS([fcntl kqueue mmap select dispatch_block port_create setproctitle pstat])
30 AC_CACHE_CHECK([for PS_STRINGS], [pgac_cv_var_PS_STRINGS],
32 [#include <machine/vmparam.h>
35 [PS_STRINGS->ps_nargvstr = 1;
36 PS_STRINGS->ps_argvstr = "foo";],
37 [pgac_cv_var_PS_STRINGS=yes],
38 [pgac_cv_var_PS_STRINGS=no])])
39 if test "$pgac_cv_var_PS_STRINGS" = yes ; then
40 AC_DEFINE([HAVE_PS_STRINGS], [], [Define to 1 if the PS_STRINGS struct exists on your platform (likely no).])
44 AC_PATH_PROG(RANLIB, ranlib)
46 LIBMOWGLI_MODULES="core base container dns eventloop ext linebuf module object platform thread vio"
47 AC_SUBST(LIBMOWGLI_MODULES)
49 LIBMOWGLI_MODULE_BUILD="$(echo && echo x)"
50 LIBMOWGLI_MODULE_BUILD="${LIBMOWGLI_MODULE_BUILD%x}"
52 LIBMOWGLI_SHARED_MODULES=""
53 AC_ARG_ENABLE([shared], [AS_HELP_STRING([--disable-shared], [do not build shared library])])
54 AS_IF([test x"$enable_shared" != x"no"], [
57 AC_SUBST([LIBMOWGLI_SHARED_LIB], [${LIB_PREFIX}mowgli-2${LIB_SUFFIX}])
59 for i in $LIBMOWGLI_MODULES
61 UPPER="[$(echo $i | tr '[:lower:]' '[:upper:]')]"
62 LIBMOWGLI_SHARED_MODULES="$LIBMOWGLI_SHARED_MODULES $i/mowgli.$i.lib.a"
63 LIBMOWGLI_MODULE_BUILD="$LIBMOWGLI_MODULE_BUILD$(echo LIBMOWGLI_SHARED_$UPPER = mowgli.$i.lib.a && echo x)"
64 LIBMOWGLI_MODULE_BUILD="${LIBMOWGLI_MODULE_BUILD%x}"
68 LIBMOWGLI_STATIC_MODULES=""
69 AC_ARG_ENABLE([static], [AS_HELP_STRING([--enable-static], [build static library])])
70 AS_IF([test x"$enable_static" = x"yes" -o x"$enable_shared" = x"no"], [
71 AC_SUBST([LIBMOWGLI_STATIC_LIB], [libmowgli-2.a])
73 for i in $LIBMOWGLI_MODULES
75 UPPER="[$(echo $i | tr '[:lower:]' '[:upper:]')]"
76 LIBMOWGLI_STATIC_MODULES="$LIBMOWGLI_STATIC_MODULES $i/mowgli.$i.a"
77 LIBMOWGLI_MODULE_BUILD="$LIBMOWGLI_MODULE_BUILD$(echo LIBMOWGLI_STATIC_$UPPER = mowgli.$i.a && echo x)"
78 LIBMOWGLI_MODULE_BUILD="${LIBMOWGLI_MODULE_BUILD%x}"
82 AC_MSG_CHECKING(OS type)
85 AC_MSG_RESULT([win32])
88 LIBS="$LIBS -lwsock32 -lws2_32"
90 AS_IF([test x"$LIBMOWGLI_SHARED_MODULES" != x""], [
91 LIBMOWGLI_SHARED_MODULES="$LIBMOWGLI_SHARED_MODULES platform/win32/mowgli.platform.win32.lib.a"
92 LIBMOWGLI_MODULE_BUILD="$LIBMOWGLI_MODULE_BUILD$(echo LIBMOWGLI_SHARED_PLATFORM_WIN32 = mowgli.platform.win32.lib.a && echo x)"
93 LIBMOWGLI_MODULE_BUILD="${LIBMOWGLI_MODULE_BUILD%x}"
96 AS_IF([test x"$LIBMOWGLI_STATIC_MODULES" != x""], [
97 LIBMOWGLI_STATIC_MODULES="$LIBMOWGLI_STATIC_MODULES platform/win32/mowgli.platform.win32.a"
98 LIBMOWGLI_MODULE_BUILD="$LIBMOWGLI_MODULE_BUILD$(echo LIBMOWGLI_STATIC_PLATFORM_WIN32 = mowgli.platform.win32.a && echo x)"
99 LIBMOWGLI_MODULE_BUILD="${LIBMOWGLI_MODULE_BUILD%x}"
103 AC_MSG_RESULT([posix])
107 CPPFLAGS="$CFLAGS $PTHREAD_CFLAGS"
108 LIBS="$PTHREAD_LIBS $LIBS"
109 AC_CHECK_LIB(dl, dlopen, [LIBS="$LIBS -ldl"])
110 AC_CHECK_LIB(rt, clock_gettime, [LIBS="$LIBS -lrt"])
113 AC_SUBST([LIBMOWGLI_OS])
114 AC_SUBST([LIBMOWGLI_SHARED_MODULES])
115 AC_SUBST([LIBMOWGLI_STATIC_MODULES])
116 AC_SUBST([LIBMOWGLI_MODULE_BUILD])
121 AC_DEFINE(HAVE_OPENSSL,[1], [Define to 1 if OpenSSL is available])
123 AS_IF([test x"$OPENSSL" = x"yes"], [
124 LIBS="$LIBS $OPENSSL_LIBS"
125 LDFLAGS="$LDFLAGS $OPENSSL_LDFLAGS"
126 CPPFLAGS="$CPPFLAGS $OPENSSL_INCLUDES"
131 AC_ARG_ENABLE([examples], [AS_HELP_STRING([--enable-examples], [build examples])])
132 AS_IF([test x"$enable_examples" = x"yes"], [
133 EXAMPLES_BUILD="examples"
137 AC_SUBST(EXAMPLES_BUILD)
142 AC_CONFIG_FILES([buildsys.mk extra.mk libmowgli-2.pc])
148 OpenSSL support: ${OPENSSL}
149 Examples: ${EXAMPLES}
151 Now type "make" to build, and "make install" to install.
152 Thank you for using libmowgli.