blob: d369ef69c0b11e228d831b7db9aaf81854a47128 [file] [log] [blame]
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