summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--00-Building.cygwin.txt12
-rw-r--r--00-Building.linux.txt12
-rw-r--r--00-Building.osx.txt34
-rw-r--r--doc/texi/building/chapter.via.xcode.texi17
-rw-r--r--macosx/HandBrake.xcodeproj/project.pbxproj329
-rw-r--r--macosx/module.defs25
-rw-r--r--macosx/module.xcode24
-rw-r--r--make/configure.py60
-rw-r--r--make/include/base.rules8
-rw-r--r--make/include/report.defs7
-rwxr-xr-x[-rw-r--r--]make/xcodemake (renamed from make/xcodemake.sh)64
11 files changed, 368 insertions, 224 deletions
diff --git a/00-Building.cygwin.txt b/00-Building.cygwin.txt
index b0c571736..dca7d9064 100644
--- a/00-Building.cygwin.txt
+++ b/00-Building.cygwin.txt
@@ -1,4 +1,4 @@
-Guide to Building HandBrake svn2204 (2009030201) on Cygwin
+Guide to Building HandBrake svn2213 (2009030301) on Cygwin
**********************************************************
Table of Contents
@@ -240,14 +240,18 @@ period.
Build main product. All necessary dependencies are also built if
required.
+`make clean'
+ Clean all build output excluding contrib modules. Configuration is
+ retained.
+
`make install'
Perform final product(s) install. This will install build
products to a standard directory or one specified via `configure
--prefix' option.
-`make clean'
- Clean all build output excluding contrib modules. Configuration is
- retained.
+`make uninstall'
+ Perform final product(s) uninstall. This will uninstall any
+ products which may have been previously installed.
`make xclean'
Clean all build output including contrib modules. Configuration is
diff --git a/00-Building.linux.txt b/00-Building.linux.txt
index a2e2d0ba1..ae6158e96 100644
--- a/00-Building.linux.txt
+++ b/00-Building.linux.txt
@@ -1,4 +1,4 @@
-Guide to Building HandBrake svn2204 (2009030201) on Linux
+Guide to Building HandBrake svn2213 (2009030301) on Linux
*********************************************************
Table of Contents
@@ -306,14 +306,18 @@ period.
Build main product. All necessary dependencies are also built if
required.
+`make clean'
+ Clean all build output excluding contrib modules. Configuration is
+ retained.
+
`make install'
Perform final product(s) install. This will install build
products to a standard directory or one specified via `configure
--prefix' option.
-`make clean'
- Clean all build output excluding contrib modules. Configuration is
- retained.
+`make uninstall'
+ Perform final product(s) uninstall. This will uninstall any
+ products which may have been previously installed.
`make xclean'
Clean all build output including contrib modules. Configuration is
diff --git a/00-Building.osx.txt b/00-Building.osx.txt
index dc7c0a542..471ffda71 100644
--- a/00-Building.osx.txt
+++ b/00-Building.osx.txt
@@ -1,4 +1,4 @@
-Guide to Building HandBrake svn2204 (2009030201) on Mac OS X
+Guide to Building HandBrake svn2213 (2009030301) on Mac OS X
************************************************************
Table of Contents
@@ -21,7 +21,8 @@ Table of Contents
6 Building via Xcode
6.1 Checkout Sources
6.2 Build
- 6.3 User-Defined Settings
+ 6.3 External Targets
+ 6.4 User-Defined Settings
1 Introduction
@@ -241,14 +242,18 @@ period.
Build main product. All necessary dependencies are also built if
required.
+`make clean'
+ Clean all build output excluding contrib modules. Configuration is
+ retained.
+
`make install'
Perform final product(s) install. This will install build
products to a standard directory or one specified via `configure
--prefix' option.
-`make clean'
- Clean all build output excluding contrib modules. Configuration is
- retained.
+`make uninstall'
+ Perform final product(s) uninstall. This will uninstall any
+ products which may have been previously installed.
`make xclean'
Clean all build output including contrib modules. Configuration is
@@ -441,7 +446,24 @@ follows:
This configuration is used to build for the ppc64 architecture.
Build directory is `build.standard.ppc64' .
-6.3 User-Defined Settings
+6.3 External Targets
+====================
+
+The following external targets appear in the Xcode project and perform
+build and clean actions.
+
+`external'
+ Target maps to `make build' and `make clean' for everything Xcode
+ products depend upon from the external build system.
+
+`libhb'
+ Target maps to `make libhb.build' and `make libhb.clean'.
+
+`contrib'
+ Target maps to `make contrib.build' and `make contrib.xclean'.
+
+
+6.4 User-Defined Settings
=========================
The following user defined settings are used in Xcode project for the
diff --git a/doc/texi/building/chapter.via.xcode.texi b/doc/texi/building/chapter.via.xcode.texi
index 9983c94f8..df42faca0 100644
--- a/doc/texi/building/chapter.via.xcode.texi
+++ b/doc/texi/building/chapter.via.xcode.texi
@@ -49,6 +49,23 @@ This configuration is used to build for the ppc64 architecture. Build directory
@end table
@c %**-------------------------------------------------------------------------
+@anchor{xcode.extenal}
+@section External Targets
+The following external targets appear in the Xcode project and perform @b{build} and @b{clean} actions.
+
+@table @samp
+@item external
+Target maps to @command{make build} and @command{make clean} for everything Xcode products depend upon from the external build system.
+
+@item libhb
+Target maps to @command{make libhb.build} and @command{make libhb.clean}.
+
+@item contrib
+Target maps to @command{make contrib.build} and @command{make contrib.xclean}.
+
+@end table
+
+@c %**-------------------------------------------------------------------------
@anchor{xcode.userdefined}
@section User-Defined Settings
The following user defined settings are used in Xcode project for the external build system:
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))
diff --git a/make/configure.py b/make/configure.py
index 2f8cf6e00..59a512fb8 100644
--- a/make/configure.py
+++ b/make/configure.py
@@ -141,7 +141,7 @@ class Guess:
self.release = ''
self.extra = ''
elif re.match( 'darwin', p_system ):
- self.machine = p_machine
+ self.machine = p_processor
self.vendor = 'apple'
self.system = p_system
self.systemc = p_systemc
@@ -263,7 +263,13 @@ class OptionMode( list ):
self.mode = self.default
def __str__( self ):
- return ' '.join( self ).replace( self.mode, '*'+self.mode )
+ s = ''
+ for a in self:
+ if a == self.mode:
+ s += ' *' + a
+ else:
+ s += ' ' + a
+ return s[1:]
def addToGroup( self, group, option, name ):
group.add_option( '', option, help='select %s mode: %s' % (name,self), default=self.mode, metavar='MODE' )
@@ -435,38 +441,40 @@ class Repository:
# parse output: svnversion PROJECT_DIR
cmd = 'svnversion ' + initial_project_dir
- print 'running: %s' % (cmd)
+ print 'attempting to probe subversion: %s' % (cmd)
try:
- p = subprocess.Popen( cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE )
+ p = subprocess.Popen( cmd, shell=True, stdout=subprocess.PIPE )
p.wait();
- if p.returncode == 0:
- self.wcversion = p.stdout.readline().rstrip()
+ if p.returncode:
+ sys.exit( 1 )
+ self.wcversion = p.stdout.readline().rstrip()
except:
pass
# parse output: svn info PROJECT_DIR
cmd = 'svn info ' + initial_project_dir
- print 'running: %s' % (cmd)
+ print 'attempting to probe subversion: %s' % (cmd)
try:
- p = subprocess.Popen( cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE )
+ p = subprocess.Popen( cmd, shell=True, stdout=subprocess.PIPE )
p.wait();
- if p.returncode == 0:
- for line in p.stdout:
- (name,value) = re.match( '([^:]+):\\s+(.+)', line.rstrip() ).groups()
- if name == 'URL':
- self.url = value
- elif name == 'Repository Root':
- self.root = value
- elif name == 'Repository UUID':
- self.uuid = value
- elif name == 'Revision':
- self.rev = int( value )
- elif name == 'Last Changed Date':
- # strip chars in parens
- if value.find( ' (' ):
- self.date = value[0:value.find(' (')]
- else:
- self.date = value
+ if p.returncode:
+ sys.exit( 1 )
+ for line in p.stdout:
+ (name,value) = re.match( '([^:]+):\\s+(.+)', line.rstrip() ).groups()
+ if name == 'URL':
+ self.url = value
+ elif name == 'Repository Root':
+ self.root = value
+ elif name == 'Repository UUID':
+ self.uuid = value
+ elif name == 'Revision':
+ self.rev = int( value )
+ elif name == 'Last Changed Date':
+ # strip chars in parens
+ if value.find( ' (' ):
+ self.date = value[0:value.find(' (')]
+ else:
+ self.date = value
except:
pass
@@ -629,7 +637,7 @@ config.add( 'HB.version.major', project.vmajor )
config.add( 'HB.version.minor', project.vminor )
config.add( 'HB.version.point', project.vpoint )
config.add( 'HB.version', project.version )
-config.add( 'HB.version.hex', '%04x%02x%02x%02x%06x' % (project.vmajor,project.vminor,project.vpoint,0,repo.rev) )
+config.add( 'HB.version.hex', '%04x%02x%02x%08x' % (project.vmajor,project.vminor,project.vpoint,repo.rev) )
config.add( 'HB.build', project.build )
diff --git a/make/include/base.rules b/make/include/base.rules
index f12886432..fd90d7769 100644
--- a/make/include/base.rules
+++ b/make/include/base.rules
@@ -1,16 +1,16 @@
-.PHONY: report.main report.gcc report.modules
+.PHONY: report.main report.gcc report.modules report.var report.true
report.modules::
-.PHONY: report.main
report.main:
@$(MAKE) report.true REPORT=main
-.PHONY: report.gcc
report.gcc:
@$(MAKE) report.true REPORT=gcc
+report.var:
+ @$(MAKE) report.true REPORT=var
+
## needed for nested make (which drives each report)
-.PHONY: report.true
report.true:
@true
diff --git a/make/include/report.defs b/make/include/report.defs
index 858c45523..7962a6631 100644
--- a/make/include/report.defs
+++ b/make/include/report.defs
@@ -53,3 +53,10 @@ $(info #########################################################################
$(info $(foreach v,$(sort $(filter GCC.%,$(.VARIABLES))),$(call fn.PRINTVAR,$v)))
$(info )
endif
+
+## report: var
+##
+ifeq (var,$(REPORT))
+$(info $(call fn.PRINTVAR,$(NAME)))
+$(info )
+endif
diff --git a/make/xcodemake.sh b/make/xcodemake
index 5354b54cc..a75cd3ed6 100644..100755
--- a/make/xcodemake.sh
+++ b/make/xcodemake
@@ -1,6 +1,8 @@
-#!/bin/sh -ex
+#!/bin/sh
#
+set -e
+
## This script is invoked by Xcode external targets.
##
## We must guarantee no jobserver is passed through since the file-descriptors
@@ -8,6 +10,7 @@
## it is allowed to run an infinite number of jobs.
##
MAKEFLAGS=
+MFLAGS=
cd $EXTERNAL_BUILD
@@ -43,33 +46,40 @@ else
jobs=--jobs=$EXTERNAL_JOBS
fi
-## compute target
-case "$1:$2" in
-contrib:clean)
- target=contrib.xclean
- ;;
-contrib:*)
- target=contrib.install
- ;;
-*:clean)
- target=clean
- ;;
-libhb:'')
- if [ -z "$EXTERNAL_GOALS" ]; then
- target=build
- else
- target="$EXTERNAL_GOALS"
- fi
- ;;
-*:'')
- target=build
- ;;
-*)
- echo "usage: $0 PRODUCT ACTION"
- exit 1
- ;;
+spec="$TARGET_NAME:$ACTION"
+echo "env specification: $spec"
+
+## compute goals
+case "$spec" in
+ contrib:clean)
+ goals=contrib.xclean
+ ;;
+ contrib:*)
+ goals=contrib.install
+ ;;
+ external:clean)
+ goals=clean
+ ;;
+ external:*)
+ if [ -z "$EXTERNAL_GOALS" ]; then
+ goals=build
+ else
+ goals="$EXTERNAL_GOALS"
+ fi
+ vars="$EXTERNAL_VARS"
+ ;;
+ libhb:clean)
+ goals=libhb.clean
+ ;;
+ libhb:*)
+ goals=libhb.build
+ ;;
+ *)
+ echo "ERROR: invalid env specification: $spec"
+ exit 1
+ ;;
esac
## handoff
set -x
-exec make -C $EXTERNAL_BUILD BUILD.method=xcode $jobs $target
+make -C $EXTERNAL_BUILD BUILD.method=xcode $jobs $goals $vars