Changes between Version 8 and Version 9 of kmk


Ignore:
Timestamp:
May 26, 2007, 9:14:59 PM (17 years ago)
Author:
bird
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • kmk

    v8 v9  
    1010
    1111The current {{{kmk}}} code contains the following changes from [wiki:'GNU make']:
     12 * Explicit multi-target rules, i.e. explicit make rules that output more than one file.
     13 * Prepend assignment operator, {{{<=}}}.
     14 * The special {{{.NOTPARALLEL}}} [wiki:goals goal] has been extended to be able to take a list of [wiki:goals] that must be executed without any parallel building going on. If no list is given, it will work like in vanilla [wiki:'GNU make'] which means the entire makefile will be executed without any parallel building. This extension is required to make the {{{-jN}}} argument useful in [wiki:kBuild].
    1215 * It has some extra predefined variables:
    1316   * {{{KMK}}} (similar to {{{MAKE}}})
     
    5457   * {{{kb-src-prop}}} (kBuild internal)
    5558   * {{{kb-src-one}}} (kBuild internal)
    56  * Explicit multi-target rules, i.e. explicit make rules that output more than one file.
    57  * Prepend assignment operator, {{{<=}}}.
    58  * It contains bugfixes for several bugs in the Windows and OS/2 ports, most importantly path case mixups, broken shell invocation, and abspath.
    59  * It has several performance improvements with respect to the kind of work [wiki:kBuild kBuild] puts make thru. Most notably, keeping name and value lengths for variables and thereby skipping a lot of {{{strlen()}}} and being able to use {{{memcpy()}}} instead of {{{strcpy()}}}, and the variable append/prepend optimization ({{{+=}}} and {{{<=}}}). The latter was a major issue with the way [wiki:kBuild kBuild] is scripted.
    6059 * A bunch of builtin utilities which will be invoked without spawning new process or shell. Most of these are taken from BSD.
    6160   * kmk_builtin_append
     
    7069   * kmk_builtin_rmdir
    7170   * kmk_builtin_printf
     71 * It contains bugfixes for several bugs in the Windows and OS/2 ports, most importantly path case mixups, broken shell invocation, and abspath.
     72 * It has several performance improvements with respect to the kind of work [wiki:kBuild kBuild] puts make thru. Most notably, keeping name and value lengths for variables and thereby skipping a lot of {{{strlen()}}} and being able to use {{{memcpy()}}} instead of {{{strcpy()}}}, and the variable append/prepend optimization ({{{+=}}} and {{{<=}}}). The latter was a major issue with the way [wiki:kBuild kBuild] is scripted.
    7273 * A new argument {{{--priority <1..5>}}} which sets the priority of the [wiki:kmk] process. 1 is idle time, 3 is normal, and 5 is highest priority.
    73  * The special {{{.NOTPARALLEL}}} [wiki:goals goal] has been extended to be able to take a list of [wiki:goals] that must be executed without any parallel building going on. If no list is given, it will work like in vanilla [wiki:'GNU make'] which means the entire makefile will be executed without any parallel building. This extension is required to make the {{{-jN}}} argument useful in [wiki:kBuild].
    74 
     74