make: ejecuta varias tareas en paralelo y espera a que se complete

Un objetivo en mi archivo MAKE es una tarea que requiere mucho tiempo y CPU. Pero puedo dividir la carga de trabajo y ejecutar la tarea varias veces en paralelo para acelerar todo el proceso.

Mi problema es que make no espera a que se completen todos los procesos.

Considere este script simple, llamadomyTask.sh:

#!/bin/bash

echo "Sleeping $1 seconds"
sleep $1
echo "$1 are over!"

Ahora, llamemos a esto desde un script bash y usemoswait esperar a que se completen todas las tareas:

#!/bin/bash

echo "START"
./myTask.sh 5 &
./myTask.sh 15 &
./myTask.sh 10 &

wait  # Wait for all tasks to complete

echo "DONE"

El resultado es el esperado:

START
Sleeping 15 seconds
Sleeping 5 seconds
Sleeping 10 seconds
5 are over!
10 are over!
15 are over!
DONE

Pero al intentar lo mismo en unMakefile:

test:
    echo "START"
    ./myTask.sh 5 &
    ./myTask.sh 15 &
    ./myTask.sh 10 &
    wait
    echo "DONE"

no funciona

START
Sleeping 5 seconds
Sleeping 15 seconds
Sleeping 10 seconds
DONE
sweber@pc:~/testwait $5 are over!
10 are over!
15 are over!

Por supuesto, podría crear múltiples objetivos que se pueden "construir" en paralelo por make, o dejar que make solo ejecute el script bash que ejecuta las tareas. Pero, ¿hay alguna manera de hacerlo más como lo que ya intenté?

Respuestas a la pregunta(2)

Su respuesta a la pregunta