1# 2# OpenBOR - http://www.LavaLit.com 3# ----------------------------------------------------------------------- 4# All rights reserved, see LICENSE in OpenBOR root for details. 5# 6# Copyright (c) 2004 - 2011 OpenBOR Team 7# 8 9#!/bin/bash 10# Building script for all platforms 11# build.sh by SX (SumolX@gmail.com) 12 13# Used for resetting path prior to each platform. 14export OLD_PATH=$PATH 15 16# Display Version 17function version { 18 . ./version.sh 19 make version 20 cp README ./releases/README.txt 21 cp LICENSE ./releases/LICENSE.txt 22 cp COMPILING ./releases/COMPILING.txt 23} 24 25# CleanUp Releases 26function clean { 27 make clean-releases 28} 29 30# Distribute Releases 31function distribute { 32 echo ------------------------------------------------------ 33 echo " Validating Platforms Built w/Bash" 34 echo ------------------------------------------------------ 35 echo 36 37 if ! test "releases/PSP/OpenBOR/EBOOT.PBP"; then 38 echo "PSP Platform Failed To Build!" 39 exit 1 40 fi 41 if ! test -e "releases/GP2X/OpenBOR/OpenBOR.gpe"; then 42 echo "GP2X Platform Failed To Build!" 43 exit 1 44 fi 45 if ! test -e "releases/WIZ/OpenBOR/OpenBOR.gpe"; then 46 echo "WIZ Platform Failed To Build!" 47 exit 1 48 fi 49 if ! test -e "releases/DC/OpenBOR/1ST_READ.BIN"; then 50 echo "Dreamcast Platform Failed To Build!" 51 exit 1 52 fi 53 if test -e "releases/WINDOWS/OpenBOR/OpenBOR.exe"; then 54 cd ../tools/borpak/source/ 55 . build.sh win 56 cp borpak.exe ../../../engine/releases/WINDOWS/OpenBOR/ 57 cp ../scripts/packer.bat ../../../engine/releases/WINDOWS/OpenBOR/ 58 cp ../scripts/paxplode.bat ../../../engine/releases/WINDOWS/OpenBOR/ 59 cd ../../../engine 60 else 61 echo "Windows Platform Failed To Build!" 62 exit 1 63 fi 64 if ! test -e "releases/WII/OpenBOR/boot.dol"; then 65 echo "Wii Platform Failed To Build!" 66 exit 1 67 fi 68 if ! test -e "releases/DINGOO/OpenBOR/OpenBOR.dge"; then 69 echo "Dingoo Platform Failed To Build!" 70 exit 1 71 fi 72 if test -e "releases/LINUX/OpenBOR/OpenBOR"; then 73 cd ../tools/borpak/source/ 74 . build.sh lin 75 cp borpak ../../../engine/releases/LINUX/OpenBOR/ 76 cp ../scripts/packer ../../../engine/releases/LINUX/OpenBOR/ 77 cp ../scripts/paxplode ../../../engine/releases/LINUX/OpenBOR/ 78 cd ../../../engine 79 else 80 if [ `echo $HOST_PLATFORM | grep -o "Linux"` ]; then 81 echo "Linux Platform Failed To Build!" 82 exit 1 83 fi 84 fi 85 if test -e "releases/DARWIN/OpenBOR.app/Contents/MacOS/OpenBOR"; then 86 cd ../tools/borpak/source/ 87 . build.sh mac 88 cp borpak ../../../engine/releases/DARWIN/OpenBOR.app/Contents/Resources/ 89 cp ../scripts/packer ../../../engine/releases/DARWIN/OpenBOR.app/Contents/Resources/ 90 cp ../scripts/paxplode ../../../engine/releases/DARWIN/OpenBOR.app/Contents/Resources/ 91 cd ../../../engine 92 else 93 echo "Darwin Platform Failed To Build!" 94 exit 1 95 fi 96 97 echo "All Platforms Created Successfully" 98 if ! test "$BUILDBATCH"; then 99 svn log --verbose > ./releases/VERSION_INFO.txt 100 7za a -t7z -mx9 -r -x!.svn "./releases/OpenBOR $VERSION.7z" ./releases/* 101 fi 102 echo 103} 104 105# PSP Environment && Compile 106function psp { 107 export PATH=$OLD_PATH 108 . ./environ.sh 1 109 if test $PSPDEV; then 110 make clean BUILD_PSP=1 111 make BUILD_PSP=1 112 if test -f "./EBOOT.PBP"; then 113 if test ! -e "./releases/PSP"; then 114 mkdir ./releases/PSP 115 mkdir ./releases/PSP/OpenBOR 116 mkdir ./releases/PSP/OpenBOR/Images 117 mkdir ./releases/PSP/OpenBOR/Logs 118 mkdir ./releases/PSP/OpenBOR/Paks 119 mkdir ./releases/PSP/OpenBOR/Saves 120 mkdir ./releases/PSP/OpenBOR/Modules 121 fi 122 mv EBOOT.PBP ./releases/PSP/OpenBOR/ 123 mv OpenBOR.elf ./releases/PSP/OpenBOR/Modules/ 124 cp ./psp/dvemgr/dvemgr.prx ./releases/PSP/OpenBOR/Modules/ 125 cp ./psp/kernel/kernel.prx ./releases/PSP/OpenBOR/Modules/ 126 cp ./psp/control/control.prx ./releases/PSP/OpenBOR/Modules/ 127 cp ./psp/exception/exception.prx ./releases/PSP/OpenBOR/Modules/ 128 cp ./resources/OpenBOR_Menu_480x272_Sony.png ./releases/PSP/OpenBOR/Images/Menu.png 129 cp ./resources/OpenBOR_Logo_480x272.png ./releases/PSP/OpenBOR/Images/Loading.png 130 fi 131 make clean BUILD_PSP=1 132 fi 133} 134 135# Gp2x Environment && Compile 136function gp2x { 137 export PATH=$OLD_PATH 138 . ./environ.sh 3 139 if test $GP2XDEV; then 140 make clean BUILD_GP2X=1 141 make BUILD_GP2X=1 142 if test -f "./OpenBOR.gpe"; then 143 if test ! -e "./releases/GP2X"; then 144 mkdir ./releases/GP2X 145 mkdir ./releases/GP2X/OpenBOR 146 mkdir ./releases/GP2X/OpenBOR/Logs 147 mkdir ./releases/GP2X/OpenBOR/Paks 148 mkdir ./releases/GP2X/OpenBOR/Saves 149 mkdir ./releases/GP2X/OpenBOR/ScreenShots 150 fi 151 cp ./sdl/gp2x/modules/mmuhack.o ./releases/GP2X/OpenBOR/ 152 mv OpenBOR.gpe ./releases/GP2X/OpenBOR/ 153 fi 154 make clean BUILD_GP2X=1 155 fi 156} 157 158# Linux Environment && Compile (common to all architectures) 159function linux { 160 export PATH=$OLD_PATH 161 export GCC_TARGET=$1 162 export TARGET_ARCH=$2 163 . ./environ.sh 4 164 if test $LNXDEV; then 165 if [[ ! $BUILD_DEBUG ]] ; then 166 make clean BUILD_LINUX=1 167 elif [[ "$TARGET_ARCH" == "amd64" ]] ; then 168 export NO_RAM_DEBUGGER=1 169 fi 170 make BUILD_LINUX=1 171 if test -f "./OpenBOR"; then 172 if test ! -e "./releases/$3"; then 173 mkdir ./releases/$3 174 mkdir ./releases/$3/OpenBOR 175 mkdir ./releases/$3/OpenBOR/Logs 176 mkdir ./releases/$3/OpenBOR/Paks 177 mkdir ./releases/$3/OpenBOR/Saves 178 mkdir ./releases/$3/OpenBOR/ScreenShots 179 fi 180 mv OpenBOR ./releases/$3/OpenBOR 181 echo "moved binary to ./releases/$3/ !" 182 fi 183 if [[ ! $BUILD_DEBUG ]] ; then 184 make clean BUILD_LINUX=1 185 fi 186 fi 187 [ $LNXDEV ] 188} 189 190# Compile for Linux under various architectures 191function linux_x86 { 192 if [ `uname -s | grep -o "Linux"` ]; then 193 linux i.86-.*linux.* x86 LINUX || # try standard 32-bit GCC 194 [ `gcc -dumpmachine | grep -o x86_64-.*linux.*` ] && [ `gcc -print-multi-lib | grep -o '@m32'` ] && # check for x86_64 GCC with 32-bit multilib 195 linux x86_64-.*linux.* x86 LINUX # try 64-bit compiler with multilib 196 fi 197} 198 199function linux_amd64 { 200 if [ `uname -s | grep -o "Linux"` ]; then 201 linux x86_64-.*linux.* amd64 LINUX_AMD64 || # try standard 64-bit GCC 202 [ `gcc -dumpmachine | grep -o i.86-.*linux.*` ] && [ `gcc -print-multi-lib | grep -o '@m64'` ] && # check for x86 GCC with 64-bit multilib 203 linux i.86-.*linux.* amd64 LINUX_AMD64 # try 32-bit compiler with multilib 204 fi 205} 206 207function linux_something { 208 if [ ! $1 -o $1 = x86 ]; then 209 linux_x86 210 elif [ $1 = amd64 ]; then 211 linux_amd64 212 else 213 echo "Error: unknown Linux architecture '$1'" 214 fi 215} 216 217# Windows Environment && Compile 218function windows { 219 export PATH=$OLD_PATH 220 . ./environ.sh 5 221 if test $WINDEV; then 222 make clean BUILD_WIN=1 223 make BUILD_WIN=1 224 if test -f "./OpenBOR.exe"; then 225 if test ! -e "./releases/WINDOWS" ; then 226 mkdir ./releases/WINDOWS 227 mkdir ./releases/WINDOWS/OpenBOR 228 mkdir ./releases/WINDOWS/OpenBOR/Logs 229 mkdir ./releases/WINDOWS/OpenBOR/Paks 230 mkdir ./releases/WINDOWS/OpenBOR/Saves 231 mkdir ./releases/WINDOWS/OpenBOR/ScreenShots 232 fi 233 mv OpenBOR.exe ./releases/WINDOWS/OpenBOR 234 fi 235 make clean BUILD_WIN=1 236 fi 237} 238 239# Dreamcast Environment && Compile 240function dreamcast { 241 export PATH=$OLD_PATH 242 . ./environ.sh 6 243 if test $KOS_BASE; then 244 make clean BUILD_DC=1 245 make BUILD_DC=1 246 if test -f "./1ST_READ.BIN"; then 247 if test ! -e "./releases/DC" ; then 248 mkdir ./releases/DC 249 mkdir ./releases/DC/OpenBOR 250 fi 251 mv 1ST_READ.BIN ./releases/DC/OpenBOR/ 252 fi 253 make clean BUILD_DC=1 254 fi 255} 256 257# Wii Environment && Compile 258function wii { 259 export PATH=$OLD_PATH 260 . ./environ.sh 7 261 if test $DEVKITPPC; then 262 make clean BUILD_WII=1 263 make BUILD_WII=1 264 if test -f "./boot.dol"; then 265 if test ! -e "./releases/WII" ; then 266 mkdir ./releases/WII 267 mkdir ./releases/WII/OpenBOR 268 mkdir ./releases/WII/OpenBOR/Logs 269 mkdir ./releases/WII/OpenBOR/Paks 270 mkdir ./releases/WII/OpenBOR/Saves 271 mkdir ./releases/WII/OpenBOR/ScreenShots 272 fi 273 mv boot.dol ./releases/WII/OpenBOR/ 274 cp ./resources/meta.xml ./releases/WII/OpenBOR 275 cp ./resources/OpenBOR_Icon_128x48.png ./releases/WII/OpenBOR/icon.png 276 fi 277 make clean BUILD_WII=1 278 fi 279} 280 281# Dingoo Environment && Compile 282function dingoo { 283 export PATH=$OLD_PATH 284 . ./environ.sh 8 285 if test $DINGUX_TOOLCHAIN; then 286 make clean BUILD_DINGOO=1 287 make BUILD_DINGOO=1 288 if test -f "OpenBOR.dge"; then 289 if test ! -e "./releases/DINGOO" ; then 290 mkdir ./releases/DINGOO 291 mkdir ./releases/DINGOO/OpenBOR 292 mkdir ./releases/DINGOO/OpenBOR/Logs 293 mkdir ./releases/DINGOO/OpenBOR/Paks 294 mkdir ./releases/DINGOO/OpenBOR/Saves 295 mkdir ./releases/DINGOO/OpenBOR/ScreenShots 296 fi 297 mv OpenBOR.dge ./releases/DINGOO/OpenBOR/ 298 fi 299 make clean BUILD_DINGOO=1 300 fi 301} 302 303# WIZ Environment && Compile 304function wiz { 305 export PATH=$OLD_PATH 306 . ./environ.sh 9 307 if test $WIZDEV; then 308 make clean BUILD_WIZ=1 309 make BUILD_WIZ=1 310 if test -f "./OpenBOR.gpe"; then 311 if test ! -e "./releases/WIZ"; then 312 mkdir ./releases/WIZ 313 mkdir ./releases/WIZ/OpenBOR 314 mkdir ./releases/WIZ/OpenBOR/Logs 315 mkdir ./releases/WIZ/OpenBOR/Paks 316 mkdir ./releases/WIZ/OpenBOR/Saves 317 mkdir ./releases/WIZ/OpenBOR/ScreenShots 318 fi 319 mv OpenBOR.gpe ./releases/WIZ/OpenBOR/ 320 if [ `echo $HOST_PLATFORM | grep -o "SVN"` ]; then 321 cp $SDKPATH/lib/target/libSDL-1.2.so.0.11.2 ./releases/WIZ/OpenBOR/ 322 cp $SDKPATH/lib/target/libSDL_gfx.so.0.0.17 ./releases/WIZ/OpenBOR/libSDL_gfx.so.0 323 else 324 cp $SDKPATH/lib/warm_2.6.24.ko ./releases/WIZ/OpenBOR/ 325 cp $SDKPATH/lib/libSDL-1.2.so.0.11.2 ./releases/WIZ/OpenBOR/ 326 cp $SDKPATH/lib/libSDL_gfx.so.0.0.17 ./releases/WIZ/OpenBOR/libSDL_gfx.so.0 327 fi 328 fi 329 make clean BUILD_WIZ=1 330 fi 331} 332 333# Darwin Environment && Compile 334function darwin { 335 export PATH=$OLD_PATH 336 . ./environ.sh 10 337 if test $DWNDEV; then 338 make clean BUILD_DARWIN=1 339 make BUILD_DARWIN=1 340 if test -f "./OpenBOR"; then 341 if test ! -e "./releases/DARWIN"; then 342 mkdir ./releases/DARWIN 343 mkdir ./releases/DARWIN/OpenBOR.app 344 mkdir ./releases/DARWIN/OpenBOR.app/Contents 345 mkdir ./releases/DARWIN/OpenBOR.app/Contents/MacOS 346 mkdir ./releases/DARWIN/OpenBOR.app/Contents/Resources 347 mkdir ./releases/DARWIN/OpenBOR.app/Contents/Libraries 348 fi 349 mv OpenBOR ./releases/DARWIN/OpenBOR.app/Contents/MacOS 350 cp ./resources/PkgInfo ./releases/DARWIN/OpenBOR.app/Contents 351 cp ./resources/Info.plist ./releases/DARWIN/OpenBOR.app/Contents 352 cp ./resources/OpenBOR.icns ./releases/DARWIN/OpenBOR.app/Contents/Resources 353 if [ "${DWNDEV}" != "/opt/mac" ]; then 354 cp ${DWNDEV}/lib/libSDL-1.2.0.dylib ./releases/DARWIN/OpenBOR.app/Contents/Libraries 355 cp ${DWNDEV}/lib/libSDL_gfx.13.dylib ./releases/DARWIN/OpenBOR.app/Contents/Libraries 356 cp ${DWNDEV}/lib/libogg.0.dylib ./releases/DARWIN/OpenBOR.app/Contents/Libraries 357 cp ${DWNDEV}/lib/libvorbisfile.3.dylib ./releases/DARWIN/OpenBOR.app/Contents/Libraries 358 cp ${DWNDEV}/lib/libvorbis.0.dylib ./releases/DARWIN/OpenBOR.app/Contents/Libraries 359 cp ${DWNDEV}/lib/libpng14.14.dylib ./releases/DARWIN/OpenBOR.app/Contents/Libraries 360 cp ${DWNDEV}/lib/libz.1.2.5.dylib ./releases/DARWIN/OpenBOR.app/Contents/Libraries 361 ./darwin.sh 362 fi 363 fi 364 make clean BUILD_DARWIN=1 365 fi 366} 367 368function build_all { 369 clean 370 version 371 if test -e "buildspec.sh"; then 372 . ./buildspec.sh 373 else 374 psp 375 gp2x 376 linux_x86 377 linux_amd64 378 windows 379 dreamcast 380 wii 381 dingoo 382 wiz 383 darwin 384 fi 385 distribute 386} 387 388function print_help { 389 echo 390 echo "Run $0 with one of the below targets" 391 echo "-------------------------------------------------------" 392 echo " 0 = Distribute" 393 echo " 1 = PSP" 394 echo " 2 = (unused)" 395 echo " 3 = Gp2x" 396 echo " 4 = Linux (x86, amd64) Example: $0 4 amd64" 397 echo " 5 = Windows" 398 echo " 6 = Dreamcast" 399 echo " 7 = Wii" 400 echo " 8 = Dingoo" 401 echo " 9 = Wiz" 402 echo " 10 = Darwin" 403 echo " all = build for all applicable targets" 404 echo "-------------------------------------------------------" 405 echo "Example: $0 10" 406 echo 407} 408 409case $1 in 410 0) 411 version 412 distribute 413 ;; 414 415 1) 416 version 417 psp 418 ;; 419 420 2) 421 version 422 echo "No platform here anymore (used to be PS2)" 423 ;; 424 425 3) 426 version 427 gp2x 428 ;; 429 430 4) 431 version 432 linux_something $2 433 ;; 434 435 5) 436 version 437 windows 438 ;; 439 440 6) 441 version 442 dreamcast 443 ;; 444 445 7) 446 version 447 wii 448 ;; 449 450 8) 451 version 452 dingoo 453 ;; 454 455 9) 456 version 457 wiz 458 ;; 459 460 10) 461 version 462 darwin 463 ;; 464 465 ?) 466 version 467 print_help 468 ;; 469 470 all) 471 build_all 472 ;; 473 474 *) 475 print_help 476 ;; 477esac 478 479