diff --git a/README_BUILD_FIRESTORM_LINUX.txt b/README_BUILD_FIRESTORM_LINUX.txt index 38806c5ccd..c12291a73a 100755 --- a/README_BUILD_FIRESTORM_LINUX.txt +++ b/README_BUILD_FIRESTORM_LINUX.txt @@ -16,7 +16,11 @@ instead of our default autobuild.xml There are some examples of how to build FMO mailing list. We've created a non-KDU build target to make this easier. Everywhere you see "ReleaseFS" below, use "ReleaseFS_open" instead. This will perform the same build, using openjpeg instead of KDU. +Available premade firestorm-specific build targets: + ReleaseFS (includes KDU, FMOD) + ReleaseFS_open (no KDU, no FMOD) + RelWithDebInfo_open (no KDU, no FMOD) To build firestorm: @@ -26,15 +30,15 @@ Other examples: autobuild configure -c ReleaseFS # basic configuration step, don't build, just configure autobuild configure -c ReleaseFS -- --clean # clean the output area first, then configure - autobuild configure -c ReleaseFS -- --fmod --kdu # configure with fmod, kdu enabled autobuild configure -c ReleaseFS -- --chan Private-Yourname # configure with a custom channel autobuild build -c ReleaseFS --no-configure # default quick rebuild autobuild build -c ReleaseFS --no-configure -- --clean # Clean rebuild - autobuild build -c ReleaseFS -- --package # Complete a build and package it into a tarball for sharing + autobuild build -c ReleaseFS -- --package # Complete a build and package it into a tarball Any of the configure options can also be used (and do the same thing) with the build options. - +Typical LL autobuild configure options should also work, as long as they don't duplicate configuration we are +already doing. Logs: diff --git a/README_BUILD_FIRESTORM_MACOSX.txt b/README_BUILD_FIRESTORM_MACOSX.txt index dd4bb08dc0..1fc38095f6 100755 --- a/README_BUILD_FIRESTORM_MACOSX.txt +++ b/README_BUILD_FIRESTORM_MACOSX.txt @@ -1,6 +1,12 @@ Make sure xcode is installed, it's a (sometimes) free download from apple. Make sure cmake is installed, use at least a 2.8.x version. +If you are using OSX 10.5 or 10.6, Xcode 3 will be used. Output will work on all 10.5 systems and +higher. + +If you are using OSX 10.7 (ie, Lion), the build will use Xcode 4 and your output will only work on OSX 10.6 and +higher. + Insure you can build a stock viewer-development try as described in the SL wiki. Before asking for any help compiling Firestorm, make sure you can build viewer-development first. If you try and skip this step, you may receive much less help. http://wiki.secondlife.com/wiki/Compiling_the_viewer_(Mac_OS_X) @@ -15,11 +21,11 @@ instead of our default autobuild.xml There are some examples of how to build FMO mailing list. We've created a non-KDU build target to make this easier. Everywhere you see "ReleaseFS" below, use "ReleaseFS_open" instead. This will perform the same build, using openjpeg instead of KDU. +Available premade firestorm-specific build targets: -Additionally, you will need to procure an update vivox build package and place it in: - /opt/firestorm -No licenses are required for this, but it is not yet directly available. Ask someone in Firestorm for a copy, until -this can be updated. + ReleaseFS (includes KDU, FMOD) + ReleaseFS_open (no KDU, no FMOD) + RelWithDebInfo_open (no KDU, no FMOD) To build firestorm: @@ -29,13 +35,14 @@ Other examples: autobuild configure -c ReleaseFS # basic configuration step, don't build, just configure autobuild configure -c ReleaseFS -- --clean # clean the output area first, then configure - autobuild configure -c ReleaseFS -- --fmod --kdu # configure with fmod, kdu enabled autobuild configure -c ReleaseFS -- --chan Private-Yourname # configure with a custom channel autobuild build -c ReleaseFS --no-configure # default quick rebuild autobuild build -c ReleaseFS --no-configure -- --clean # Clean rebuild Any of the configure options can also be used (and do the same thing) with the build options. +Typical LL autobuild configure options should also work, as long as they don't duplicate configuration we are +already doing. Logs: diff --git a/README_BUILD_FIRESTORM_WIN32.txt b/README_BUILD_FIRESTORM_WIN32.txt index e6dc92d524..693f2fd987 100755 --- a/README_BUILD_FIRESTORM_WIN32.txt +++ b/README_BUILD_FIRESTORM_WIN32.txt @@ -6,7 +6,7 @@ Before you start configuring your Windows build system, be aware of our tested c Insure you can build a stock viewer-development try as described in the SL wiki. Before asking for any help compiling Firestorm, make sure you can build viewer-development first. If you try and skip this step, you may -receive much less help. http://wiki.secondlife.com/wiki/Viewer_2_Microsoft_Windows_Builds +receive much less help. http://wiki.secondlife.com/wiki/Viewer_2_Microsoft_Windows_Builds If you want to use licensed FMOD or KDU build libraries (they are optional) you have to provision these yourself. If you're licensing these with Phoenix/Firestorm, ask for the libraries for fmod and kdu. Put them into: @@ -30,16 +30,22 @@ After launching the VS2010 cmd shell and navigating to your firestorm code repo: autobuild build -c ReleaseFS +Other build targets you may use are: + + ReleaseFS (includes KDU, FMOD) + ReleaseFS_open (no KDU, no FMOD) + RelWithDebInfo_open (no KDU, no FMOD) + Other examples: autobuild configure -c ReleaseFS # basic configuration step, don't build, just configure autobuild configure -c ReleaseFS -- --clean # clean the output area first, then configure - autobuild configure -c ReleaseFS -- --fmod --kdu # configure with fmod, kdu enabled autobuild configure -c ReleaseFS -- --chan Private-Yourname # configure with a custom channel autobuild build -c ReleaseFS --no-configure # default quick rebuild -Any of the configure options can also be used (and do the same thing) with the build options. +If you want to set custom configuration, do this in the configure step separately from build, then run "autobuild +build -c ReleaseFS --no-configure" as a secondary step. Logs: diff --git a/autobuild.xml b/autobuild.xml index 7c3e4ccbca..462f3c8506 100755 --- a/autobuild.xml +++ b/autobuild.xml @@ -1699,6 +1699,28 @@ ReleaseFS_open + RelWithDebInfoFS_open + + configure + + arguments + + + + command + bash ../scripts/configure_firestorm.sh + options + + + --btype RelWithDebInfo + --config + --version + + + name + RelWithDebInfoFS_open + + ReleaseOS configure @@ -1934,6 +1956,33 @@ ReleaseFS_open + RelWithDebInfoFS_open + + build + + command + ../scripts/configure_firestorm.sh + options + + --build + --package + --platform darwin + --btype RelWithDebInfo + + + configure +` + options + + --platform darwin + --package + + + name + RelWithDebInfoFS_open + + + ReleaseOS build @@ -2143,6 +2192,33 @@ ReleaseFS_open + RelWithDebInfoFS_open + + build + + command + ../scripts/configure_firestorm.sh + options + + --build + --platform linux32 + --package + --btype RelWithDebInfo + + + configure +` + options + + --platform linux32 + --package + + + name + RelWithDebInfoFS_open + + + ReleaseOS @@ -2453,6 +2529,42 @@ + RelWithDebInfoFS_open + + build + + arguments + + Firestorm.sln + + command + msbuild.exe + options + + /p:Configuration=RelWithDebInfo + /flp:LogFile=logs\FirestormBuild_win32.log + /flp1:errorsonly;LogFile=logs\FirestormBuild_win32.err + /p:Platform=Win32 + /t:Build + /p:useenv=true + /verbosity:normal + /toolsversion:4.0 + /p:"VCBuildAdditionalOptions= /incremental" + + + configure + + options + + --package + --version + --platform win32 + + + name + RelWithDebInfoFS_open + + ReleaseOS build diff --git a/indra/cmake/Variables.cmake b/indra/cmake/Variables.cmake index d0608773cb..c46acb54ca 100644 --- a/indra/cmake/Variables.cmake +++ b/indra/cmake/Variables.cmake @@ -100,8 +100,8 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") # To support a different SDK update these Xcode settings: if (${XCODE_VERSION} VERSION_LESS 4.0.0) - set(CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.6.sdk) - set(CMAKE_XCODE_ATTRIBUTE_GCC_VERSION "4.0") + set(CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.5.sdk) + set(CMAKE_XCODE_ATTRIBUTE_GCC_VERSION "4.2") else (${XCODE_VERSION} VERSION_LESS 4.0.0) set(CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.6.sdk) set(CMAKE_XCODE_ATTRIBUTE_GCC_VERSION "com.apple.compilers.llvmgcc42") diff --git a/scripts/configure_firestorm.sh b/scripts/configure_firestorm.sh index 9f82564f99..6a7aee5576 100755 --- a/scripts/configure_firestorm.sh +++ b/scripts/configure_firestorm.sh @@ -35,6 +35,7 @@ WANTS_BUILD=$FALSE PLATFORM="darwin" # darwin, win32, win64, linux32, linux64 BTYPE="Release" CHANNEL="" # will be overwritten later with platform-specific values unless manually specified. +LL_ARGS_PASSTHRU="" ### ### Helper Functions @@ -56,6 +57,9 @@ showUsage() echo " --package : Build installer" echo " --fmod : Build fmod" echo " --platform : darwrin | win32 | win64 | linux32 | linux64" + echo + echo "All arguments not in the above list will be passed through to LL's configure/build" + echo } getArgs() @@ -195,9 +199,11 @@ function getoptex() esac fi done - echo "$0: error: invalid option: $o" - showUsage - exit 1 + #echo "$0: error: invalid option: $o" + LL_ARGS_PASSTHRU="$LL_ARGS_PASSTHRU $o" + return 0 + #showUsage + #exit 1 fi; fi OPTOPT="?" unset OPTARG @@ -240,12 +246,14 @@ function getopt() getArgs $* echo -e " Your platform is: '$PLATFORM'" -echo -e " KDU: `b2a $WANTS_KDU`" -echo -e " FMOD: `b2a $WANTS_FMOD`" -echo -e " PACKAGE:`b2a $WANTS_PACKAGE`" -echo -e " CLEAN: `b2a $WANTS_CLEAN`" -echo -e " BUILD: `b2a $WANTS_BUILD`" -echo -e " CONFIG: `b2a $WANTS_CONFIG`" +echo -e " KDU: `b2a $WANTS_KDU`" +echo -e " FMOD: `b2a $WANTS_FMOD`" +echo -e " PACKAGE: `b2a $WANTS_PACKAGE`" +echo -e " CLEAN: `b2a $WANTS_CLEAN`" +echo -e " BUILD: `b2a $WANTS_BUILD`" +echo -e " CONFIG: `b2a $WANTS_CONFIG`" +echo -e " PASSTHRU: $LL_ARGS_PASSTHRU" +echo -e " BTYPE: $BTYPE" echo -e " Logging to $LOG" @@ -339,10 +347,10 @@ if [ $WANTS_CONFIG -eq $TRUE ] ; then TARGET="Visual Studio 10" fi - cmake -G "$TARGET" ../indra $FMOD $KDU $PACKAGE -DUNATTENDED:BOOL=ON -DLL_TESTS:BOOL=OFF -DWORD_SIZE:STRING=32 -DCMAKE_BUILD_TYPE:STRING=$BTYPE -DROOT_PROJECT_NAME:STRING=Firestorm | tee $LOG + cmake -G "$TARGET" ../indra $FMOD $KDU $PACKAGE -DUNATTENDED:BOOL=ON -DLL_TESTS:BOOL=OFF -DWORD_SIZE:STRING=32 -DCMAKE_BUILD_TYPE:STRING=$BTYPE -DROOT_PROJECT_NAME:STRING=Firestorm $LL_ARGS_PASSTHRU | tee $LOG if [ $PLATFORM == "win32" ] ; then - ../indra/tools/vstool/VSTool.exe --solution Firestorm.sln --startup firestorm-bin --workingdir firestorm-bin "..\\..\\indra\\newview" --config Release + ../indra/tools/vstool/VSTool.exe --solution Firestorm.sln --startup firestorm-bin --workingdir firestorm-bin "..\\..\\indra\\newview" --config $BTYPE fi fi @@ -350,14 +358,14 @@ fi if [ $WANTS_BUILD -eq $TRUE ] ; then echo "Building $PLATFORM..." if [ $PLATFORM == "darwin" ] ; then - xcodebuild -configuration $BTYPE -project Firestorm.xcodeproj -sdk macosx10.6 GCC_VERSION=4.2 GCC_OPTIMIZATION_LEVEL=3 GCC_ENABLE_SSE3_EXTENSIONS=YES 2>&1 | tee -a $LOG + xcodebuild -configuration $BTYPE -project Firestorm.xcodeproj GCC_VERSION=4.2 GCC_OPTIMIZATION_LEVEL=3 GCC_ENABLE_SSE3_EXTENSIONS=YES 2>&1 | tee -a $LOG elif [ $PLATFORM == "linux32" ] ; then JOBS=`cat /proc/cpuinfo | grep processor | wc -l` make -j $JOBS | tee -a $LOG elif [ $PLATFORM == "win32" ] ; then # note: this is not used to do needing to source vsversall.bat first. Autobuild calls this directly. if [ ! -d logs ] ; then mkdir logs ; fi - msbuild.exe Firestorm.sln /flp:LogFile=logs\\FirestormBuild_win32.log /flp1:errorsonly;LogFile=logs\\FirestormBuild_win32.err /flp:LogFile=logs\\FirestormBuild_win32.log /p:Configuration=Release /p:Platform=Win32 /t:Build /p:useenv=true /verbosity:normal /toolsversion:4.0 /p:"VCBuildAdditionalOptions= /incremental" + msbuild.exe Firestorm.sln /flp:LogFile=logs\\FirestormBuild_win32.log /flp1:errorsonly;LogFile=logs\\FirestormBuild_win32.err /flp:LogFile=logs\\FirestormBuild_win32.log /p:Configuration=$BTYPE /p:Platform=Win32 /t:Build /p:useenv=true /verbosity:normal /toolsversion:4.0 /p:"VCBuildAdditionalOptions= /incremental" fi fi