diff options
author | konablend <[email protected]> | 2009-03-10 01:26:46 +0000 |
---|---|---|
committer | konablend <[email protected]> | 2009-03-10 01:26:46 +0000 |
commit | 9524d15d80e03017ea0dcafd158562a304ee357a (patch) | |
tree | 9ee8cc3553fc1856eba171d16e6bd9d39d79ba46 /make/xcodemake | |
parent | 82a445c939dd4d63ee957190dce2de8d594a7782 (diff) |
BuildSystem: effects Darwin platforms only
- fixed Darwin ppc hosted build reversion introduced in r2242.
- fixed Darwin + Xcode in all scenerios to honor --debug option
*** if building from Xcode there is no need to rebuild but you will have
to close project and reload; xcodeproj has been updated.
*** if building from terminal there *should* be no need to rebuild;
the first 'make' after an update is expected to trigger a reconfigure
and libhb will rebuild.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2248 b64f7644-9d1e-0410-96f1-a4d463321fa5
Diffstat (limited to 'make/xcodemake')
-rwxr-xr-x | make/xcodemake | 78 |
1 files changed, 42 insertions, 36 deletions
diff --git a/make/xcodemake b/make/xcodemake index 2c6c1a80b..aca4c41cd 100755 --- a/make/xcodemake +++ b/make/xcodemake @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # set -e @@ -12,52 +12,51 @@ set -e MAKEFLAGS= MFLAGS= -## re/configure if not configured by Xcode or if missing top-makefile -if [ $EXTERNAL_METHOD != 'xcode' -o ! -f $EXTERNAL_BUILD/GNUmakefile ]; then - ## compute --arch value based on Xcode configuration naming convention - case "$CONFIGURATION" in - *.i386) - arch="--arch=i386" - ;; - *.x86_64) - arch="--arch=x86_64" - ;; - *.ppc) - arch="--arch=ppc" - ;; - *.ppc64) - arch="--arch=ppc64" - ;; - *) - arch= - ;; - esac +## sanity check - the build system only supports 1 arch at a time +archcount=`echo $ARCHS | awk '{ print NF }'` +if [ "$archcount" -ne 1 ]; then + echo "*********************************************************************" + echo "***" + echo "*** ERROR: invalid number of architectures: $ARCHS" + echo "*** This build system builds one (1) archtecture at a time." + echo "***" + echo "*********************************************************************" + exit 1 +fi + +## compute if re/configure necessary +if [ $EXTERNAL_METHOD != 'xcode' ]; then + reconfigure="terminal -> Xcode" +elif [ ! -f $EXTERNAL_BUILD/GNUmakefile ]; then + reconfigure="no configuration present" +elif [ $EXTERNAL_SRC/make/configure.py -nt $EXTERNAL_BUILD/GNUmakefile ]; then + reconfigure="configure script was updated" +else + reconfigure= +fi + +## perform re/configure +if [ -n "$reconfigure" ]; then + echo "reconfiguring ($reconfigure)" case "$CONFIGURATION" in debug*) - debug="--debug=max" + debug="--debug=max --optimize=none" ;; - *) + standard*|*) debug= ;; esac ## invoke configure with (hidden) option which indicates conf performed by xcode - $EXTERNAL_SRC/configure --force --build=$EXTERNAL_BUILD $arch $debug \ - --conf-method=xcode PATH=$PATH $EXTERNAL_CONFARGS -fi - -## safeguard against passing blank value which would result in unlimited jobs -if [ -z "$EXTERNAL_JOBS" ]; then - jobs= -else - jobs=--jobs=$EXTERNAL_JOBS + (set -x; $EXTERNAL_SRC/configure --force --build=$EXTERNAL_BUILD \ + $EXTERNAL_CONFARGS \ + --arch=$ARCHS $debug --conf-method=xcode PATH=$PATH ) fi +## compute goals; these correlate with TARGET_NAME and ACTION from Xcode spec="$TARGET_NAME:$ACTION" echo "env specification: $spec" - -## compute goals case "$spec" in contrib:clean) goals=contrib.xclean @@ -87,6 +86,13 @@ case "$spec" in ;; esac -## handoff +## safeguard against passing blank value which would result in unlimited jobs +if [ -z "$EXTERNAL_JOBS" ]; then + jobs= +else + jobs=--jobs=$EXTERNAL_JOBS +fi + +## pull the trigger set -x -make -C $EXTERNAL_BUILD BUILD.method=xcode $jobs $goals $EXTERNAL_VARS +exec make -C $EXTERNAL_BUILD BUILD.method=xcode $jobs $goals $EXTERNAL_VARS |