]> git.rkrishnan.org Git - tahoe-lafs/tahoe-lafs.git/blobdiff - Makefile
Merge branch '2329-2': fix "tahoe cp -r" exception
[tahoe-lafs/tahoe-lafs.git] / Makefile
index 94a87556eb3b5b05f9fc0fcda645adf14d03187f..8a8b5ee3f4d424a8951b3a2f72d62483d295b72c 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -11,9 +11,10 @@ export PYTHON
 
 TAHOE=$(PYTHON) bin/tahoe
 SOURCES=src/allmydata src/buildtest static misc bin/tahoe-script.template setup.py
+APPNAME=allmydata-tahoe
 
 # This is necessary only if you want to automatically produce a new
-# _version.py file from the current git/darcs history (without doing a build).
+# _version.py file from the current git history (without doing a build).
 .PHONY: make-version
 make-version:
        $(PYTHON) ./setup.py update_version
@@ -31,6 +32,32 @@ build:
        $(PYTHON) setup.py build
        touch .built
 
+# Build OS X pkg packages.
+# The editing of .egg-link and .pth files ensures that we reference the source at the correct path.
+.PHONY: build-osx-pkg
+build-osx-pkg: build
+       find support -name $(APPNAME).egg-link -execdir sh -c "echo >> {}; echo /Applications/tahoe.app/src >> {}" \;
+       find support -name easy-install.pth -execdir sed -i.bak 's|^.*/src$$|../../../../src|' '{}' \;
+
+# create component pkg
+       pkgbuild --root $(shell pwd) \
+       --identifier com.leastauthority.tahoe \
+       --version $(shell sh -c "cat src/allmydata/_version.py | grep verstr | head -n 1 | cut -d' ' -f 3") \
+       --ownership recommended \
+       --install-location /Applications/tahoe.app \
+       --scripts $(shell pwd)/misc/build_helpers/osx/scripts \
+       tahoe-lafs.pkg
+
+# create product archive
+       productbuild --distribution $(shell pwd)/misc/build_helpers/osx/Distribution.xml \
+       --package-path . \
+       tahoe-lafs-osx.pkg
+
+# remove intermediate pkg
+       rm -f tahoe-lafs.pkg
+
+# test the result
+       $(PYTHON) misc/build_helpers/test-osx-pkg.py
 
 # TESTING
 
@@ -236,6 +263,7 @@ clean:
        rm -rf misc/dependencies/build misc/dependencies/temp
        rm -rf misc/dependencies/tahoe_deps.egg-info
        rm -f bin/tahoe bin/tahoe.pyscript
+       rm -f *.pkg
 
 .PHONY: distclean
 distclean: clean
@@ -281,4 +309,4 @@ tarballs:
 
 .PHONY: upload-tarballs
 upload-tarballs:
-       @if [ "X${BB_BRANCH}" = "Xmaster" ] || [ "X${BB_BRANCH}" = "X" ]; then for f in dist/allmydata-tahoe-*; do flappclient --furlfile ~/.tahoe-tarball-upload.furl upload-file $$f; done ; else echo not uploading tarballs because this is not trunk but is branch \"${BB_BRANCH}\" ; fi
+       @if [ "X${BB_BRANCH}" = "Xmaster" ] || [ "X${BB_BRANCH}" = "X" ]; then for f in dist/$(APPNAME)-*; do flappclient --furlfile ~/.tahoe-tarball-upload.furl upload-file $$f; done ; else echo not uploading tarballs because this is not trunk but is branch \"${BB_BRANCH}\" ; fi