summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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.
2012-08-31scripts: add autotools-install, for those stuck with outdated toolsJim Meyering
* scripts/autotools-install: New script, so you can always build from git-cloned sources, even when they require bleeding edge m4, autoconf, automake, etc.
2012-08-31build: fix syntax-check rules broken by test-added .sh/pl suffixesBernhard Voelker
* cfg.mk: We exempt a few test files that would otherwise trigger false-positive matches in syntax-check rules. The recent change that added a .sh or .pl suffix to each test script made it so some of the exclusion regexps would no longer match. Include the required \.sh suffix in each such regexp, too.
2012-08-30tests: get rid of the 'shell-or-perl' auxiliary scriptStefano Lattarini
It's now easier and faster to simply run the perl ans shell test scripts directly with the appropriate interpreter and options. * tests/shell-or-perl: Delete. * tests/Makefile.am (EXTRA_DIST): Remove it. (SH_LOG_COMPILER): Re-define to invoke the correct shell. (PL_LOG_COMPILER): Re-define to invoke the correct perl interpreter ... (TESTSUITE_PERL_OPTIONS): ... with the correct options. (XPL_LOG_COMPILER): Use those options instead of inlining their expansion. (LOG_COMPILER): Delete, no longer needed.
2012-08-30tests: add .sh and .pl suffixes to shell and perl tests, respectivelyStefano Lattarini
Not only this shrinks the size of the generated Makefile (from > 6300 lines to ~3000), but will allow further simplifications in future changes. * tests/Makefile.am (TEST_EXTENSIONS): Add '.sh' and '.pl'. (PL_LOG_COMPILER, SH_LOG_COMPILER): New, still defined simply to $(LOG_COMPILER) for the time being. (TESTS, root_tests): Adjust as described. * All tests: Rename as described.
2012-08-30tests: detect missing perl at configure runtimeStefano Lattarini
* configure.ac (AM_CONDITIONAL): Set the conditional 'HAVE_PERL' to true if the configure-time checks (as run by gl_PERL) have been able to find a working perl. * tests/no-perl: New script, report a diagnostic about "missing perl" and exit with status 77. * tests/Makefile.am (EXTRA_DIST): Distribute it. (TESTSUITE_PERL): New, define to '$(PERL)' if a perl interpreter has been found at configure time (i.e., if the 'HAVE_PERL' automake conditional is true), and to '$(srcdir)/no-perl' otherwise. (LOG_COMPILER): Use $(TESTSUITE_PERL) instead of $(PERL). (XPL_LOG_COMPILER): Likewise. * tests/shell-or-perl: Simplify: no need to actually check whether perl is working.
2012-08-30tests: avoid use of '-T' in shebang line to enable perl taint modeStefano Lattarini
* tests/rm/fail-eperm: Rename ... * tests/rm/fail-eperm.xpl: ... like this * tests/Makefile.am (TESTS): Adjust. (TEST_EXTENSIONS): New, list '.xpl'. (XPL_TEST_LOGS): New, run a perl test in tainted mode. * tests/shell-or-perl: Simplify this script: we no longer need to parse the shebang line and adjust the flags in the perl invocation accordingly.
2012-08-30build: require Automake >= 1.11.2Stefano Lattarini
Now that we use AM_TESTS_ENVIRONMENT, we must require Automake >= 1.11.2. * configure.ac (AM_INIT_AUTOMAKE): Bump version requirement to 1.11.2. * bootstrap.conf ($buildreq): Likewise.
2012-08-30tests: prefer AM_TESTS_ENVIRONMENT over TESTS_ENVIRONMENTStefano Lattarini
The latter should be reserved for user overrides. * tests/Makefile.am (TESTS_ENVIRONMENT): Rename ... (AM_TESTS_ENVIRONMENT): ... like this.
2012-08-30tests: merge tests/check.mk into tests/Makefile.amStefano Lattarini
The separation has become unnecessary after all the ancient 'tests/*/Makefile.am' makefiles have been merged into the "more-top-level" one 'tests/Makefile.am'. * tests/check.mk: Merge ... * tests/Makefile.am: ... in here. Some comments tweaking while at it.
2012-08-30build: enable the 'subdir-objects' Automake option globallyStefano Lattarini
This is not strictly required now (it will be once we make more parts of the coreutils build system non-recursive), but enabling it early helps to ensure that we don't unwittingly introduce any incompatibility or subtle breakage later. * configure.ac (AM_INIT_AUTOMAKE): Add 'subdir-objects'.
2012-08-30maint: update gitignore entriesStefano Lattarini
* doc/.gitinore: Here, adding the '.dirstamp' file generated by the Texinfo rules.
2012-08-30build: factor out a little more re list of *.texi filesJim Meyering
We may well want to switch from checking all *.texi to checking only version-controlled .texi files, so encapsulate this concept in one place. * doc/local.mk (doc_srcdir): Delete. Use this instead: (texi_files): Define. All usages adjusted.
2012-08-30maint: adjust syntax check 'sc_option_desc_uppercase'Stefano Lattarini
* cfg.mk (sc_option_desc_uppercase): Here, by grafting the 'man/' prefix to the manpages obtained from $(NO_INSTALL_PROGS_DEFAULT) and listed as prerequisites for this rule.
2012-08-30maint: adjust syntax check 'check-x-vs-1'Stefano Lattarini
* cfg.mk (check-x-vs-1): Here, by stripping 'man/' prefix from $(dist_man1_MANS) entries before comparing them with the list of expected programs.
2012-08-30maint: move man-related syntax checks in cfg.mkStefano Lattarini
This is more natural, now that the top-level Makefile has access to all the variables and rules once defined only in 'man/Makefile.am' * man/local.mk (all_programs, sc_option_desc_uppercase, sc_man_file_correlation check-x-vs-1, check-programs-vs-x): Move from here ... * cfg.mk: ... to here. Adjust some comments in the process.