| 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 |
| ) |