1
0
mirror of git://git.sv.gnu.org/coreutils.git synced 2026-03-30 08:44:18 +02:00
Commit Graph

27374 Commits

Author SHA1 Message Date
Stefano Lattarini
5e60e0d37e build: don't use recursive make to build the 'src' subdirectory
* 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-01 21:25:13 +02:00
Stefano Lattarini
4f2e62ba9f 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.
2012-09-01 21:25:13 +02:00
Stefano Lattarini
1aaa8af929 maint: add our 'bootstrap_post_import_hook' function
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-09-01 21:25:13 +02:00
Eric Blake
314457b2ae build: work with new glibc when not optimizing
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-31 13:50:53 -07:00
Jim Meyering
1e4300e926 scripts: fix the Signed-off-by:-prohibiting hook to actually work
* scripts/git-hooks/commit-msg: Fix new test: we're searching a
multi-line buffer, so add the //m modifier.
2012-08-31 13:09:27 +02:00
Stefano Lattarini
badfa5bd0c maint: make required gettext version consistent
* bootstrap.conf ($buildreq): Require gettext >= 0.18.1, consistently
with the call to AM_GNU_GETTEXT_VERSION in configure.ac.
2012-08-31 12:34:15 +02:00
Stefano Lattarini
375b3c0df2 maint: get rid of obsolete script 'cvsu'
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-31 12:23:24 +02:00
Stefano Lattarini
4adf4d2511 build: don't use '$<' in non-suffix rules
* src/Makefile.am (fs-def): Here: it's not portable to some non-GNU
make implementations.
2012-08-31 12:22:10 +02:00
Stefano Lattarini
3099883156 maint: more uses of $(ASSORT)
* src/Makefile.am (fs-kernel-magic, fs-magic): Here, instead of
inlining its expansion "LC_ALL=C sort".
2012-08-31 12:22:09 +02:00
Stefano Lattarini
59b5eb428f maint: remove unused variable in src/Makefile.am
* src/Makefile.am (editpl): This.
2012-08-31 12:22:09 +02:00
Stefano Lattarini
c1269eee5c build: don't use foo_LDADD if there's no foo program
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-31 12:22:09 +02:00
Stefano Lattarini
a159d594fa build: some refactorings in cfg.mk
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-31 12:22:09 +02:00
Stefano Lattarini
a11502a98c build: move definition of 'all_programs' in cfg.mk
* 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-31 12:22:09 +02:00
Jim Meyering
56661fd87a build: reenable just-moved/broken syntax-check rule
* 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-31 12:08:49 +02:00
Stefano Lattarini
a7c0ed0892 maint: fixup: don't try to distribute a now-removed file
* tests/Makefile.am (EXTRA_DIST): Drop 'check.mk', which has been
removed (being merged into 'tests/Makefile.am') by recent changes.
2012-08-31 11:56:26 +02:00
Erik Auerswald
dc1f1f3c73 doc: escape double quotes in autotools-install --help
* scripts/autotools-install: Fix --help so that we actually print
the double quotes around "make check", in two places.
2012-08-31 11:01:58 +02:00
Jim Meyering
c1495a1107 scripts: add autotools-install, for those stuck with outdated tools
* 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-31 10:56:07 +02:00
Bernhard Voelker
c1c92bcb29 build: fix syntax-check rules broken by test-added .sh/pl suffixes
* 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-31 10:16:18 +02:00
Stefano Lattarini
4af32c62fa tests: get rid of the 'shell-or-perl' auxiliary script
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-30 18:55:59 +02:00
Stefano Lattarini
9eb4c31eb7 tests: add .sh and .pl suffixes to shell and perl tests, respectively
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-30 18:55:59 +02:00
Stefano Lattarini
00f5ba15dd tests: detect missing perl at configure runtime
* 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-30 18:55:59 +02:00
Stefano Lattarini
e44178c590 tests: avoid use of '-T' in shebang line to enable perl taint mode
* 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-30 18:55:59 +02:00
Stefano Lattarini
8381e35e24 build: require Automake >= 1.11.2
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-30 18:55:54 +02:00
Stefano Lattarini
34c9c8f70f tests: prefer AM_TESTS_ENVIRONMENT over TESTS_ENVIRONMENT
The latter should be reserved for user overrides.

