1
jom - the parallel make tool for Windows
2
3
"jom" is "let's go" in Malay.
4
Its aimed to be an nmake clone with support for parallel builds.
5
The project's wiki is here: http://qt-project.org/wiki/jom
6
7
== How to compile jom ==
8
This is a Qt program, so the usual steps to compile jom on command line are:
9
    qmake
10
    nmake
11
12
== How to compile jom with cmake ==
13
We assume that everything we do happens in the folder X:\build-jom 
14
1. unpack these sources of jom into X:\build-jom\jom
15
2. add a build directory somewhere - this normally either is a directory on the same level as the build directory
16
   or a subdirectory of the source root directory.
17
   !!! Do not try to build from within the source directory !!!
18
3. switch into the build directory and run the following commands:
19
20
     X:\build-jom\build> cmake X:\build-jom\jom -G "NMake Makefiles" -DCMAKE_PREFIX_PATH=X:\build-jom -DCMAKE_INSTALL_PREFIX=X:\build-jom\install
21
     ...
22
23
   To take a special version of Qt, append -DQT_QMAKE_EXECUTABLE:PATH=X:\build-jom\qt\bin\qmake.exe .
24
25
   Now just run:
26
27
     X:\build-jom\build> nmake && nmake install
28
     ...
29
30
   If you want to begin new, just throw away the build dir.
31
32
== Running the tests ==
33
   To build the unit tests in jom, add the option -DJOM_ENABLE_TESTS=ON to the cmake line.
34
   To run the tests, you can simply type
35
36
    X:\build-jom\> nmake test
37
    ...
38
39
== .SYNC dependents ==
40
41
You can use the .SYNC directive on the right side of a description block definition T to
42
prevent jom from running all of T's dependents in parallel.
43
For example the following description block adds further dependencies between its dependents.
44
45
    all: Init Prebuild .SYNC Build .SYNC Postbuild
46
47
This adds these additional dependencies:
48
    Build -> Init Prebuild
49
    Postbuild -> Build
50
51
Now the 'Init' and 'Prebuild' targets are built before 'Build'.
52