- target is 'make pkg.create' which must be done after a normal build. No dependency checks are performed.
- at least 1 package for all platforms is always produced: .tar.bz2
- darwin builds with Xcode add 2 packages: CLI.dmg and GUI.dmg
- darwin builds sans Xcode add 1 package: CLI.dmg
git-svn-id: svn://localhost/HandBrake/trunk@2542
b64f7644-9d1e-0410-96f1-
a4d463321fa5
###############################################################################
MODULES += doc
+MODULES += pkg
###############################################################################
--- /dev/null
+PKG.cli.dmg = $(PKG.out/)$(HB.name)-$(HB.version)-MacOSX.5_CLI_$(BUILD.machine).dmg
+PKG.gui.dmg = $(PKG.out/)$(HB.name)-$(HB.version)-MacOSX.5_GUI_$(BUILD.machine).dmg
+
+STAGE.cli/ = $(BUILD/)stage/cli/
+STAGE.gui/ = $(BUILD/)stage/gui/
+
+###############################################################################
+
+BUILD.out += $(PKG.cli.dmg)
+BUILD.out += $(PKG.gui.dmg)
--- /dev/null
+pkg.create:: $(PKG.cli.dmg) $(PKG.gui.dmg)
+
+$(PKG.cli.dmg): | $(dir $(PKG.cli.dmg))
+$(PKG.cli.dmg): | $(STAGE.cli/)
+ hdiutil create -srcfolder $(STAGE.cli/) -format UDBZ -mode 755 \
+ -volname $(basename $(notdir $@)) $@
+
+$(PKG.gui.dmg): | $(dir $(PKG.gui.dmg))
+$(PKG.gui.dmg): | $(STAGE.gui/)
+ hdiutil create -srcfolder $(STAGE.gui/) -format UDBZ -mode 755 \
+ -volname $(basename $(notdir $@)) $@
+
+pkg.cli.clean:
+ $(RM.exe) -fr $(STAGE.cli/)
+ $(RM.exe) $(PKG.cli.dmg)
+
+pkg.gui.clean:
+ $(RM.exe) -fr $(STAGE.gui/)
+ $(RM.exe) $(PKG.gui.dmg)
+
+$(STAGE.cli/):
+ $(MKDIR.exe) -p $@
+ifeq (1-darwin,$(FEATURE.xcode)-$(BUILD.system))
+ $(CP.exe) $(BUILD/)HandBrakeCLI $(STAGE.cli/)
+ $(call STAGE.doc,$(STAGE.cli/))
+else
+ $(CP.exe) $(TEST.exe) $(STAGE.cli/)
+ $(call STAGE.doc,$(STAGE.cli/))
+endif
+
+$(STAGE.gui/):
+ $(MKDIR.exe) -p $@
+ifeq (1-darwin,$(FEATURE.xcode)-$(BUILD.system))
+ $(CP.exe) -R $(BUILD/)HandBrake.app $(STAGE.gui/)
+ $(call STAGE.doc,$(STAGE.gui/))
+endif
--- /dev/null
+$(eval $(call import.MODULE.defs,PKG,pkg))
+
+PKG.in/ = $(SRC/)pkg/
+PKG.out/ = $(BUILD/)pkg/
+
+PKG.src.tar.bz2 = $(PKG.out/)$(HB.name)-$(HB.version).tar.bz2
+
+STAGE.src/ = $(BUILD/)stage/src/
+
+###############################################################################
+
+define STAGE.doc
+ $(MKDIR.exe) -p $(1)doc
+ $(CP.exe) $(SRC/)AUTHORS $(1)doc
+ $(CP.exe) $(SRC/)COPYING $(1)doc
+ $(CP.exe) $(SRC/)CREDITS $(1)doc
+ $(CP.exe) $(SRC/)NEWS $(1)doc
+ $(CP.exe) $(SRC/)THANKS $(1)doc
+ $(CP.exe) $(SRC/)TRANSLATIONS $(1)doc
+endef
+
+###############################################################################
+
+BUILD.out += $(PKG.src.tar.bz2)
+
+###############################################################################
+
+## include optional platform packaging
+-include $(SRC/)pkg/$(BUILD.system)/module.defs
--- /dev/null
+$(eval $(call import.MODULE.rules,PKG))
+
+###############################################################################
+
+.PHONY: pkg.create
+
+pkg.create:: $(PKG.src.tar.bz2)
+
+$(PKG.src.tar.bz2): | $(dir $(PKG.src.tar.bz2))
+$(PKG.src.tar.bz2): | $(STAGE.src/)
+ $(TAR.exe) cjf $@ -C $(STAGE.src/) .
+
+$(STAGE.src/):
+ svn export -r$(HB.repo.rev) $(HB.repo.url) $@/$(HB.name)-$(HB.version)
+
+###############################################################################
+
+## include optional platform packaging
+-include $(SRC/)pkg/$(BUILD.system)/module.rules