dwww Home | Show directory contents | Find package

The common case

        ./autogen.sh && ./configure && make

          If something fails read the last lines. Typical reason to
          fail is a missing dependency, such as libtool or gettext.

        make install-strip

          Note that on the production systems it is strongly recommended to use
          "make install-strip" to install binaries and libraries. The result
          from the standard "make install" may produce large binaries with
          unnecessary symbols.

Autotools

        `./autogen.sh' generates all files needed to compile
        and install the code (run it after checkout from git)

        `make distclean' removes all unnecessary files, but the
        code can still be recompiled with "./configure; make"

        `make dist-gzip' (or -bzip2) creates a tarball that can
        be configured and compiled without running `./autogen.sh'

Compiling

        Use SUID_CFLAGS and SUID_LDFLAGS when you want to define
        special compiler options for typical suid programs, for
        example:

        ./configure SUID_CFLAGS="-fpie" SUID_LDFLAGS="-pie"

        The SUID_* feature is currently supported for chfn, chsh,
        newgrp, su, write, mount, and umount.

        Use DAEMON_CFLAGS and DAEMON_LDFLAGS when you want to define
        special compiler options for daemons; supported for uuidd.

        Use SOLIB_CFLAGS and SOLIB_LDFLAGS when you want to define
        special compiler options for shared libraries; supported for
        libmount, libblkid and libuuid.

        FIXME: add notes about klib and uClib.


Compile certain portion

        See ./configure --help and use --disable-* and --enable-* options.

        It's also possible to disable all the programs and enable only wanted.
        For example:

        ./configure --disable-all-programs --enable-fallocate

        Note that the configure script tracks dependencies between libs and
        tools. Always see warning messages and follow error messages if any
        dependence is necessary. For example to compile mount(8) you need also
        libmount, libblkid and libuuid:

        ./configure --disable-all-programs --enable-mount --enable-libmount \
                    --enable-libblkid --enable-libuuid


Static linking

        Use --enable-static-programs[=LIST] configure option when
        you want to use statically linked programs.

        Note, mount(8) uses get{pw,gr}nam() and getpwuid()
        functions for translation from username and groupname to
        UID and GID. These functions could be implemented by
        dynamically loaded independent modules (NSS) in your libc
        (e.g. glibc). These modules are not statically linked to
        mount(8) and mount.static is still using dlopen() like
        dynamically linked version.

        The translation won't work in environment where NSS
        modules are not installed.

        For example normal system (NSS modules are available):

                # ./mount.static -v -f -n -ouid=kzak /mnt/foo
                LABEL=/mnt/foo on /mnt/foo type vfat (rw,uid=500)
                                                         ^^^^^^^
        and without NSS modules:

                # chroot . ./mount.static -v -f -n -ouid=kzak /mnt/win
                LABEL=/mnt/win on /mnt/win type vfat (rw,uid=kzak)
                                                         ^^^^^^^^

Generated by dwww version 1.15 on Thu May 23 06:34:40 CEST 2024.