summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorStefano Lattarini <stefano.lattarini@gmail.com>2012-09-01 01:46:39 +0200
committerJim Meyering <meyering@redhat.com>2012-09-01 21:25:13 +0200
commit4f2e62ba9fd482375fdc085de71a5c947741d140 (patch)
treed2af441afdd32f8f1167dab183ace72bbaeec2d6 /src
parent1aaa8af9296c5bc7a05047f0114c9be7b3fdfea5 (diff)
downloadcoreutils-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.am125
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`"