Mi primera pregunta (¡yay!) Es sobre gnumake y compilaciones paralelas. Aquí hay un archivo de ejemplo rápido:Construcción en paralelo con gnumake y requisitos previos
.PHONY: tool_1 tool_2 tool_3 tool_4 all tools
all: | tools
tools: | tool_2 tool_3 tool_4
tool_1:
# commands for tool 1
tool_2: | tool_1
# commands for tool 2
tool_3: | tool_1
# commands for tool 3
tool_4: | tool_1
# commands for tool 4
Si hago make -j
de este tipo, es lo que tengo aquí correcta para asegurar que los comandos para tool_1
se ejecutan exactamente una vez, y antes de make
trata de construir cualquiera de tool_[234]
?
Lo que estoy buscando es tener make -j
causa tool_1
que se construirá en primer lugar, a continuación, tool_[234]
que se construirá en paralelo, pero sin ejecutar los comandos para tool_1
tres veces. Espero que tenga sentido. Gracias por cualquier sugerencia o idea!
Parece * estar * funcionando como yo quiero, pero esta estructura paralela tiene una forma de cambiar el comportamiento basado en la carga del sistema o de máquina a máquina, etc. –