# # Build file for creating DMG files. # # The DMG packager looks for a template.dmg.bz2 for using as its # DMG template. If it doesn't find one, it generates a clean one. # # If you create a DMG template, you should make one containing all # the files listed in $(SOURCE_FILES) below, and arrange everything to suit # your style. The contents of the files themselves does not matter, so # they can be empty (they will be overwritten later). # # Remko Tronçon # http://el-tramo.be/about # Licensed under the MIT License. See COPYING for details. ################################################################################ # Customizable variables ################################################################################ NAME ?= SWI-Prolog VERSION ?= $(shell cat VERSION) SOURCE_DIR ?= . SOURCE_FILES ?= SWI-Prolog.app Readme.html License.html TEMPLATE_DMG ?= template.dmg # to allow rules before the "no editing part" .PHONY: entry entry: all Readme.html: SWI-Prolog.app/Contents/Resources/SWIapp.html cp $< $@ License.html: SWI-Prolog.app/Contents/Resources/License.html cp $< $@ ################################################################################ # DMG building. No editing should be needed beyond this point. ################################################################################ MASTER_DMG=$(NAME)-$(VERSION).dmg WC_DMG=wc.dmg WC_DIR=wc .PHONY: all all: $(MASTER_DMG) $(TEMPLATE_DMG): $(TEMPLATE_DMG).bz2 bunzip2 -k $< $(TEMPLATE_DMG).bz2: @echo @echo --------------------- Generating empty template -------------------- mkdir template (cd template && ln -s /Applications) (cd template && touch $(SOURCE_FILES)) hdiutil create -fs HFSX -layout SPUD -size 100m "$(TEMPLATE_DMG)" -srcfolder template -format UDRW -volname "$(NAME)" -quiet rm -r template bzip2 "$(TEMPLATE_DMG)" @echo $(WC_DMG): $(TEMPLATE_DMG) cp $< $@ $(MASTER_DMG): $(WC_DMG) $(addprefix $(SOURCE_DIR)/,$(SOURCE_FILES)) @echo @echo --------------------- Creating Disk Image -------------------- mkdir -p $(WC_DIR) hdiutil attach "$(WC_DMG)" -noautoopen -quiet -mountpoint "$(WC_DIR)" for i in $(SOURCE_FILES); do \ rm -rf "$(WC_DIR)/$$i"; \ ditto -rsrc "$(SOURCE_DIR)/$$i" "$(WC_DIR)/$$i"; \ done #rm -f "$@" #hdiutil create -srcfolder "$(WC_DIR)" -format UDZO -imagekey zlib-level=9 "$@" -volname "$(NAME) $(VERSION)" -scrub -quiet WC_DEV=`hdiutil info | grep "$(WC_DIR)" | grep "Apple_HFS" | awk '{print $$1}'` && \ hdiutil detach $$WC_DEV -quiet -force rm -f "$(MASTER_DMG)" hdiutil convert "$(WC_DMG)" -quiet -format UDZO -imagekey zlib-level=9 -o "$@" rm -rf $(WC_DIR) "$(WC_DMG)" @echo .PHONY: clean clean: -rm -rf $(TEMPLATE_DMG) $(MASTER_DMG) $(WC_DMG)