blob: b67d93a32e013693dd65770df75ee4999fe92c2f [file] [log] [blame]
@echo off
echo Build CouchDB under Windows - Time to Relax v0.4
:: find our source tree from one level up from current bin
set GLAZIER=%~dp0..
path=%~dp0;%PATH%;
:: install stuff to %systemdrive%\relax which is usually C:\relax unless otherwise requested
if "%RELAX%" == "" set RELAX=%SYSTEMDRIVE%\relax
:: set these paths into the user environment for future usage
setx GLAZIER %GLAZIER%
setx RELAX %RELAX%
echo START retrieving packages...
pushd %GLAZIER%\bits
call get_bits.cmd tools
call get_bits.cmd compilers
call get_bits.cmd source
echo DONE retrieving packages
:: md5 checksums
echo START md5 checksums...
%GLAZIER%\bin\md5sum.exe --check md5sums.txt || echo FAILED: please check any missing or failed files && goto eof
echo DONE md5 checksums
:: unpack stuff
echo START unpacking tools in [%RELAX%]...
mkdir %RELAX% > NUL: 2>&1
pushd %RELAX%
:: 7zip is used for unpacking the ISO images
echo START installing 7zip...
%GLAZIER%\bits\7z465.exe /S /D=%RELAX%\7zip
echo DONE installing 7zip
:: unpack the ISOs into %RELAX%\ISOs\{name}
echo START unpacking ISOs in [%RELAX%\ISOs] ...
mkdir %RELAX%\ISOs > NUL: 2>&1
%RELAX%\7zip\7z.exe x %GLAZIER%\bits\*.iso -aos -o%RELAX%\ISOs\*
echo DONE unpacking ISOs in [%RELAX%\ISOs]
:: start installing stuff
echo START installing compilers...
echo START MS VS2008 Express...
:: TODO remove hackage that prevents installing MSSQL burning CPU and space
pushd %RELAX%\ISOs\VS2008ExpressWithSP1ENUX1504728\VCExpress\WCU\ && rd /s/q dist > NUL: 2>&1
mkdir dist
for %%i in (dotNetFramework Silverlight SMO SSE) do @move %%i dist\
cd .. && start /wait setup.exe /q /norestart
popd
echo DONE MS VS2008 Express
echo START installing Windows 7 SDK...
:: if we merge the 32 and 64 bit SDK folders first, Windows installs the right one
pushd %RELAX%\ISOs\
xcopy GRMSDKX_EN_DVD Win7SDK\ /e /y
xcopy GRMSDK_EN_DVD Win7SDK\ /e /y
win7sdk\setup.exe /q
popd
echo DONE installing Windows 7 SDK
echo START installing cygwin...
%GLAZIER%\bits\setup.exe
:: c:\cygwin
:: all users
:: store bits in d:\glazier\bits\
:: direct connection
:: http uidaho
:: defaults + all DEVEL + utils/file
echo END installing cygwin
echo START installing latest mozilla build tools...
start /wait %GLAZIER%\bits\mozillaBuildSetup-Latest.exe /S
echo DONE installing mozilla build tools
echo DONE unpacking tools in [%RELAX%]
:unpack source
echo START install wxWidgets...
start /wait %RELAX%\7zip\7z.exe x %GLAZIER%\bits\wxMSW* -aos -o%RELAX%\
echo DONE install wxWidgets
::TODO tweak .h files
echo START install ICU...
start /wait %RELAX%\7zip\7z.exe x %GLAZIER%\bits\icu* -aos -o%RELAX%\
echo DONE install ICU
echo START install vcredist...
xcopy %GLAZIER%\bits\vcredist_x86.exe %RELAX%\ /y /f
echo DONE install vcredist
:tools install
echo START junction points...
%GLAZIER%\bits\junction.exe -accepteula > NUL: 2>&1
:: TODO we want to get an env var set by VS2008 install but it doesn't exist
:: TODO until this cmd.exe dies and a new one starts up ... bugger
:: set up junction point to make finding stuff simpler
:: the sysinternals tool works on all platforms incl XP & later
::%GLAZIER%\bits\junction.exe "%RELAX%\vs90" "%VS90COMNTOOLS%\..\.."
::%GLAZIER%\bits\junction.exe "%RELAX%\SDKs" "%programfiles%\Microsoft SDKs\Windows"
:: so we move these into relax.cmd when the var is available after :eof reboot
echo END making junction points
echo START install win32 OpenSSL...
start /wait %GLAZIER%\bits\Win32OpenSSL-1_0_0a.exe /silent /sp- /suppressmsgboxes /dir=%systemdrive%\openssl
:: TODO fails on XP and 2003 but may not be needed ... or use sysinternals junction.exe or some other tool, or try with symlink only in cygwin
%GLAZIER%\bits\junction.exe %RELAX%\openssl %systemdrive%\openssl
echo DONE install win32 OpenSSL
echo START install NSIS...
start /wait %GLAZIER%\bits\nsis-2.46-setup.exe /S /D=%RELAX%\nsis
echo DONE install NSIS
echo START install Inno...
start /wait %GLAZIER%\bits\isetup-5.3.10-unicode.exe /silent /dir="%RELAX%\inno5"
echo DONE install Inno
echo START install NotepadPlus...
start /wait %GLAZIER%\bits\npp.5.7.Installer.exe /S /D=%RELAX%\npp5
echo DONE install NotepadPlus
:eof
::echo please reboot now to complete installation
::pause
::TODO shutdown -r -t 5 -y -f