See also the generic INSTALL file for configure options

Compilation

  1. What is the process to compile libxml?

     As most UNIX libraries libxml follows the "standard":

         gunzip -c xxx.tar.gz | tar xvf -
         cd libxml-xxxx

         ./configure --help

     to see the options, then the compilation/installation proper

         ./configure [possible options]
         make
         make install

     At that point you may have to rerun ldconfig or similar utility to
     update your list of installed shared libs.

     At this point you can check that the library is properly functioning
     by running

         make check

     Please report test failures to the mailing list or bug tracker.

     Another option for compiling libxml is using CMake:

         cmake -E tar xf libxml2-xxx.tar.gz
         cmake -S libxml2-xxx -B libxml2-xxx-build [possible options]
         cmake --build libxml2-xxx-build
         cmake --install libxml2-xxx-build

     Common CMake options include:

         -D BUILD_SHARED_LIBS=OFF            # build static libraries
         -D CMAKE_BUILD_TYPE=Release         # specify build type
         -D CMAKE_INSTALL_PREFIX=/usr/local  # specify the install path
         -D LIBXML2_WITH_ICONV=OFF           # disable iconv
         -D LIBXML2_WITH_LZMA=OFF            # disable liblzma
         -D LIBXML2_WITH_PYTHON=OFF          # disable Python
         -D LIBXML2_WITH_ZLIB=OFF            # disable libz

     You can also open the libxml source directory with its CMakeLists.txt
     directly in various IDEs such as CLion, QtCreator, or Visual Studio.

  2. What other libraries are needed to compile/install libxml?

     Libxml does not require any other libraries. A platform with somewhat
     recent POSIX support should be sufficient (please report any violation
     to this rule you may find).

     However if found at configuration time, libxml will detect and use
     the following libs:

         libz: a highly portable and widely available compression library
             https://zlib.net/
         liblzma: another compression library
             https://tukaani.org/xz/
         iconv: a powerful character encoding conversion library. It's
             part of POSIX.1-2001, so it doesn't need to be installed
             on modern UNIX-like systems, specifically on Linux.
             https://www.gnu.org/software/libiconv/
         ICU: Mainly used by Chromium on Windows. Unnecessary on most
             systems.

Daniel
veillard@redhat.com
