Skip to content
  • David Rientjes's avatar
    kbuild: improve version string logic · 85a256d8
    David Rientjes authored
    
    
    The LOCALVERSION= string passed to "make" will now always be appended to
    the kernel version after CONFIG_LOCALVERSION, if it exists, regardless of
    whether CONFIG_LOCALVERSION_AUTO is set or not.  This allows users to
    uniquely identify their kernel builds with a string.
    
    If CONFIG_LOCALVERSION_AUTO is enabled, the unique SCM tag reported by
    setlocalversion (or .scmversion) is appended to the kernel version, if it
    exists.  When CONFIG_LOCALVERSION_AUTO is not enabled, a `+' is appended
    to the kernel version to represent that the kernel has been revised since
    the last release unless "make LOCALVERSION=" was used to uniquely identify
    the build.
    
    The end result is this:
    
     - when LOCALVERSION= is passed to "make", it is appended to the kernel
       version,
    
     - when CONFIG_LOCALVERSION_AUTO is enabled, a unique SCM identifier is
       appended if the respository has been revised beyond a tagged commit,
       and
    
     - when CONFIG_LOCALVERSION_AUTO is disabled, a `+' is appended if the
       repository has been revised beyond a tagged commit and LOCALVERSION=
       was not passed to "make".
    
    Examples:
    
    With CONFIG_LOCALVERSION_AUTO: "make" results in
    v2.6.32-rc4-00149-ga3ccf63.  If there are uncommited changes to the
    respository, it results in v2.6.32-rc4-00149-ga3ccf63-dirty.  If
    "make LOCALVERSION=kbuild" were used, it results in
    v2.6.32-rc4-kbuild-00149-ga3ccf63-dirty.
    
    Without CONFIG_LOCALVERSION_AUTO, "make" results in v2.6.32-rc4+
    unless the repository is at the Linux v2.6.32-rc4 commit (in which
    case the version would be v2.6.32-rc4).  If "make LOCALVERSION=kbuild"
    were used, it results in v2.6.32-rc4-kbuild.
    
    Also renames variables such as localver-auto and _localver-auto to more
    accurately describe what they represent: localver-extra and
    scm-identifier, respectively.
    
    Signed-off-by: default avatarDavid Rientjes <rientjes@google.com>
    Signed-off-by: default avatarMichal Marek <mmarek@suse.cz>
    85a256d8