]>
Commit | Line | Data |
---|---|---|
50a80139 WP |
1 | # -*- Autoconf -*- |
2 | # Process this file with autoconf to produce a configure script. | |
c13578c3 WP |
3 | |
4 | AC_PREREQ(2.59) | |
bd72d146 | 5 | AC_INIT([libmowgli-2], [2.1.0], [https://github.com/atheme/libmowgli-2]) |
24b7fd0e | 6 | AC_CONFIG_SRCDIR([src]) |
f7421c41 | 7 | AC_CONFIG_HEADER([src/libmowgli/platform/autoconf.h]) |
c13578c3 | 8 | |
3dd157fa | 9 | AC_CANONICAL_HOST |
ceff076b WP |
10 | AC_CANONICAL_TARGET |
11 | ||
c13578c3 | 12 | AC_PROG_CC |
c0e7ffde | 13 | AC_PROG_CPP |
2e4fb3b3 | 14 | AC_PROG_INSTALL |
c0e7ffde | 15 | AC_PROG_LN_S |
c13578c3 | 16 | |
0bec124b PM |
17 | AC_PROG_CC_C99 |
18 | AS_IF([test "x$ac_cv_prog_cc_c99" = "xno"], [ | |
19 | AC_MSG_ERROR([C compiler does not support C99], 1) | |
20 | ]) | |
21 | ||
bb6785ea | 22 | MORECFLAGS="-pipe -Wall -Wextra -Wno-unused-value -Wno-unused-parameter -Wno-missing-field-initializers" |
1fbbea30 PM |
23 | AS_IF([test "x$GCC" = "xyes"], [ |
24 | CFLAGS="$CFLAGS $MORECFLAGS" | |
25 | ]) | |
1bb55299 | 26 | |
dc4dc68e | 27 | AC_CHECK_HEADERS([poll.h winsock2.h sys/epoll.h sys/select.h sys/pstat.h sys/prctl.h]) |
b6bf18f6 EM |
28 | AC_CHECK_FUNCS([fcntl kqueue mmap select dispatch_block port_create setproctitle pstat]) |
29 | ||
30 | AC_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; | |
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).]) | |
41 | fi | |
0ba66d84 | 42 | |
c0e7ffde PM |
43 | AC_PATH_PROG(AR, ar) |
44 | AC_PATH_PROG(RANLIB, ranlib) | |
c13578c3 | 45 | |
63191f9a | 46 | LIBMOWGLI_MODULES="core base container dns eventloop ext linebuf module object platform thread vio" |
0ba66d84 | 47 | AC_SUBST(LIBMOWGLI_MODULES) |
c13578c3 | 48 | |
ecf686d3 PM |
49 | LIBMOWGLI_MODULE_BUILD="$(echo && echo x)" |
50 | LIBMOWGLI_MODULE_BUILD="${LIBMOWGLI_MODULE_BUILD%x}" | |
51 | ||
0ba66d84 PM |
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"], [ | |
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 |
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]) | |
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 | 82 | AC_MSG_CHECKING(OS type) |
86a1c04a WP |
83 | case "$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 | 112 | esac |
0ba66d84 PM |
113 | AC_SUBST([LIBMOWGLI_OS]) |
114 | AC_SUBST([LIBMOWGLI_SHARED_MODULES]) | |
115 | AC_SUBST([LIBMOWGLI_STATIC_MODULES]) | |
ecf686d3 | 116 | AC_SUBST([LIBMOWGLI_MODULE_BUILD]) |
0ba66d84 PM |
117 | |
118 | OPENSSL="no" | |
119 | AX_CHECK_OPENSSL([ | |
120 | OPENSSL="yes" | |
121 | AC_DEFINE(HAVE_OPENSSL,[1], [Define to 1 if OpenSSL is available]) | |
122 | ]) | |
123 | AS_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 | 129 | EXAMPLES_BUILD="" |
78b6eca9 PM |
130 | EXAMPLES="no" |
131 | AC_ARG_ENABLE([examples], [AS_HELP_STRING([--enable-examples], [build examples])]) | |
132 | AS_IF([test x"$enable_examples" = x"yes"], [ | |
49feabd8 PM |
133 | EXAMPLES_BUILD="examples" |
134 | EXAMPLES="yes" | |
78b6eca9 | 135 | ]) |
c13578c3 | 136 | |
2cd8fd3c | 137 | AC_SUBST(EXAMPLES_BUILD) |
50a80139 | 138 | |
6f808c15 | 139 | BUILDSYS_INIT |
5c529b15 JS |
140 | BUILDSYS_TOUCH_DEPS |
141 | ||
a171e962 | 142 | AC_CONFIG_FILES([buildsys.mk extra.mk libmowgli-2.pc]) |
50a80139 | 143 | AC_OUTPUT |
c13578c3 | 144 | |
50a80139 | 145 | cat << _EOF_ |
c13578c3 | 146 | |
c13578c3 | 147 | Configuration: |
49feabd8 PM |
148 | OpenSSL support: ${OPENSSL} |
149 | Examples: ${EXAMPLES} | |
c13578c3 | 150 | |
50a80139 WP |
151 | Now type "make" to build, and "make install" to install. |
152 | Thank you for using libmowgli. | |
c13578c3 | 153 | |
50a80139 | 154 | _EOF_ |