3ea3fc42ac4798d77d8ab6f19c91fb97570668dc
[platform/upstream/libxml++.git] / configure.ac
1 ## This file is part of libxml++.
2
3 AC_INIT([libxml++], [2.42.0],
4         [https://github.com/libxmlplusplus/libxmlplusplus/issues],
5         [libxml++], [https://libxmlplusplus.github.io/libxmlplusplus/])
6 AC_PREREQ([2.59])
7
8 AC_CONFIG_SRCDIR([libxml++/libxml++.h])
9 AC_CONFIG_AUX_DIR([build])
10 AC_CONFIG_MACRO_DIR([build])
11 AC_CONFIG_HEADERS([config.h libxml++config.h])
12
13 AM_INIT_AUTOMAKE([1.9 -Wno-portability dist-bzip2 no-define nostdinc subdir-objects])
14 # Support silent build rules.
15 # Disable by either passing --disable-silent-rules to configure or passing V=1 to make.
16 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
17 AM_MAINTAINER_MODE([disable])
18 AC_ARG_VAR([ACLOCAL_FLAGS], [aclocal flags, e.g. -I <macro dir>])
19
20 MM_PREREQ([0.9.10])
21 MM_INIT_MODULE([libxml++-2.6])
22
23 # Copy the mm-common .pl scripts into docs/,
24 # and use them from there,
25 # so we can dist them to avoid a tarball-build dependency.
26 MM_CONFIG_DOCTOOL_DIR([docs])
27
28 # http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
29 AC_SUBST([LIBXMLXX_SO_VERSION], [2:7:0])
30
31 AC_PROG_CXX
32 MM_AX_CXX_COMPILE_STDCXX([11], [noext],[mandatory])
33
34 LT_PREREQ([2.2.6])
35 LT_INIT([dlopen win32-dll disable-static])
36
37 AC_SUBST([LIBXMLXX_MODULES], ['libxml-2.0 >= 2.7.7 glibmm-2.4 >= 2.32.0'])
38 AC_SUBST([LIBXML2_LIB_NO_PKGCONFIG], [''])
39 AC_SUBST([MSVC_TOOLSET_VER], [''])
40 PKG_CHECK_MODULES([LIBXMLXX], [$LIBXMLXX_MODULES])
41
42 AC_LANG([C++])
43 AC_CHECK_HEADERS([string list map], [], [AC_MSG_ERROR([required headers not found])])
44 LIBXMLXX_CXX_HAS_EXCEPTION_PTR
45
46 MM_ARG_ENABLE_DOCUMENTATION
47 MM_ARG_WITH_TAGFILE_DOC([libstdc++.tag], [mm-common-libstdc++])
48 MM_ARG_WITH_TAGFILE_DOC([libsigc++-2.0.tag], [sigc++-2.0])
49 MM_ARG_WITH_TAGFILE_DOC([glibmm-2.4.tag], [glibmm-2.4])
50
51 # Evaluate the --enable-warnings=level option.
52 MM_ARG_ENABLE_WARNINGS([LIBXMLXX_WXXFLAGS],
53         [-Wall],
54         [-pedantic -Wall -Wextra -Wformat-security -Wshadow -Wno-long-long],
55         [G GLIBMM SIGCXX])
56
57 # Offer the ability to omit some API from the library.
58 MM_ARG_DISABLE_DEPRECATED_API([LIBXMLXX])
59
60 AC_PATH_PROG([XMLLINT], [xmllint], [xmllint])
61 AC_ARG_VAR([XMLLINT], [path to xmllint utility])
62 AC_PATH_PROGS([DB2LATEX], [db2latex docbook2latex], [db2latex])
63 AC_ARG_VAR([DB2LATEX], [path to db2latex utility])
64 MM_CHECK_PERL()
65
66 # This is just defined to avoid breaking old code:
67 AC_DEFINE([LIBXMLCPP_EXCEPTIONS_ENABLED],[1], [This is always set. This is only for backwards compatibility.])
68
69 AC_CONFIG_FILES([Makefile
70         libxml++/Makefile
71         examples/Makefile
72         tests/Makefile
73         docs/Makefile
74         docs/reference/Doxyfile
75         MSVC_NMake/libxml++/libxml++.rc
76         libxml++-2.6.pc])
77
78 # Copy the generated configuration headers into the MSVC project directories.
79 AC_CONFIG_COMMANDS([MSVC_NMake/libxml++/libxml++config.h],
80         [cp -f libxml++config.h MSVC_NMake/libxml++/libxml++config.h])
81
82 AC_OUTPUT