On Fri, Jun 17, 2011 at 07:35:19PM +0100, Graham Percival wrote: > > >Again, on the shell, it would be something like this: > > > make ...blah... || echo "build failed" && tail logfile > > >but there might be a nicer way to do it. > > > > but then when blah fails, make will not stop, since the return > > status from echo && tail is a success (assuming the log file > > exists). How would you return failure and force make to stop?
make ...blah... || { echo "build failed"; tail logfile; false; } > Interesting, I hadn't considered that. Hmm, is there such a thing > as functions in bach? If so, it would be easy to return something > after doing the echo. > > Of course, we can't guaranteed that bash will be present... does > sh(1) allow functions? Of course. Shell functions are demanded by POSIX ;-) > Or can we write functions in make, or stepmake? Or do the same > thing with macros somehow, if make has > macros but not functions? Please don't. Fiddling with (gnu) make macros (which aren't real macros but just variables `invoked' in a special way) doesn't make the makefiles more readable. What should be possible (I can work on this in about one and a half week, when I've two weeks of vacation) is something like this: RUN_CHECK_LOG = foo() { logfile=$1; shift; ...; } && foo ... a_target: ${RUN_CHECK_LOG} a_target.log ${MAKE} whatever where the `...' in the definition of foo() in RUN_CHECK_LOG would execute "$@" (i.e. the remaining arguments to foo() after the log file name had been shifted away), and do the echo/tail/false combo if it failed. > The short answer is that I cannot believe that we've exhausted all > options yet. I want Phil to look into those options; of course I > welcome any suggestions from people on this list. But off the top > of my head, I'd say that we can't possibly say that we're out of > ideas until we've spent at least 5 hours googling and/or reading > documentation about make and/or experimenting with make and > stepmake. Just wait a few days until I've some spare time available to help you with this, will you? I'll also have to read all this `silence the build' mails more closely, because silencing the build *in geneeral* is a very bad idea. If this all is about locating failures during the lilypond (which *is* difficult IIRC), then the build system may be the completely wrong place. (I can remember spending hours on tracking down some errors coming out of ghostscript or metafont or fontforge some years ago). If this is the case, the tools should be fixed, not the build system. Ciao, Kili _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel