]> jfr.im git - irc/atheme/libmowgli-2.git/blame - configure.ac
m4/ax_check_openssl.m4: respect --with-openssl=yes in addition to =no
[irc/atheme/libmowgli-2.git] / configure.ac
CommitLineData
50a80139
WP
1# -*- Autoconf -*-
2# Process this file with autoconf to produce a configure script.
c13578c3 3
299e731b 4AC_PREREQ([2.69])
9a92be2a 5AC_INIT([libmowgli-2],[2.1.2],[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],
299e731b 31[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <machine/vmparam.h>
b6bf18f6 32#include <sys/exec.h>
299e731b
AJ
33]], [[PS_STRINGS->ps_nargvstr = 1;
34PS_STRINGS->ps_argvstr = "foo";]])],[pgac_cv_var_PS_STRINGS=yes],[pgac_cv_var_PS_STRINGS=no])])
b6bf18f6
EM
35if test "$pgac_cv_var_PS_STRINGS" = yes ; then
36 AC_DEFINE([HAVE_PS_STRINGS], [], [Define to 1 if the PS_STRINGS struct exists on your platform (likely no).])
37fi
0ba66d84 38
c0e7ffde
PM
39AC_PATH_PROG(AR, ar)
40AC_PATH_PROG(RANLIB, ranlib)
c13578c3 41
63191f9a 42LIBMOWGLI_MODULES="core base container dns eventloop ext linebuf module object platform thread vio"
0ba66d84 43AC_SUBST(LIBMOWGLI_MODULES)
c13578c3 44
ecf686d3
PM
45LIBMOWGLI_MODULE_BUILD="$(echo && echo x)"
46LIBMOWGLI_MODULE_BUILD="${LIBMOWGLI_MODULE_BUILD%x}"
47
0ba66d84
PM
48LIBMOWGLI_SHARED_MODULES=""
49AC_ARG_ENABLE([shared], [AS_HELP_STRING([--disable-shared], [do not build shared library])])
50AS_IF([test x"$enable_shared" != x"no"], [
51 BUILDSYS_SHARED_LIB
52 BUILDSYS_PROG_IMPLIB
53 AC_SUBST([LIBMOWGLI_SHARED_LIB], [${LIB_PREFIX}mowgli-2${LIB_SUFFIX}])
50a80139 54
0ba66d84
PM
55 for i in $LIBMOWGLI_MODULES
56 do
ecf686d3 57 UPPER="[$(echo $i | tr '[:lower:]' '[:upper:]')]"
0ba66d84 58 LIBMOWGLI_SHARED_MODULES="$LIBMOWGLI_SHARED_MODULES $i/mowgli.$i.lib.a"
ecf686d3
PM
59 LIBMOWGLI_MODULE_BUILD="$LIBMOWGLI_MODULE_BUILD$(echo LIBMOWGLI_SHARED_$UPPER = mowgli.$i.lib.a && echo x)"
60 LIBMOWGLI_MODULE_BUILD="${LIBMOWGLI_MODULE_BUILD%x}"
0ba66d84 61 done
c6d72140 62])
67d7be47 63
0ba66d84
PM
64LIBMOWGLI_STATIC_MODULES=""
65AC_ARG_ENABLE([static], [AS_HELP_STRING([--enable-static], [build static library])])
66AS_IF([test x"$enable_static" = x"yes" -o x"$enable_shared" = x"no"], [
67 AC_SUBST([LIBMOWGLI_STATIC_LIB], [libmowgli-2.a])
68
69 for i in $LIBMOWGLI_MODULES
70 do
ecf686d3 71 UPPER="[$(echo $i | tr '[:lower:]' '[:upper:]')]"
0ba66d84 72 LIBMOWGLI_STATIC_MODULES="$LIBMOWGLI_STATIC_MODULES $i/mowgli.$i.a"
ecf686d3
PM
73 LIBMOWGLI_MODULE_BUILD="$LIBMOWGLI_MODULE_BUILD$(echo LIBMOWGLI_STATIC_$UPPER = mowgli.$i.a && echo x)"
74 LIBMOWGLI_MODULE_BUILD="${LIBMOWGLI_MODULE_BUILD%x}"
0ba66d84
PM
75 done
76])
14ab52eb 77
0ba66d84 78AC_MSG_CHECKING(OS type)
86a1c04a
WP
79case "$target" in
80*-*-mingw32)
0ba66d84
PM
81 AC_MSG_RESULT([win32])
82 LIBMOWGLI_OS="win32"
83
49feabd8 84 LIBS="$LIBS -lwsock32 -lws2_32"
0ba66d84 85
00a86735 86 AS_IF([test x"$LIBMOWGLI_SHARED_MODULES" != x""], [
945ded18 87 LIBMOWGLI_SHARED_MODULES="$LIBMOWGLI_SHARED_MODULES platform/win32/mowgli.platform.win32.lib.a"
ecf686d3
PM
88 LIBMOWGLI_MODULE_BUILD="$LIBMOWGLI_MODULE_BUILD$(echo LIBMOWGLI_SHARED_PLATFORM_WIN32 = mowgli.platform.win32.lib.a && echo x)"
89 LIBMOWGLI_MODULE_BUILD="${LIBMOWGLI_MODULE_BUILD%x}"
0ba66d84
PM
90 ])
91
00a86735 92 AS_IF([test x"$LIBMOWGLI_STATIC_MODULES" != x""], [
945ded18 93 LIBMOWGLI_STATIC_MODULES="$LIBMOWGLI_STATIC_MODULES platform/win32/mowgli.platform.win32.a"
ecf686d3
PM
94 LIBMOWGLI_MODULE_BUILD="$LIBMOWGLI_MODULE_BUILD$(echo LIBMOWGLI_STATIC_PLATFORM_WIN32 = mowgli.platform.win32.a && echo x)"
95 LIBMOWGLI_MODULE_BUILD="${LIBMOWGLI_MODULE_BUILD%x}"
0ba66d84 96 ])
49feabd8 97 ;;
86a1c04a 98*)
0ba66d84
PM
99 AC_MSG_RESULT([posix])
100 LIBMOWGLI_OS="posix"
101
49feabd8 102 ACX_PTHREAD
0ba66d84
PM
103 CPPFLAGS="$CFLAGS $PTHREAD_CFLAGS"
104 LIBS="$PTHREAD_LIBS $LIBS"
105 AC_CHECK_LIB(dl, dlopen, [LIBS="$LIBS -ldl"])
cc1a9b86 106 AC_CHECK_LIB(rt, clock_gettime, [LIBS="$LIBS -lrt"])
49feabd8 107 ;;
86a1c04a 108esac
0ba66d84
PM
109AC_SUBST([LIBMOWGLI_OS])
110AC_SUBST([LIBMOWGLI_SHARED_MODULES])
111AC_SUBST([LIBMOWGLI_STATIC_MODULES])
ecf686d3 112AC_SUBST([LIBMOWGLI_MODULE_BUILD])
0ba66d84
PM
113
114OPENSSL="no"
115AX_CHECK_OPENSSL([
116 OPENSSL="yes"
117 AC_DEFINE(HAVE_OPENSSL,[1], [Define to 1 if OpenSSL is available])
118])
119AS_IF([test x"$OPENSSL" = x"yes"], [
120 LIBS="$LIBS $OPENSSL_LIBS"
121 LDFLAGS="$LDFLAGS $OPENSSL_LDFLAGS"
122 CPPFLAGS="$CPPFLAGS $OPENSSL_INCLUDES"
123])
86a1c04a 124
2cd8fd3c 125EXAMPLES_BUILD=""
78b6eca9
PM
126EXAMPLES="no"
127AC_ARG_ENABLE([examples], [AS_HELP_STRING([--enable-examples], [build examples])])
128AS_IF([test x"$enable_examples" = x"yes"], [
49feabd8
PM
129 EXAMPLES_BUILD="examples"
130 EXAMPLES="yes"
78b6eca9 131])
c13578c3 132
2cd8fd3c 133AC_SUBST(EXAMPLES_BUILD)
50a80139 134
6f808c15 135BUILDSYS_INIT
5c529b15
JS
136BUILDSYS_TOUCH_DEPS
137
a171e962 138AC_CONFIG_FILES([buildsys.mk extra.mk libmowgli-2.pc])
50a80139 139AC_OUTPUT
c13578c3 140
50a80139 141cat << _EOF_
c13578c3 142
c13578c3 143Configuration:
49feabd8
PM
144 OpenSSL support: ${OPENSSL}
145 Examples: ${EXAMPLES}
c13578c3 146
50a80139
WP
147Now type "make" to build, and "make install" to install.
148Thank you for using libmowgli.
c13578c3 149
50a80139 150_EOF_