UB.archs  = i386 x86_64 ppc ppc64
UB.builds = $(wildcard $(foreach n,$(UB.archs),$(SRC/)build.$n))
UB.first  = $(word 1,$(UB.archs))
UB.other  = $(wordlist 2,999,$(UB.archs))

UB.BUILD = $(SRC/)configure --force --build=ub.$(1) --arch=$(1) --launch --launch-quiet

## linefeed is important
define UB.BUILD.item
	$(call UB.BUILD,$(1)) --launch-jobs=0

endef

define UB.BUILD.SERIAL
	$(foreach n,$(UB.archs),$(call UB.BUILD.item,$n))
endef

define UB.BUILD.PARALLEL
	$(call UB.BUILD,$(1)) >/dev/null 2>&1
endef

define UB.COMBINE
	$(RM.exe) -fr ub.combine
	$(MKDIR.exe) -p ub.combine
	$(CP.exe) ub.$(UB.first)/HandBrakeCLI ub.combine/.
	$(LIPO.exe) $(foreach n,$(UB.archs),ub.$n/HandBrakeCLI) -create -output ub.combine/HandBrakeCLI
	$(CP.exe) -R ub.$(UB.first)/HandBrake.app ub.combine/.
	$(LIPO.exe) $(foreach n,$(UB.archs),ub.$n/$(1)) -create -output ub.combine/$(1)
	@lipo -info ub.combine/$(1)
	@sync
	@echo ""
	@echo "$@: { $(UB.archs) } combined -> ub.combine/HandBrakeCLI"
	@echo "$@: UB executable size: `du -sh ub.combine/HandBrakeCLI | awk '{ print $$1 }'`"
	@echo ""
	@echo "$@: { $(UB.archs) } combined -> ub.combine/HandBrake.app"
	@echo "$@: UB executable size: `du -sh ub.combine/$(1) | awk '{ print $$1 }'`"
endef
