]> jfr.im git - irc/atheme/libmowgli-2.git/blame - configure.ac
configure: update version to 2.1.0
[irc/atheme/libmowgli-2.git] / configure.ac
CommitLineData
50a80139
WP
1# -*- Autoconf -*-
2# Process this file with autoconf to produce a configure script.
c13578c3
WP
3
4AC_PREREQ(2.59)
bd72d146 5AC_INIT([libmowgli-2], [2.1.0], [https://github.com/atheme/libmowgli-2])
24b7fd0e 6AC_CONFIG_SRCDIR([src])
f7421c41 7AC_CONFIG_HEADER([src/libmowgli/platform/autoconf.h])
c13578c3 8
3dd157fa 9AC_CANONICAL_HOST
ceff076b
WP
10AC_CANONICAL_TARGET
11
c13578c3 12AC_PROG_CC
c0e7ffde 13AC_PROG_CPP
2e4fb3b3 14AC_PROG_INSTALL
c0e7ffde 15AC_PROG_LN_S
c13578c3 16
0bec124b
PM
17AC_PROG_CC_C99
18AS_IF([test "x$ac_cv_prog_cc_c99" = "xno"], [
19 AC_MSG_ERROR([C compiler does not support C99], 1)
20])
21
bb6785ea 22MORECFLAGS="-pipe -Wall -Wextra -Wno-unused-value -Wno-unused-parameter -Wno-missing-field-initializers"
1fbbea30
PM
23AS_IF([test "x$GCC" = "xyes"], [
24 CFLAGS="$CFLAGS $MORECFLAGS"
25])
1bb55299 26
dc4dc68e 27AC_CHECK_HEADERS([poll.h winsock2.h sys/epoll.h sys/select.h sys/pstat.h sys/prctl.h])
b6bf18f6
EM
28AC_CHECK_FUNCS([fcntl kqueue mmap select dispatch_block port_create setproctitle pstat])
29
30AC_CACHE_CHECK([for PS_STRINGS], [pgac_cv_var_PS_STRINGS],
31[AC_TRY_LINK(
32[#include <machine/vmparam.h>
33#include <sys/exec.h>
34],
35[PS_STRINGS->ps_nargvstr = 1;
36PS_STRINGS->ps_argvstr = "foo";],
37[pgac_cv_var_PS_STRINGS=yes],
38[pgac_cv_var_PS_STRINGS=no])])
39if 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).])
41fi
0ba66d84 42
c0e7ffde
PM
43AC_PATH_PROG(AR, ar)
44AC_PATH_PROG(RANLIB, ranlib)
c13578c3 45
63191f9a 46LIBMOWGLI_MODULES="core base container dns eventloop ext linebuf module object platform thread vio"
0ba66d84 47AC_SUBST(LIBMOWGLI_MODULES)
c13578c3 48
ecf686d3
PM
49LIBMOWGLI_MODULE_BUILD="$(echo && echo x)"
50LIBMOWGLI_MODULE_BUILD="${LIBMOWGLI_MODULE_BUILD%x}"
51
0ba66d84
PM
52LIBMOWGLI_SHARED_MODULES=""
53AC_ARG_ENABLE([shared], [AS_HELP_STRING([--disable-shared], [do not build shared library])])
54AS_IF([test x"$enable_shared" != x"no"], [
55 BUILDSYS_SHARED_LIB
56 BUILDSYS_PROG_IMPLIB
57 AC_SUBST([LIBMOWGLI_SHARED_LIB], [${LIB_PREFIX}mowgli-2${LIB_SUFFIX}])
50a80139 58
0ba66d84
PM
59 for i in $LIBMOWGLI_MODULES
60 do
ecf686d3 61 UPPER="[$(echo $i | tr '[:lower:]' '[:upper:]')]"
0ba66d84 62 LIBMOWGLI_SHARED_MODULES="$LIBMOWGLI_SHARED_MODULES $i/mowgli.$i.lib.a"
ecf686d3
PM
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}"
0ba66d84 65 done
c6d72140 66])
67d7be47 67
0ba66d84
PM
68LIBMOWGLI_STATIC_MODULES=""
69AC_ARG_ENABLE([static], [AS_HELP_STRING([--enable-static], [build static library])])
70AS_IF([test x"$enable_static" = x"yes" -o x"$enable_shared" = x"no"], [
71 AC_SUBST([LIBMOWGLI_STATIC_LIB], [libmowgli-2.a])
72
73 for i in $LIBMOWGLI_MODULES
74 do
ecf686d3 75 UPPER="[$(echo $i | tr '[:lower:]' '[:upper:]')]"
0ba66d84 76 LIBMOWGLI_STATIC_MODULES="$LIBMOWGLI_STATIC_MODULES $i/mowgli.$i.a"
ecf686d3
PM
77 LIBMOWGLI_MODULE_BUILD="$LIBMOWGLI_MODULE_BUILD$(echo LIBMOWGLI_STATIC_$UPPER = mowgli.$i.a && echo x)"
78 LIBMOWGLI_MODULE_BUILD="${LIBMOWGLI_MODULE_BUILD%x}"
0ba66d84
PM
79 done
80])
14ab52eb 81
0ba66d84 82AC_MSG_CHECKING(OS type)
86a1c04a
WP
83case "$target" in
84*-*-mingw32)
0ba66d84
PM
85 AC_MSG_RESULT([win32])
86 LIBMOWGLI_OS="win32"
87
49feabd8 88 LIBS="$LIBS -lwsock32 -lws2_32"
0ba66d84 89
00a86735 90 AS_IF([test x"$LIBMOWGLI_SHARED_MODULES" != x""], [
945ded18 91 LIBMOWGLI_SHARED_MODULES="$LIBMOWGLI_SHARED_MODULES platform/win32/mowgli.platform.win32.lib.a"
ecf686d3
PM
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}"
0ba66d84
PM
94 ])
95
00a86735 96 AS_IF([test x"$LIBMOWGLI_STATIC_MODULES" != x""], [
945ded18 97 LIBMOWGLI_STATIC_MODULES="$LIBMOWGLI_STATIC_MODULES platform/win32/mowgli.platform.win32.a"
ecf686d3
PM
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}"
0ba66d84 100 ])
49feabd8 101 ;;
86a1c04a 102*)
0ba66d84
PM
103 AC_MSG_RESULT([posix])
104 LIBMOWGLI_OS="posix"
105
49feabd8 106 ACX_PTHREAD
0ba66d84
PM
107 CPPFLAGS="$CFLAGS $PTHREAD_CFLAGS"
108 LIBS="$PTHREAD_LIBS $LIBS"
109 AC_CHECK_LIB(dl, dlopen, [LIBS="$LIBS -ldl"])
cc1a9b86 110 AC_CHECK_LIB(rt, clock_gettime, [LIBS="$LIBS -lrt"])
49feabd8 111 ;;
86a1c04a 112esac
0ba66d84
PM
113AC_SUBST([LIBMOWGLI_OS])
114AC_SUBST([LIBMOWGLI_SHARED_MODULES])
115AC_SUBST([LIBMOWGLI_STATIC_MODULES])
ecf686d3 116AC_SUBST([LIBMOWGLI_MODULE_BUILD])
0ba66d84
PM
117
118OPENSSL="no"
119AX_CHECK_OPENSSL([
120 OPENSSL="yes"
121 AC_DEFINE(HAVE_OPENSSL,[1], [Define to 1 if OpenSSL is available])
122])
123AS_IF([test x"$OPENSSL" = x"yes"], [
124 LIBS="$LIBS $OPENSSL_LIBS"
125 LDFLAGS="$LDFLAGS $OPENSSL_LDFLAGS"
126 CPPFLAGS="$CPPFLAGS $OPENSSL_INCLUDES"
127])
86a1c04a 128
2cd8fd3c 129EXAMPLES_BUILD=""
78b6eca9
PM
130EXAMPLES="no"
131AC_ARG_ENABLE([examples], [AS_HELP_STRING([--enable-examples], [build examples])])
132AS_IF([test x"$enable_examples" = x"yes"], [
49feabd8
PM
133 EXAMPLES_BUILD="examples"
134 EXAMPLES="yes"
78b6eca9 135])
c13578c3 136
2cd8fd3c 137AC_SUBST(EXAMPLES_BUILD)
50a80139 138
6f808c15 139BUILDSYS_INIT
5c529b15
JS
140BUILDSYS_TOUCH_DEPS
141
a171e962 142AC_CONFIG_FILES([buildsys.mk extra.mk libmowgli-2.pc])
50a80139 143AC_OUTPUT
c13578c3 144
50a80139 145cat << _EOF_
c13578c3 146
c13578c3 147Configuration:
49feabd8
PM
148 OpenSSL support: ${OPENSSL}
149 Examples: ${EXAMPLES}
c13578c3 150
50a80139
WP
151Now type "make" to build, and "make install" to install.
152Thank you for using libmowgli.
c13578c3 153
50a80139 154_EOF_