User:Arrogant Cyberstar/Compiling Snowglobe on MacOSX

From Second Life Wiki
Jump to navigation Jump to search

before you download and build snowglobe on macosx, there are a few steps you have to take. they're documented elsewhere on the wiki, but i noticed a typo or two, so i wrote a quick note about how i got stuff working on my mac. i also wrote this script to automate the process:

#!/bin/bash
#
#  Copyright (c) 2009, Arrogant Cyberstar
#  All rights reserved.
#  
#  Redistribution and  use in  source and binary  forms, with  or without
#  modification, are permitted provided that the following conditions are
#  met:
#  
#    * Redistributions  of source  code must  retain the  above copyright
#      notice, this list of conditions and the following disclaimer.
#  
#    * Redistributions in binary form  must reproduce the above copyright
#      notice, this  list of conditions  and the following  disclaimer in
#      the  documentation  and/or   other  materials  provided  with  the
#      distribution.
#  
#    * Neither  the name of  the Arrogant  Actions nor  the names  of its
#      contributors may  be used to  endorse or promote  products derived
#      from this software without specific prior written permission.
#  
#  THIS SOFTWARE  IS PROVIDED BY  THE COPYRIGHT HOLDERS  AND CONTRIBUTORS
#  "AS  IS" AND  ANY EXPRESS  OR IMPLIED  WARRANTIES, INCLUDING,  BUT NOT
#  LIMITED TO, THE IMPLIED  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
#  A PARTICULAR PURPOSE  ARE DISCLAIMED. IN NO EVENT  SHALL THE COPYRIGHT
#  HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
#  SPECIAL,  EXEMPLARY,  OR  CONSEQUENTIAL  DAMAGES (INCLUDING,  BUT  NOT
#  LIMITED TO, PROCUREMENT OF SUBSTITUTE  GOODS OR SERVICES; LOSS OF USE,
#  DATA, OR PROFITS; OR BUSINESS  INTERRUPTION) HOWEVER CAUSED AND ON ANY
#  THEORY OF  LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY,  OR TORT
#  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING  IN ANY WAY OUT OF THE USE
#  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

if [ ! -e ~/Downloads/fmodapi375mac.zip ]
then
  echo "downloading fmodapi375mac.zip"
  wget http://www.fmod.org/index.php/release/version/fmodapi375mac.zip -O ~/Downloads/fmodapi375mac.zip
fi

if [ ! -e ~/Downloads/fmodapi375mac ]
then
  echo "extracting fmodapi375mac"
  ( cd ~/Downloads ; unzip ./fmodapi375mac.zip ; rm -rf __MACOSX ) 
fi

if [ -e ./snowglobe ]
then
  echo "snowglobe directory already exists. rename it and rerun this script."
else  
  echo "getting snowglobe from repository"
  svn co https://svn.secondlife.com/svn/linden/projects/2009/snowglobe/trunk snowglobe

  echo "fetching requsite libraries"
  (cd snowglobe ; ./scripts/public_fetch_tarballs.py)

  echo "unhorking fmod api stuff"
  mkdir -p snowglobe/libraries/include
  mkdir -p snowglobe/libraries/universal-darwin/lib_debug
  mkdir -p snowglobe/libraries/universal-darwin/lib_release
  cp -p ~/Downloads/fmodapi375mac/api/inc/*.h snowglobe/libraries/include
  lipo -create ~/Downloads/fmodapi375mac/api/lib/libfmod.a ~/Downloads/fmodapi375mac/api/lib/libfmodx86.a -output snowglobe/libraries/universal-darwin/lib_debug/libfmod.a
  touch -r ~/Downloads/fmodapi375mac/api/lib/libfmodx86.a snowglobe/libraries/universal-darwin/lib_debug/libfmod.a
  cp -p snowglobe/libraries/universal-darwin/lib_debug/libfmod.a snowglobe/libraries/universal-darwin/lib_release/libfmod.a

  echo "setting up snowglobe/indra for command line build"
  (cd snowglobe/indra ; ./develop.py ; ./develop.py build)
fi