This is the changelog for jom 1.1.6, the parallel make tool.

Changes since jom 1.1.5
- Fixed a regression that led to inference rules not being applied if the target
  already had commands (QTCREATORBUG-33978).

Changes since jom 1.1.4
- Fixed compound defined() preprocessor expressions (QTCREATORBUG-24134).
- A leading hyphen in MAKEFLAGS is now ignored.
- Fixed !else if preprocessor expressions (QTCREATORBUG-32129).

Changes since jom 1.1.3
- Fixed handling of the command line option /j.
- Makefiles that do not contain targets are allowed.
- Fixed handling of macro definitions on the command line (QTCREATORBUG-22176).
- Enabled usage of paths longer than MAX_PATH (QTCREATORBUG-22848).
- Added version information to the executable (QTCREATORBUG-23290).
- Fixed directory separators in the MAKEDIR variable (QTCREATORBUG-23559).
- Fixed expansion of absolute path wildcard dependencies (QTCREATORBUG-26745).
- Fixed performance penalty when checking for dependency cycles in complex
  Makefiles (QTCREATORBUG-29412).

Changes since jom 1.1.2
- Removed the /KEEPTEMPFILES option. This option only worked for top-level make
  files anyway and was less useful than intended. Use the /U option to display
  the content of inline files instead.
- Fixed an issue where jom.exe would try to load qt.conf from drive E.
- Fixed handling of double backslash at the end of line (QTCREATORBUG-20550).
- Fixed handling of line continuations in preprocessor directives
  (QTCREATORBUG-8621, QTCREATORBUG-18001).
- Fixed the CMake project file.

Changes since jom 1.1.1
- Fixed exit code propagation in xgejom.bat and ibjom.bat (QTCREATORBUG-16619).
- Updated the CMake build system to use Qt5.
- Fixed bogus path in error message for failed targets.
- Fixed error "JobClient destroyed while still acquiring." that could be yielded
  for failed builds.
- Fixed /k option (QTCREATORBUG-17131).
- Fixed sub-jom detection for chocolatey shims (QTCREATORBUG-15494).

Changes since jom 1.1.0
- Added the special .NOTPARALLEL target that disables parallel build for the
  containing makefile.
- Fixed glitches in !include directives. Includes like <"foo.mk"> were not
  possible. Includes like "foo.mk" did not recursively search through parent
  makefiles directories.
- Introduced the JOMFLAGS environment variable. This is a MAKEFLAGS pendant.
  JOMFLAGS is useful to set up separate flags for nmake and jom.
- Renamed ibjom.cmd to ibjom.bat for consistency.
- Added xgejom.bat, a wrapper for the IncrediBuild XGE interface.
- Fixed wildcard handling for subdirectories (QTCREATORBUG-16499).
- Implemented the "build all targets" option (QTCREATORBUG-16500).

Changes since jom 1.0.16
- Restrict the number of parallel jobs in recursively called instances
  similar to GNU make's jobserver (QTCREATORBUG-10846).

Changes since jom 1.0.15
- Fix occasional hang on exit (QTCREATORBUG-14600).

Changes since jom 1.0.14
- Fix potential hang on error in a sub-jom.
- Yield error on missing !endif directives (QTCREATORBUG-14211).
- Fix ignoring exit codes greater than 255.
- Fix /DUMPGRAPHDOT option (QTCREATORBUG-14004).
- Fix $? filename macro for nonexistent targets (QTCREATORBUG-14125).
- Fix quoting of dependencies with spaces (QTCREATORBUG-12296).

Changes since jom 1.0.13
- Fix exit code forwarding. (QTCREATORBUG-11556)
- Fix file name macro modifers for $** and $?. (QTCREATORBUG-6932)
- Fix equal signs in semicolon command syntax. (QTCREATORBUG-7942)
- Fix error line numbers for inline files. (QTCREATORBUG-8451)
- Ignore macro assignments in inline files. (QTCREATORBUG-8452)
- Yield error on unexpected !ENDIF directive.
- Support wildcards in dependency lines. (QTCREATORBUG-10439)
- Use IcrediBuild's BuildConsole instead of the XGE interface in ibjom.

Changes since jom 1.0.12
- Fix spurious "Can't start command" error.
- Fix passing of -j argument to subjoms.
- Sanity check the -j argument.
- Fix regression of non-functional set command in command blocks.
- Fix handling of environment variables that would cause a syntax errors in
  makefiles.
- Fix handling of environment variables with lowercase names.

Changes since jom 1.0.11
- Performance improvements.
- Fixed whitespace in command line arguments. (QTCREATORBUG-7428)
- Enhanced responsiveness of subjom output.
- Separate output of stdout and stderr.
- Fix the output of silent commands in /n mode. (QTCREATORBUG-7170)
- Implemented the /U switch for dumping inline files.
- Fix expansion of environment variables.

Changes since jom 1.0.10
- Fix exit code for /k command line switch. (QTCREATORBUG-6987)
- Fix spurious 0x0d characters in process output. (QTCREATORBUG-6986)
- Fix process output ordering and printing of large amounts of output
  in recursive jom scenarios.
