aboutsummaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac163
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
+ )