Mathieu Lirzin <m...@gnu.org> skribis: > This improves compilation speed since scripts are not compiled twice. > When building with ‘make -j4‘ from a clean repository on an Intel > i5-2540M, the time of compilation gets from: > > real 5m7.220s > user 18m49.788s > sys 0m12.964s > > down to: > > real 2m20.820s > user 7m25.992s > sys 0m7.464s > > * configure.ac (BUILD_FROM_GIT): New Automake conditional. > * doc.am (SUBCOMMANDS): Delete variable. > (dist_man1_MANS): List all subcommands man pages. > (doc/guix.1): Build only if BUILD_FROM_GIT. Depend on 'scripts/guix' > instead of all subcommands. > [BUILD_DAEMON] (doc/guix-daemon): Likewise. Replace the > 'nix/nix-daemon/guix-daemon.cc' prerequisite with 'guix-daemon'. > [BUILD_FROM_GIT] (gen_man): New variable. > [BUILD_FROM_GIT] (doc/guix-%.1): New target. > (CLEANFILES) [BUILD_FROM_GIT]: Add $(dist_man1_MANS).
I like the speedup, but not the ‘BUILD_FROM_GIT’ approach. :-) It reminds me of maintainer-mode and all its warts (info "(automake) maintainer-mode"). Namely, I think it’s best to have the help2man rule always triggered whenever the corresponding .scm file is newer, rather than have it triggered or not based on a guess of what the user wants/can do. Having said that, I’m not sure what to do. Commit 0af3f404 reverted the original approach, which was to depend on .go files (and obviously wouldn’t work as we want.) So we want to delay the build of man pages without making the dependency on build products explicit. Hmm, not sure what can be done. Thoughts? Ludo’.