154 lines
4.8 KiB
Batchfile
154 lines
4.8 KiB
Batchfile
@setlocal
|
|
@if "%_echo%" == "" echo off
|
|
|
|
set bldtools=%~dp0
|
|
path %bldtools%;%path%
|
|
|
|
call %1 %1 %2 %3 %4 %5
|
|
|
|
set logfile=%logpath%\%~n0.log
|
|
|
|
for %%f in (%logfile%) do mkdir %%~dpf 2>nul
|
|
echo %~n0: start %date% %time% > %logfile%
|
|
call %bldtools%\setlog %loglinkpath% %logpath%
|
|
|
|
rem if the timestamp still matches, don't need to rebuild the stage
|
|
|
|
if not exist %forest%\stage\timestamp goto noStamp
|
|
if not exist %newfiles%\*.dl* goto noStamp
|
|
|
|
echo dir %newbuild%\%newexe% /tw ^| findstr /i %newexe% ^> %forest%\stage\timestamp.now >> %logfile%
|
|
dir %newbuild%\%newexe% /tw | findstr /i %newexe% > %forest%\stage\timestamp.now
|
|
echo comp1 %forest%\stage\timestamp %forest%\stage\timestamp.now >> %logfile%
|
|
type %forest%\stage\timestamp >> %logfile%
|
|
type %forest%\stage\timestamp.now >> %logfile%
|
|
comp1 %forest%\stage\timestamp %forest%\stage\timestamp.now >> %logfile%
|
|
if not errorlevel 1 goto noUpdate
|
|
|
|
:noStamp
|
|
|
|
echo if not exist %newbuild%\%newexe% goto nofiles >> %logfile%
|
|
if not exist %newbuild%\%newexe% goto nofiles
|
|
|
|
echo rd /s /q %forest%\stage >> %logfile%
|
|
rd /s /q %forest%\stage 2>nul
|
|
|
|
echo md %forest%\stage >> %logfile%
|
|
md %forest%\stage >> %logfile%
|
|
echo cd /d %forest%\stage >> %logfile%
|
|
cd /d %forest%\stage >> %logfile%
|
|
|
|
rem copy all the build files
|
|
|
|
dir %newbuild%\%newexe% /tw | findstr /i %newexe% > %forest%\stage\timestamp.tmp
|
|
|
|
echo copy %newbuild%\%newexe% >> %logfile%
|
|
copy %newbuild%\%newexe% >> %logfile%
|
|
|
|
echo if not exist %newexe% goto nofiles >> %logfile%
|
|
if not exist %newexe% goto nofiles
|
|
|
|
echo %newexe% /x:%forest%\stage\extract /u >> %logfile%
|
|
md %forest%\stage\extract
|
|
%newexe% /x:%forest%\stage\extract /u >> %logfile%
|
|
|
|
echo move extract %newfiles% >> %logfile%
|
|
move extract %newfiles% >> %logfile%
|
|
|
|
if exist %newfiles%\*.dl* goto gotfiles
|
|
|
|
:nofiles
|
|
|
|
echo %~n0: no files found at %newbuild% >> %logfile%
|
|
echo %~n0: no files found at %newbuild%
|
|
goto leave
|
|
|
|
:gotfiles
|
|
|
|
if exist extract rd extract /s /q
|
|
del %newexe%
|
|
cd %newfiles%
|
|
|
|
echo if exist %newbuild%\readmesp.htm copy %newbuild%\readmesp.htm >> %logfile%
|
|
if exist %newbuild%\readmesp.htm copy %newbuild%\readmesp.htm >> %logfile%
|
|
|
|
echo if exist %newbuild%\winxp_logo_horiz_sm.gif copy %newbuild%\winxp_logo_horiz_sm.gif >> %logfile%
|
|
if exist %newbuild%\winxp_logo_horiz_sm.gif copy %newbuild%\winxp_logo_horiz_sm.gif >> %logfile%
|
|
|
|
echo xcopy %newsymbols% symbols\ /s /h /q >> %logfile%
|
|
xcopy %newsymbols% symbols\ /s /h /q >> %logfile%
|
|
|
|
if exist %newfiles%\symbols\dll\kernel32.* goto symsdone
|
|
if exist %newfiles%\symbols\*.cab goto gotsyms
|
|
|
|
echo %~n0: no symbols found with %newbuild% >> %logfile%
|
|
rem echo %~n0: no symbols found with %newbuild%
|
|
goto symsdone
|
|
|
|
|
|
:gotsyms
|
|
|
|
cd symbols
|
|
echo perl %bldtools%\noprompt.pl %newfiles%\symbols \< symbols_sp.inf \> z.inf >> %logfile%
|
|
perl %bldtools%\noprompt.pl %newfiles%\symbols < symbols_sp.inf > z.inf
|
|
echo rundll32 advpack,LaunchINFSection z.inf,DefaultInstall.x86 >> %logfile%
|
|
rundll32 advpack,LaunchINFSection z.inf,DefaultInstall.x86
|
|
del /f /q *
|
|
cd ..
|
|
|
|
|
|
:symsdone
|
|
|
|
rem we don't need any special attribs around here
|
|
|
|
echo attrib -r -h -s * /s >> %logfile%
|
|
attrib -r -h -s * /s >> %logfile%
|
|
|
|
rem expand all the simple compressed files
|
|
|
|
echo for /r %%f in (*_) do call flat.bat %%~pf %%~nxf >> %logfile%
|
|
for /r %%f in (*_) do call flat.bat %%~pf %%~nxf >> %logfile%
|
|
|
|
|
|
rem expand all the CABs we can rebuild
|
|
rem expand into the root, but don't overwrite any existing files
|
|
rem by definition (eventually) those duplicates are identical anyway
|
|
|
|
echo for %%f in (%cablist%) do call crackcab.bat %%f >> %logfile%
|
|
for %%f in (%cablist%) do call crackcab.bat %%f >> %logfile%
|
|
|
|
|
|
rem make sure there are no attributes
|
|
|
|
echo attrib -r -h -s * /s >> %logfile%
|
|
attrib -r -h -s * /s >> %logfile%
|
|
|
|
echo tolower . /s >> %logfile%
|
|
tolower . /s >> %logfile%
|
|
|
|
echo makefest . /s >> %logfile%
|
|
makefest . /s >> %logfile%
|
|
|
|
ren %forest%\stage\timestamp.tmp timestamp
|
|
|
|
goto done
|
|
|
|
:noUpdate
|
|
|
|
echo %~n0 found %newfiles% was already current >> %logfile%
|
|
echo %~n0 found %newfiles% was already current
|
|
echo (delete %forest%\stage\timestamp to force a rebuild) >> %logfile%
|
|
echo (delete %forest%\stage\timestamp to force a rebuild)
|
|
if exist %forest%\stage\timestamp.now del %forest%\stage\timestamp.now
|
|
goto leave
|
|
|
|
:done
|
|
|
|
echo %~n0 finished %newfiles%
|
|
|
|
:leave
|
|
|
|
echo %~n0: end %date% %time% >> %logfile%
|
|
|
|
endlocal
|