- Improved performance by caching file time stamps.

Changes since jom 1.0.9
- Fix regression that caused jom to fail on Windows XP.

Changes since jom 1.0.8
- The GNU Make option -w is now supported to print the current working
  directory before and after other processing.
- Fix crash when specifying a target for an empty makefile.
  (QTCREATORBUG-6552)
- Fix lookup for targets in the Makefile's directory. (QTCREATORBUG-6546)
- Fix handling of environment variables. (QTCREATORBUG-6578)
- Specifying an exit code with the '-' command modifier was fixed.
- Fix command modifiers in inference rules. (QTCREATORBUG-6742)
- Fix parsing of the "ignore exit code" command modifier.
- Fix (very rare) deadlock and zombie processes.
- The preprocessor directive !include <file> now looks up files in the
  include directories correctly. (QTCREATORBUG-6869)

Changes since jom 1.0.7
- Fix spawning of child processes that expect a valid stdin handle.
  E.g. xcopy couldn't be called anymore.
- CMakeList.txt was fixed (thanks to Ryan Pavlik).

Changes since jom 1.0.6
- Fix blank lines in output. (QTCREATORBUG-3974)
- Small performance improvement due to compilation with
  QT_USE_FAST_CONCATENATION and QT_USE_FAST_OPERATOR_PLUS.
- Ctrl-C handling has been revisited. Much simpler and more correct.
  Before the compiler jobs didn't get a Ctrl-C but were terminated.
- Special .SYNC dependents implemented. See README for a small description.
  (QTCREATORBUG-3257)
- Handle quoted dollar signs in inline files correctly. (QTCREATORBUG-2875)
- Respect the MAKEFLAGS environment variable. (QTCREATORBUG-5028)
- Complete detection of cmd builtins. This fixes annoying warnings when building
  with IncrediBuild.

Changes since jom 1.0.5
- Fix mean monster spawn issue.

Changes since jom 1.0.4
- Fix out of date check for pseudotargets. (QTCREATORBUG-3909)

Changes since jom 1.0.3
- Fix that -j1 wasn't passed to sub jom calls. (QTCREATORBUG-3729)
- /KEEPTEMPFILES was added for debugging purposes. (QTCREATORBUG-3852)
- Performance boost for incremental builds.
- Improved Ctrl-C handling for recursive make.

Changes since jom 1.0.2
- Support variable names with underscores. (QTCREATORBUG-3235)
- Keep order of dependencies on build. This is important for makefiles
  lacking complete dependencies. These might fail in parallel builds
  otherwise.
- Fix issues wrt environment variables. (QTCREATORBUG-3108)

Changes since jom 1.0.1
- Make target names case insensitive. (QTCREATORBUG-3037)
- Fix reading of include files without newline at the end.
  (QTBUG-15021)
- Repair the cmake project file for jom.

Changes since jom 1.0.0
- Cleaner and faster determination of targets that must be built.
- Fix incomplete up-to-date check for inference rule targets.
  (QTCREATORBUG-2713)
- Don't filter comments in inline files. (QTCREATORBUG-2874)

Changes since jom 0.9.4
- Inference rule batch mode implemented.
  This improves performance for makefiles that make heavy use of the batch
  mode, e.g. qmake generated makefiles.
- Improved command execution. No more batch file writing.
- Macro substitution implemented. Macro expansions like
  $(TARGET:suffix=d) are now possible.
- .SUFFIXES content is handled properly.
- Fixed several bugs in file name macro expansion.
- Output of concurrent processes is explicitely separated.

Changes since jom 0.9.3
- Opening files from volume mounted to NTFS directory fixed.
  (QTCREATORBUG-1475)
- Output buffering issue fixed. (QTBUG-10798)

Changes since jom 0.9.2
- Support for multiple inline files per command line added.
- Its now possible to use "." as target name. (QTCREATORBUG-1131)
- Support file name macros in the file name part of inline file defitions.
  (QTCREATORBUG-1136)
- Multiple file name macros per command line are possible now.
- Single name macro invocation was added.
  They can be invoked like this: $A instead of $(A).
- Several bugs related to file name macros have been fixed.
- Handle quoted arguments from command files correctly.

Changes since jom 0.9.1
- Fixed conditionals in preprocessor expressions. (QTCREATORBUG-1091)
- Improved parser error messages. Now we see the file, in which the
  error occurred. (QTCREATORBUG-1114)

Changes since jom 0.9.0
- Having too many rules for a target is now a warning and not an error.
- Fixed several bugs in the preprocessor expression parser, e.g.
  QTCREATORBUG-1056.

Changes since jom 0.8.9
- Reset the ERRORLEVEL to zero, if command's exit code should be ignored.
  (QTCREATORBUG-837)
- Command files can be used to pass command line options to jom.
  Usage: jom @commands.txt
- ANTLR isn't used anymore. We're using QLALR to generate the parser for
  preprocessor expressions now. This makes building jom much easier.

