summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-09-05maint: remove anachronistic syntax-checkStefano Lattarini
* cfg.mk (sc_no_exec_perl_coreutils): This. Our new testsuite layout (perl tests having '.pl' suffix, shell tests having '.sh' suffix) makes it basically impossible to run into the issue this check guarded against.
2012-09-05maint: remove duplicated declaration of the 'sc_check-AUTHORS' targetStefano Lattarini
* cfg.mk: Here.
2012-09-05tests: remove the unused 'root-hint' targetStefano Lattarini
* tests/Makefile.am (root-hint): Here. The interested user can see the reasons why some tests are skipped by looking at the messages they display on the console; here's an excerpt: ... PASS: misc/id-groups.sh id-setgid.sh: skipped test: must be run as root SKIP: misc/id-setgid.sh PASS: misc/md5sum.pl ... PASS: df/total-verify.sh 2g.sh: skipped test: very expensive: disabled by default SKIP: du/2g.sh ... Clear enough, and more specific and precise that a generic "some tests might need to be run as root" message. And if that user is interested in making those tests run anyway, he'll just take a look to the README files to look for info. So there's no reason to pollute the stdout with another "hint" that is subsumed by those messages, and that might go unnoticed anyway. Moreover, and possibly more importantly, that hint wasn't being displayed anyway, even before this change! That's because the 'root-hint' target was listed as prerequisite for the 'check-recursive' target, which however was not a dependency of the 'check' target in 'tests/Makefile.am', because that file contains no $(SUBDIRS) definition.
2012-09-05tests: use suffix, not exec-bit, to tell which files are testsStefano Lattarini
* tests/Makefile.am (vc_exe_in_TESTS): Adjust to look, in the 'tests/' subdirectory, for files that have one of the extensions listed in $(TEST_EXTENSIONS), rather than for executable files.
2012-09-05maint: make vc_exe_in_TESTS also work in VPATH buildsStefano Lattarini
* tests/Makefile.am (vc_exe_in_TESTS): It is easy to adjust this recipe to also work in VPATH setups, also thanks to modifications done by previous changes.
2012-09-05maint: remove useless dependency for vc_exe_in_TESTSStefano Lattarini
* tests/Makefile.am (vc_exe_in_TESTS): No need to depend on Makefile: this target is .PHONY, so it is always run anyway.
2012-09-05maint: avoid parsing of Makefile.am from vc_exe_in_TESTSStefano Lattarini
* tests/Makefile.am (TESTS): Rename ... (all_tests): ... like this, so that we'll still be able to know the complete list of our tests even if the user overrides TESTS from the command line (which he's allowed to do by the test harness API). (root_tests): Rename ... (all_root_tests): ... like this, for similar reasons. (TESTS, root_tests): Redefine their defaults to to $(all_tests) and $(all_root_tests) respectively. (vc_exe_in_TESTS): It can now safely use $(all_tests) to get the complete list of test cases according to the Makefile, instead of having to resort to "parsing" of Makefile.am. (EXTRA_DIST): Use $(all_tests), not $(TESTS). (v_, w_): Delete, no longer needed.
2012-09-05build: use 'check-local' to extend the 'check' targetStefano Lattarini
* tests/Makefile.am (check-local): Here, by making this depend on 'vc_exe_in_TESTS' ... (check): ... rather than making this depend on them. While the old usage worked, it relied on an implementation detail rather than on documented behavior. * src/local.mk (check-local): Similarly, make this depend on 'check-README' and 'check-duplicate-no-install' ... (check): ... rather than on this.
2012-09-02scripts: autotools-install: allow user-specified make programStefano Lattarini
* scripts/autotools-install: Honor $MAKE. This might be useful on systems where the make implementation available in $PATH by default is limited (Solaris) or broken (HP-UX).
2012-09-02scripts: autotools-install: style and portability fixesStefano Lattarini
* scripts/autotools-install: Here.
2012-09-02touch: line up long option in --help textBenno Schulenberg
* src/touch.c (usage): Indent --time=... to line up with all of the other long options.
2012-09-02maint: disable sc_proper_name_utf8_requires_ICONV testJim Meyering
It would still pass, but would print many diagnostics like this: Can't open src/Makefile.am: No such file or directory. * cfg.mk (local-checks-to-skip): Temporarily disable a test. This test will need to be adapted to work with a non-recursive build set-up, in which there is no Makefile.am alongside each program. Reported by Bernhard Voelker.
2012-09-02maint: accommodate upcoming, expanded list of warnings from gnulibJim Meyering
* configure.ac: Disable a new gcc warning, -Wsuggest-attribute=format, since it triggers on copy.c (which I'm not inclined to adjust) and factor.c's use of vfprintf which would appear to require a change to stdio.h.
2012-09-01maint: fix build_programs definition not to use "make -C src ..."Stefano Lattarini
* dist-check.mk (built_programs): There's no need to issue recursive make calls in 'src/' to define this (in fact, that works no longer now that 'src/Makefile.am' is gone). Simply define this to the sorted contents of $(bin_PROGRAMS), with the 'src/' prefix and the $(EXEEXT) suffix (if any) removed. Reported by Jim Meyering.
2012-09-01build: restore handling of space-tainted build directory nameJim Meyering
* man/local.mk: With commit v8.19-84-g08cf455, man page creation would fail when using a build directory name containing e.g., spaces.
2012-09-01build: make each man/prog.1 depend on src/prog, not src/prog.cJim Meyering
* man/local.mk: Creating a prog.1 man page requires running src/prog --help. List the exceptions, e.g., install.1 depends on src/ginstall and arch.1 depends on src/uname.
2012-09-01maint: check-programs-vs-x: avoid a new syntax-check failureJim Meyering
* cfg.mk (check-programs-vs-x): The new variable, $(all-progs-but-lbracket) contains libstdbuf.so, and it does not have a corresponding .x file, so exempt it.
2012-09-01maint: avoid distcheck failure by properly cleaning $(ALL_MANS)Jim Meyering
* man/local.mk (distclean-local): Remove $(ALL_MANS) when doing a VPATH build. If it's not done, generated manpages can be left around in the build directory after a "make distclean", causing failures in "make distcheck".
2012-09-01maint: port manpages generation to VPATH buildsStefano Lattarini
* man/local.mk (.x.1): Use '$(MKDIR_P)' rather than bare 'mkdir' where appropriate. Reported by Jim Meyering.
2012-09-01build: fix VPATH issues in C compilationJim Meyering
* src/local.mk (AM_CPPFLAGS): Add 'src' to the directories that are searched for #include'd files.
2012-09-01maint: simplify declaration of "libexec" programsStefano Lattarini
* configure.ac: No need to use 'gl_ADD_PROG' and an indirection variable '$optional_pkglib_progs' to declare the 'libstdbuf.so' "libexec" program; the decision to whether compile that program is not up to the user, but it only and simply depends on whether the 'stdbuf' "bin" program is to be built or not.
2012-09-01build: $(mandeps): new, to factor out man pages dependenciesStefano Lattarini
* man/local.mk (mandpep): Rename ... (mandeps): ... like this. Make $(ALL_MANS) depend on its content. List 'src/system.h' in here, instead of making $(ALL_MANS) depend on it explicitly. (man/*.1): No need to list $(mandep) among the dependencies any longer.
2012-09-01build: enhance man pages cleaning and dependenciesStefano Lattarini
* man/local.mk: All of the manpages should depend on 'src/system.h', and all of them should be cleaned by "make maintainer-clean", that is, added to MAINTAINERCLEANFILES. Make it be so. Some minor cosmetic tweakings and reorderings while at it.
2012-09-01build: simplify: get rid of yet some more indirection variablesStefano Lattarini
* configure.ac: Adjust and improve few comments. (MAN): Rename ... (man1_MANS): ... to this. Ensure it isn't initialized in all Makefiles (which would lead to spurious errors), by calling AM_SUBST_NOTMAKE on it. Also call AM_SUBST_NOTMAKE on 'EXTRA_MANS', for consistency. * man/local.mk (man1_MANS): Simply define to '@man1_MANS@'.
2012-09-01build: rename dist_man1_MANS -> man1_MANSStefano Lattarini
And list $(man1_MANS) directly in $(EXTRA_DIST) instead. This is similar to what is done for $(EXTRA_MANS), thus improving consistency and readability. * man/local.mk (dist_man1_MANS): Rename ... (man1_MANS): ... like this. (EXTRA_DIST): Add its contents. * cfg.mk (check-x-vs-1): Fix a botched comment.
2012-09-01build: one less unneeded make variableStefano Lattarini
* man/local.mk (man_aux): This was used only once, so inline its expansion at its sole point of use ... (EXTRA_DIST): ... here.
2012-09-01build: simplify and make more portable to non-GNU makeStefano Lattarini
The AC_SUBST'd variable '$(NO_INSTALL_PROGS_DEFAULT)' is only used in makefile expressions expanding the list of manual pages that are not built by default (but might need to be when a distribution tarball is created). Such expressions exploited a feature of make variable expansion -- namely, $(VAR:%=dir/%.x) -- that, while seemingly quite portable in practice, is not POSIX-conforming, and could break on lesser vendor make implementations. So kill two birds with one stone, by getting rid of the $(NO_INSTALL_PROGS_DEFAULT) intermediate variable and improving makefile portability in the process. While at it, we also clean up some other minor naming inconsistency and useless indirection. * configure.ac (NO_INSTALL_PROGS_DEFAULT): Don't define or AC_SUBST anymore; instead ... (EXTRA_MANS): ... define and AC_SUBST these. * man/local.mk (extra_man_1): Rename ... (EXTRA_MANS): ... like this, explicitly making clear it's AC_SUBST'd. (extra_man_x): It's used only once, no need to define it; just inline its only expansion where needed. (EXTRA_DIST): Adjust. (ALL_MANS): New, union of $(EXTRA_MANS) and $(dist_man1_MANS). * cfg.mk (check-x-vs-1, sc_option_desc_uppercase): Rely on $(ALL_MANS) rather than on $(NO_INSTALL_PROGS_DEFAULT) and $(dist_man1_MANS).
2012-09-01build: simplify: get rid of some indirection variablesStefano Lattarini
The code deciding which coreutils programs to build (depending on defaults, system capabilities, and user requests) is overly complex and rather confusing. Let's begin simplifying it by removing some non-strictly-necessary indirection variables. * configure.ac: Adjust and improve few comments. (OPTIONAL_BIN_PROGS, OPTIONAL_PKGLIB_PROGS): Rename ... (bin_PROGRAMS, pkglibexec_PROGRAMS): ... like these, respectively. Ensure they aren't initialized in all Makefiles (which would lead to spurious errors), by calling AM_SUBST_NOTMAKE on them. * src/local.mk: Adjust and improve few comments. (bin_PROGRAMS, pkglibexec_PROGRAMS): Simply define to the corresponding '@substitution@'.
2012-09-01maint: update gitignore entriesStefano Lattarini
* src/.gitignore: Here, adding the '.dirstamp' file generated by the C compilation rules.
2012-09-01maint: fix one stray reference to src/Makefile.amStefano Lattarini
* build-aux/gen-lists-of-programs.sh: In heading comments here.
2012-09-01maint: fix and simplify maintainer checksStefano Lattarini
Some of them can be simplified after the previous changes, some of them have been downright broken by them, and need fixing. * src/local.mk: Adjust some comments. (EXTRA_DIST): Avoid SPACE-TAB sequences. (src/dircolors.h, src/fs.h src/fs-is-local.h): Avoid 8-SPACES indentation. (_sc_check-AUTHORS): Move ... * cfg.mk (sc_check-AUTHORS): ... here (superseding the old rule with the same name, that was just a recursive invocation to it). Adjust the paths of the invoked coreutils programs, to account for the fact that this rule now runs in the top-level build dir, not in the 'src/' subdir. Other minor cosmetic adjustments. (ALL_RECURSIVE_TARGETS): Remove 'sc_option_desc_uppercase' and 'sc_man_file_correlation', since they no longer entail any recursive make invocation. (sc_option_desc_uppercase): Remove dependency from $(all_programs): it isn't actually needed. (check-programs-vs-x): Likewise. Also, fix heading comments to truly reflect what this check does. (all-progs-but-lbracket): Strip the 'src/' prefix from each entry in the list of programs; this avoids a spurious failure in the 'check-programs-vs-x' recipe. (.PHONY): No need to list targets 'sc_man_file_correlation' and 'sc_option_desc_uppercase': they are automatically declared phony by 'maint.mk', being recognized as syntax checks.
2012-09-01maint: remove unused target 'install-root'Stefano Lattarini
It was unneeded and broken since the removal of 'su' from GNU coreutils, in commit v8.17-16-g928dd73 of 2012-06-06, "su: remove program (util-linux is now the best source for it)". * Makefile.am (install-root): Remove. (ALL_RECURSIVE_TARGETS): Update.
2012-09-01maint: improve remake rules for maintainersStefano Lattarini
This is a follow up on today's commit v8.19-60-g4f2e62b". * Makefile.am ($(top_srcdir)/m4/cu-progs.m4, $(srcdir)/src/cu-progs.mk): New, generate these files from the 'build-aux/gen-lists-of-programs.sh', the same way it's done from the bootstrap script. * bootstrap.conf (bootstrap_post_import_hook): Add comment about the necessity to keep those new rules synced with the commands here. Enhance those commands so to that the generated files are set read-only.
2012-09-01build: fix generation of manpages for programs not built by defaultStefano Lattarini
* src/local.mk (dist-hook): Don't use this to ensure all the programs, even the ones disabled by default or by the user, are built (doing so is required to ensure the distributed manpages are properly built). This would build those programs too late anyway, causing errors like: $ make dist make dist-xz am__post_remove_distdir='@:' make[1]: Entering directory `~/src/coreutils' GEN man/arch.1 help2man: can't get '--help' info from man/arch.td/arch make[1]: *** [man/arch.1] Error 127 make[1]: Leaving directory `~/src/coreutils' make: *** [dist] Error 2 Instead, ... * man/local.mk (extra_man_x, extra_man_1): define these ... ($(extra_man_1)): ... and make this depend on $(all_programs). (EXTRA_DIST): Adjust. Adjust some comments as well.
2012-09-01build: don't use recursive make to build the 'src' subdirectoryStefano Lattarini
* Makefile.am (SUBDIRS): Remove 'src'. Ensure '.' is listed before 'tests' and 'gnulib-tests'. (dist-hook): Adjust: we must now tweak the top-level Makefile.in in $(distdir), not the one in the 'src/' subdir (which is gone). (include): The '$(top_srcdir)/src/local.mk' file. * build-aux/gen-lists-of-programs.sh: Adjust the generation of the automake input fragment. * tests/Makefile.am (.built-programs): Adjust. * cfg.mk (all_programs): Remove this convenience rule; it's no longer needed, now that we can rely directly on the contents of $(all_programs). (sc_option_desc_uppercase, check-programs-vs-x:): Adjust lists of prerequisites accordingly. (all-progs-but-lbracket): Simplify definition accordingly. * configure.ac ($OPTIONAL_BIN_PROGS): Adjust definition. ($OPTIONAL_PKGLIB_PROGS): Likewise. ($NO_INSTALL_PROGS_DEFAULT): Tweak definition, for consistency. (AC_CONFIG_FILES): Remove 'src/Makefile'. * src/Makefile.am: Rename ... * src/local.mk: ... like this, with a lot of adjustments. In addition ... (all_programs): ... remove this now-unneeded convenience target.
2012-09-01build: refactor how lists of coreutils programs are definedStefano Lattarini
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.
2012-09-01maint: add our 'bootstrap_post_import_hook' functionStefano Lattarini
This is in preparation of future changes. * bootstrap.conf (bootstrap_post_import_hook): New, will be executed by bootstrap after gnulib-tool but before the autotools. Move creation of dummy ChangeLog into it.
2012-08-31build: work with new glibc when not optimizingEric Blake
Starting with glibc 2.15, the system headers refuse to compile unconditional use of FORTIFY_SOURCE if optimization is disabled but -Werror is in effect. * configure.ac (FORTIFY_SOURCE): Make conditional.
2012-08-31scripts: fix the Signed-off-by:-prohibiting hook to actually workJim Meyering
* scripts/git-hooks/commit-msg: Fix new test: we're searching a multi-line buffer, so add the //m modifier.
2012-08-31maint: make required gettext version consistentStefano Lattarini
* bootstrap.conf ($buildreq): Require gettext >= 0.18.1, consistently with the call to AM_GNU_GETTEXT_VERSION in configure.ac.
2012-08-31maint: get rid of obsolete script 'cvsu'Stefano Lattarini
It was useful only back when coreutils used CVS as its version control system. * build-aux/cvsu: Delete. * Makefile.am (EXTRA_DIST): Remove it. * cfg.mk: Remove the two exemptions for this removed file.
2012-08-31build: don't use '$<' in non-suffix rulesStefano Lattarini
* src/Makefile.am (fs-def): Here: it's not portable to some non-GNU make implementations.
2012-08-31maint: more uses of $(ASSORT)Stefano Lattarini
* src/Makefile.am (fs-kernel-magic, fs-magic): Here, instead of inlining its expansion "LC_ALL=C sort".
2012-08-31maint: remove unused variable in src/Makefile.amStefano Lattarini
* src/Makefile.am (editpl): This.
2012-08-31build: don't use foo_LDADD if there's no foo programStefano Lattarini
For example, instead of factoring out the extra linker flags needed by 'cp', 'mv' ind 'install' into a '$(copy_LDADD)' variable, factor them out in a '$(copy_ldadd)' variable. Partly a minor cleanup, partly a preparation for future changes. * src/Makefile.am (copy_LDADD): Rename ... (copy_ldadd): ... like this. (remove_LDADD): Rename ... (remove_ldadd): ... like this. All uses adjusted. Some comments updated.
2012-08-31build: some refactorings in cfg.mkStefano Lattarini
Partly a minor cleanup, partly a preparation for future changes. * Makefile.am (all_programs): Rename ... (all-progs-but-lbracket): ... like this, and re-define it to expand at make time rather than only at recipe time (i.e., using $(shell ...) instead of `...`). (check-programs-vs-x): Adjust.
2012-08-31build: move definition of 'all_programs' in cfg.mkStefano Lattarini
* Makefile.am: Move definition of target 'all_programs' from here ... * cfg.mk: ... to here, which is the only file where it is used.
2012-08-31build: reenable just-moved/broken syntax-check ruleJim Meyering
* cfg.mk (sc_option_desc_uppercase): Now that this rule lives in cfg.mk, we must search man/*.1, not "*.1". Reported by Bernhard Voelker.
2012-08-31maint: fixup: don't try to distribute a now-removed fileStefano Lattarini
* tests/Makefile.am (EXTRA_DIST): Drop 'check.mk', which has been removed (being merged into 'tests/Makefile.am') by recent changes.
2012-08-31doc: escape double quotes in autotools-install --helpErik Auerswald
* scripts/autotools-install: Fix --help so that we actually print the double quotes around "make check", in two places.