2010-12-04 73 views
1

Même une fois SHELL bash au lieu de sh, ce qui suit ne fonctionne pas:Makefile while

doc: 
    while read line; do \ 
     eval echo "$$line" > $(DOC) \ 
    done < $(DOC).templ 

/bin/bash: -c: line 3: syntax error: unexpected end of file 

Ce que je suis en train de faire est d'avoir un fichier de modèle avec compréhensions de paramètres bash et tel ($(), ${}) et de le "construire" au moment de la compilation. Y a-t-il une meilleure manière de faire cela?

Répondre

4

Il vous manque un point-virgule avant fait:

doc: 
    while read line; do \ 
     eval echo "$$line" > $(DOC); \ 
    done < $(DOC).templ 
+0

Ah, merci! Bien que maintenant le fichier de sortie est vide. Edit: nevermind, a dû utiliser >> pour ajouter plutôt que>. Merci encore! – dav

2

Cette réponse pourrait venir à la fin ;-), mais je pense que un autre problème est que votre redirection de sortie est dans la mauvaise position:

doc: 
    while read line; do \ 
     eval echo "$$line"; \ 
    done < $(DOC).templ > $(DOC)