Hi Trevor, On 23/07/11 15:07, Trevor Daniels wrote: > > Jan Warchoł wrote Saturday, July 23, 2011 1:39 PM > > >> 2011/7/21 Trevor Daniels <t.dani...@treda.co.uk>: >>> >>> If the compile and link succeed, you usually ctrl-C out of make >>> as soon as linking has finished so you can get on with testing. >>> So you need to see the relevant messages on the console >>> to determine this. >> >> I'm not sure if i understand your workflow, but I think a far better >> solution than watching console output is to use a script. I attach a >> scipt that i use for this, it saves me some time. > > Not really. If you have changed only one or two C++ routines > the compile and link part of make take only a few seconds. > There's no point in letting it go on to check all the doc files. > > So really no time is wasted watching the console output. In > my case there are usually compile errors to fix most of the time, > so it takes even less time :) > > Actually Graham's suggestion to have a compile and link only > target in make was a good one. That would save having to > ctrl-C out. > There *is* a make exe "generic" target, but it doesn't do anything as if all the binary executable targets are up-to-date. (see below).
1+ for Graham's proposal, provided his bin target acts as a synonym for exe, and builds all the stuff in out/bin. *However*, as a general developer note, the fact that you can build the lilypond executable and run it up successfully with no args is not a full sanity check, owing to the way the main C++ code runs up Guile via lily.scm. It's actually done as a two-pass job. We first get Guile to load up lily.scm and all the scm files it loads to build the (lily) Guile module. This is done by calling scm_boot_guile with a callback to routine main_with_guile. The callback routine then does some housekeeping and initialisation to get Scheme behave the way Lily needs to¸ and at the end of that main_with_guile then calls the scheme entry-point lilypond-main to start compiling the users .ly files etc. Unfortunately the -v or --version processing in routine parse-argv optimises this so that the image exits with a success code before it even touches the Guile API. Anyway, I still think a working make exe and/or make bin is worth having for people having to change any C++ code. Graham, what are the time estimates for adding a top-level make target for developer who's a build-system virgin? Cheers, Ian (Output from make help) ian@nanny-ogg:~/src/lilypond/build$ make help Makefile for LilyPond 2.15.6 Usage: make [VARIABLE=value]... [TARGET] Targets specific to current directory: config rerun configure dist roll tarball: ././out/lilypond-2.15.6.tar.gz distclean also remove configure output cvs-clean also remove out directories and generated files maintainerclean also remove distributed generated files po make new translation Portable Object database po-replace do po-update and replace catalogs with msgmerged versions po-update update translation Portable Object database install-doc install website documentation in (webdir=/usr/local/share/doc/lilypond/html) and Info documentation with images uninstall-doc remove installed documentation with images info build Info documentation with images install-info install Info documentation with images Some more targets are available for testing changes: test-baseline check test-redo test-clean For more information on these targets, see `Testing LilyPond' in the Contributor's Guide. Generic targets that recurse into subdirectories*: all update everything except documentation with images clean remove all generated stuff in ./out bin-clean same as clean, except that mf/out is preserved doc update documentation with images in directory `out-www' doc-stage-1 update only PDF and Info documentation in directory `out-www' doc-clean clean `out-www' directory install install programs and data (prefix=/usr/local) uninstall uninstall programs and data *Note: Prepend `local-' (eg. `local-clean') to restrict any of the above commands to the current directory. Other generic targets: default same as the empty target ************************************** exe update all executables ************************************** help this help lib update all libraries TAGS generate tagfiles `make' may be invoked from any subdirectory. ian@nanny-ogg:~/src/lilypond/build$ _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel