[Gambas-user] gbc3-gb_error.o compiling rev #5670
Tobias Boege
taboege at ...626...
Sat May 25 11:37:57 CEST 2013
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
More information about the User
mailing list