Le 25/05/2013 11:37, Tobias Boege a écrit : > On Fri, 24 May 2013, Beno?t Minisini wrote: >> Le 23/05/2013 14:23, Tobias Boege a ?crit : >>>> >>>> Sorry, I prefer my way of defining TRUNK_VERSION: you should not modify >>>> the compilation flag for defining a constant. You'd rather use the >>>> 'config.h' mechanism (AC_DEFINE & AC_DEFINE_UNQUOTED). >>>> >>> >>> But when is this file regenerated? Only by configure, correct? This would >>> mean that I have to issue a ./configure everytime I want the new correct >>> version number from gbx3 which is less desirable, in my opinion, than >>> changing a compiler flag. >>> >>> Regards, >>> Tobi >>> >> >> You get a point there. But you must find a way to get the svn version >> only when it changes. For example, we can imagine adding a special >> makefile rule that computes the svn version and put it in its custom >> header file. This rule will depend on the modification time of the >> /trunk/.svn directory (if it is possible). >> >> What do you think? >> > > Good idea. Actually I thought about that, too, but rejected it because a > Makefile rule that depends on .svn will not work on non-repository sources, > like: > > make: *** No rule to make target `.svn', needed by `all'. Stop. > > which is from a Makefile inside my home directory - not svn versioned. > > What I didn't think of was this workaround: have a .PHONY target that > compares timestamps of .svn to the header's instead of letting make do it. > We could catch the case that .svn doesn't exist: > > --- > trunk_version.h: TRUNK_VERSION = $(shell LC_ALL=C svn info 2>/dev/null | grep > Revision | egrep -wo "[0-9]+") > trunk_version.h: > @if test -d .svn -a .svn -nt trunk_version.h ; then \ > echo -e "/* TRUNK version if available */\n#define > TRUNK_VERSION\t$(TRUNK_VERSION)\n" >trunk_version.h; \ > fi > > .PHONY: trunk_version.h > --- > > This worked in my home directory, i.e. did nothing but without complaint, > and in trunk/ it created the trunk_version.h. Maybe ".svn" above should be > prefixed with the path to the top-level Gambas directory? > > The lines are quite ugly. I couldn't find out how to use a here-document in > a Makefile. Alas, I don't have time today to make it better. > > Regards, > Tobi >
My solution is in r5677: I took yours and simplified it by removing what I don't understand. :-) It creates a void 'trunk_version.h' if there is no '.svn' directory. All seems to work correctly, but I'm waiting for your opinion to be sure! :-) -- Benoît Minisini ------------------------------------------------------------------------------ Try New Relic Now & We'll Send You this Cool Shirt New Relic is the only SaaS-based application performance monitoring service that delivers powerful full stack analytics. Optimize and monitor your browser, app, & servers with just a few lines of code. Try New Relic and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may _______________________________________________ Gambas-user mailing list Gambas-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gambas-user