* tests/Makefile.am (TESTS_ENVIRONMENT): Rename ...
(AM_TESTS_ENVIRONMENT): ... like this.
2012-08-30 16:54:09 +02:00
Stefano Lattarini
cddadbcd80 tests: merge tests/check.mk into tests/Makefile.am
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-30 16:53:59 +02:00
Stefano Lattarini
4837ecd7e8 build: enable the 'subdir-objects' Automake option globally
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-30 16:05:19 +02:00
Stefano Lattarini
fb6b70e337 maint: update gitignore entries
* doc/.gitinore: Here, adding the '.dirstamp' file generated by
the Texinfo rules.
2012-08-30 15:22:00 +02:00
Jim Meyering
a13ffec338 build: factor out a little more re list of *.texi files
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-30 15:22:00 +02:00
Stefano Lattarini
408abf8586 maint: adjust syntax check 'sc_option_desc_uppercase'
* 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-30 15:22:00 +02:00
Stefano Lattarini
63bf5a3d42 maint: adjust syntax check 'check-x-vs-1'
* 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-30 15:22:00 +02:00
Stefano Lattarini
b842b88381 maint: move man-related syntax checks in cfg.mk
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.
2012-08-30 15:22:00 +02:00
Stefano Lattarini
44547edd7c build: don't use recursive make to build the 'man' subdirectory
* Makefile.am: Include 'man/local.mk'.
(SUBDIRS): Remove 'man'.
* configure.ac ($MAN): Adjust so that each of its entries has a leading
'man/' component.
(AC_CONFIG_FILES): Remove 'man/Makefile'.
* man/Makefile.am: Rename ...
* man/local.mk: ... like this.  With further adjustments: each 'foo.1'
target renamed like 'man/foo.1', each '../src/foo.c' dependency as
'src/foo.c', and each '$(srcdir)' usage as '$(srcdir)/man'.  Also ...
(mandep): Adjust, removing the leading '../' component.
Several whitespace adjustments while at it.
(ASSORT): Remove, it's already defined in the top-level Makefile.am.
* cfg.mk (sc_option_desc_uppercase, sc_man_file_correlation): Remove
the associated recipes, they are now directly available from the
included 'man/local.mk'.  Actually, the other changes in this commit
have made these recipes instable and not completely correct, but that
will be fixed in later changes.
2012-08-30 15:22:00 +02:00
Stefano Lattarini
34e2473f41 build: rework some recipes in man/Makefile.am, for future changes
This change is merely required to make future changes easier.

In particular, since we are going to merge the contents of
'man/Makefile.am' into the top-level Makefile, we need to avoid
conflicts with the rules and variables in 'dist-check.mk', and
to prepare for changes in the value of the '$*' variable as used
in the recipe of the '.x -> .1' suffix rule.

* man/Makefile.am (t, mapped_name): Delete, inlining their use ...
(.1.x): ... in the recipe of this suffix rule.  Other adjustments
to prepare to changes in the value of the '$*' automatic variable.
While at it, made more resilient about unlikely but possible failure.
Adjust and reorder few comments.
2012-08-30 15:22:00 +02:00
Stefano Lattarini
b10412567f build: provide convenience target 'all_programs' also at top-level
This will be mostly useful in future changes.

* Makefile.am (all_programs): New, simply work by delegating to
the same-named target in the 'src/' subdirectory.
* cfg.mk (sc_option_desc_uppercase): Take advantage of it.
(sc_man_file_correlation): Likewise.
2012-08-30 15:22:00 +02:00
Stefano Lattarini
c81ac64ce7 build: make a rule less dependent on exact source tree layout
This is mostly a preparatory change in view of future ones.

* man/Makefile.am (.x.1): Use '$(abs_top_builddir)/src' to access
the 'src' directory.
2012-08-30 15:22:00 +02:00
Stefano Lattarini
a5493c59d6 build: rely on VPATH capabilities in man/Makefile
* man/Makefile.am: In all the 'foo.1' targets, no need to depend
explicitly on '$(srcdir)/foo.x': the '.x.1' suffix rule takes care
of that automatically.
2012-08-30 15:22:00 +02:00
Stefano Lattarini
2e255f4951 maint: typofix: s/it's/its/
* man/Makefile.am: Here.
2012-08-30 15:22:00 +02:00
Stefano Lattarini
b94e30af66 build: rename common_dep -> mandep in man/Makefile
This is mostly a preparatory refactoring in view of future changes.

