Pregunta

I have a problem using qmake (v3.82) on a open sun-grid engine (gridengine-GE2011.11) I've narrowed the problem down using the following makefile code:

export FOO = $(shell echo bar | sed 's/bar/foobar/g')

all: echo1 echo2

echo1:
    echo $(FOO)
echo2:
    echo $(FOO)

using the following command:

qmake -l arch=linux-x64 -inherit -- -j 2 -f export.mk

I get this output:

echo foobar
dynamic mode
foobar
qmake: *** remote_status: No child processes.  Stop.
qmake: *** Waiting for unfinished jobs....
qmake: *** remote_status: No child processes.  Stop.

It works without using export
It works without using a pipe in the $(shell) command
It works using FOO:=$(shell) (with a ':')
It works using -j 1 (or no parallelization) in the qmake command
It works using regular make

It's these factors together that screw up something which happens to be the rare case in my makefile.

Does anyone know what causes this or knows of a fix?

¿Fue útil?

Solución

It seems to be a bug which happens in this rare case. Best advice is to avoid this is using ':=' in stead of '=', don't pipe the shell expression, don't use $(shell), don't use export OR no -j flag. each one of these prevents this problem.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top