aboutsummaryrefslogtreecommitdiff
path: root/ports/winnt/scripts/mkver.bat
diff options
context:
space:
mode:
Diffstat (limited to 'ports/winnt/scripts/mkver.bat')
-rwxr-xr-xports/winnt/scripts/mkver.bat439
1 files changed, 0 insertions, 439 deletions
diff --git a/ports/winnt/scripts/mkver.bat b/ports/winnt/scripts/mkver.bat
deleted file mode 100755
index 7b448299607d..000000000000
--- a/ports/winnt/scripts/mkver.bat
+++ /dev/null
@@ -1,439 +0,0 @@
-@echo off
-GOTO PROG
-
-see notes/remarks directly below this header:
-######################################################################
-#
-# Revision: mkver.bat
-# Author: Frederick Czajka
-# Date: 02/10/2000
-# Purpose: Provide a NT Shell script to replace the perl script
-# that replaced the UNIX mkver shell script.
-#
-#
-#
-# Notes: I had two goals with this script one to only use native
-# NT Shell commands and two was too emulate the PERL style
-# output. This required some work for the DATE format as
-# you will see and TIME was really tricky to get a format
-# matching PERLs!
-#
-#
-# Changes:
-# 02/23/2011 David J Taylor - Use reg instead of regedit so "run as
-# administrator" is not required.
-# 12/21/2009 Dave Hart
-# - packageinfo.sh uses prerelease= now not
-# releasecandidate=
-# 08/28/2009 Dave Hart
-# - support for building using per-compiler subdirs of winnt
-# 08/08/2006 Heiko Gerstung
-# - bugfixed point / rcpoint errors leading to a wrong
-# version string
-# - added a few cases for uppercase strings
-# 03/09/2005 Heiko Gerstung
-# - added UTC offset to version time information
-# - bugfixed several issues preventing this script to be used on NT4
-# - removed an obsolete warning
-#
-# 03/08/2005 Danny Mayer
-# - bugfixed NOBK label position
-#
-# 03/08/2005 Heiko Gerstung
-# - bugfixed BK detection and support for multiple ChangeSets
-#
-# 02/24/2005 Heiko Gerstung
-# - check if BK is installed and do not try to call it if not
-#
-#
-# 02/03/2005 Heiko Gerstung
-# - now getting NTP version from version.m4 (not configure)
-# - added BK ChangeSet revision and Openssl-Indicator (-o)
-# to the version number
-# - major rework of the time and date recognition routines
-# in order to reflect international settings and OS-
-# dependand formats
-#
-######################################################################
-
-Notes/Howtos:
-
-If you spot an error stating that bk.exe could not be found or executed
-although it is installed on your computer, you should try to add the path
-to your BK binary in your IDE configuration (for VisualStudio see
-Tools/Options/Directories/Executables).
-
-Alternatively you can create a file called 'version' in the root path of
-your ntp source tree which holds a string that is added to the version number.
-
-
-:PROG
-IF {%1} == {} GOTO USAGE
-IF {%1} == {-H} GOTO USAGE
-IF {%2} == {} GOTO USAGE
-IF {%1} == {-P} GOTO BEGIN
-
-
-
-REM *****************************************************************************************************************
-REM For any other bizarre permutation...
-REM *****************************************************************************************************************
-GOTO USAGE
-
-:BEGIN
-
-SET GENERATED_PROGRAM=%2
-
-REM *****************************************************************************************************************
-REM Reimplemented from orginal Unix Shell script
-REM *****************************************************************************************************************
- IF NOT EXIST .version ECHO 0 > .version
- FOR /F %%i IN (.version) do @SET RUN=%%i
- SET /A RUN=%RUN%+1
- ECHO %RUN% > .version
-
-REM *****************************************************************************************************************
-REM Resetting variables
-REM *****************************************************************************************************************
- SET VER=
- SET CSET=
- SET SSL=
- SET MYDATE=
- SET MYTIME=
- SET DAY=99
- SET NMM=99
- SET YEAR=0
- SET HOUR=
- SET MIN=
- SET MMIN=
- SET SEC=
- SET SUBSEC=
- SET DATEDELIM=
- SET TIMEDELIM=
- SET DATEFORMAT=
- SET TIMEFORMAT=
- SET UTC=
- SET ACTIVEBIAS=
-
-REM *****************************************************************************************************************
-REM Check if DATE and TIME environment variables are available
-REM *****************************************************************************************************************
-
- SET MYDATE=%DATE%
- SET MYTIME=%TIME%
-
- REM ** Not available (huh? Are you older than NT4SP6A, grandpa?)
- IF "%MYDATE%" == "" FOR /F "TOKENS=1 DELIMS=" %%a IN ('date/t') DO SET MYDATE=%%a
- IF "%MYTIME%" == "" FOR /F "TOKENS=1 DELIMS=" %%a IN ('time/t') DO SET MYTIME=%%a
-
-REM *****************************************************************************************************************
-REM Try to find out UTC offset
-REM *****************************************************************************************************************
-
- REM *** Start with setting a dummy value which is used when we are not able to find out the real UTC offset
- SET UTC=(LOCAL TIME)
- SET UTC_HR=
- SET UTC_MIN=
- SET UTC_SIGN=
-
- REM *** Now get the timezone settings from the registry
- reg export "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation" %TEMP%\TZ-%GENERATED_PROGRAM%.TMP
- REM was: regedit /e %TEMP%\TZ-%GENERATED_PROGRAM%.TMP "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation"
- IF NOT EXIST %TEMP%\TZ-%GENERATED_PROGRAM%.TMP GOTO NOTZINFO
-
- for /f "Tokens=1* Delims==" %%a in ('type %TEMP%\TZ-%GENERATED_PROGRAM%.TMP') do if %%a == "ActiveTimeBias" SET ACTIVEBIAS=%%b
- for /f "Tokens=1* Delims=:" %%a in ('echo %ACTIVEBIAS%') do ( SET ACTIVEBIAS=%%b & SET PARTYP=%%a )
-
- REM *** Clean up temporary file
- IF EXIST %TEMP%\TZ-%GENERATED_PROGRAM%.TMP DEL %TEMP%\TZ-%GENERATED_PROGRAM%.TMP
-
- REM *** Check if we really got a dword value from the registry ...
- IF NOT "%PARTYP%"=="dword " goto NOTZINFO
-
- REM *** Check if we are in UTC timezone, then we can avoid some stress...
- if "%ACTIVEBIAS%" == "00000000" SET UTC=(UTC) & GOTO NOTZINFO
-
- SET HI=0x%ACTIVEBIAS:~0,4%
- SET LO=0x%ACTIVEBIAS:~4,4%
-
- if "%HI%"=="0xffff" ( SET /A ACTIVEBIAS=%LO% - %HI% - 1 ) ELSE ( SET /A ACTIVEBIAS=%LO%)
- SET /A UTC_HR="%ACTIVEBIAS%/60"
- SET /A UTC_MIN="%ACTIVEBIAS% %% 60"
- SET UTC_SIGN=%ACTIVEBIAS:~0,1%
-
- REM *** check the direction in which the local timezone alters UTC time
- IF NOT "%UTC_SIGN%"=="-" SET UTC_SIGN=+
- IF "%UTC_SIGN%"=="-" SET UTC_HR=%UTC_HR:~1,2%
-
- REM *** Now turn the direction, because we need to know it from the viewpoint of UTC
- IF "%UTC_SIGN%"=="+" (SET UTC_SIGN=-) ELSE (SET UTC_SIGN=+)
-
- REM *** Put the values in a "00" format
- IF %UTC_HR% LEQ 9 SET UTC_HR=0%UTC_HR%
- IF %UTC_MIN% LEQ 9 SET UTC_MIN=0%UTC_MIN%
-
- REM *** Set up UTC offset string used in version string
- SET UTC=(UTC%UTC_SIGN%%UTC_HR%:%UTC_MIN%)
-
-
-:NOTZINFO
-echo off
-
-REM *****************************************************************************************************************
-REM Now grab the Version number out of the source code (using the packageinfo.sh file...)
-REM *****************************************************************************************************************
-
- REM First, get the main NTP version number. In recent versions this must be extracted
- REM from a packageinfo.sh file while in earlier versions the info was available from
- REM a version.m4 file.
- SET F_PACKAGEINFO_SH=..\..\..\..\packageinfo.sh
- IF EXIST %F_PACKAGEINFO_SH% goto VER_FROM_PACKAGE_INFO
- REM next two lines can go away when all windows compilers are building under
- rem ports\winnt\<compiler dir>\<binary name dir> (ports\winnt\vs2008\ntpd)
- rem rather than ports\winnt\<binary name dir> (ports\winnt\ntpd)
- SET F_PACKAGEINFO_SH=..\..\..\packageinfo.sh
- IF EXIST %F_PACKAGEINFO_SH% goto VER_FROM_PACKAGE_INFO
- goto ERRNOVERF
-
-:VER_FROM_PACKAGE_INFO
- REM Get version from packageinfo.sh file, which contains lines reading e.g.
-
- TYPE %F_PACKAGEINFO_SH% | FIND /V "rcpoint=" | FIND /V "betapoint=" | FIND "point=" > point.txt
- SET F_POINT_SH=point.txt
-
- FOR /F "eol=# TOKENS=2 DELIMS==" %%a IN ('findstr "proto=" %%F_PACKAGEINFO_SH%%') DO SET PROTO=%%a
- FOR /F "eol=# TOKENS=2 DELIMS==" %%a IN ('findstr "major=" %%F_PACKAGEINFO_SH%%') DO SET MAJOR=%%a
- FOR /F "eol=# TOKENS=2 DELIMS==" %%a IN ('findstr "minor=" %%F_PACKAGEINFO_SH%%') DO SET MINOR=%%a
-
- FOR /F "eol=# TOKENS=2 DELIMS==" %%a IN ('findstr "point=" %%F_POINT_SH%%') DO SET POINT=%%a
- IF "%POINT%"=="NEW" set POINT=
- IF NOT "%POINT%"=="" set POINT=p%POINT%
-
- FOR /F "eol=# TOKENS=2 DELIMS==" %%a IN ('findstr "betapoint=" %%F_PACKAGEINFO_SH%%') DO SET BETAPOINT=%%a
-
- FOR /F "eol=# TOKENS=2 DELIMS==" %%a IN ('findstr "rcpoint=" %%F_PACKAGEINFO_SH%%') DO SET RCPOINT=%%a
-
- FOR /F "eol=# TOKENS=2 DELIMS==" %%a IN ('findstr "special=" %%F_PACKAGEINFO_SH%%') DO SET SPECIAL=%%a
- IF NOT "%SPECIAL%"=="" set SPECIAL=-%SPECIAL%
-
- FOR /F "eol=# TOKENS=2 DELIMS==" %%a IN ('findstr "prerelease=" %%F_PACKAGEINFO_SH%%') DO SET PRERELEASE=%%a
- IF /I "%PRERELEASE%"=="beta" set PR_SUF=-beta
- IF /I "%PRERELEASE%"=="rc" set PR_SUF=-RC
-
- FOR /F "eol=# TOKENS=2 DELIMS==" %%a IN ('findstr "repotype=" %%F_PACKAGEINFO_SH%%') DO SET REPOTYPE=%%a
- IF /I "%REPOTYPE%"=="stable" set REPOTYPE=STABLE
-
- IF NOT "%REPOTYPE%"=="STABLE" SET RCPOINT=
- IF "%PR_SUF%"=="-RC" set PR_POINT=%RCPOINT%
- IF "%PR_SUF%"=="-beta" set PR_POINT=%BETAPOINT%
-
- SET VER=%PROTO%.%MAJOR%.%MINOR%%POINT%%SPECIAL%%PR_SUF%%PR_POINT%
-
- REM Now we have the version info, try to add a BK ChangeSet version number
-
- REM ** Check if BK is installed ...
- bk -R prs -hr+ -nd:I: ChangeSet 2> NUL > NUL
- IF ERRORLEVEL 1 GOTO NOBK
-
- REM ** Try to get the CSet rev directly from BK
- FOR /F "TOKENS=1 DELIMS==" %%a IN ('bk.exe -R prs -hr+ -nd:I: ChangeSet') DO @SET CSET=%%a
-
-:NOBK
- REM ** If that was not successful, we'll take a look into a version file, if available
- IF EXIST ..\..\..\..\sntp\scm-rev (
- IF "%CSET%"=="" FOR /F "TOKENS=1" %%a IN ('type ..\..\..\..\sntp\scm-rev') DO @SET CSET=%%a
- )
- REM next if block can go away once all windows compilers are building in
- REM ports\winnt\<compiler dir>\<binary name dir> (ports\winnt\vs2008\ntpd)
- IF EXIST ..\..\..\sntp\scm-rev (
- IF "%CSET%"=="" FOR /F "TOKENS=1" %%a IN ('type ..\..\..\sntp\scm-rev') DO @SET CSET=%%a
- )
-
- REM ** Now, expand our version number with the CSet revision, if we managed to get one
- IF NOT "%CSET%"=="" SET VER=%VER%@%CSET%
-
- REM We can add a "crypto" identifier (-o) if we see that Crypto support is included in our build
- REM we always include openssl on windows...
- SET VER=%VER%-o
-
-
-REM *****************************************************************************************************************
-REM Check for user settings regarding the time and date format, we use the registry to find out...
-REM *****************************************************************************************************************
-
-
- REM Any temporary files left from a previous run? Go where you belong...
- IF exist userset.reg del userset.reg
- IF exist userset.txt del userset.txt
-
- reg export "HKEY_CURRENT_USER\Control Panel\International" userset.reg
- REM was: regedit /E userset.reg "HKEY_CURRENT_USER\Control Panel\International"
- IF not exist userset.reg goto ERRNOREG
-
- rem *** convert from unicode to ascii if necessary
- type userset.reg > userset.txt
-
-
- FOR /F "TOKENS=1-9 DELIMS== " %%a IN ('findstr "iDate" userset.txt') DO SET DATEFORMAT=%%b
- FOR /F "TOKENS=1-9 DELIMS== " %%a IN ('findstr "iTime" userset.txt') DO SET TIMEFORMAT=%%b
-
- FOR /F "TOKENS=1-9 DELIMS== " %%a IN ('findstr /R "sDate\>" userset.txt') DO SET DATEDELIM=%%b
- FOR /F "TOKENS=1-9 DELIMS== " %%a IN ('findstr /R "sTime\>" userset.txt') DO SET TIMEDELIM=%%b
-
- IF "%TIMEFORMAT%"=="" GOTO ERRNOTIME
- IF "%DATEFORMAT%"=="" GOTO ERRNODATE
- IF "%TIMEDELIM%"=="" GOTO ERRNOTIME
- IF "%DATEDELIM%"=="" GOTO ERRNODATE
-
- SET TIMEDELIM=%TIMEDELIM:~1,1%
- SET DATEDELIM=%DATEDELIM:~1,1%
- SET TIMEFORMAT=%TIMEFORMAT:~1,1%
- SET DATEFORMAT=%DATEFORMAT:~1,1%
-
-REM *****************************************************************************************************************
-REM Well, well. Its time to look at the time and format it in a standard way (if possible)
-REM *****************************************************************************************************************
-
-
- FOR /F "TOKENS=1-4 DELIMS=%TIMEDELIM% " %%a IN ('echo %MYTIME%') DO SET AA=%%a&SET BB=%%b&SET CC=%%c&SET DD=%%d
-
- REM 12H Format
- IF "%TIMEFORMAT%" == "0" (
- SET HOUR=%AA%
- SET MIN=%BB%
- FOR /F "USEBACKQ TOKENS=1 DELIMS=ap" %%a IN ('%BB%') DO SET MMIN=%%a
- SET SEC=%CC%
- SET SUBSEC=%DD%
- )
-
- REM Get rid of the "a" or "p" if we have one of these in our minute string
- IF NOT "%MMIN%"=="%MIN%" FOR /F "USEBACKQ TOKENS=1 DELIMS=ap " %%a IN ('%MIN%') DO SET MIN=%%a
-
- REM 24H Format
- IF "%TIMEFORMAT%" == "1" (
- SET HOUR=%AA%
- SET MIN=%BB%
- SET SEC=%CC%
- SET SUBSEC=%DD%
- )
-
- IF "%HOUR%"=="" GOTO ERRNOTIME
- IF "%MIN%"=="" GOTO ERRNOTIME
-
- IF "%SEC%"=="" SET SEC=00
- IF "%SUBSEC%"=="" SET SUBSEC=00
-
-
-REM *****************************************************************************************************************
-REM It's time to format the date :-)
-REM *****************************************************************************************************************
-
-
- FOR /F "TOKENS=1-4 DELIMS=./- " %%a IN ('ECHO %MYDATE%') DO SET AA=%%a&SET BB=%%b&SET CC=%%c&SET DD=%%d
-
- IF "%DD%" == "" (
- REM No Day of Week in Date
- ( IF "%DATEFORMAT%" == "0" SET DOW=_&SET DAY=%BB%&SET NMM=%AA%&SET YEAR=%CC% )
- ( IF "%DATEFORMAT%" == "1" SET DOW=_&SET DAY=%AA%&SET NMM=%BB%&SET YEAR=%CC% )
- ( IF "%DATEFORMAT%" == "2" SET DOW=_&SET DAY=%CC%&SET NMM=%BB%&SET YEAR=%AA% )
- ) ELSE (
- ( IF "%DATEFORMAT%" == "0" SET DOW=%AA%&SET DAY=%CC%&SET NMM=%BB%&SET YEAR=%DD% )
- ( IF "%DATEFORMAT%" == "1" SET DOW=%AA%&SET DAY=%BB%&SET NMM=%CC%&SET YEAR=%DD% )
- ( IF "%DATEFORMAT%" == "2" SET DOW=%AA%&SET DAY=%DD%&SET NMM=%CC%&SET YEAR=%BB% )
- )
-
- REM Something went wrong, we weren't able to get a valid date
- IF NOT "%YEAR%" == "0" GOTO DATEOK
- goto ERRNODATE
-
-:DATEOK
-
- REM Clean up any temporary files we may have created...
- REM IF exist userset.reg del userset.reg
- REM IF exist userset.txt del userset.txt
-
- IF "%NMM%" == "01" SET MONTH=Jan
- IF "%NMM%" == "02" SET MONTH=Feb
- IF "%NMM%" == "03" SET MONTH=Mar
- IF "%NMM%" == "04" SET MONTH=Apr
- IF "%NMM%" == "05" SET MONTH=May
- IF "%NMM%" == "06" SET MONTH=Jun
- IF "%NMM%" == "07" SET MONTH=Jul
- IF "%NMM%" == "08" SET MONTH=Aug
- IF "%NMM%" == "09" SET MONTH=Sep
- IF "%NMM%" == "10" SET MONTH=Oct
- IF "%NMM%" == "11" SET MONTH=Nov
- IF "%NMM%" == "12" SET MONTH=Dec
-
- IF NOT {%MONTH%} == {} GOTO DATE_OK
-
- REM *** Not US date format! Assume ISO: yyyy-mm-dd
-
- FOR /F "TOKENS=1-4 DELIMS=/- " %%a IN ('date/t') DO SET DAY=%%a&SET yyyy=%%b&SET nmm=%%c&SET dd=%%d
-
- echo a=%%a b=%%b c=%%c d=%%d
- IF "%NMM%" == "01" SET MONTH=Jan
- IF "%NMM%" == "02" SET MONTH=Feb
- IF "%NMM%" == "03" SET MONTH=Mar
- IF "%NMM%" == "04" SET MONTH=Apr
- IF "%NMM%" == "05" SET MONTH=May
- IF "%NMM%" == "06" SET MONTH=Jun
- IF "%NMM%" == "07" SET MONTH=Jul
- IF "%NMM%" == "08" SET MONTH=Aug
- IF "%NMM%" == "09" SET MONTH=Sep
- IF "%NMM%" == "10" SET MONTH=Oct
- IF "%NMM%" == "11" SET MONTH=Nov
- IF "%NMM%" == "12" SET MONTH=Dec
-
-:DATE_OK
- IF "%SS" == "" SET SS="00"
-
-
-REM *****************************************************************************************************************
-REM Now create a valid version.c file ...
-REM *****************************************************************************************************************
-
- ECHO Version %VER% Build %RUN% date %MONTH%/%DAY%/%YEAR% time %HOUR%:%MIN%:%SEC% %UTC%
- ECHO char * Version = "%GENERATED_PROGRAM% %VER% %MONTH% %DAY% %HOUR%:%MIN%:%SEC% %UTC% %YEAR% (%RUN%)" ; > version.c
- GOTO EOF
-
-
-REM *****************************************************************************************************************
-REM Here are the error messages I know
-REM *****************************************************************************************************************
-:ERRNOREG
- ECHO "Error: Registry could not be read (check if reg.exe is available and works as expected)"
- GOTO EOF
-
-
-:ERRNODATE
- ECHO "Error: Dateformat unknown (check if contents of userset.txt are correctly, especially for iDate and sDate)"
- GOTO EOF
-
-:ERRNOTIME
- ECHO "Error: Timeformat unknown (check if contents of userset.txt are correctly, especially for iTime and sTime)"
- GOTO EOF
-
-:ERRNOVERF
- ECHO "Error: Version file not found (searching for ..\..\..\..\packageinfo.sh)"
- GOTO EOF
-
-
-REM *****************************************************************************************************************
-REM Show'em how to run (me)
-REM *****************************************************************************************************************
-:USAGE
-
- ECHO Usage: mkver.bat [ -P <Program Name> -H ]
- ECHO -P Database Name
- ECHO -H Help on options
-
-REM *****************************************************************************************************************
-REM All good things come to an end someday. Time to leave
-REM *****************************************************************************************************************
-:EOF
-
-REM *** Cleaning up
-IF EXIST point.txt DEL point.txt
-IF EXIST userset.txt DEL userset.txt
-IF EXIST userset.reg DEL userset.reg