Question

J'ai un projet assez complexe (C ++) en utilisant autoconf / automake, qui comprend certains fichiers "générés" (foo.yy -> foo.cc). builds réelle sont effectuées à l'aide d'un « script de contrôle » (Gentoo .ebuild pour ceux qui sont familiers avec le concept), sur différentes plates-formes.

, l'une des plates-formes cibles ne prend pas en charge correctement la foo.yy -.> Étape de foo.cc, et doit utiliser le fichier généré foo.cc sur une boîte Linux

Maintenant, j'ai deux façons d'aller à ce sujet:

1) Arrivée foo.cc dans le dépôt du projet et le patch en quelque sorte configure.in (ou autre) pour inclure un contrôle d'horodatage sur foo.yy / foo.cc, générant un message d'erreur compréhensible si elle est exécutée sur la cible en question avec un foo.cc à jour;

2) Arrivée foo.cc dans le référentiel de script de contrôle, et ont les horodateurs de contrôle de script et donner le message d'erreur.

Je pourrais faire 2) pas de problème, mais je ne pense pas que ce soit le bon endroit pour mettre foo.cc.

Par contre, je ne sais pas beaucoup sur autoconf / automake, et ne sais pas comment implémenter un horodatage contrôle / message d'erreur dans configure.in (ou whereever).

Quelles sont vos suggestions, et que quelqu'un ici sait comment s'y solution 1)?

Modifier: using Résolu solution 3), ajustant la boîte à cible problématique jusqu'à ce qu'il soit capable de faire la foo.yy -> étape de foo.cc lui-même. Mon problème est résolu.

Mais je vais laisser la question ouverte - comment faire des vérifications d'horodatage / messages d'erreur compréhensibles avec autoconf / automake

Était-ce utile?

La solution

De 8.8 dans le manuel Automake:

  

Les fichiers intermédiaires générés par les termes « yacc » (ou « lex ») seront   inclus dans toute distribution qui est faite. De cette façon, l'utilisateur n'a pas   besoin d'avoir « yacc » ou « lex ».

Cela fait sonner comme si le problème que vous décrivez ne devrait pas exister.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top