[tor-commits] [torbrowser/maint-2.3] Patching for mozilla-build. start-msvc.patch will change mozilla-build to use our altered guess-msvc.bat and perform 'make -f client.mk' if a folder is given. guess-msvc-x64.bat is the standard guess-msvc.bat changed to be 64-bit aware. It redirects the registry queries to the required view of the registry.

erinn at torproject.org erinn at torproject.org
Thu Nov 10 02:59:57 UTC 2011


commit aec6689de7305d025a38fe0af7caa357b5096b96
Author: Shondoit Walker <shondoit at gmail.com>
Date:   Wed Nov 9 22:49:02 2011 +0100

    Patching for mozilla-build. start-msvc.patch will change mozilla-build to use our altered guess-msvc.bat and perform 'make -f client.mk' if a folder is given. guess-msvc-x64.bat is the standard guess-msvc.bat changed to be 64-bit aware. It redirects the registry queries to the required view of the registry.
---
 build-scripts/patch-mozilla-build.sh               |    6 +
 .../mozilla-build/guess-msvc-x64.bat               |  215 ++++++++++++++++++++
 src/current-patches/mozilla-build/start-msvc.patch |   21 ++
 3 files changed, 242 insertions(+), 0 deletions(-)

diff --git a/build-scripts/patch-mozilla-build.sh b/build-scripts/patch-mozilla-build.sh
new file mode 100644
index 0000000..ba64629
--- /dev/null
+++ b/build-scripts/patch-mozilla-build.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+#Patch the start file for the specified version.
+
+MSVC_VER=$1
+
+patch start-msvc$MSVC_VER.bat -t < start-msvc.patch || exit 1
diff --git a/src/current-patches/mozilla-build/guess-msvc-x64.bat b/src/current-patches/mozilla-build/guess-msvc-x64.bat
new file mode 100644
index 0000000..71a1f60
--- /dev/null
+++ b/src/current-patches/mozilla-build/guess-msvc-x64.bat
@@ -0,0 +1,215 @@
+REM -*- Mode: fundamental; tab-width: 8; indent-tabs-mode: 1 -*-
+ at ECHO OFF
+
+set CYGWIN=
+if not defined MOZ_NO_RESET_PATH (
+    set PATH=%SystemRoot%\System32;%SystemRoot%;%SystemRoot%\System32\Wbem
+)
+
+REM if DISPLAY is set, rxvt attempts to load libX11.dll and fails to start
+REM (see mozilla bug 376828)
+SET DISPLAY=
+
+SET INCLUDE=
+SET LIB=
+
+IF EXIST %WINDIR%\SysNative\reg.exe (
+	SET REGNATIVE=%WINDIR%\SysNative\reg.Exe
+	SET REG32=%WINDIR%\System32\reg.exe
+) ELSE (
+	SET REGNATIVE=%WINDIR%\System32\reg.exe
+	IF EXIST %WINDIR%\SysWOW64\reg.exe (
+		SET REG32=%WINDIR%\SysWOW64\reg.exe
+	) ELSE (
+		SET REG32=%WINDIR%\System32\reg.exe
+	)
+)
+
+SET MSVCROOTKEY=HKLM\SOFTWARE\Microsoft\VisualStudio
+SET MSVCEXPROOTKEY=HKLM\SOFTWARE\Microsoft\VCExpress
+
+SET MSVC6KEY=%MSVCROOTKEY%\6.0\Setup\Microsoft Visual C++
+SET MSVC71KEY=%MSVCROOTKEY%\7.1\Setup\VC
+SET MSVC8KEY=%MSVCROOTKEY%\8.0\Setup\VC
+SET MSVC8EXPRESSKEY=%MSVCEXPROOTKEY%\8.0\Setup\VC
+SET MSVC9KEY=%MSVCROOTKEY%\9.0\Setup\VC
+SET MSVC9EXPRESSKEY=%MSVCEXPROOTKEY%\9.0\Setup\VC
+SET MSVC10KEY=%MSVCROOTKEY%\10.0\Setup\VC
+SET MSVC10EXPRESSKEY=%MSVCEXPROOTKEY%\10.0\Setup\VC
+
+REM First see if we can find MSVC, then set the variable
+REM NOTE: delims=<tab><space>
+REM NOTE: run the initial REQ QUERY outside of the if() to set ERRORLEVEL correctly
+
+%REG32% QUERY "%MSVC6KEY%" /v ProductDir >nul 2>nul
+if "%VC6DIR%"=="" (
+  IF %ERRORLEVEL% EQU 0 (
+    FOR /F "tokens=2* delims=	 " %%A IN ('%REG32% QUERY "%MSVC6KEY%" /v ProductDir') DO SET VC6DIR=%%B
+  )
+)
+
+%REG32% QUERY "%MSVC71KEY%" /v ProductDir >nul 2>nul
+if "%VC71DIR%"=="" (
+  IF %ERRORLEVEL% EQU 0 (
+    FOR /F "tokens=2* delims=	 " %%A IN ('%REG32% QUERY "%MSVC71KEY%" /v ProductDir') DO SET VC71DIR=%%B
+  )
+)
+
+%REG32% QUERY "%MSVC8KEY%" /v ProductDir >nul 2>nul
+if "%VC8DIR%"=="" (
+  IF %ERRORLEVEL% EQU 0 (
+    FOR /F "tokens=2* delims=	 " %%A IN ('%REG32% QUERY "%MSVC8KEY%" /v ProductDir') DO SET VC8DIR=%%B
+  )
+)
+
+%REG32% QUERY "%MSVC8EXPRESSKEY%" /v ProductDir >nul 2>nul
+if "%VC8EXPRESSDIR%"=="" (
+  IF %ERRORLEVEL% EQU 0 (
+    FOR /F "tokens=2* delims=	 " %%A IN ('%REG32% QUERY "%MSVC8EXPRESSKEY%" /v ProductDir') DO SET VC8EXPRESSDIR=%%B
+  )
+)
+
+%REG32% QUERY "%MSVC9KEY%" /v ProductDir >nul 2>nul
+if "%VC9DIR%"=="" (
+  REM Newer SDKs (6.1, 7.0) install the VC9 compilers and set this key,
+  REM but they're functionally equivalent to the VC9 Express compilers.
+  IF %ERRORLEVEL% EQU 0 (
+    FOR /F "tokens=2* delims=	 " %%A IN ('%REG32% QUERY "%MSVC9KEY%" /v ProductDir') DO SET TEMPVC9DIR=%%B
+  )
+)
+
+REM We'll double-check for a VC9 Pro install here per the comment above.
+%REG32% QUERY "%MSVCROOTKEY%\9.0\InstalledProducts\Microsoft Visual C++" >nul 2>nul
+if NOT "%TEMPVC9DIR%"=="" (
+  IF %ERRORLEVEL% EQU 0 (
+    SET "VC9DIR=%TEMPVC9DIR%"
+  ) ELSE (
+    SET "VC9EXPRESSDIR=%TEMPVC9DIR%"
+  )
+)
+
+%REG32% QUERY "%MSVC9EXPRESSKEY%" /v ProductDir >nul 2>nul
+if "%VC9EXPRESSDIR%"=="" (
+  IF %ERRORLEVEL% EQU 0 (
+    FOR /F "tokens=2* delims=	 " %%A IN ('%REG32% QUERY "%MSVC9EXPRESSKEY%" /v ProductDir') DO SET VC9EXPRESSDIR=%%B
+  )
+)
+
+%REG32% QUERY "%MSVC10KEY%" /v ProductDir >nul 2>nul
+if "%VC10DIR%"=="" (
+  IF %ERRORLEVEL% EQU 0 (
+    FOR /F "tokens=2* delims=	 " %%A IN ('%REG32% QUERY "%MSVC10KEY%" /v ProductDir') DO SET VC10DIR=%%B
+  )
+)
+
+%REG32% QUERY "%MSVC10EXPRESSKEY%" /v ProductDir >nul 2>nul
+if "%VC8EXPRESSDIR%"=="" (
+  IF %ERRORLEVEL% EQU 0 (
+    FOR /F "tokens=2* delims=	 " %%A IN ('%REG32% QUERY "%MSVC10EXPRESSKEY%" /v ProductDir') DO SET VC10EXPRESSDIR=%%B
+  )
+)
+
+REM Look for Installed SDKs:
+SET SDKROOTKEY=HKLM\SOFTWARE\Microsoft\MicrosoftSDK\InstalledSDKs
+SET SDK2003SP1KEY=%SDKROOTKEY%\8F9E5EF3-A9A5-491B-A889-C58EFFECE8B3
+SET SDK2003SP2KEY=%SDKROOTKEY%\D2FF9F89-8AA2-4373-8A31-C838BF4DBBE1
+SET SDK6KEY=HKLM\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v6.0
+REM 6.0A comes with Visual C++ 2008. If you have 6.0 installed, even
+REM the express edition will update you to 6.0A
+SET SDK6AKEY=HKLM\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v6.0A
+SET SDK61KEY=HKLM\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v6.1
+SET SDK7KEY=HKLM\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0
+
+REM Just a base value to compare against
+SET SDKVER=0
+SET SDKMINORVER=0
+
+REM Support a maximum version of the Windows SDK to use, to support older
+REM branches and older compilers.  (Note that this is unrelated to the configure
+REM option on which version of Windows to support.)
+IF NOT DEFINED MOZ_MAXWINSDK (
+  REM Maximum WinSDK version to use; 2 digits for major, 2 for minor, 2 for revision
+  REM Revivsion is A = 01, B = 02, etc.
+  SET MOZ_MAXWINSDK=999999
+)
+
+
+%REGNATIVE% QUERY "%SDK7KEY%" /v InstallationFolder >nul 2>nul
+if "%SDKDIR%"=="" IF %MOZ_MAXWINSDK% GEQ 70000 (
+  IF %ERRORLEVEL% EQU 0 (
+    FOR /F "tokens=2* usebackq delims=	 " %%A IN (`%REGNATIVE% QUERY "%SDK7KEY%" /v InstallationFolder`) DO SET SDKDIR=%%B
+    SET SDKVER=7
+  )
+)
+
+%REGNATIVE% QUERY "%SDK61KEY%" /v InstallationFolder >nul 2>nul
+if "%SDKDIR%"=="" IF %MOZ_MAXWINSDK% GEQ 60100 (
+  IF %ERRORLEVEL% EQU 0 (
+    FOR /F "tokens=2* usebackq delims=	 " %%A IN (`%REGNATIVE% QUERY "%SDK61KEY%" /v InstallationFolder`) DO SET SDKDIR=%%B
+    SET SDKVER=6
+    SET SDKMINORVER=1
+  )
+)
+
+%REGNATIVE% QUERY "%SDK6AKEY%" /v InstallationFolder >nul 2>nul
+if "%SDKDIR%"=="" IF %MOZ_MAXWINSDK% GEQ 60001 (
+  IF %ERRORLEVEL% EQU 0 (
+    FOR /F "tokens=2* usebackq delims=	 " %%A IN (`%REGNATIVE% QUERY "%SDK6AKEY%" /v InstallationFolder`) DO SET SDKDIR=%%B
+    SET SDKVER=6
+    REM insane, I know!
+    SET SDKMINORVER=0A
+  )
+)
+
+%REGNATIVE% QUERY "%SDK6KEY%" /v InstallationFolder >nul 2>nul
+if "%SDKDIR%"=="" IF %MOZ_MAXWINSDK% GEQ 60000 (
+  IF %ERRORLEVEL% EQU 0 (
+    FOR /F "tokens=2* usebackq delims=	 " %%A IN (`%REGNATIVE% QUERY "%SDK6KEY%" /v InstallationFolder`) DO SET SDKDIR=%%B
+    SET SDKVER=6
+  )
+)
+
+REM The Vista SDK (6.0 and 6.0A) ships with a VC8 Express install
+
+if "%SDKVER%"=="6" (
+  if "%VC8EXPRESSDIR%"=="" (
+    SET VC8EXPRESSDIR=%SDKDIR%VC\
+  )
+)
+
+%REGNATIVE% QUERY "%SDK2003SP2KEY%" /v "Install Dir" >nul 2>nul
+if "%PSDKDIR%"=="" IF %MOZ_MAXWINSDK% GEQ 50000 (
+  IF %ERRORLEVEL% EQU 0 (
+    FOR /F "tokens=3* delims=	 " %%A IN ('%REGNATIVE% QUERY "%SDK2003SP2KEY%" /v "Install Dir"') DO SET PSDKDIR=%%B
+    REM arbitrary, but works for me
+    SET PSDKVER=5
+  )
+)
+
+%REGNATIVE% QUERY "%SDK2003SP1KEY%" /v "Install Dir" >nul 2>nul
+if "%PSDKDIR%"=="" IF %MOZ_MAXWINSDK% GEQ 40000 (
+  IF %ERRORLEVEL% EQU 0 (
+    FOR /F "tokens=3* delims=	 " %%A IN ('%REGNATIVE% QUERY "%SDK2003SP1KEY%" /v "Install Dir"') DO SET PSDKDIR=%%B
+    SET PSDKVER=4
+  )
+)
+
+if defined %VC6DIR% (ECHO Visual C++ 6 directory: %VC6DIR%)
+if defined %VC71DIR% (ECHO Visual C++ 7.1 directory: %VC71DIR%)
+if defined %VC8DIR% (ECHO Visual C++ 8 directory: %VC8DIR%)
+if defined %VC8EXPRESSDIR% (ECHO Visual C++ 8 Express directory: %VC8EXPRESSDIR%)
+if defined %VC9DIR% (ECHO Visual C++ 9 directory: %VC9DIR%)
+if defined %VC9EXPRESSDIR% (ECHO Visual C++ 9 Express directory: %VC9EXPRESSDIR%)
+if defined %VC10DIR% (ECHO Visual C++ 10 directory: %VC10DIR%)
+if defined %VC10EXPRESSDIR% (ECHO Visual C++ 10 Express directory: %VC10EXPRESSDIR%)
+if "%SDKDIR%"=="" (
+    SET SDKDIR=%PSDKDIR%
+    SET SDKVER=%PSDKVER%
+) else (
+    ECHO Windows SDK directory: %SDKDIR%
+    ECHO Windows SDK version: %SDKVER%.%SDKMINORVER%
+)
+if not "%PSDKDIR%"=="" (
+    ECHO Platform SDK directory: %PSDKDIR%
+    ECHO Platform SDK version: %PSDKVER%
+)
diff --git a/src/current-patches/mozilla-build/start-msvc.patch b/src/current-patches/mozilla-build/start-msvc.patch
new file mode 100644
index 0000000..6d70b86
--- /dev/null
+++ b/src/current-patches/mozilla-build/start-msvc.patch
@@ -0,0 +1,21 @@
+--- start-msvcx.bat.org	2010-08-17 23:01:48 +0200
++++ start-msvcx.bat	2011-11-04 15:28:02 +0100
+@@ -7,7 +7,7 @@
+ echo "Mozilla tools directory: %MOZBUILDDIR%"
+ 
+ REM Get MSVC paths
+-call "%MOZBUILDDIR%guess-msvc.bat"
++call "%MOZBUILDDIR%guess-msvc-x64.bat"
+ 
+ REM Use the "new" moztools-static
+ set MOZ_TOOLS=%MOZBUILDDIR%moztools
+@@ -84,4 +84,8 @@
+     )
+ )
+ 
+-start /d "%USERPROFILE%" "" "%MOZILLABUILD%"\msys\bin\bash --login -i
++if "%1"=="" (
++	start /d "%USERPROFILE%" "" "%MOZILLABUILD%"\msys\bin\bash --login -i"
++) else (
++	cd "%USERPROFILE%" && "%MOZILLABUILD%"\msys\bin\bash --login -i -c "cd "%1" && make -f client.mk"
++)





More information about the tor-commits mailing list