|
Packit |
437b5e |
## configure.ac
|
|
Packit |
437b5e |
## Written by Gary V. Vaughan, 2012
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
## Copyright (c) 2012-2015 Gary V. Vaughan
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
## This file is part of luaposix.
|
|
Packit |
437b5e |
## See README for license.
|
|
Packit |
437b5e |
## ------------------------------------------------------------------------
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
AC_INIT([luaposix], [33.3.1], [http://github.com/luaposix/luaposix/issues])
|
|
Packit |
437b5e |
AC_CONFIG_AUX_DIR([build-aux])
|
|
Packit |
437b5e |
AC_CONFIG_MACRO_DIR([m4])
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
AS_BOX([Configuring AC_PACKAGE_TARNAME AC_PACKAGE_VERSION])
|
|
Packit |
437b5e |
echo
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
AM_INIT_AUTOMAKE([-Wall subdir-objects])
|
|
Packit |
437b5e |
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
## Check for programs
|
|
Packit |
437b5e |
AC_PROG_CC
|
|
Packit |
437b5e |
gl_EARLY
|
|
Packit |
437b5e |
AC_PROG_MKDIR_P
|
|
Packit |
437b5e |
AC_PROG_EGREP
|
|
Packit |
437b5e |
AC_PROG_SED
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
## ------------------------------------------------------------------------
|
|
Packit |
437b5e |
## Compiler flags for POSIX 2008 or better compliance.
|
|
Packit |
437b5e |
## ------------------------------------------------------------------------
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
AC_USE_SYSTEM_EXTENSIONS
|
|
Packit |
437b5e |
AC_CANONICAL_HOST
|
|
Packit |
437b5e |
case $host_os in
|
|
Packit |
437b5e |
*nto*|*qnx*)
|
|
Packit |
437b5e |
# QNX is only POSIX 2001, but _XOPEN_SOURCE turns off other
|
|
Packit |
437b5e |
# functions luaposix can bind.
|
|
Packit |
437b5e |
AC_SUBST([POSIX_EXTRA_CPPFLAGS], [-DLPOSIX_2001_COMPLIANT])
|
|
Packit |
437b5e |
;;
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
darwin*|openbsd*)
|
|
Packit |
437b5e |
# Setting _XOPEN_SOURCE here messes up header declarations, but
|
|
Packit |
437b5e |
# all functions luaposix can bind are available without it.
|
|
Packit |
437b5e |
AC_SUBST([POSIX_EXTRA_CPPFLAGS], [-DLPOSIX_2008_COMPLIANT])
|
|
Packit |
437b5e |
;;
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
*)
|
|
Packit |
437b5e |
# Enable POSIX 2008. Please send a $host_os match if your host
|
|
Packit |
437b5e |
# is not compliant.
|
|
Packit |
437b5e |
AC_SUBST([POSIX_EXTRA_CPPFLAGS], [-D_XOPEN_SOURCE=700])
|
|
Packit |
437b5e |
;;
|
|
Packit |
437b5e |
esac
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
AC_ARG_ENABLE([gcc-warnings],
|
|
Packit |
437b5e |
[AS_HELP_STRING([--enable-gcc-warnings],
|
|
Packit |
437b5e |
[turn on lots of GCC warnings (for developers)])],
|
|
Packit |
437b5e |
[case $enableval in
|
|
Packit |
437b5e |
yes|no) ;;
|
|
Packit |
437b5e |
*) AC_MSG_ERROR([bad value $enableval for gcc-warnings option]) ;;
|
|
Packit |
437b5e |
esac
|
|
Packit |
437b5e |
gl_gcc_warnings=$enableval],
|
|
Packit |
437b5e |
[gl_gcc_warnings=no]
|
|
Packit |
437b5e |
)
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
if test "$gl_gcc_warnings" = yes; then
|
|
Packit |
437b5e |
gl_WARN_ADD([-Werror], [WERROR_CFLAGS])
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
# Set up the list of undesired warnings.
|
|
Packit |
437b5e |
nw=
|
|
Packit |
437b5e |
nw="$nw -Wsystem-headers" # Don't let system headers trigger warnings
|
|
Packit |
437b5e |
nw="$nw -Wundef" # All compiler preprocessors support #if UNDEF
|
|
Packit |
437b5e |
nw="$nw -Wtraditional" # All compilers nowadays support ANSI C
|
|
Packit |
437b5e |
nw="$nw -Wstrict-overflow" # Use a lower level (see below).
|
|
Packit |
437b5e |
nw="$nw -Wconversion" # These warnings usually don't point to mistakes.
|
|
Packit |
437b5e |
nw="$nw -Wsign-conversion" # Likewise.
|
|
Packit |
437b5e |
nw="$nw -Waggregate-return" # We do this on purpose.
|
|
Packit |
437b5e |
nw="$nw -Wtraditional-conversion" # Don't care.
|
|
Packit |
437b5e |
nw="$nw -Wpadded" # Don't care.
|
|
Packit |
437b5e |
nw="$nw -Wc++-compat" # Don't care.
|
|
Packit |
437b5e |
nw="$nw -Woverlength-strings" # Don't care.
|
|
Packit |
437b5e |
nw="$nw -Wmissing-format-attribute" # Don't care.
|
|
Packit |
437b5e |
nw="$nw -Wunreachable-code" # Seems buggy.
|
|
Packit |
437b5e |
nw="$nw -Wunused-macros" # those macros might come in handy later
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
gl_MANYWARN_ALL_GCC([warnings])
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
# Enable all GCC warnings not in this list.
|
|
Packit |
437b5e |
gl_MANYWARN_COMPLEMENT([warnings], [$warnings], [$nw])
|
|
Packit |
437b5e |
for w in $warnings; do
|
|
Packit |
437b5e |
gl_WARN_ADD([$w])
|
|
Packit |
437b5e |
done
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
# Add an extra warning
|
|
Packit |
437b5e |
gl_WARN_ADD([-Wstrict-overflow=1])
|
|
Packit |
437b5e |
# Add some more safety measures
|
|
Packit |
437b5e |
gl_WARN_ADD([-D_FORTIFY_SOURCE=2])
|
|
Packit |
437b5e |
gl_WARN_ADD([-fmudflap])
|
|
Packit |
437b5e |
fi
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
## required by automake 1.12.x, not available in 1.10.x
|
|
Packit |
437b5e |
m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
LT_PREREQ([2.2.6])
|
|
Packit |
437b5e |
LT_INIT([disable-static])
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
module=yes eval shrext=$shrext_cmds
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
AC_SUBST([objdir])
|
|
Packit |
437b5e |
AC_SUBST([shrext])
|
|
Packit |
437b5e |
AC_SUBST(LIBTOOL_DEPS)
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
gl_INIT
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
## Check for header files
|
|
Packit |
437b5e |
AC_HEADER_STDC
|
|
Packit |
437b5e |
AC_CHECK_HEADERS([crypt.h strings.h sys/statvfs.h])
|
|
Packit |
437b5e |
AC_CHECK_HEADERS([net/if.h linux/netlink.h], [], [], [
|
|
Packit |
437b5e |
#include <sys/socket.h>
|
|
Packit |
437b5e |
])
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
## SysV messaging
|
|
Packit |
437b5e |
AC_CHECK_HEADERS([sys/msg.h])
|
|
Packit |
437b5e |
AC_CHECK_FUNCS([msgrcv msgsnd])
|
|
Packit |
437b5e |
case $ac_cv_header_sys_msg_h,$ac_cv_func_msgrcv,$ac_cv_func_msgsnd in
|
|
Packit |
437b5e |
yes,yes,yes)
|
|
Packit |
437b5e |
AC_DEFINE([HAVE_SYSV_MESSAGING], [1], [Define if your system has SysV message APIs])
|
|
Packit |
437b5e |
;;
|
|
Packit |
437b5e |
esac
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
AC_CHECK_DECLS_ONCE([fdatasync])
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
## Search libs
|
|
Packit |
437b5e |
save_LIBS=$LIBS
|
|
Packit |
437b5e |
LIBS=
|
|
Packit |
437b5e |
AC_SEARCH_LIBS([crypt], [crypt],
|
|
Packit |
437b5e |
[AC_DEFINE([HAVE_CRYPT], [1], [Define this if your system has a crypt() function])])
|
|
Packit |
437b5e |
AC_SUBST([LIBCRYPT], [$LIBS])
|
|
Packit |
437b5e |
LIBS=$save_LIBS
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
## Socket (required for qnx, at least)
|
|
Packit |
437b5e |
save_LIBS=$LIBS
|
|
Packit |
437b5e |
LIBS=
|
|
Packit |
437b5e |
AC_SEARCH_LIBS([socket], [socket], [])
|
|
Packit |
437b5e |
AC_SUBST([LIBSOCKET], [$LIBS])
|
|
Packit |
437b5e |
LIBS=$save_LIBS
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
# FIXME: Make -lrt conditional on _XOPEN_REALTIME
|
|
Packit |
437b5e |
save_LIBS=$LIBS
|
|
Packit |
437b5e |
LIBS=
|
|
Packit |
437b5e |
AC_CHECK_LIB([rt], [clock_gettime])
|
|
Packit |
437b5e |
AC_SUBST([LIBRT], [$LIBS])
|
|
Packit |
437b5e |
LIBS=$save_LIBS
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
## Curses
|
|
Packit |
437b5e |
AX_WITH_CURSES
|
|
Packit |
437b5e |
AC_ARG_VAR(CURSES_LIB, [linker flags for curses library])
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
save_LIBS=$LIBS
|
|
Packit |
437b5e |
LIBS="$CURSES_LIB $LIBS"
|
|
Packit |
437b5e |
AC_CHECK_FUNCS([resizeterm])
|
|
Packit |
437b5e |
LIBS=$save_LIBS
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
## Use system implementation, or bundled replacement?
|
|
Packit |
437b5e |
AC_CHECK_FUNCS([strlcpy])
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
## ------------------------------------------------------------------------
|
|
Packit |
437b5e |
## Don't add more AC_CHECK_FUNCS, unless for a mainstream platform for one
|
|
Packit |
437b5e |
## of the reasons below (to detect whether to enable an optional set of
|
|
Packit |
437b5e |
## POSIX APIs; to disable a deprecated or very new and not yet widely
|
|
Packit |
437b5e |
## supported API). This is a POSIX binding, and requires a reasonably
|
|
Packit |
437b5e |
## POSIX host to bind to - we definitely DON'T want to clutter up the code
|
|
Packit |
437b5e |
## and configury to support partially compliant hosts!
|
|
Packit |
437b5e |
## ------------------------------------------------------------------------
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
## Thread scheduling priority
|
|
Packit |
437b5e |
AC_CHECK_FUNCS([sched_getsheduler sched_setscheduler])
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
## Statvfs support
|
|
Packit |
437b5e |
AC_CHECK_FUNCS([statvfs])
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
## Deprecated or otherwise spottily supported POSIX functions
|
|
Packit |
437b5e |
AC_CHECK_FUNCS([gethostid posix_fadvise])
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
## Lua
|
|
Packit |
437b5e |
AX_PROG_LUA(5.1, 5.4)
|
|
Packit |
437b5e |
AX_LUA_HEADERS
|
|
Packit |
437b5e |
AC_PATH_PROG([SPECL], [specl], [:])
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
## Perl
|
|
Packit |
437b5e |
AC_PATH_PROG([PERL], [perl])
|
|
Packit |
437b5e |
if test -z "$PERL"; then
|
|
Packit |
437b5e |
AC_MSG_FAILURE([cannot find perl])
|
|
Packit |
437b5e |
fi
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
## ldoc
|
|
Packit |
437b5e |
AC_PATH_PROG([LDOC], [ldoc], [false])
|
|
Packit |
437b5e |
AM_CONDITIONAL([HAVE_LDOC], [test false != "$LDOC"])
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
## Generate output files
|
|
Packit |
437b5e |
AC_CONFIG_HEADER(config.h)
|
|
Packit |
437b5e |
AC_CONFIG_FILES([Makefile build-aux/config.ld lib/posix/init.lua:lib/posix.lua.in])
|
|
Packit |
437b5e |
AC_OUTPUT
|