diff options
Diffstat (limited to 'configure.ac')
| -rw-r--r-- | configure.ac | 114 | 
1 files changed, 63 insertions, 51 deletions
| diff --git a/configure.ac b/configure.ac index 29aeadd..690def8 100644 --- a/configure.ac +++ b/configure.ac @@ -3,7 +3,6 @@ AC_INIT([[lem]], [[0.3]], [[esmil@mailme.dk]])  builtin_lua_version='5.3'  AC_LANG(C) -AC_CONFIG_HEADERS([libev/ev-config.h:ev-config.h.in])  AC_SUBST([headers], ['lem.h lem-parsers.h'])  AC_SUBST([objects], ['bin/lem.o']) @@ -12,6 +11,12 @@ AC_SUBST([SHARED], ['-shared'])  AS_IF([test "x$CFLAGS" = 'x'], CFLAGS='-O2 -g -Wall -Wextra') +AC_ARG_WITH([ev], +  [AS_HELP_STRING([--with-ev], +    [check or builtin @<:@default=check@:>@])], +  [], +  [with_ev=check]) +  AC_ARG_WITH([lua],    [AS_HELP_STRING([--with-lua],      [check, builtin or pkg-config name @<:@default=check@:>@])], @@ -50,10 +55,57 @@ AS_CASE(["x$target_os"],  # Check for pthread library  AC_SEARCH_LIBS([pthread_create], [pthread]) +# Checks for header files. +AC_CHECK_HEADERS([stddef.h stdlib.h string.h unistd.h sys/time.h time.h pthread.h]) +AC_CHECK_HEADERS([sys/eventfd.h sys/epoll.h sys/event.h]) +  # Configure libev -objects="bin/libev.o $objects" -headers="ev-config.h ev.h $headers" -CPPFLAGS_ADD="$CPPFLAGS_ADD -Ilibev" +AS_CASE(["x$with_ev"], +  [xbuiltin], +  [], +  [xcheck], +  [AC_SEARCH_LIBS([ev_run], [ev], [], [with_ev=builtin])], +  [AC_MSG_ERROR([--with-ev must be check or builtin, not '$with_ev'])]) + +AS_IF([test "x$with_ev" = 'xbuiltin'], +  [AC_CONFIG_HEADERS([libev/ev-config.h:ev-config.h.in])] +  [objects="bin/libev.o $objects"] +  [headers="ev-config.h ev.h $headers"] +  [CPPFLAGS_ADD="$CPPFLAGS_ADD -Ilibev"] + +  [AS_IF([test "x$ac_cv_header_sys_eventfd_h" = 'xyes'], +    [AC_CHECK_FUNC([eventfd], +      [AC_DEFINE([EV_USE_EVENTFD], 1)], +      [AC_DEFINE([EV_USE_EVENTFD], 0)])], +    [AC_DEFINE([EV_USE_EVENTFD], 0)])] + +  [AC_CHECK_FUNC([nanosleep], +    [AC_DEFINE([EV_USE_NANOSLEEP], 1)], +    [AC_DEFINE([EV_USE_NANOSLEEP], 0)])] + +  [AC_CHECK_FUNCS([poll select epoll_ctl kqueue])] + +  [AS_IF([test "x$ac_cv_func_epoll_ctl" = 'xyes'], +    [AC_DEFINE([EV_USE_SELECT], 0)] +    [AC_DEFINE([EV_USE_POLL],   0)] +    [AC_DEFINE([EV_USE_EPOLL],  1)] +    [AC_DEFINE([EV_USE_KQUEUE], 0)], +  [AS_IF([test "x$ac_cv_func_kqueue" = 'xyes'], +    [AC_DEFINE([EV_USE_SELECT], 0)] +    [AC_DEFINE([EV_USE_POLL],   0)] +    [AC_DEFINE([EV_USE_EPOLL],  0)] +    [AC_DEFINE([EV_USE_KQUEUE], 1)], +  [AS_IF([test "x$ac_cv_func_select" = 'xyes'], +    [AC_DEFINE([EV_USE_SELECT], 1)] +    [AC_DEFINE([EV_USE_POLL],   0)] +    [AC_DEFINE([EV_USE_EPOLL],  0)] +    [AC_DEFINE([EV_USE_KQUEUE], 0)], +  [AS_IF([test "x$ac_cv_func_poll" = 'xyes'], +    [AC_DEFINE([EV_USE_SELECT], 0)] +    [AC_DEFINE([EV_USE_POLL],   1)] +    [AC_DEFINE([EV_USE_EPOLL],  0)] +    [AC_DEFINE([EV_USE_KQUEUE], 0)], +  [AC_MSG_ERROR([neither poll or select found])])])])])])  # Configure Lua  AS_CASE(["x$with_lua"], @@ -61,14 +113,14 @@ AS_CASE(["x$with_lua"],    [],    [xcheck],    [PKG_CHECK_MODULES([Lua], [lua5.3], [with_lua=lua5.3], -  [PKG_CHECK_MODULES([Lua], [lua53],  [with_lua=lua53], -  [PKG_CHECK_MODULES([Lua], [lua], -    [AS_IF([test "x$($PKG_CONFIG --variable=V lua)" = 'x5.3'], -      [with_lua=lua], -      [with_lua=builtin])], -    [with_lua=builtin])])])], +    [PKG_CHECK_MODULES([Lua], [lua53],  [with_lua=lua53], +      [PKG_CHECK_MODULES([Lua], [lua], +        [AS_IF([test "x$($PKG_CONFIG --variable=V lua)" = 'x5.3'], +          [with_lua=lua], +          [with_lua=builtin])], +        [with_lua=builtin])])])],    [PKG_CHECK_MODULES([Lua], ["$with_lua"], [], -    [AC_MSG_ERROR(["pkg-config package '$with_lua' not found"])])]) +    [AC_MSG_ERROR([pkg-config package '$with_lua' not found])])])  AS_IF([test "x$with_lua" = 'xbuiltin'],    [AC_SEARCH_LIBS([sin], [m])] @@ -92,45 +144,5 @@ AS_IF([test "x$lmoddir" = 'x'],  AS_IF([test "x$cmoddir" = 'x'],    [AC_MSG_ERROR([unable to deduce Lua C module directory, please use --with-cmoddir=path])]) -# Checks for header files. -AC_CHECK_HEADERS([stddef.h stdlib.h string.h unistd.h sys/time.h time.h pthread.h]) -AC_CHECK_HEADERS([sys/eventfd.h sys/epoll.h sys/event.h]) - -AS_IF([test "x$ac_cv_header_sys_eventfd_h" = 'xyes'], -  [AC_CHECK_FUNC([eventfd], -    [AC_DEFINE([EV_USE_EVENTFD], 1)], -    [AC_DEFINE([EV_USE_EVENTFD], 0)])], -  [AC_DEFINE([EV_USE_EVENTFD], 0)]) - -AC_CHECK_FUNC([nanosleep], -  [AC_DEFINE([EV_USE_NANOSLEEP], 1)], -  [AC_DEFINE([EV_USE_NANOSLEEP], 0)]) - -AC_CHECK_FUNCS([poll select epoll_ctl kqueue]) - -AS_IF([test "x$ac_cv_func_epoll_ctl" = 'xyes'], [ -  AC_DEFINE([EV_USE_SELECT], 0) -  AC_DEFINE([EV_USE_POLL], 0) -  AC_DEFINE([EV_USE_EPOLL], 1) -  AC_DEFINE([EV_USE_KQUEUE], 0) -], [AS_IF([test "x$ac_cv_func_kqueue" = 'xyes'], [ -  AC_DEFINE([EV_USE_SELECT], 0) -  AC_DEFINE([EV_USE_POLL], 0) -  AC_DEFINE([EV_USE_EPOLL], 0) -  AC_DEFINE([EV_USE_KQUEUE], 1) -], [AS_IF([test "x$ac_cv_func_select" = 'xyes'], [ -  AC_DEFINE([EV_USE_SELECT], 1) -  AC_DEFINE([EV_USE_POLL], 0) -  AC_DEFINE([EV_USE_EPOLL], 0) -  AC_DEFINE([EV_USE_KQUEUE], 0) -], [AS_IF([test "x$ac_cv_func_poll" = 'xyes'], [ -  AC_DEFINE([EV_USE_SELECT], 0) -  AC_DEFINE([EV_USE_POLL], 1) -  AC_DEFINE([EV_USE_EPOLL], 0) -  AC_DEFINE([EV_USE_KQUEUE], 0) -], [ -  AC_MSG_ERROR([neither poll or select found]) -])])])]) -  AC_CONFIG_FILES([Makefile])  AC_OUTPUT | 
