I've come up with a simple example to illustrate this problem. I think it's not so much an implicit rule problem as it is using a shell function within the makefile:

Makefile:

x=$(shell date -d $(*F) +"%H%M%S")

%.slp:
    echo $(x) ; sleep 30 ; touch $@

Running with make starts both targets simultaneously as it should:

$ make -f Makefile -j 2 today.slp yesterday.slpecho 133400 ; sleep 30 ; touch today.slp
133400
echo 133400 ; sleep 30 ; touch yesterday.slp
133400

But running with qmake only spawns a single qsh job:

$ qmake -V -cwd -- -f Makefile -j 2 today.slp yesterday.slp
qmake: *** cannot determine architecture from environment variable SGE_ARCH
           no default architecture set
echo 133523 ; sleep 30 ; touch today.slp
dynamic mode

Does the use of the shell function somehow prevent qmake from running in parallel?

Andrew Joplin


On 02/27/2014 05:35 PM, Andrew Joplin wrote:
Newbie again with a qmake question. I have several analysis jobs that I run with qmake (each rule processes data and generates some output file). Some of my makefiles have all explicit rules, and they run fine in dynamic allocation mode. But a couple newer makefiles use a couple implicit rules, and it does run on our cluster, but only one target at a time.

The syntax I'm using is:

$ qmake -V -cwd -- -f Makefile -j 20 --keep-going

I've already tried running with make instead, and it uses as many threads as I tell it. Any ideas? I'll try to work up a simplified test makefile.



_______________________________________________
users mailing list
[email protected]
https://gridengine.org/mailman/listinfo/users

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

_______________________________________________
users mailing list
[email protected]
https://gridengine.org/mailman/listinfo/users

Reply via email to