La meilleure façon d'ajouter des fichiers générés à la distribution?
-
18-09-2019 - |
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
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.