diff options
author | Stefano Lattarini <stefano.lattarini@gmail.com> | 2012-09-01 01:46:39 +0200 |
---|---|---|
committer | Jim Meyering <meyering@redhat.com> | 2012-09-01 21:25:13 +0200 |
commit | 4f2e62ba9fd482375fdc085de71a5c947741d140 (patch) | |
tree | d2af441afdd32f8f1167dab183ace72bbaeec2d6 /src | |
parent | 1aaa8af9296c5bc7a05047f0114c9be7b3fdfea5 (diff) | |
download | coreutils-4f2e62ba9fd482375fdc085de71a5c947741d140.tar.xz |
build: refactor how lists of coreutils programs are defined
This is in preparation of future changes. Still, this patch
leaves the build system in a better shape; true, with more
indirections, but also with less convoluted and brittle hacks.
Unfortunately, this commit also makes some rebuild rules
incomplete; that will son be fixed by follow-up patches.
* build-aux/gen-lists-of-programs.sh: New, generates autoconf
and automake input fragments that define "lists" of all coreutils
programs, with further distinctions about how and when these
programs should be built (by default; if the system is capable
enough; only if the user asks for them explicitly). This is
useful to avoid duplicating the definitions of these lists among
several files (at least 'configure.ac' 'src/Makefile.am'); such
duplication had proved a source of inconsistencies and bugs in
the past. And the pre-existing way to avoid such duplication,
as implemented in 'configure.ac' before this patch, was overly
complex and brittle.
* Makefile.am (EXTRA_DIST): Distribute the new script.
* bootstrap.conf (bootstrap_post_import_hook): Run the new script
to generate 'm4/cu-progs.m4' and 'src/cu-progs.mk'.
* .gitignore: Ignore those files.
* configure.ac: Include 'm4/cu-progs.m4', and decidedly simplify
most of the program lists definition and processing accordingly.
* src/Makefile.am: Similarly include 'src/cu-progs.mk', containing
definition of variables $(default__progs), $(no_install__progs)
and $(build_if_possible__progs). Accordingly ...
(no_install__progs, build_if_possible__progs): ... remove.
(EXTRA_DIST): Adjust definition.
Adjust a comment.
Diffstat (limited to 'src')
-rw-r--r-- | src/Makefile.am | 125 |
1 files changed, 10 insertions, 115 deletions
diff --git a/src/Makefile.am b/src/Makefile.am index 9be3acfbc..3b0ef6593 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -15,124 +15,18 @@ ## You should have received a copy of the GNU General Public License ## along with this program. If not, see <http://www.gnu.org/licenses/>. -# These are the names of programs that are not installed by default. -# This list is *not* intended for programs like who, nice, chroot, etc., -# that are built only when certain requisite system features are detected. -# Hence, if you want to install programs from this list anyway, say A and B, -# use --enable-install-program=A,B -no_install__progs = \ - arch hostname - -build_if_possible__progs = \ - chroot \ - df \ - hostid \ - libstdbuf.so \ - nice \ - pinky \ - stdbuf \ - stty \ - uptime \ - users \ - who - AM_CFLAGS = $(WARN_CFLAGS) $(WERROR_CFLAGS) +# The list of all programs (separated in different variables to express +# the how and when they should be installed) is defined in this makefile +# fragment, autogenerated by the 'gen-lists-of-programs.sh' auxiliary +# script. +include $(srcdir)/cu-progs.mk + EXTRA_PROGRAMS = \ $(no_install__progs) \ $(build_if_possible__progs) \ - [ \ - base64 \ - basename \ - cat \ - chcon \ - chgrp \ - chmod \ - chown \ - cksum \ - comm \ - cp \ - csplit \ - cut \ - date \ - dd \ - dir \ - dircolors \ - dirname \ - du \ - echo \ - env \ - expand \ - expr \ - factor \ - false \ - fmt \ - fold \ - ginstall \ - groups \ - head \ - id \ - join \ - kill \ - link \ - ln \ - logname \ - ls \ - md5sum \ - mkdir \ - mkfifo \ - mknod \ - mktemp \ - mv \ - nl \ - nproc \ - nohup \ - od \ - paste \ - pathchk \ - pr \ - printenv \ - printf \ - ptx \ - pwd \ - readlink \ - realpath \ - rm \ - rmdir \ - runcon \ - seq \ - sha1sum \ - sha224sum \ - sha256sum \ - sha384sum \ - sha512sum \ - shred \ - shuf \ - sleep \ - sort \ - split \ - stat \ - sum \ - sync \ - tac \ - tail \ - tee \ - test \ - timeout \ - touch \ - tr \ - true \ - truncate \ - tsort \ - tty \ - uname \ - unexpand \ - uniq \ - unlink \ - vdir \ - wc \ - whoami \ - yes + $(default__progs) bin_PROGRAMS = $(OPTIONAL_BIN_PROGS) @@ -620,8 +514,9 @@ check-README: $(AM_V_at)diff $(pm) $(pr) && rm -rf $(pr) $(pm) # Ensure that a by-default-not-installed program (listed in -# $(no_install__progs) is not also listed in $(EXTRA_PROGRAMS), because -# if that were to happen, it *would* be installed by default. +# $(no_install__progs) is not also listed as another $(EXTRA_PROGRAMS) +# entry, because if that were to happen, it *would* be installed +# by default. .PHONY: check-duplicate-no-install check-duplicate-no-install: tr $(AM_V_GEN)test -z "`echo '$(EXTRA_PROGRAMS)'| ./tr ' ' '\n' | uniq -d`" |