* man/Makefile.am (common_dep): Rename ...
(mandep): ... like this.
All usages adjusted.
2012-08-30 15:21:59 +02:00
Stefano Lattarini
9669de8688 build: fix a stray usage of uninitialized $(ME)
* man/Makefile.am (sc_option_desc_uppercase): Here.
2012-08-30 15:21:59 +02:00
Stefano Lattarini
0f54e9761f build: add an explanatory comment
* man/Makefile.am (EXTRA_DIST): Describe portability issues of the
idiom we now use.  Reformat the definition a little while at it.
2012-08-30 15:21:59 +02:00
Stefano Lattarini
60b01f9f02 maint: simplify definition of $MAN in configure.ac
* configure.ac: Here, by making less use of 'sed' and 'tr' munging,
and relying on a smarter and simpler shell loop instead.
2012-08-30 15:21:59 +02:00
Stefano Lattarini
7e85a52be4 build: don't define $(SUFFIXES) explicitly
* man/Makefile.am (SUFFIXES): Remove definition: Automake is smart
enough to extract the list of suffixes from the '.x.1' suffix rule
automatically.
2012-08-30 15:21:59 +02:00
Stefano Lattarini
f56980b99c build: don't use recursive make to build the 'doc' subdirectory
* doc/Makefile.am: Rename ...
* doc/local.mk: ... like this.  With further adjustments ...
(info_TEXINFOS): Prepend 'doc/' to all '*.texi' files listed in
here.
(coreutils_TEXINFOS): Likewise, and rename ...
(doc_coreutils_TEXINFOS): ... like this.
(constants.texi): Rename ...
(doc/constants.texi): ... like this.  Adjust the recipe to avoid
spurious errors.
(MAINTAINERCLEANFILES): Adjust, and extend with '+=' rather than
setting it with '='.
(ME): Delete.
(find_upper_case_var): Use '$@', not '$(ME)', in error messages.
* Makefile.am: Include 'doc/local.mk'.
(SUBDIRS): Remove 'doc'.
* configure.ac (AC_CONFIG_FILES): Remove 'doc/Makefile'.
2012-08-30 15:21:59 +02:00
Stefano Lattarini
d1b490c10d build: use 'check-local' to extend the 'check' target
* doc/Makefile.am (check-local): Here, by making this depend
on 'check-texinfo' ...
(check): ... rather than this.  While the old usage worked, it
did so for an implementation detail rather than a documented
behaviour, so relying on that was riskier a "unclean".
2012-08-30 15:21:59 +02:00
Stefano Lattarini
08d428c2d3 build: prefer '$(top_srcdir)/doc' over '$(srcdir)' in doc Makefile
This is just a preparatory refactoring that will become useful in
a future change (in which the doc/Makefile.am makefile will be merged
with the top-level one).

* doc/Makefile.am (doc_srcdir): New, define to '$(top_srcdir)/doc'.
Use it throughout instead of "bare" '$(srcdir)'.
2012-08-30 15:21:59 +02:00
Stefano Lattarini
e8c41cf753 build: add extra *.texi files to coreutils_TEXINFOS, not EXTRA_DIST
* doc/Makefile.am (coreutils_TEXINFO): List them here, instead of ...
(EXTRA_DIST): ... listing them here.  This ensures the rebuild rules
will be more faithful.
($(DVIS), $(INFO_DEPS)): No need to depend on $(EXTRA_DIST) now.
2012-08-30 15:21:59 +02:00
Stefano Lattarini
4b12790386 maint: slightly improve .gitignore
* .gitignore: Ignore '.deps' only when it's a directory.
Ignore '*.trs' only if they are in a subdirectory of the
'tests/' directory.
2012-08-30 15:21:59 +02:00
Stefano Lattarini
a48da7137a build: don't abuse Automake internals (with its 'check-am' rule)
* tests/check.mk (check-am): Remove; obtain the same effect by moving
its dependency '.built-programs' ...
(check_DATA): ... to this variable.
2012-08-30 15:21:59 +02:00
Jim Meyering
19baf1679d scripts: git commit message hook: prohibit use of "Signed-off-by:"
* scripts/git-hooks/commit-msg: Reject a commit log message that
contains "Signed-off-by:".
2012-08-30 13:12:44 +02:00
Stefano Lattarini
812dfda461 tests: remove useless defn of REPLACE_GETCWD from TESTS_ENVIRONMENT
It's last use had been removed in commit v8.12-3-g3ed91fc of 2011-04-28,
"tests: remove useless test: misc/pwd-unreadable-parent".

* tests/check.mk (TESTS_ENVIRONMENT): Adjust.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
2012-08-30 11:16:26 +02:00