Author: peterw Date: Fri Oct 26 16:16:27 2007 New Revision: 29897
URL: http://svn.reactos.org/svn/reactos?rev=29897&view=rev Log: - Make options.exe only write path variables if there is something to write. - Fix a bug in the way options.cmd was calling options.exe. - Move GCC environment setup to rosbe-gcc-env.cmd to support the next bullet. - Added the command 'chdefgcc' to allow easy switching of the current toolset. (automatically adjusts all include/lib/binary paths for the new location/GCC version)
Added: trunk/tools/RosBE-Windows/Root/chdefgcc.cmd (with props) trunk/tools/RosBE-Windows/Root/rosbe-gcc-env.cmd (with props) Modified: trunk/tools/RosBE-Windows/Root/Help.cmd trunk/tools/RosBE-Windows/Root/RosBE.cmd trunk/tools/RosBE-Windows/Root/RosBE.mac trunk/tools/RosBE-Windows/Root/chdefdir.cmd trunk/tools/RosBE-Windows/Root/options.cmd trunk/tools/RosBE-Windows/Root/scut.cmd trunk/tools/RosBE-Windows/Tools/config/options.c
Modified: trunk/tools/RosBE-Windows/Root/Help.cmd URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE-Windows/Root/Help.cmd?r... ============================================================================== --- trunk/tools/RosBE-Windows/Root/Help.cmd (original) +++ trunk/tools/RosBE-Windows/Root/Help.cmd Fri Oct 26 16:16:27 2007 @@ -28,6 +28,11 @@ echo current RosBE session. )
+ if exist "%_ROSBE_BASEDIR%\chdefgcc.cmd" ( + echo chdefgcc [PATH] - Change the MinGW/GCC directory for the + echo current RosBE session. + ) + echo clean [logs] - Fully clean the ReactOS source directory and/or echo the RosBE build logs.
@@ -95,6 +100,14 @@ echo Change the ReactOS source directory for the current RosBE session. echo. echo previous - Switch to the previous ReactOS source directory. + goto :EOC + ) +) +if exist "%_ROSBE_BASEDIR%\chdefgcc.cmd" ( + if /i "%1" == "chdefgcc" ( + echo Usage: chdefgcc [PATH] + echo Change the MinGW/GCC directory for the current RosBE session. + echo. goto :EOC ) )
Modified: trunk/tools/RosBE-Windows/Root/RosBE.cmd URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE-Windows/Root/RosBE.cmd?... ============================================================================== --- trunk/tools/RosBE-Windows/Root/RosBE.cmd (original) +++ trunk/tools/RosBE-Windows/Root/RosBE.cmd Fri Oct 26 16:16:27 2007 @@ -19,7 +19,8 @@ set _ROSBE_BASEDIR=%~dp0 set _ROSBE_BASEDIR=%_ROSBE_BASEDIR:~0,-1% set _ROSBE_ROSSOURCEDIR=%CD% -set _ROSBE_PREVIOUSSOURCEDIR=%_ROSBE_ROSSOURCEDIR% +set PATH=%_ROSBE_BASEDIR%\Tools;%PATH% +set _ROSBE_ORIGINALPATH=%PATH% set _ROSBE_SHOWTIME=1 set _ROSBE_WRITELOG=1 set _ROSBE_USECCACHE=0 @@ -28,6 +29,7 @@ set _ROSBE_LOGDIR=%CD%\RosBE-Logs set _ROSBE_OBJPATH= set _ROSBE_OUTPATH= + :: :: Check if the user has used the options utility and :: if so, load their options. @@ -62,16 +64,10 @@ :: Load the Base Directory from the Shortcut-txt and set it as new :: Source Directory and add PATH for Tools Folder. :: -set PATH=%_ROSBE_BASEDIR%\Tools;%PATH% -if exist "%_ROSBE_BASEDIR%\scut.cmd" (call "%_ROSBE_BASEDIR%\scut.cmd" run) - -:: -:: Display the current version of GCC, NASM, ld and make. -:: -gcc -v 2>&1 | find "gcc version" -nasm -v -ld -v -mingw32-make -v | find "GNU Make" +if exist "%_ROSBE_BASEDIR%\scut.cmd" ( + echo. + call "%_ROSBE_BASEDIR%\scut.cmd" run +)
:: :: Tell how to display the available commands. @@ -101,26 +97,18 @@ :: environment. :: :RosBE4 - :: - :: Set the correct path for the build tools and set the MinGW make. - :: - set _ROSBE_GCCVERSION=4.1.3 - set PATH=%_ROSBE_MINGWPATH%\bin;%_ROSBE_MINGWPATH%\libexec\gcc\mingw32\4.1.3;%PATH% - set _ROSBE_MINGWMAKE=%_ROSBE_MINGWPATH%\bin\mingw32-make.exe - if defined _ROSBE_OLDMODE ( - set C_INCLUDE_PATH=%_ROSBE_MINGWPATH%\include;%_ROSBE_MINGWPATH%\lib\gcc\mingw32\4.1.3\include - set CPLUS_INCLUDE_PATH=%_ROSBE_MINGWPATH%\include;%_ROSBE_MINGWPATH%\include\c++\4.1.3;%_ROSBE_MINGWPATH%\include\c++\4.1.3\mingw32;%_ROSBE_MINGWPATH%\lib\gcc\mingw32\4.1.3\include - ) - set HOST_CFLAGS=-I"%_ROSBE_MINGWPATH%\include" -I"%_ROSBE_MINGWPATH%\lib\gcc\mingw32\4.1.3\include" - set HOST_CPPFLAGS=-I"%_ROSBE_MINGWPATH%\include" -I"%_ROSBE_MINGWPATH%\include\c++\4.1.3" -I"%_ROSBE_MINGWPATH%\include\c++\4.1.3\mingw32" -I"%_ROSBE_MINGWPATH%\lib\gcc\mingw32\4.1.3\include" - set LIBRARY_PATH=%_ROSBE_MINGWPATH%\lib;%_ROSBE_MINGWPATH%\lib\gcc\mingw32\4.1.3 - echo ******************************************************************************* echo * * echo * ReactOS Build Environment %_ROSBE_VERSION% * echo * * echo ******************************************************************************* echo. + echo. + ver + :: + :: Set the correct path for the build tools and set the MinGW make. + :: + call "%_ROSBE_BASEDIR%\rosbe-gcc-env.cmd" goto :EOF
::
Modified: trunk/tools/RosBE-Windows/Root/RosBE.mac URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE-Windows/Root/RosBE.mac?... ============================================================================== --- trunk/tools/RosBE-Windows/Root/RosBE.mac (original) +++ trunk/tools/RosBE-Windows/Root/RosBE.mac Fri Oct 26 16:16:27 2007 @@ -1,11 +1,14 @@ BASEDIR = cd /d "%_ROSBE_ROSSOURCEDIR%" CHDEFDIR = "%_ROSBE_BASEDIR%\chdefdir.cmd" $* +CHDEFGCC = "%_ROSBE_BASEDIR%\chdefgcc.cmd" $* CLEAN = "%_ROSBE_BASEDIR%\Clean.cmd" $* CONFIG = "%_ROSBE_BASEDIR%\Config.cmd" $* +ENV = set HELP = "%_ROSBE_BASEDIR%\Help.cmd" $* MAKE = "%_ROSBE_BASEDIR%\Build.cmd" $* MAKEX = "%_ROSBE_BASEDIR%\Build.cmd" multi $* RADDR2LINE = "%_ROSBE_BASEDIR%\reladdr2line.cmd" $* +RENV = for /f "usebackq" %i in (`set _ROSBE_`) do @echo %i SCUT = "%_ROSBE_BASEDIR%\scut.cmd" $* SSVN = "%_ROSBE_BASEDIR%\sSVN.cmd" $* OPTIONS = "%_ROSBE_BASEDIR%\options.cmd" $*
Modified: trunk/tools/RosBE-Windows/Root/chdefdir.cmd URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE-Windows/Root/chdefdir.c... ============================================================================== --- trunk/tools/RosBE-Windows/Root/chdefdir.cmd (original) +++ trunk/tools/RosBE-Windows/Root/chdefdir.cmd Fri Oct 26 16:16:27 2007 @@ -21,15 +21,15 @@ set _1=%1 ) if /i "%_1%" == "previous" ( - set _ROSBE_ROSSOURCEDIR=%_ROSBE_PREVIOUSSOURCEDIR% + popd ) else ( if not exist "%_1%." ( echo ERROR: The path specified doesn't seem to exist. goto :EOC ) - set _ROSBE_PREVIOUSSOURCEDIR=%_ROSBE_ROSSOURCEDIR% - set _ROSBE_ROSSOURCEDIR=%_1% + pushd %_1% ) +set _ROSBE_ROSSOURCEDIR=%CD% goto :EOC
:: @@ -37,8 +37,11 @@ :: :INTERACTIVE set /p _1="Please enter a ReactOS source directory, or 'previous': " +if "%_1%" == "" ( + echo ERROR: You must enter a ReactOS source directory, or 'previous'. + goto :EOC +) goto :EOF
:EOC title ReactOS Build Environment %_ROSBE_VERSION% -cd /d "%_ROSBE_ROSSOURCEDIR%"
Added: trunk/tools/RosBE-Windows/Root/chdefgcc.cmd URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE-Windows/Root/chdefgcc.c... ============================================================================== --- trunk/tools/RosBE-Windows/Root/chdefgcc.cmd (added) +++ trunk/tools/RosBE-Windows/Root/chdefgcc.cmd Fri Oct 26 16:16:27 2007 @@ -1,0 +1,46 @@ +:: +:: PROJECT: RosBE - ReactOS Build Environment for Windows +:: LICENSE: GPL - See LICENSE.txt in the top level directory +:: FILE: Root/chdefgcc.cmd +:: PURPOSE: Tool to change the current gcc in RosBE. +:: COPYRIGHT: Copyright 2007 Daniel Reimer reimer.daniel@freenet.de +:: Peter Ward dralnix@gmail.com +:: +@echo off + +title Change the current MinGW/GCC directory... + +if not defined _ROSBE_PREVIOUSMINGWPATH ( + set _ROSBE_PREVIOUSMINGWPATH=%_ROSBE_MINGWPATH% +) + +:: +:: Parse the command line arguments. +:: +if "%1" == "" ( + call :INTERACTIVE +) else ( + set _1=%1 +) + +if not exist "%_1%." ( + echo ERROR: The path specified doesn't seem to exist. + goto :EOC +) +set _ROSBE_PREVIOUSMINGWPATH=%_ROSBE_MINGWPATH% +set _ROSBE_MINGWPATH=%_1% +echo Location: %_ROSBE_MINGWPATH% +call "%_ROSBE_BASEDIR%\rosbe-gcc-env.cmd" + +goto :EOC + +:INTERACTIVE +set /p XY="Please enter a MinGW/GCC directory: " +if "%_1%" == "" ( + echo ERROR: You must enter a MinGW/GCC directory. + goto :EOC +) +goto :EOF + +:EOC +title ReactOS Build Environment %_ROSBE_VERSION%
Propchange: trunk/tools/RosBE-Windows/Root/chdefgcc.cmd ------------------------------------------------------------------------------ svn:eol-style = native
Modified: trunk/tools/RosBE-Windows/Root/options.cmd URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE-Windows/Root/options.cm... ============================================================================== --- trunk/tools/RosBE-Windows/Root/options.cmd (original) +++ trunk/tools/RosBE-Windows/Root/options.cmd Fri Oct 26 16:16:27 2007 @@ -14,8 +14,12 @@ :: Run options.exe :: if exist "%_ROSBE_BASEDIR%\options.exe" ( - call "%_ROSBE_BASEDIR%\options.exe" - "%_ROSBE_BASEDIR%\RosBE.cmd" + pushd %_ROSBE_BASEDIR% + call options.exe + popd + if exist "%_ROSBE_BASEDIR%\rosbe-options.cmd" ( + call "%_ROSBE_BASEDIR%\rosbe-options.cmd" + ) ) else ( echo ERROR: options.exe was not found. title ReactOS Build Environment %_ROSBE_VERSION%
Added: trunk/tools/RosBE-Windows/Root/rosbe-gcc-env.cmd URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE-Windows/Root/rosbe-gcc-... ============================================================================== --- trunk/tools/RosBE-Windows/Root/rosbe-gcc-env.cmd (added) +++ trunk/tools/RosBE-Windows/Root/rosbe-gcc-env.cmd Fri Oct 26 16:16:27 2007 @@ -1,0 +1,34 @@ +:: +:: PROJECT: RosBE - ReactOS Build Environment for Windows +:: LICENSE: GPL - See LICENSE.txt in the top level directory. +:: FILE: Root/rosbe-gcc-env.cmd +:: PURPOSE: Set up the GCC 4.x.x build environment. +:: COPYRIGHT: Copyright 2007 Daniel Reimer reimer.daniel@freenet.de +:: Peter Ward dralnix@gmail.com +:: +:: +@echo off + +:: +:: Set up the GCC 4.x.x build environment. +:: +set PATH=%_ROSBE_MINGWPATH%\bin;%_ROSBE_ORIGINALPATH% +set _ROSBE_GCCVERSION= +for /f "usebackq tokens=3" %%i in (`"gcc -v 2>&1 | find "gcc version""`) do set _ROSBE_GCCVERSION=%%i +set PATH=%_ROSBE_MINGWPATH%\bin;%_ROSBE_MINGWPATH%\libexec\gcc\mingw32%_ROSBE_GCCVERSION%;%_ROSBE_ORIGINALPATH% +set _ROSBE_MINGWMAKE=%_ROSBE_MINGWPATH%\bin\mingw32-make.exe +if defined _ROSBE_OLDMODE ( + set C_INCLUDE_PATH=%_ROSBE_MINGWPATH%\include;%_ROSBE_MINGWPATH%\lib\gcc\mingw32%_ROSBE_GCCVERSION%\include + set CPLUS_INCLUDE_PATH=%_ROSBE_MINGWPATH%\include;%_ROSBE_MINGWPATH%\include\c++%_ROSBE_GCCVERSION%;%_ROSBE_MINGWPATH%\include\c++%_ROSBE_GCCVERSION%\mingw32;%_ROSBE_MINGWPATH%\lib\gcc\mingw32%_ROSBE_GCCVERSION%\include +) +set HOST_CFLAGS=-I"%_ROSBE_MINGWPATH%\include" -I"%_ROSBE_MINGWPATH%\lib\gcc\mingw32%_ROSBE_GCCVERSION%\include" +set HOST_CPPFLAGS=-I"%_ROSBE_MINGWPATH%\include" -I"%_ROSBE_MINGWPATH%\include\c++%_ROSBE_GCCVERSION%" -I"%_ROSBE_MINGWPATH%\include\c++%_ROSBE_GCCVERSION%\mingw32" -I"%_ROSBE_MINGWPATH%\lib\gcc\mingw32%_ROSBE_GCCVERSION%\include" +set LIBRARY_PATH=%_ROSBE_MINGWPATH%\lib;%_ROSBE_MINGWPATH%\lib\gcc\mingw32%_ROSBE_GCCVERSION% + +:: +:: Display the current version of GCC, NASM, ld and make. +:: +gcc -v 2>&1 | find "gcc version" +nasm -v +ld -v +mingw32-make -v | find "GNU Make"
Propchange: trunk/tools/RosBE-Windows/Root/rosbe-gcc-env.cmd ------------------------------------------------------------------------------ svn:eol-style = native
Modified: trunk/tools/RosBE-Windows/Root/scut.cmd URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE-Windows/Root/scut.cmd?r... ============================================================================== --- trunk/tools/RosBE-Windows/Root/scut.cmd (original) +++ trunk/tools/RosBE-Windows/Root/scut.cmd Fri Oct 26 16:16:27 2007 @@ -43,7 +43,6 @@ for /f "usebackq tokens=1-2 delims=," %%i in (`type "%_ROSBE_BASEDIR%\srclist.txt"`) do ( if %%i == Base ( echo Active Shortcut: %%j - echo. :: : Set new source directory, if needed. ::
Modified: trunk/tools/RosBE-Windows/Tools/config/options.c URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE-Windows/Tools/config/op... ============================================================================== --- trunk/tools/RosBE-Windows/Tools/config/options.c (original) +++ trunk/tools/RosBE-Windows/Tools/config/options.c Fri Oct 26 16:16:27 2007 @@ -108,10 +108,10 @@ fprintf(pFile, "set _ROSBE_USECCACHE=%d\n", useccache); fprintf(pFile, "set _ROSBE_STRIP=%d\n", strip); fprintf(pFile, "set _ROSBE_WRITELOG=%d\n", writelog); - fprintf(pFile, "set _ROSBE_LOGDIR=%S\n", logdir); - fprintf(pFile, "set _ROSBE_MINGWPATH=%S\n", mingwpath); - fprintf(pFile, "set _ROSBE_OBJPATH=%S\n", objdir); - fprintf(pFile, "set _ROSBE_OUTPATH=%S\n", outdir); + if (wcslen(logdir) > 0) fprintf(pFile, "set _ROSBE_LOGDIR=%S\n", logdir); + if (wcslen(mingwpath) > 0) fprintf(pFile, "set _ROSBE_MINGWPATH=%S\n", mingwpath); + if (wcslen(objdir) > 0) fprintf(pFile, "set _ROSBE_OBJPATH=%S\n", objdir); + if (wcslen(outdir) > 0) fprintf(pFile, "set _ROSBE_OUTPATH=%S\n", outdir); fclose(pFile); return TRUE; }