summaryrefslogtreecommitdiffstats
path: root/make/variant/darwin.defs
diff options
context:
space:
mode:
Diffstat (limited to 'make/variant/darwin.defs')
-rw-r--r--make/variant/darwin.defs61
1 files changed, 61 insertions, 0 deletions
diff --git a/make/variant/darwin.defs b/make/variant/darwin.defs
new file mode 100644
index 000000000..6f8f6729d
--- /dev/null
+++ b/make/variant/darwin.defs
@@ -0,0 +1,61 @@
+## UB build support
+##
+## PROCEDURE:
+##
+## 1. Perform a build (let us call it arch-X).
+## 2. cd into arch-X's build/ driectory.
+## 3. Launch builds of the remaining architectures.
+## We compute $(UB.archs.other) to be the remaining archs to build.
+## The entire list is defined $(UB.archs) .
+## 4. Combine other architectures into arch-X's binaries.
+##
+## EXAMPLE: serial method, archs: i386,x86_64,ppc,ppc64
+##
+## ./configure --launch
+## cd build/
+## make ub.build.serial
+## make ub.combine
+##
+## EXAMPLE: parallel method, archs: i386,x86_64,ppc,ppc64
+##
+## ./configure --launch
+## cd build/
+## make ub.build.parallel
+## make ub.combine
+##
+## EXAMPLE: serial, archs: i386,x86_64 (assuming i386 is native)
+##
+## ./configure --launch
+## cd build/
+## make ub.build.parallel UB.archs="i386 x86_64"
+## make ub.combine UB.archs="i386 x86_64"
+##
+UB.archs = i386 x86_64 ppc ppc64
+UB.archs.other = $(filter-out $(BUILD.arch),$(UB.archs))
+UB.builds = $(wildcard $(foreach n,$(UB.archs.other),$(PROJECT/)build.$n))
+
+UB.BUILD = $(PROJECT/)configure --launch --launch-dir=ub.$(1) --arch=$(1)
+
+## linefeed is important
+define UB.BUILD.item
+ $(call UB.BUILD,$(1))
+
+endef
+
+define UB.BUILD.SERIAL
+ $(foreach n,$(UB.archs.other),$(call UB.BUILD.item,$n))
+endef
+
+define UB.BUILD.PARALLEL
+ $(call UB.BUILD,$(1)) 2>&1 > ub.$(1).log
+endef
+
+define UB.COMBINE
+ $(RM.exe) -fr ub.combine
+ $(MKDIR.exe) -p ub.combine
+ $(CP.exe) -R HandBrake.app ub.combine/.
+ lipo $(1) $(foreach n,$(UB.archs.other),ub.$n/$(1)) -create -output ub.combine/$(1)
+ @echo ""
+ @sync; lipo -info ub.combine/$(1)
+ @du -sh ub.combine/$(1)
+endef