Je dois générer un .c
et un .h
à partir d'une spécification de tampon de protocole Google .proto
dans ma construction.Comment générer du code source en utilisant un outil externe de configure lui-même?
Actuellement, j'ai suivi l'approche de l'enregistrement manuel des dépendances dans mon fichier généré .h
. À savoir, j'ai ajouté plusieurs:
somefilethatincludesthegenerated.$(OBJEXT): mygenerated.h
et qui, ensemble, avec mes règles pour construire mygenerated.h
et mygenerated.c
œuvres. Je sais environ BUILT_SOURCES
mais cela ne fonctionne que pour make all
pas pour make mytarget
. J'ai donc voulu explorer la possibilité de générer les sources de configure
à la place, comme décrit dans le Automake manual.
Le AC_CONFIG_FILES
me permettrait de générer mygenerated.h
à partir d'un mygenerated.h.in
mais vraiment ce fichier n'est pas destiné à être généré à partir d'un modèle. Les fichiers doivent être générés en utilisant un outil externe appelé protoc
. Dans mon dossier Makefile.am
la règle pour construire les sources générées est:
mygenerated.c mygenerated.c: myprotofile.proto
$(PROTOC) --proto_path=$(srcdir) --c_out=$(builddir) $^
Comment obtenir quelque chose de similaire à l'intérieur lui-même configure
?. Ce que je suis après est de construire toujours les sources générées, et avant toute autre cible (BUILT_SOURCES
ne fonctionnera pas pour des objectifs autres que all
, check
, et quelques autres)
Vous devrez compiler le fichier proto pour générer les sources. Jetez un coup d'œil au manuel [protobuf] (https://developers.google.com/protocol-buffers/docs/overview). – petersv
Je le sais déjà, comme il est décrit dans la question elle-même. Maintenant, je veux compiler le fichier proto à partir du script 'configure' lui-même au lieu de le compiler dans le' Makefile' – ecerulm
pourquoi voulez-vous compiler le code dans l'étape 'configure'? 'configure' essaie vraiment de séparer les étapes de * configuration * et * construction *; tu ne devrais pas essayer de les mêler. –