| 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. |
| |
| 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. |
| |
| 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) |
| ^^^^^^^^ |