windows-nt/Source/XPSP1/NT/shell/comctl32/v5/redist/mkredist.bat
2020-09-26 16:20:57 +08:00

143 lines
4.3 KiB
Batchfile

@echo off
setlocal
REM It's necessary to use the IExpress and advpack.dll from X:\nt\idw instead of %windir%\system32
REM because it's the wrong version and doesn't work on alpha.
set path=%_NTBINDIR%\idw;%path%
if "%1"=="help" goto HELP_SECTION
if "%1"=="-h" goto HELP_SECTION
if "%1"=="/h" goto HELP_SECTION
if "%1"=="-help" goto HELP_SECTION
if "%1"=="/help" goto HELP_SECTION
if "%1"=="-?" goto HELP_SECTION
if "%1"=="/?" goto HELP_SECTION
if "%1"=="" goto SNIFF
if "%1"=="verbose" goto SNIFF
if "%1"=="alllang" goto SNIFF
goto SKIP_VER_SNIFF
:SNIFF
for /f "tokens=5" %%i in ('lsv.exe comc95.dll') do set COMCTL32_VERSION=%%i
for /f "tokens=5" %%i in ('lsv.exe comcnt.dll') do set COMCTL32_VERSION_NT=%%i
goto BUILD_CONTINUE
:SKIP_VER_SNIFF
set COMCTL32_VERSION=%1
set COMCTL32_VERSION_NT=%1
:BUILD_CONTINUE
if not exist comc95.dll goto ERROR_DLLS_NOT_FOUND
if not exist comcnt.dll goto ERROR_DLLS_NOT_FOUND
if not "%COMCTL32_VERSION%"=="%COMCTL32_VERSION_NT%" goto ERROR_VERSION_MISMATCH
set BUILD_OPTIONS=normal
if "%1"=="verbose" set BUILD_OPTIONS=verbose
if "%2"=="verbose" set BUILD_OPTIONS=verbose
if "%3"=="verbose" set BUILD_OPTIONS=verbose
if "%1"=="alllang" goto BUILD_ALLLANG_SECTION
if "%2"=="alllang" goto BUILD_ALLLANG_SECTION
if "%3"=="alllang" goto BUILD_ALLLANG_SECTION
:BUILD_ENGLISH_SECTION
set BLD_LANG=en
echo /***************************************************************\
echo Building Comctl32 Redistribution Package
echo .
echo Languages: English
echo Version: %COMCTL32_VERSION%
echo \****************************************************************/
if "%BLD_LANG%"=="alllang" goto ERROR_LANG
if "%BLD_LANG%"=="verbose" goto ERROR_LANG
call pack.bat %BLD_LANG% %COMCTL32_VERSION% %BUILD_OPTIONS%
goto END_SECTION
:BUILD_ALLLANG_SECTION
echo /***************************************************************\
echo Building Comctl32 Redistribution Package
echo .
echo Languages: All
echo Version: %COMCTL32_VERSION%
echo \****************************************************************/
if "%BLD_LANG%"=="alllang" goto ERROR_LANG
if "%BLD_LANG%"=="verbose" goto ERROR_LANG
for /d %%n IN (*.*) do call pack.bat %%n %COMCTL32_VERSION% %BUILD_OPTIONS%
goto END_SECTION
@rem Propagate the cabs to the parent
REM move MSIEFTP.cab ..
REM move MSIEFTP.exe ..
:HELP_SECTION
REM =================================================================
REM ================= HELP SECTION ================
REM =================================================================
REM
echo /****************************************************************\
echo Building Comctl32 Redistribution Package Help
echo .
echo Usage: MKREDIST version [verbose] [alllang] [help]
echo .
echo verbose: This will display error dialogs if the .SED file has
echo parsing errors. It will also display progress during
echo the building process in a separate window.
echo alllang: This means build all the language subdirectories.
echo help: Display this help text.
echo .
echo .
echo WARNING: We can not ship comctl32 redist packages for NT5
echo because it requires files to be signed and distributed
echo in service packs.
echo \****************************************************************/
goto END_SECTION
:ERROR_NOVER_SECTION
REM =================================================================
REM ================= ERROR SECTION ================
REM =================================================================
REM
echo No version number was specified. This is required.
goto HELP_SECTION
:ERROR_LANG
REM =================================================================
REM ================= ERROR SECTION ================
REM =================================================================
REM
echo Internal error. Could not get the correct language.
echo Language = %BLD_LANG%
goto HELP_SECTION
:ERROR_VERSION_MISMATCH
echo ERROR: The version numbers of the Win95 and WinNT versions of comctl32.dll
echo don't match. Win95=%COMCTL32_VERSION% WinNT=%COMCTL32_VERSION_NT%
goto END_SECTION
:ERROR_DLLS_NOT_FOUND
echo ERROR: In order to build the redist package, you need to copy the Win95 comctl32.dll
echo to this directory and rename it comc95.dll. You will also need to
echo do the same for comcnt.dll.
goto END_SECTION
:END_SECTION