Skip to content

dlubal-software/jom

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

jom - the parallel make tool for Windows

It's aimed to be an nmake clone with support for parallel builds.
The project's wiki is here: http://wiki.qt.io/Jom

== How to compile jom ==
Jom is a Qt program. The steps to compile jom on command line are:
    qmake
    nmake

== How to compile jom with cmake ==
We assume that everything we do happens in the folder X:\build-jom 
1. unpack these sources of jom into X:\build-jom\jom
2. add a build directory somewhere - this normally either is a
   directory on the same level as the build directory
   or a subdirectory of the source root directory.
   !!! Do not try to build from within the source directory !!!
3. switch into the build directory and run the following commands:

     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
     ...

   To take a special version of Qt, append -DQT_QMAKE_EXECUTABLE:PATH=X:\build-jom\qt\bin\qmake.exe .

   Now just run:

     X:\build-jom\build> nmake && nmake install
     ...

   If you want to begin new, just throw away the build dir.

== Running the tests ==
   To build the unit tests in jom, add the option -DJOM_ENABLE_TESTS=ON
   to the cmake line.
   To run the tests, you can simply type

    X:\build-jom\> nmake test
    ...

== Environment variables ==

Like nmake, jom reads default command line arguments from an environment variable: JOMFLAGS.
If JOMFLAGS is not set, MAKEFLAGS is read.
This is useful to set up separate flags for nmake and jom, e.g.
    set MAKEFLAGS=L
    set JOMFLAGS=Lj8

== .SYNC dependents ==

You can use the .SYNC directive on the right side of a description
block definition T to prevent jom from running all of T's dependents
in parallel.
For example the following description block adds further dependencies
between its dependents.

    all: Init Prebuild .SYNC Build .SYNC Postbuild

This adds these additional dependencies:
    Build -> Init Prebuild
    Postbuild -> Build

Now the 'Init' and 'Prebuild' targets are built before 'Build'.
 

About

No description, website, or topics provided.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 90.3%
  • Makefile 3.0%
  • GAP 2.2%
  • QMake 1.4%
  • Lex 1.2%
  • C 0.9%
  • Other 1.0%