Qt World Summit: Submit your Presentation

jom: building serially

  • I'm using pre-built jom 1.1.2 binaries.
    I am trying to manually adjust my nmake makefile to work well with jom. The initial portion is several libraries that need to be built in serial because they link in succession (Beyond this portion I have pieces that should build in parallel but I'm leaving these out for now.)

    I would like sub-a to build before sub-b and sub-b build before sub-c.

    I've tried modifying the all target to:
    all: sub-a .SYNC sub-b .SYNC sub-c

    I've also tried composing it like:
    a: sub-a
    ab: a sub-b
    abc: ab sub-c

    What happens in sub-c finishes compiling before sub-b and fails to link in sub-b.

    The graph for the a,ab,abc approach looks nested as i would expect but still seems to fail:

    Any suggestions on how to get this to work, or how to troubleshoot it?

  • Lifetime Qt Champion

    Hi and welcome to devnet,

    Are you originally using a qmake project for that ? Because there it's easy to setup your project to ensure the dependencies are built in the right roder.

  • What mechanisms did you have in mind? I am using qmake but I am stuck on Qt3 at the moment.

  • Lifetime Qt Champion

    Here you can find the mechanism I have in mind.

    Which version of Qt 3 are you using ?

  • Thanks, I'm on 3.3.8. I'll have to look into how that affects the makefile in the current Qt.

  • Lifetime Qt Champion

    Are you using the SUBDIR template ?

  • Yes, this makefile is of a subdirs template.

  • Lifetime Qt Champion

    Then if you configure your SUBDIR projects correctly, you don't need to fiddle with the generated Makefiles.

  • I got the impression the pro file Makefile extension like .depends wasn't implemented for the windows nmake qmake generator in 3.3.8. but I will test to confirm.

  • Yea, the 3.3.8 qmake doesn't generate the pro file dependencies for windows makefiles.

    I took a look at what Qt5 outputs and it's just like the a, ab, abc style.

    The dependencies I have go to a depth of 5 not 3. Maybe that's the issue.
    Otherwise there must be some subtlety I'm missing. Maybe it's because I have an extra layer of targets or something.

    Looks like the extra layer of targets was the issue. If I just use the generated sub-* targets and for each sub- add it's dependencies in before it's existing "makefile dependent" it seems to build via jom fine.

Log in to reply