2013-07-05 3 views
2

J'ai demandé a question sur la définition de l'indicateur '-j8' globalement, et la réponse a suggéré de définir MAKEFLAGS="-j8" dans /etc/environment, mais ils ont dit que cela pourrait être un problème pour make récursif.La définition de -j8 dans MAKEFLAGS pose-t-elle des problèmes pour la création récursive?

Cependant, GNU documentation dit que -j8 seront traités d'une manière particulière et ne seront pas transmises à des invocations récursives de la marque:

L'option « -j » est un cas particulier (voir exécution parallèle) . Si vous définissez à une valeur numérique 'N' et votre système d'exploitation le prend en charge (la plupart des systèmes UNIX le feront, d'autres ne le feront généralement pas), les parents font et toutes les sous-marques communiqueront pour s'assurer qu'il y a seulement 'N' travaux s'exécutant en même temps entre eux tous. Notez que tout travail marqué comme récursif (voir Au lieu d'exécuter des recettes) ne compte pas par rapport au nombre total de tâches (sinon nous pourrions obtenir des sous-marques en cours d'exécution et il ne restera plus de place pour un travail réel!)

Le réglage MAKEFLAGS="-j8" dans /etc/environment est-il problématique ou non?

Répondre

3

Si votre système d'exploitation le supporte, ce n'est pas un problème. Si pour une raison ou pour une autre, ce n'est pas le cas, ou que votre make n'est pas gnu make, ce n'est pas une bonne idée. En outre, il n'est pas clair si vous exécutez un programme dans votre make qui exécute une autre make, que les deux marques communiquent ou non.

Questions connexes