la dépendance Makefile pour les fichiers inconnus dans le répertoire connu (pour DocBook)
-
13-09-2019 - |
Question
Dans le cadre de la construction, je suis le traitement de fichier DocBook qui produit plusieurs fichiers HTML (un fichier par chapitre).
Je veux ces fichiers post-traitement HTML et les copier ailleurs. Ces fichiers dépendent de la source DocBook, mais je ne peux pas savoir à l'avance les noms de fichiers (noms de fichiers dépendent de la source DocBook trop).
J'ai règle ce genre-des œuvres si les fichiers sont générés déjà:
www/manual/%.html: build/manual/%.html
postprocess "$<" "$@"
mais je ne sais pas comment dire make
pour les générer, si elles ne sont pas encore là. Si je viens d'ajouter la règle pour www/manual/index.html
, seul le fichier se post-traitement, pas tous.
Je suppose que je dois makedepend
pour DocBook ou peut-être une bonne astuce générique. Quelle est la solution pour cela?
La solution
Je vais supposer aveuglément GNU Make ici; sinon, des techniques similaires doivent appliquer avec une syntaxe légèrement modifiée.
Si c'était moi, j'utiliser une règle semblable à la vôtre ci-dessus, peut-être avec une liste de fichiers générée par le fonction générique
Et puis je mettrais cette règle dans un sous-makefile séparé,
Autres conseils
Essayez-vous d'écrire une règle comme «S'il n'y a pas de fichiers du tout dans le répertoire manual
puis exécutez la commande foo pour les générer »?
Une possibilité simple (un hack, étant donné que je ne sais pas l'utilisation du makefile avancé et ne propose pas d'investir temps d'apprentissage unecessarily) serait pour cette commande foo spécifiée pour créer non seulement les noms de fichiers que vous ne connaissez pas à l'avance, mais aussi pour créer un (peut-être vide) fichier dont le nom vous ne savez à l'avance, et que vous pouvez ensuite utiliser comme marqueur pour savoir si oui ou non la règle a été exécutée.