util-linux build system ======================= - the build system is non-recursive, individual subdirectories use Makemodule.am files. These files are merged together by automake into one global Makefile in the top-level directory - all final build results (binaries, libtool scripts) are stored in top-level source directory - all Makemodule.am files have to be designed as top-level makefiles, it means with full paths (e.g. foo_SOURCES = subdir/foo.c) - always use '+=' operator for global variables (e.g. bin_PROGRAMS += foo) - use libcommon.la (without path!) for lib/ stuff (e.g. foo_LDADD = libcommon.la) - for libblkid, libuuid and libmount use lib<name>.la in _LDADD and -I$(ul_lib<name>_incdir) in _CFLAGS, for example foo_LDADD = libmount.la foo_CFLAGS = -I$(ul_libmount_incdir) - always use suffixes for hooks, for example install-exec-hook-foo: ln -sf foo foooo INSTALL_EXEC_HOOKS += install-exec-hook-foo - all util-linux specific autoconf macros use UL_ prefix - utils in Makefile.am files are enabled/disabled according to BUILD_<NAME> conditions (AM_CONDITIONAL), for example: if BUILD_HWCLOCK ... endif - "if BUILD_<NAME>" blocks are never nested within another "if BUILD_<NAME>", all dependencies have to be resolved in configure.ac (see UL_REQUIRES_BUILD()) - all BUILD_<NAME> in configure.am are always based on build_<name> variables, for example: AM_CONDITIONAL([BUILD_HWCLOCK], test "x$build_hwclock" = xyes) the $build_<name> should be available in whole configure script - AC_ARG_ENABLE() status is always stored in $enable_<name> variable, possible setting: "check" - util/feature is optional, if any subcomponent (function, lib, ...) is missing a warning is printed and the util/feature is disabled "yes" - util/feature is required, if any subcomponent (function, lib, ...) is missing an error is printed and ./configure aborted "no" - the util/feature is unwanted The default status is always defined by UL_DEFAULT_ENABLE() and it might be globally modified by $ul_default_estate (see AC_ARG_ENABLE([all-programs])). - it's possible to disable all programs, but enable just one (or more) explicitly specified, for example: ./configure --disable-all-programs --enable-hwclock - some basic scenarios for the ./configure script are defined in the tools/config-gen.d/ directory. If you want to use these predefined scenarios then call ./tools/config-gen [<scenario> ...] for example ./tools/config-gen all selinux will build all utils with enabled selinux support. You can also define some CFLAGS, for example: CFLAGS=$(rpm --eval '%optflags') ./tools/config-gen all will use the default distro flags. WARNING: config-gen is not designed for end-user or downstream distributions! It's for development purpose only. All end-users and downstream have to use standard ./configure script only. - the tools/config-gen script is also used for build system regression tests, the test is not enabled by default, you have to use tests/run.sh build-sys --force
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
examples | Folder | 0755 |
|
|
releases | Folder | 0755 |
|
|
00-about-docs.txt | File | 260 B | 0644 |
|
AUTHORS.gz | File | 11.1 KB | 0644 |
|
NEWS.Debian.gz | File | 1.11 KB | 0644 |
|
PAM-configuration.txt | File | 671 B | 0644 |
|
blkid.txt | File | 3.18 KB | 0644 |
|
cal.txt | File | 2.21 KB | 0644 |
|
changelog.Debian.gz | File | 1.88 KB | 0644 |
|
col.txt | File | 1.87 KB | 0644 |
|
copyright | File | 17.55 KB | 0644 |
|
deprecated.txt | File | 2.66 KB | 0644 |
|
getopt.txt | File | 992 B | 0644 |
|
getopt_changelog.txt | File | 1.88 KB | 0644 |
|
howto-build-sys.txt | File | 3.12 KB | 0644 |
|
howto-compilation.txt | File | 1.98 KB | 0644 |
|
howto-contribute.txt.gz | File | 3.06 KB | 0644 |
|
howto-debug.txt | File | 2.38 KB | 0644 |
|
howto-man-page.txt.gz | File | 2.25 KB | 0644 |
|
howto-pull-request.txt.gz | File | 4.16 KB | 0644 |
|
howto-tests.txt | File | 3.62 KB | 0644 |
|
howto-usage-function.txt.gz | File | 2.27 KB | 0644 |
|
hwclock.txt | File | 148 B | 0644 |
|
modems-with-agetty.txt | File | 2.56 KB | 0644 |
|
mount.txt | File | 522 B | 0644 |
|
parse-date.txt.gz | File | 7.93 KB | 0644 |
|
pg.txt | File | 448 B | 0644 |
|
poeigl.txt.gz | File | 8.68 KB | 0644 |
|
release-schedule.txt | File | 1.32 KB | 0644 |
|