]>
Commit | Line | Data |
---|---|---|
50a80139 WP |
1 | # -*- Autoconf -*- |
2 | # Process this file with autoconf to produce a configure script. | |
c13578c3 | 3 | |
299e731b | 4 | AC_PREREQ([2.69]) |
9a92be2a | 5 | AC_INIT([libmowgli-2],[2.1.2],[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], | |
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; |
34 | PS_STRINGS->ps_argvstr = "foo";]])],[pgac_cv_var_PS_STRINGS=yes],[pgac_cv_var_PS_STRINGS=no])]) | |
b6bf18f6 EM |
35 | if 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).]) | |
37 | fi | |
0ba66d84 | 38 | |
c0e7ffde PM |
39 | AC_PATH_PROG(AR, ar) |
40 | AC_PATH_PROG(RANLIB, ranlib) | |
c13578c3 | 41 | |
63191f9a | 42 | LIBMOWGLI_MODULES="core base container dns eventloop ext linebuf module object platform thread vio" |
0ba66d84 | 43 | AC_SUBST(LIBMOWGLI_MODULES) |
c13578c3 | 44 | |
ecf686d3 PM |
45 | LIBMOWGLI_MODULE_BUILD="$(echo && echo x)" |
46 | LIBMOWGLI_MODULE_BUILD="${LIBMOWGLI_MODULE_BUILD%x}" | |
47 | ||
0ba66d84 PM |
48 | LIBMOWGLI_SHARED_MODULES="" |
49 | AC_ARG_ENABLE([shared], [AS_HELP_STRING([--disable-shared], [do not build shared library])]) | |
50 | AS_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 |
64 | LIBMOWGLI_STATIC_MODULES="" |
65 | AC_ARG_ENABLE([static], [AS_HELP_STRING([--enable-static], [build static library])]) | |
66 | AS_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 | 78 | AC_MSG_CHECKING(OS type) |
86a1c04a WP |
79 | case "$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 | 108 | esac |
0ba66d84 PM |
109 | AC_SUBST([LIBMOWGLI_OS]) |
110 | AC_SUBST([LIBMOWGLI_SHARED_MODULES]) | |
111 | AC_SUBST([LIBMOWGLI_STATIC_MODULES]) | |
ecf686d3 | 112 | AC_SUBST([LIBMOWGLI_MODULE_BUILD]) |
0ba66d84 PM |
113 | |
114 | OPENSSL="no" | |
115 | AX_CHECK_OPENSSL([ | |
116 | OPENSSL="yes" | |
117 | AC_DEFINE(HAVE_OPENSSL,[1], [Define to 1 if OpenSSL is available]) | |
118 | ]) | |
119 | AS_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 | 125 | EXAMPLES_BUILD="" |
78b6eca9 PM |
126 | EXAMPLES="no" |
127 | AC_ARG_ENABLE([examples], [AS_HELP_STRING([--enable-examples], [build examples])]) | |
128 | AS_IF([test x"$enable_examples" = x"yes"], [ | |
49feabd8 PM |
129 | EXAMPLES_BUILD="examples" |
130 | EXAMPLES="yes" | |
78b6eca9 | 131 | ]) |
c13578c3 | 132 | |
2cd8fd3c | 133 | AC_SUBST(EXAMPLES_BUILD) |
50a80139 | 134 | |
6f808c15 | 135 | BUILDSYS_INIT |
5c529b15 JS |
136 | BUILDSYS_TOUCH_DEPS |
137 | ||
a171e962 | 138 | AC_CONFIG_FILES([buildsys.mk extra.mk libmowgli-2.pc]) |
50a80139 | 139 | AC_OUTPUT |
c13578c3 | 140 | |
50a80139 | 141 | cat << _EOF_ |
c13578c3 | 142 | |
c13578c3 | 143 | Configuration: |
49feabd8 PM |
144 | OpenSSL support: ${OPENSSL} |
145 | Examples: ${EXAMPLES} | |
c13578c3 | 146 | |
50a80139 WP |
147 | Now type "make" to build, and "make install" to install. |
148 | Thank you for using libmowgli. | |
c13578c3 | 149 | |
50a80139 | 150 | _EOF_ |