Yves Martin <ymartin59@???> writes:
> En réponse à GUSTO Fabrice <f.gusto@???>:
> > 1) Nous utilisons les balises "version" et "release" pour
> > identifier les fichiers sources. Ces balises sont précédées du
> > pattern "@(#)" dans le but d'utiliser la commande "what" sur les
> > binaires générées. Mon problème est le suivant : comment gérer la
> > versions d'un binaire généré par la compilation de plusieurs
> > fichiers sources ?
> > J'ai d'abord pensé aux tag mais ils n'y a pas de balise
> > correspondante.
> Je pense qu'utiliser '$Name$' devrait etre utile. Seule
> contrainte : il faut faire un checkout sur un tag ou un export
> pour que la valeur soit attribuée.
Je ne connaissais pas celle-la. Elle va me servir... :-)
> > j'ai ensuite entendu parler du fichiers version.c, mais je ne sais
> > pas comment l'utiliser !
> Je ne connais pas ... A mon avis, il s'agit simplement de faire un
> fichier dont un des symboles à une valeur de 'tag' que l'on peut
> ensuite lire dans le binaire.
Si je puis me permettre une proposition en GNU Makefile:
monexe: monfichier.o version.o
$(CC) $(mesobjs) version.o -o $@
version.o: version.c
.PHONY: version.c
version.c:
echo "static char* __attribute__(unused) cvs_what_string=\"@(#) $(shell ident monfichier.c)\"" > version.c
echo "static char* __attribute__(unused) cvs_ident_string=\"$(shell ident monfichier.c)\"" >> version.c
Tu noteras que j'ai mis les 2 chaines de reconnaissance: celle de what
(commande UNIX sous license ATT non disponible sous Linux) & celle de
ident (issue de RCS, que l'on trouve desormais partout).
Si CVS est capable de faire ca seul (ce qui est ma foi fort possible),
ce serait le grand luxe. Je suis quand meme sceptique pour ce qui est
de la chaine de what...
A+
--
François-Xavier 'FiX' KOWALSKI