blob: 6181ba59273fd53fcaa2389fe18666aea31bcb6f [file] [log] [blame]
dnl Process this file with autoconf to produce a configure script.
AC_INIT(libconfig, 1.7.3, hyperrealm@gmail.com, libconfig,
[https://hyperrealm.github.io/libconfig/])
AC_CONFIG_AUX_DIR([aux-build])
AC_CONFIG_MACRO_DIR([m4])
AC_CANONICAL_TARGET
AM_INIT_AUTOMAKE
AC_CONFIG_HEADERS(ac_config.h)
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
AC_MSG_NOTICE([libconfig - made with pride in Colorado])
sleep 3
AC_DEFINE_UNQUOTED(TARGET, "${target}", [Configured target name.])
# Enable GNU extensions.
AC_GNU_SOURCE
LT_INIT()
dnl Checks for programs.
AC_PROG_CC
AM_PROG_CC_C_O
AC_PROG_CXX
AC_LIBTOOL_WIN32_DLL
AC_PROG_LIBTOOL
AM_PROG_LEX
if test Z"$LEX" != Zflex; then
cat <<EOF
*******************************************************************
You do not seem to have flex. While flex is not required to build
libconfig, you may need it to regenerate the lexer if you change
the scanner.l file.
*******************************************************************
EOF
fi
AC_PROG_YACC
if test Z"$YACC" != "Zbison -y"; then
cat <<EOF
*******************************************************************
You do not seem to have bison. While bison is not required to build
libconfig, you may need it to regenerate the parser if you change
the grammar.y file.
*******************************************************************
EOF
fi
AC_MSG_CHECKING([for compiler switch to enable full C/C++ warnings]);
dnl Checks for libraries
dnl Enable warnings, if we can determine an appropriate switch...
case "${CC}" in
gcc)
warn_c_sw="-Wall -Wshadow -Wextra -Wdeclaration-after-statement -Wno-unused-parameter"
warn_cxx_sw="-Wall -Wshadow -Wextra -Wno-unused-parameter";;
*)
warn_cxx_sw=""
warn_c_sw="";;
esac
if test -n "${warn_c_sw}";
then
CFLAGS="${CFLAGS} ${warn_c_sw}";
CXXFLAGS="${CXXFLAGS} ${warn_cxx_sw}";
AC_MSG_RESULT([${warn_c_sw}, ${warn_cxx_sw}])
else
AC_MSG_RESULT([(cannot determine)])
fi;
dnl Checks for header files.
AC_HEADER_STDC
AC_CHECK_HEADERS(unistd.h stdint.h xlocale.h)
dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
dnl Checks for functions
AC_CHECK_FUNCS([newlocale uselocale freelocale])
dnl Package options
docxx=yes
AC_ARG_ENABLE(cxx,
AS_HELP_STRING([--disable-cxx], [Disable building of the C++ library]),
[if test "$enableval" = "no"; then docxx="no"; fi],
[
docxx=yes
]
)
AM_CONDITIONAL(BUILDCXX, test x$docxx = xyes)
dodoc=yes
AC_ARG_ENABLE(doc,
AS_HELP_STRING([--disable-doc], [Disable building of the documentation]),
[if test "$enableval" = "no"; then dodoc="no"; fi],
[
dodoc=yes
]
)
AM_CONDITIONAL(BUILDDOC, test x$dodoc = xyes)
doexamples=yes
AC_ARG_ENABLE(examples,
AS_HELP_STRING([--disable-examples], [Disable building of the example programs]),
[if test "$enableval" = "no"; then doexamples="no"; fi],
[
doexamples=yes
]
)
AM_CONDITIONAL(BUILDEXAMPLES, test x$doexamples = xyes)
dotests=yes
AC_ARG_ENABLE(tests,
AS_HELP_STRING([--disable-tests], [Disable building of the tests]),
[if test "$enableval" = "no"; then dotests="no"; fi],
[
dotests=yes
]
)
AM_CONDITIONAL(BUILDTESTS, test x$dotests = xyes)
dnl Check for MinGW. Workaround for libtool's DLL_EXPORT stupidity.
case "$target" in
*-*-cygwin* | *-*-mingw*)
gnuwin=yes;;
esac
AM_CONDITIONAL(GNU_WIN, test x$gnuwin = xyes)
dnl Checks for library functions.
AC_OUTPUT(
Makefile
lib/Makefile
lib/libconfig.pc
lib/libconfig++.pc
lib/libconfigConfig.cmake
lib/libconfig++Config.cmake
doc/Makefile
examples/Makefile
examples/c/Makefile
examples/c++/Makefile
tinytest/Makefile
tests/Makefile
libconfig.spec
)