GNU/Linux >> Tutoriels Linux >  >> Linux

Utiliser le caractère générique dans la règle de modèle Gnu Make ?

Supposons doc.pdf est la cible.

La règle suivante déclenche une régénération de doc.pdf chaque fois que doc.refer est mis à jour, mais est également heureux lorsque doc.refer n'existe pas du tout :

doc.pdf: doc.mom $(wildcard doc.refer)
    pdfmom -e -k < $< > [email protected]

Cependant, la règle de modèle suivante n'accomplit pas la même chose (le PDF est généré correctement, mais une reconstruction n'est pas déclenchée lors de la modification de doc.refer ):

%.pdf: %.mom Makefile $(wildcard %.refer)
    pdfmom -e -k < $< > [email protected]

Je soupçonne que le wildcard la commande est exécutée avant le % le personnage est développé. Comment puis-je contourner ce problème ?

Réponse acceptée :

La fonction GNU Make wildcard prend un modèle global de shell et l'étend aux fichiers correspondant à ce modèle. Le modèle %.refer ne contient aucun modèle de globalisation du shell.

Vous voulez probablement quelque chose comme

%.pdf: %.mom %.refer
        pdfmom -e -k < $< > [email protected]

%.pdf: %.mom
        pdfmom -e -k < $< > [email protected]

La première cible sera invoquée pour créer des fichiers PDF lorsqu'il y a un .mom et un .refer fichier disponible pour le nom de base du document. La deuxième cible sera invoquée lorsqu'il n'y a pas de .refer fichier disponible.

L'ordre de ces cibles est important.


Linux
  1. Imprimer la ligne précédente après une correspondance de modèle à l'aide de Sed ?

  2. Faites de Vim votre IDE Perl à l'aide du plugin perl-support.vim

  3. Faites de Vim votre Bash-IDE à l'aide du plugin bash-support

  4. Peux-tu le faire? Compiler des programmes C sous Linux à l'aide de la commande Make

  5. Utilisation de la sortie des commandes précédentes dans bash

Comment créer un serveur CS:GO sur un VPS Linux

Utilisation de Curl pour effectuer des requêtes API REST

Comment apporter des modifications de paramètres spécifiques à un fichier dans Vim à l'aide de Modeline

Comment effectuer une recherche de modèle dans les fichiers à l'aide de Grep

Rendez votre coquille de poisson magnifique avec Oh My Fish

Utilisation de sed pour remplacer entre un modèle spécifique