summaryrefslogtreecommitdiffstats
path: root/macosx
diff options
context:
space:
mode:
authorkonablend <[email protected]>2009-03-04 00:54:53 +0000
committerkonablend <[email protected]>2009-03-04 00:54:53 +0000
commit6d2d51974af122bdfe6eb82f355e270cd66c48af (patch)
tree5a82b3790f4dd0c3f71aa1643838e937edca597a /macosx
parentc4d9c49de0f020f451325dbb39b97642eaf96032 (diff)
BuildSystem: darwin
- made Xcode external targets consistent for each configuration. - shunted terminal NAME=VALUE vars through xcodebuild. - folded macosx/module.xcode shunt functions into single. - added new report target to show a single var; eg: make report.var NAME=GCC.gcc . BuildSystem: darwin ppc - fixed configure on ppc host: correctly identify native architecture. - fixed configure to be more resilient when svn probes fail. - fixed configure to show error output for svn probes. BuildSystme: xcode - added external target 'external' to represent 'all things in external system' which is slight more than what 'libhb' might represent. - added doc section Building.osx: External Targets . git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2214 b64f7644-9d1e-0410-96f1-a4d463321fa5
Diffstat (limited to 'macosx')
-rw-r--r--macosx/HandBrake.xcodeproj/project.pbxproj329
-rw-r--r--macosx/module.defs25
-rw-r--r--macosx/module.xcode24
3 files changed, 225 insertions, 153 deletions
diff --git a/macosx/HandBrake.xcodeproj/project.pbxproj b/macosx/HandBrake.xcodeproj/project.pbxproj
index aa37cecc5..41272fd46 100644
--- a/macosx/HandBrake.xcodeproj/project.pbxproj
+++ b/macosx/HandBrake.xcodeproj/project.pbxproj
@@ -94,19 +94,19 @@
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
- 27774C2A0F5CB1D600897477 /* PBXContainerItemProxy */ = {
+ 277C2E530F5DFF400067D708 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
proxyType = 1;
- remoteGlobalIDString = 278071070F5C9C2C00699207;
- remoteInfo = libhb;
+ remoteGlobalIDString = 27F143770F5DF34F00A684FF;
+ remoteInfo = external;
};
- 27774C2C0F5CB1DD00897477 /* PBXContainerItemProxy */ = {
+ 277C2E550F5DFF450067D708 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
proxyType = 1;
- remoteGlobalIDString = 278071070F5C9C2C00699207;
- remoteInfo = libhb;
+ remoteGlobalIDString = 27F143770F5DF34F00A684FF;
+ remoteInfo = external;
};
/* End PBXContainerItemProxy section */
@@ -408,35 +408,44 @@
/* End PBXHeadersBuildPhase section */
/* Begin PBXLegacyTarget section */
- 278070E10F5C7F9E00699207 /* contrib */ = {
+ 27F143770F5DF34F00A684FF /* external */ = {
isa = PBXLegacyTarget;
- buildArgumentsString = "$EXTERNAL_PROJECT/make/xcodemake.sh $(PRODUCT_NAME) $(ACTION)";
- buildConfigurationList = 278070E20F5C7F9E00699207 /* Build configuration list for PBXLegacyTarget "contrib" */;
+ buildArgumentsString = "\"$EXTERNAL_PROJECT/make/xcodemake";
+ buildConfigurationList = 27F1438E0F5DF3EA00A684FF /* Build configuration list for PBXLegacyTarget "external" */;
+ buildPhases = (
+ );
+ buildToolPath = /bin/sh;
+ dependencies = (
+ );
+ name = external;
+ passBuildSettingsInEnvironment = 1;
+ productName = external;
+ };
+ 27F1437E0F5DF36000A684FF /* contrib */ = {
+ isa = PBXLegacyTarget;
+ buildArgumentsString = "\"$EXTERNAL_PROJECT/make/xcodemake";
+ buildConfigurationList = 27F1438F0F5DF3EA00A684FF /* Build configuration list for PBXLegacyTarget "contrib" */;
buildPhases = (
);
buildToolPath = /bin/sh;
- buildWorkingDirectory = "";
- comments = "This target represents tie-in to the make-based build system for HandBrake.\nFrom Xcode's perspective we term it the 'external' build system.\n\n- building this target maps to --> make contrib.install\n- cleaning this target maps to --> make contrib.clean";
dependencies = (
);
name = contrib;
passBuildSettingsInEnvironment = 1;
- productName = external.invoke;
+ productName = contrib;
};
- 278071070F5C9C2C00699207 /* libhb */ = {
+ 27F143850F5DF37600A684FF /* libhb */ = {
isa = PBXLegacyTarget;
- buildArgumentsString = "$EXTERNAL_PROJECT/make/xcodemake.sh $(PRODUCT_NAME) $(ACTION)";
- buildConfigurationList = 278071080F5C9C2C00699207 /* Build configuration list for PBXLegacyTarget "libhb" */;
+ buildArgumentsString = "\"$EXTERNAL_PROJECT/make/xcodemake";
+ buildConfigurationList = 27F143900F5DF3EA00A684FF /* Build configuration list for PBXLegacyTarget "libhb" */;
buildPhases = (
);
buildToolPath = /bin/sh;
- buildWorkingDirectory = "";
- comments = "This target represents tie-in to the make-based build system for HandBrake.\nFrom Xcode's perspective we term it the 'external' build system.\n\n- building this target maps to --> make libhb.build\n- cleaning this target maps to --> make libhb.clean";
dependencies = (
);
name = libhb;
passBuildSettingsInEnvironment = 1;
- productName = external.invoke;
+ productName = libhb;
};
/* End PBXLegacyTarget section */
@@ -451,7 +460,7 @@
buildRules = (
);
dependencies = (
- 27774C2B0F5CB1D600897477 /* PBXTargetDependency */,
+ 277C2E560F5DFF450067D708 /* PBXTargetDependency */,
);
name = HandBrakeCLI;
productName = HandBrakeCLI;
@@ -471,7 +480,7 @@
buildRules = (
);
dependencies = (
- 27774C2D0F5CB1DD00897477 /* PBXTargetDependency */,
+ 277C2E540F5DFF400067D708 /* PBXTargetDependency */,
);
name = HandBrake;
productName = HandBrake;
@@ -492,8 +501,9 @@
targets = (
4DD93F8D082036E8008E1322 /* HandBrake */,
0DFF0C090B6BCEC200549488 /* HandBrakeCLI */,
- 278071070F5C9C2C00699207 /* libhb */,
- 278070E10F5C7F9E00699207 /* contrib */,
+ 27F143770F5DF34F00A684FF /* external */,
+ 27F143850F5DF37600A684FF /* libhb */,
+ 27F1437E0F5DF36000A684FF /* contrib */,
);
};
/* End PBXProject section */
@@ -585,15 +595,15 @@
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
- 27774C2B0F5CB1D600897477 /* PBXTargetDependency */ = {
+ 277C2E540F5DFF400067D708 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
- target = 278071070F5C9C2C00699207 /* libhb */;
- targetProxy = 27774C2A0F5CB1D600897477 /* PBXContainerItemProxy */;
+ target = 27F143770F5DF34F00A684FF /* external */;
+ targetProxy = 277C2E530F5DFF400067D708 /* PBXContainerItemProxy */;
};
- 27774C2D0F5CB1DD00897477 /* PBXTargetDependency */ = {
+ 277C2E560F5DFF450067D708 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
- target = 278071070F5C9C2C00699207 /* libhb */;
- targetProxy = 27774C2C0F5CB1DD00897477 /* PBXContainerItemProxy */;
+ target = 27F143770F5DF34F00A684FF /* external */;
+ targetProxy = 277C2E550F5DFF450067D708 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
@@ -739,90 +749,6 @@
};
name = standard;
};
- 278070E30F5C7F9E00699207 /* standard */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- PRODUCT_NAME = contrib;
- };
- name = standard;
- };
- 278070E40F5C7F9E00699207 /* debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- PRODUCT_NAME = external.invoke;
- };
- name = debug;
- };
- 278070E50F5C7F9E00699207 /* standard.i386 */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- PRODUCT_NAME = external.invoke;
- };
- name = standard.i386;
- };
- 278070E60F5C7F9E00699207 /* standard.x86_64 */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- PRODUCT_NAME = external.invoke;
- };
- name = standard.x86_64;
- };
- 278070E70F5C7F9E00699207 /* standard.ppc */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- PRODUCT_NAME = external.invoke;
- };
- name = standard.ppc;
- };
- 278070E80F5C7F9E00699207 /* standard.ppc64 */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- PRODUCT_NAME = external.invoke;
- };
- name = standard.ppc64;
- };
- 278071090F5C9C2C00699207 /* standard */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- PRODUCT_NAME = libhb;
- };
- name = standard;
- };
- 2780710A0F5C9C2C00699207 /* debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- PRODUCT_NAME = external.invoke;
- };
- name = debug;
- };
- 2780710B0F5C9C2C00699207 /* standard.i386 */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- PRODUCT_NAME = external.invoke;
- };
- name = standard.i386;
- };
- 2780710C0F5C9C2C00699207 /* standard.x86_64 */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- PRODUCT_NAME = external.invoke;
- };
- name = standard.x86_64;
- };
- 2780710D0F5C9C2C00699207 /* standard.ppc */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- PRODUCT_NAME = external.invoke;
- };
- name = standard.ppc;
- };
- 2780710E0F5C9C2C00699207 /* standard.ppc64 */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- PRODUCT_NAME = external.invoke;
- };
- name = standard.ppc64;
- };
27ED6ADB0F58D7F100C905EE /* standard.i386 */ = {
isa = XCBuildConfiguration;
buildSettings = {
@@ -830,7 +756,7 @@
CONFIGURATION_BUILD_DIR = "$(EXTERNAL_BUILD)";
CONFIGURATION_TEMP_DIR = "$(SYMROOT)";
EXTERNAL_BUILD = "$(EXTERNAL_PROJECT)/build.$(CONFIGURATION)";
- EXTERNAL_JOBS = 1;
+ EXTERNAL_JOBS = 8;
EXTERNAL_METHOD = xcode;
EXTERNAL_PROJECT = ..;
GCC_DYNAMIC_NO_PIC = YES;
@@ -939,7 +865,7 @@
CONFIGURATION_BUILD_DIR = "$(EXTERNAL_BUILD)";
CONFIGURATION_TEMP_DIR = "$(SYMROOT)";
EXTERNAL_BUILD = "$(EXTERNAL_PROJECT)/build.$(CONFIGURATION)";
- EXTERNAL_JOBS = 1;
+ EXTERNAL_JOBS = 8;
EXTERNAL_METHOD = xcode;
EXTERNAL_PROJECT = ..;
GCC_DYNAMIC_NO_PIC = YES;
@@ -1048,7 +974,7 @@
CONFIGURATION_BUILD_DIR = "$(EXTERNAL_BUILD)";
CONFIGURATION_TEMP_DIR = "$(SYMROOT)";
EXTERNAL_BUILD = "$(EXTERNAL_PROJECT)/build.$(CONFIGURATION)";
- EXTERNAL_JOBS = 1;
+ EXTERNAL_JOBS = 8;
EXTERNAL_METHOD = xcode;
EXTERNAL_PROJECT = ..;
GCC_DYNAMIC_NO_PIC = YES;
@@ -1157,7 +1083,7 @@
CONFIGURATION_BUILD_DIR = "$(EXTERNAL_BUILD)";
CONFIGURATION_TEMP_DIR = "$(SYMROOT)";
EXTERNAL_BUILD = "$(EXTERNAL_PROJECT)/build.$(CONFIGURATION)";
- EXTERNAL_JOBS = 1;
+ EXTERNAL_JOBS = 8;
EXTERNAL_METHOD = xcode;
EXTERNAL_PROJECT = ..;
GCC_DYNAMIC_NO_PIC = YES;
@@ -1259,6 +1185,132 @@
};
name = standard.ppc64;
};
+ 27F143780F5DF34F00A684FF /* standard */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = external;
+ };
+ name = standard;
+ };
+ 27F143790F5DF34F00A684FF /* debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = external;
+ };
+ name = debug;
+ };
+ 27F1437A0F5DF34F00A684FF /* standard.i386 */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = external;
+ };
+ name = standard.i386;
+ };
+ 27F1437B0F5DF34F00A684FF /* standard.x86_64 */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = external;
+ };
+ name = standard.x86_64;
+ };
+ 27F1437C0F5DF34F00A684FF /* standard.ppc */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = external;
+ };
+ name = standard.ppc;
+ };
+ 27F1437D0F5DF34F00A684FF /* standard.ppc64 */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = external;
+ };
+ name = standard.ppc64;
+ };
+ 27F1437F0F5DF36000A684FF /* standard */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = contrib;
+ };
+ name = standard;
+ };
+ 27F143800F5DF36000A684FF /* debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = contrib;
+ };
+ name = debug;
+ };
+ 27F143810F5DF36000A684FF /* standard.i386 */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = contrib;
+ };
+ name = standard.i386;
+ };
+ 27F143820F5DF36000A684FF /* standard.x86_64 */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = contrib;
+ };
+ name = standard.x86_64;
+ };
+ 27F143830F5DF36000A684FF /* standard.ppc */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = contrib;
+ };
+ name = standard.ppc;
+ };
+ 27F143840F5DF36000A684FF /* standard.ppc64 */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = contrib;
+ };
+ name = standard.ppc64;
+ };
+ 27F143860F5DF37600A684FF /* standard */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = libhb;
+ };
+ name = standard;
+ };
+ 27F143870F5DF37600A684FF /* debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = libhb;
+ };
+ name = debug;
+ };
+ 27F143880F5DF37600A684FF /* standard.i386 */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = libhb;
+ };
+ name = standard.i386;
+ };
+ 27F143890F5DF37600A684FF /* standard.x86_64 */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = libhb;
+ };
+ name = standard.x86_64;
+ };
+ 27F1438A0F5DF37600A684FF /* standard.ppc */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = libhb;
+ };
+ name = standard.ppc;
+ };
+ 27F1438B0F5DF37600A684FF /* standard.ppc64 */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = libhb;
+ };
+ name = standard.ppc64;
+ };
4D4E7BC1087804870051572B /* debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
@@ -1372,7 +1424,7 @@
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
EXTERNAL_BUILD = "$(EXTERNAL_PROJECT)/build.$(CONFIGURATION)";
- EXTERNAL_JOBS = 1;
+ EXTERNAL_JOBS = 8;
EXTERNAL_METHOD = xcode;
EXTERNAL_PROJECT = ..;
GCC_DYNAMIC_NO_PIC = YES;
@@ -1396,7 +1448,7 @@
CONFIGURATION_BUILD_DIR = "$(EXTERNAL_BUILD)";
CONFIGURATION_TEMP_DIR = "$(SYMROOT)";
EXTERNAL_BUILD = "$(EXTERNAL_PROJECT)/build.$(CONFIGURATION)";
- EXTERNAL_JOBS = 1;
+ EXTERNAL_JOBS = 8;
EXTERNAL_METHOD = xcode;
EXTERNAL_PROJECT = ..;
GCC_DYNAMIC_NO_PIC = YES;
@@ -1429,28 +1481,41 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = standard;
};
- 278070E20F5C7F9E00699207 /* Build configuration list for PBXLegacyTarget "contrib" */ = {
+ 27F1438E0F5DF3EA00A684FF /* Build configuration list for PBXLegacyTarget "external" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 27F143780F5DF34F00A684FF /* standard */,
+ 27F143790F5DF34F00A684FF /* debug */,
+ 27F1437A0F5DF34F00A684FF /* standard.i386 */,
+ 27F1437B0F5DF34F00A684FF /* standard.x86_64 */,
+ 27F1437C0F5DF34F00A684FF /* standard.ppc */,
+ 27F1437D0F5DF34F00A684FF /* standard.ppc64 */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = standard;
+ };
+ 27F1438F0F5DF3EA00A684FF /* Build configuration list for PBXLegacyTarget "contrib" */ = {
isa = XCConfigurationList;
buildConfigurations = (
- 278070E30F5C7F9E00699207 /* standard */,
- 278070E40F5C7F9E00699207 /* debug */,
- 278070E50F5C7F9E00699207 /* standard.i386 */,
- 278070E60F5C7F9E00699207 /* standard.x86_64 */,
- 278070E70F5C7F9E00699207 /* standard.ppc */,
- 278070E80F5C7F9E00699207 /* standard.ppc64 */,
+ 27F1437F0F5DF36000A684FF /* standard */,
+ 27F143800F5DF36000A684FF /* debug */,
+ 27F143810F5DF36000A684FF /* standard.i386 */,
+ 27F143820F5DF36000A684FF /* standard.x86_64 */,
+ 27F143830F5DF36000A684FF /* standard.ppc */,
+ 27F143840F5DF36000A684FF /* standard.ppc64 */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = standard;
};
- 278071080F5C9C2C00699207 /* Build configuration list for PBXLegacyTarget "libhb" */ = {
+ 27F143900F5DF3EA00A684FF /* Build configuration list for PBXLegacyTarget "libhb" */ = {
isa = XCConfigurationList;
buildConfigurations = (
- 278071090F5C9C2C00699207 /* standard */,
- 2780710A0F5C9C2C00699207 /* debug */,
- 2780710B0F5C9C2C00699207 /* standard.i386 */,
- 2780710C0F5C9C2C00699207 /* standard.x86_64 */,
- 2780710D0F5C9C2C00699207 /* standard.ppc */,
- 2780710E0F5C9C2C00699207 /* standard.ppc64 */,
+ 27F143860F5DF37600A684FF /* standard */,
+ 27F143870F5DF37600A684FF /* debug */,
+ 27F143880F5DF37600A684FF /* standard.i386 */,
+ 27F143890F5DF37600A684FF /* standard.x86_64 */,
+ 27F1438A0F5DF37600A684FF /* standard.ppc */,
+ 27F1438B0F5DF37600A684FF /* standard.ppc64 */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = standard;
diff --git a/macosx/module.defs b/macosx/module.defs
index 2b525acde..fec467db9 100644
--- a/macosx/module.defs
+++ b/macosx/module.defs
@@ -18,27 +18,22 @@ BUILD.out += $(MACOSX.m4.out)
MACOSX.XCODE.exe = xcodebuild
MACOSX.XCODE.project = HandBrake.xcodeproj
+## launch a build thru xcode; which in turn will do a nested make against
+## this build system with normal build rules enabled.
+##
+## $(1) = list of targets
+## $(2) = list of goals to shunt thru xcodebuild->make
+##
MACOSX.XCODE = $(strip \
cd $(MACOSX.src/) && \
$(MACOSX.XCODE.exe) \
-project $(MACOSX.XCODE.project) \
-configuration $(MACOSX.conf) \
- $(foreach t,$(MACOSX.targs),-target $t) \
+ $(foreach t,$(1),-target $t) \
EXTERNAL_BUILD='$(CURDIR)' \
EXTERNAL_JOBS='$(BUILD.jobs)' \
EXTERNAL_METHOD='$(CONF.method)' \
EXTERNAL_PROJECT='$(PROJECT/)' \
- $(1) )
-
-MACOSX.XCODE.PASSTHRU = $(strip \
- cd $(MACOSX.src/) && \
- $(MACOSX.XCODE.exe) \
- -project $(MACOSX.XCODE.project) \
- -configuration $(MACOSX.conf) \
- -target libhb \
- EXTERNAL_BUILD='$(CURDIR)' \
- EXTERNAL_JOBS='$(BUILD.jobs)' \
- EXTERNAL_METHOD='$(CONF.method)' \
- EXTERNAL_PROJECT='$(PROJECT/)' \
- EXTERNAL_GOALS='$(1)' \
- build )
+ EXTERNAL_GOALS='$(3)' \
+ EXTERNAL_VARS='$(-*-command-variables-*-)' \
+ $(2) )
diff --git a/macosx/module.xcode b/macosx/module.xcode
index 5d75f5152..81f661629 100644
--- a/macosx/module.xcode
+++ b/macosx/module.xcode
@@ -2,16 +2,28 @@
## which hands-off the build to Xcode which in turn may callback this
## build system.
-build:
- $(call MACOSX.XCODE,build)
+.PHONY: macosx.build macosx.clean macosx.install
-clean:
- $(call MACOSX.XCODE,clean)
+macosx.build:
+ $(call MACOSX.XCODE,HandBrakeCLI HandBrake,build)
+macosx.clean:
+ $(call MACOSX.XCODE,HandBrakeCLI HandBrake,clean)
+
+macosx.install:
+ $(call MACOSX.XCODE,HandBrakeCLI HandBrake,install)
+
+build: macosx.build
+clean: macosx.clean
+install: macosx.install
xclean: clean
-$(MAKECMDGOALS): __goals__
+###############################################################################
+
+MACOSX.goals = $(filter-out build clean install xclean,$(MAKECMDGOALS))
+
+$(MACOSX.goals): __goals__
@true
__goals__:
- $(call MACOSX.XCODE.PASSTHRU,$(MAKECMDGOALS))
+ $(call MACOSX.XCODE,external,build,$(MACOSX.goals))