@ECHO OFF :: Perform the pre-steps to build boost and set the boost path for the build file SETLOCAL SET BOOSTPATH= SET MSVCTOOLSET= SET TOOLSETCOMMAND= SET BOOSTVERSION= SET WORKPATH=%~dp0% :PARAMLOOP IF [%1]==[] ( GOTO PARAMCONTINUE ) IF NOT [%1]==[--toolset] ( SET BOOSTPATH=%1 ) IF [%1]==[--toolset] ( SET MSVCTOOLSET=%2 SHIFT ) SHIFT GOTO PARAMLOOP :PARAMCONTINUE IF [%BOOSTPATH%]==[] ( GOTO USAGE ) SET TOOLSETCOMMAND= IF NOT [%MSVCTOOLSET%]==[] ( SET TOOLSETCOMMAND=toolset=%MSVCTOOLSET% ) IF NOT EXIST "%BOOSTPATH%\boost\regex.hpp" ( GOTO BOOSTNOTFOUND ) IF NOT EXIST "%BOOSTPATH%\bjam\bin\bjam.exe" ( ECHO Building BJAM, the boost build tool PUSHD %BOOSTPATH%\tools\build\v2 CALL bootstrap.bat %BOOSTPATH%\tools\build\v2\b2 --prefix=%BOOSTPATH%\bjam install POPD ) IF NOT ERRORLEVEL 0 ( GOTO BUILDERROR ) ECHO. ECHO *************************************************************** ECHO Building tool to check boost version ECHO *************************************************************** ECHO # Temporary version of auto-generated file > %WORKPATH%\boostpath.mak ECHO # If you're seeing this version of the file, and you're not currently building boost, >> %WORKPATH%\boostpath.mak ECHO # then your buildboost.bat is failing somewhere. >> %WORKPATH%\boostpath.mak ECHO # Run BuildBoost.bat [absolute_path_to_boost] to generate this file again >> %WORKPATH%\boostpath.mak ECHO # And lookout for error messages >> %WORKPATH%\boostpath.mak ECHO BOOSTPATH=%BOOSTPATH% >> %WORKPATH%\boostpath.mak IF NOT EXIST bin md bin nmake -f getboostver.mak IF ERRORLEVEL 1 ( ECHO ****************************** ECHO ** ERROR building getboostver.exe ECHO ** Please see the error messages above, and post as much as you can to the ECHO ** Notepad++ Open Discussion forum ECHO ** http://sourceforge.net/projects/notepad-plus/forums/forum/331753 ECHO. GOTO EOF ) for /f "delims=" %%i in ('bin\getboostver.exe') do set BOOSTVERSION=%%i IF [%BOOSTVERSION%]==[] ( ECHO There was an error detecting the boost version. ECHO Please see the error messages above, and post as much as you can to the ECHO Notepad++ Open Discussion forum ECHO http://sourceforge.net/projects/notepad-plus/forums/forum/331753 ECHO. GOTO EOF ) ECHO. ECHO *************************************************************** ECHO Boost version in use: %BOOSTVERSION% ECHO *************************************************************** ECHO. ECHO. ECHO *************************************************************** ECHO Building Boost::regex ECHO *************************************************************** ECHO. PUSHD %BOOSTPATH%\libs\regex\build %BOOSTPATH%\bjam\bin\bjam %TOOLSETCOMMAND% variant=release threading=multi link=static runtime-link=static IF NOT ERRORLEVEL 0 ( GOTO BUILDERROR ) %BOOSTPATH%\bjam\bin\bjam %TOOLSETCOMMAND% variant=debug threading=multi link=static runtime-link=static IF NOT ERRORLEVEL 0 ( GOTO BUILDERROR ) IF NOT [%MSVCTOOLSET%]==[] ( GOTO TOOLSETKNOWN ) :: VS2010 IF EXIST %BOOSTPATH%\bin.v2\libs\regex\build\msvc-10.0\release\link-static\runtime-link-static\threading-multi\libboost_regex-vc100-mt-s-%BOOSTVERSION%.lib ( SET MSVCTOOLSET=msvc-10.0 ) :: VS2008 IF EXIST %BOOSTPATH%\bin.v2\libs\regex\build\msvc-9.0\release\link-static\runtime-link-static\threading-multi\libboost_regex-vc90-mt-s-%BOOSTVERSION%.lib ( SET MSVCTOOLSET=msvc-9.0 ) :: VS2005 IF EXIST %BOOSTPATH%\bin.v2\libs\regex\build\msvc-8.0\release\link-static\runtime-link-static\threading-multi\libboost_regex-vc80-mt-s-%BOOSTVERSION%.lib ( SET MSVCTOOLSET=msvc-8.0 ) IF [%MSVCTOOLSET%]==[] ( ECHO No correctly built boost regex libraries could be found. ECHO Try specifying the MSVC version on the command line. GOTO USAGE ) ECHO *********************************************** ECHO Assuming toolset in use is %MSVCTOOLSET% ECHO *********************************************** ECHO If this is not correct, specify the version on the command line with --toolset ECHO Run buildboost.bat without parameters to see the usage. :TOOLSETKNOWN :: VS2010 IF [%MSVCTOOLSET%]==[msvc-10.0] ( SET BOOSTLIBPATH=%BOOSTPATH%\bin.v2\libs\regex\build\msvc-10.0 ) :: VS2008 IF [%MSVCTOOLSET%]==[msvc-9.0] ( SET BOOSTLIBPATH=%BOOSTPATH%\bin.v2\libs\regex\build\msvc-9.0 ) :: VS2005 IF [%MSVCTOOLSET%]==[msvc-8.0] ( SET BOOSTLIBPATH=%BOOSTPATH%\bin.v2\libs\regex\build\msvc-8.0 ) :: Error case, so we try to give the user a helpful error message IF [%BOOSTLIBPATH%] == [] ( ECHO **************************************** ECHO ** ERROR ECHO ** Boost library could not be found. ECHO ** Make sure you've specified the correct boost path on the command line, ECHO ** and try adding the toolset version ECHO **************************************** GOTO USAGE ) ECHO # Autogenerated file, run BuildBoost.bat [path_to_boost] to generate > %~dp0%\boostpath.mak ECHO BOOSTPATH=%BOOSTPATH% >> %WORKPATH%\boostpath.mak ECHO BOOSTLIBPATH=%BOOSTLIBPATH% >> %WORKPATH%\boostpath.mak POPD ECHO. ECHO. ECHO Boost::regex built. ECHO. ECHO Now you need to build scintilla. ECHO. ECHO From the scintilla\win32 directory ECHO. ECHO nmake -f scintilla.mak ECHO. ECHO. GOTO EOF :BOOSTNOTFOUND ECHO Boost Path not valid. Run BuildBoost.bat with the absolute path to the directory ECHO where you unpacked your boost zip. ECHO. :USAGE ECHO. ECHO Boost is available free from www.boost.org ECHO. ECHO Unzip the file downloaded from www.boost.org, and give the absolute path ECHO as the first parameter to buildboost.bat ECHO. ECHO e.g. ECHO buildboost.bat d:\libs\boost_1_48_0 ECHO. ECHO. ECHO You can specify which version of the Visual Studio compiler to use ECHO with --toolset. ECHO Use: ECHO --toolset msvc-8.0 for Visual studio 2005 ECHO --toolset msvc-9.0 for Visual Studio 2008 ECHO --toolset msvc-10.0 for Visual Studio 2010 ECHO. ECHO. ECHO e.g. To build with boost in d:\libs\boost_1_48_0 with Visual Studio 2008 ECHO. ECHO buildboost.bat --toolset msvc-9.0 d:\libs\boost_1_48_0 ECHO. GOTO EOF :BUILDERROR ECHO There was an error building boost. Please see the messages above for details. ECHO - Have you got a clean extract from a recent boost version, such as 1.48? ECHO - Download a fresh copy from www.boost.org and extract it to a directory, ECHO and run the batch again with the name of that directory :EOF ENDLOCAL