anchor.diff:  :#----------------------------------------------------------------------------#
   
   :GetDefaultMakeFile
  -if exist NMakeFile (
  +%FUNCTION%
  +%UPVAR% MAKEFILE
  +set "NMAKEFILE=NMakeFile"
  +if "%IGNORE_NMAKEFILE%"=="1" set "NMAKEFILE=:" &:# An impossible name
  +if exist %NMAKEFILE% (
     set "MAKEFILE=NMakeFile"	&rem :# Default make file name
   ) else if exist All.mak (
     set "MAKEFILE=All.mak"	&rem :# Most powerful one, that can build for all MS OS versions
   ) else if exist DosWin.mak (
     set "MAKEFILE=DosWin.mak"	&rem :# Previous version of the same, more complex and less powerfull
  +) else if exist "%SPATH%\All.mak" (
  +  set "MAKEFILE="%SPATH%\All.mak""  &rem :# Most powerful one, that can build for all MS OS versions
   ) else (
     set "MAKEFILE=NMakeFile"	&rem :# Revert to the default, even though we know it's not there
   )
  -goto :eof
  +%RETURN%
   
   :#-----------------------------------------------------------------------------
   
  
positive.code: :#		    or \ is assumed to be a pseudo-target not to be logged.   *
  :#		    Added options -q and -Q to set the output capture manually.
  :#   2016-12-16 JFL Updated the batch library framework.		      *
  :#                                                                            *
  :#          Copyright 2016 Hewlett Packard Enterprise Development LP         *
  :# Licensed under the Apache 2.0 license  www.apache.org/licenses/LICENSE-2.0 *
  :#*****************************************************************************
  
  setlocal EnableExtensions EnableDelayedExpansion
  set "VERSION=2016-12-16"
  set "SCRIPT=%~nx0"				&:# Script name
  set "SPATH=%~dp0" & set "SPATH=!SPATH:~0,-1!"	&:# Script path, without the trailing \
  set  "ARG0=%~f0"				&:# Script full pathname
  
negative.code: if %MAKEDEPTH%==0 if defined LOGFILE ( :# If this is the top-level instance of make.bat, show the final result
    set GOAL=
    for %%F in ("%LASTGOAL%") do set "GOAL=%%~nF"
    :# If there's no goal, maybe the makefile itself has a rule to generate the default log file name
    if not defined GOAL (
      :# Gotcha: nmake always displays on stdout: "Started parsing rules in NMakeFile." So redirect stderr.
      :# Gotcha: The exit code does not survive the 'sub-shell' return. So test it inside, and change the sub-shell output.
      :# Gotcha: Testing variables in the subshell requires three pairs of ^. So use if errorlevel 1.
      for %%m in (%MAKE%) do set "MAKE=%%~sm" &rem :# Get the short name, else the following invokation fails
      %ECHO.D% !MAKE! /nologo /s /c /f %MAKEFILE% /x - module_name
      for /f "delims=" %%g in (
        '!MAKE! /nologo /s /c /f %MAKEFILE% /x - module_name 2^>NUL ^& if errorlevel 1 echo :'
      ) do set "GOAL=%%g"
      :# ":" is an impossible goal name, flagging the absence of target "module_name" in the makefile.
      if "!GOAL!"==":" set "GOAL="
    )
    :# If there's still no goal, use the make file name. (Provided it's not a generic makefile.)
    if not defined GOAL for %%F in (%MAKEFILE%) do if /i "%%~nxF" neq "NMakefile" if /i "%%~nxF" neq "All.mak" set GOAL=%%~nF
    :# If there's still no goal, and the %CD% is something like ...\PROGRAM\SRC, use the word %PROGRAM%
    if not defined GOAL (
      for %%f in ("!CD!") do set "CD0=%%~nxf"
  