Compiling the Chafa package

Compiling the Chafa Package — How to compile Chafa itself

Building from the Git repository

When building from a clean Git repository, the build files must be prepared before anything else happens. The repository includes a shell script for this:


        ./autogen.sh
      

Afterwards the build can proceed like it would from a source package.

Building from a source package

Chafa uses a typical build system provided by autoconf, automake and libtool. You can build and install Chafa like this:


        ./configure
        make
        make install
      

The standard options provided by GNU autoconf may be passed to the configure script. Please see the autoconf documentation or run ./configure --help for information about the standard options.

Dependencies

Chafa depends on the GLib library. If you want to build the chafa command-line tool in addition to the libchafa library, you will also need the FreeType library and its development files. chafa has built-in support for the GIF, PNG, QOI and XWD formats, and can be built with optional support for many others, including AVIF, JPEG, SVG, TIFF and WebP. ./configure will summarize the build features.

Extra Configuration Options

In addition to the normal options, the configure script supports these additional arguments:

--disable-Bsymbolic and --enable-Bsymbolic By default, Chafa uses the -Bsymbolic-functions linker flag to avoid intra-library PLT jumps. A side-effect of this is that it is no longer possible to override internal uses of Chafa functions with LD_PRELOAD. Therefore, it may make sense to turn this feature off in some situations. The --disable-Bsymbolic option allows you to do that.

--disable-gtk-doc and --enable-gtk-doc By default the configure script will try to auto-detect whether the gtk-doc package is installed. If it is, then it will use it to extract and build the documentation for the Chafa library. These options can be used to explicitly control whether gtk-doc should be used or not. If it is not used, the distributed, pre-generated HTML files will be installed instead of building them on your machine.

--disable-man and --enable-man By default the configure script will try to auto-detect whether xsltproc and the necessary Docbook stylesheets are installed. If they are, then it will use them to rebuild the included man pages from the XML sources. These options can be used to explicitly control whether man pages should be rebuilt or not. The distribution includes pre-generated man pages.