[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: GOP-PROP 5: build system output (probable decision)
From: |
Ian Hulin |
Subject: |
Re: GOP-PROP 5: build system output (probable decision) |
Date: |
Sun, 24 Jul 2011 12:33:13 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20110624 Thunderbird/5.0 |
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 <address@hidden>:
>>>
>>> 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)
address@hidden:~/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.
address@hidden:~/src/lilypond/build$
- Re: GOP-PROP 5: build system output (probable decision), (continued)
- Re: GOP-PROP 5: build system output (probable decision), Trevor Daniels, 2011/07/21
- Re: GOP-PROP 5: build system output (probable decision), Jan Warchoł, 2011/07/23
- Re: GOP-PROP 5: build system output (probable decision),
Ian Hulin <=
- Re: GOP-PROP 5: build system output (probable decision), Phil Holmes, 2011/07/24
- Re: GOP-PROP 5: build system output (probable decision), Graham Percival, 2011/07/24
- Re: GOP-PROP 5: build system output (probable decision), Phil Holmes, 2011/07/24
- Re: GOP-PROP 5: build system output (probable decision), Graham Percival, 2011/07/24
- Re: GOP-PROP 5: build system output (probable decision), Phil Holmes, 2011/07/24
- Re: GOP-PROP 5: build system output (probable decision), Trevor Daniels, 2011/07/24
- Re: GOP-PROP 5: build system output (probable decision), Graham Percival, 2011/07/24
Re: GOP-PROP 5: build system output (probable decision), Jan Warchoł, 2011/07/23