diff options
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 163 |
1 files changed, 163 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..6181ba5 --- /dev/null +++ b/configure.ac @@ -0,0 +1,163 @@ +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 + ) |