GNUmakefile


Log

Author Commit Date CI Message
Stefano Lattarini 5f810d0d 2012-04-28T10:21:31 fixup: avoid unconditional re-bootstrapping on "make dist" Since our 'bootstrap' script is distributed, the 'distdir' target depends on it. But in our GNUmakefile, we also have a 'bootstrap' target declared .PHONY, which when called re-bootstrap the Automake distribution. Thus, whenever we run "make dist", GNU make sees it must remake the 'bootstrap' target (as it is a dependency of the 'distdir' target), and thus ends up re-bootstrapping all the package (because of the .PHONY 'bootstrap' target in GNUmakefile). We fix this issue by renaming our bootstrap script to 'bootstrap.sh'. * bootstrap: Renamed ... * bootstrap.sh: ... to this. * GNUmakefile (bootstrap): Adjust. * Makefile.am (EXTRA_DIST): Likewise. (autodiffs): Likewise. * HACKING: Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 56badcd4 2012-04-27T18:48:27 bootstrap: add convenience make target Dependencies in the Automake build system are not completely specified (see for example the commit log of recent commit 'v1.12-10-gab14841', "build: avoid too greedy rebuilds in the testsuite"). In fact, some of them cannot even be; for example, Makefile is generated at configure time from Makefile.in, which should be regenerated by our bleeding-edge automake script, which is generated by out Makefile -- specifying the complete chain of dependencies here would bring to a circular dependency issue. For this reason, before testing or deploying a change, we are often forced to perform a full re-bootstrap of the Automake package, to ensure all our files are actually up-to-date. Until now, this has to be done manually, thus causing wasted keystrokes and more possibilities of error. With this change, we introduce a new 'bootstrap' make target to automatize all the (easy) steps of this re-bootstrapping (plus some minor bells & whistles since we are at it). * GNUmakefile: Rewrite to allow an easy bootstrapping and clean rebuild of the whole package, in particular with the help of ... (bootstrap): ... this new target. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 86e9e0e3 2012-02-16T19:52:37 build: clearer diagnostic if "make" is invoked before "./configure" Since a GNUmakefile wrapper has been introduced in our build system, a "make" invocation issued before a "./configure" one has caused GNU make to die with the cryptic message: GNUmakefile:18: Makefile: No such file or directory GNUmakefile:19: /syntax-checks.mk: No such file or directory make: *** No rule to make target `/syntax-checks.mk'. Stop. * GNUmakefile: Detect when we are being run from an unconfigured tree, and give helpful diagnostic.
Stefano Lattarini e508e09d 2012-01-28T10:05:18 build: require GNU make in order to run the maintainer checks This is not a real regression in portability, since most maintainer check rules already assumed GNU grep, and were anyway only meant to run on the developers' systems (where we can safely assume the presence of GNU make). This change will allow us to take advantage, in future changes, of more GNU make features, thus simplifying or optimizing some of our maintainer rules. * GNUmakefile: New, including 'Makefile' and 'syntax-checks.mk'. * configure.ac (AC_CONFIG_LINKS): Link it in the builddir. * Makefile.am (EXTRA_DIST): Distribute 'GNUmakefile' and 'syntax-checks.mk'. Move all syntax-check rules and auxiliary variables into ... * syntax-checks.mk: ... this new file, with some adjustments.