#!/bin/sh # # usage: pbxbuild.sh [options] [assignments...] # options: -target Build only the target named # -buildstyle Use the build style named # USAGE_TEXT='usage: pbxbuild.sh [options] [actions...] [assignments...] options: -target Build only the target named -buildstyle Use the build style named ' Target= BuildStyle= Actions= Assignments= # We change into the directory that contains the pbxbuild.sh script. cd "`dirname -- "$0"`" IFS=' ' while [ $# -gt 0 ] ; do case ${1} in -h | -help | -usage) echo "$USAGE_TEXT" exit 0 ;; -target) shift if [ ! -z ${1} ]; then Target="${1}" fi shift ;; -buildstyle) shift if [ ! -z ${1} ]; then BuildStyle="${1}" fi shift ;; -*) echo "pbxbuild: invalid option '"${1}"'" echo "$USAGE_TEXT" exit 1 ;; *=*) if [ -z ${Assignments} ]; then Assignments="${1}" else Assignments="${Assignments}${IFS}${1}" fi shift ;; *) if [ -z ${Actions} ]; then Actions="${1}" else Actions="${Actions}${IFS}${1}" fi shift ;; esac done # Set up access paths DataPath=pbxbuild.data # The default action is 'build' if [ -z "${Actions}" ]; then Actions=build fi # Set up target information . "${DataPath}/TargetNames" for Action in ${Actions}; do for Target in ${Targets}; do TargetPath="${DataPath}/${Target}.build" echo echo "*** ${Action} ${Target} ***" echo jam -d2 ${Action} JAMFILE=\"${TargetPath}/Jamfile.jam\" JAMBASE=pbxbuild.data/ProjectBuilderJambase TARGETNAME=\"${Target}\" BUILD_STYLE="${BuildStyle}" ACTION=${Action} OS=darwin NATIVE_ARCH=`arch` SRCROOT=\"`pwd`\" OBJROOT=\"`pwd`/obj\" SYMROOT=\"`pwd`/sym\" DSTROOT=\"`pwd`/dst\" ${Assignments} jam -d2 ${Action} JAMFILE="${TargetPath}/Jamfile.jam" JAMBASE=pbxbuild.data/ProjectBuilderJambase TARGETNAME="${Target}" BUILD_STYLE="${BuildStyle}" ACTION=${Action} OS=darwin NATIVE_ARCH=`arch` SRCROOT="`pwd`" OBJROOT="`pwd`/obj" SYMROOT="`pwd`/sym" DSTROOT="`pwd`/dst" ${Assignments} if [ $? != 0 ]; then echo "*** ${Action} ${Target} FAILED ***" exit 1 fi done done echo echo "*** BUILD SUCCEEDED ***" exit 0