2010-09-03 5 views
1

Si j'ai une règle dans mon makefile comme ceci:Si ma règle makefile modifie les répertoires, est-ce qu'elle doit être modifiée avant la fin?

subdir/object: 
    cd subdir && do_stuff_to_build_object 

Ai-je besoin d'ajouter && cd .. à la fin de la règle, de sorte que make se retrouve dans le même répertoire à la fin de l'exécuter comme commencé? Ou make exécute-t-il la règle dans un sous-shell ou se protège-t-il d'autres choses comme changer de répertoire? En d'autres termes, après l'exécution de cette règle, les règles suivantes seront-elles exécutées en subdir/ au lieu de l'endroit où je les veux?

Répondre

1

Pas sur les systèmes basés sur Unix.

l'action est effectuée par une coquille (ou, au moins, un sous-processus) géré par make, et des cd opérations qu'il effectue ne touchent pas le processus parent make.