summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorJP Wesselink <jpwesselink@gmail.com>2017-09-04 12:07:56 +0200
committerRuben Bridgewater <ruben@bridgewater.de>2017-09-28 02:05:59 -0300
commit03954f778ec491fe5a4f8e42996e3edbe35554d9 (patch)
tree2617567bac0171a93406e70d2ff5f0b0fd3269c1 /Makefile
parent6975c490d11d4aa937c9df6835f4e75ac8c72cee (diff)
downloadandroid-node-v8-03954f778ec491fe5a4f8e42996e3edbe35554d9.tar.gz
android-node-v8-03954f778ec491fe5a4f8e42996e3edbe35554d9.tar.bz2
android-node-v8-03954f778ec491fe5a4f8e42996e3edbe35554d9.zip
tools, build: refactor macOS installer
Creates macOS pkg installer by using `pkgbuild` and `productbuild`. Removes previous npm installation before installing npm. Packages carry correct version attributes. Support for intl installer features, defaults to `en`. Fancy formatted license. Renamed `osx` references to `macOS`. Optional installation of npm. PR-URL: https://github.com/nodejs/node/pull/15179 Fixes: https://github.com/nodejs/node/issues/15012 Refs: https://github.com/nodejs/node/pull/5656 Refs: https://github.com/nodejs/node/pull/2571 Refs: https://github.com/nodejs/node/pull/7097 Reviewed-By: Lance Ball <lball@redhat.com> Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile57
1 files changed, 43 insertions, 14 deletions
diff --git a/Makefile b/Makefile
index 568340a402..68714926cf 100644
--- a/Makefile
+++ b/Makefile
@@ -673,8 +673,7 @@ BINARYTAR=$(BINARYNAME).tar
XZ=$(shell which xz > /dev/null 2>&1; echo $$?)
XZ_COMPRESSION ?= 9e
PKG=$(TARNAME).pkg
-PACKAGEMAKER ?= /Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker
-PKGDIR=out/dist-osx
+MACOSOUTDIR=out/macos
release-only:
@if [ "$(DISTTYPE)" != "nightly" ] && [ "$(DISTTYPE)" != "next-nightly" ] && \
@@ -709,24 +708,54 @@ release-only:
fi
$(PKG): release-only
- $(RM) -r $(PKGDIR)
- $(RM) -r out/deps out/Release
+ $(RM) -r $(MACOSOUTDIR)
+ mkdir -p $(MACOSOUTDIR)/installer/productbuild
+ cat tools/macos-installer/productbuild/distribution.xml.tmpl \
+ | sed -E "s/\\{nodeversion\\}/$(FULLVERSION)/g" \
+ | sed -E "s/\\{npmversion\\}/$(NPMVERSION)/g" \
+ >$(MACOSOUTDIR)/installer/productbuild/distribution.xml ; \
+
+ @for dirname in tools/macos-installer/productbuild/Resources/*/; do \
+ lang=$$(basename $$dirname) ; \
+ mkdir -p $(MACOSOUTDIR)/installer/productbuild/Resources/$$lang ; \
+ printf "Found localization directory $$dirname\n" ; \
+ cat $$dirname/welcome.html.tmpl \
+ | sed -E "s/\\{nodeversion\\}/$(FULLVERSION)/g" \
+ | sed -E "s/\\{npmversion\\}/$(NPMVERSION)/g" \
+ >$(MACOSOUTDIR)/installer/productbuild/Resources/$$lang/welcome.html ; \
+ cat $$dirname/conclusion.html.tmpl \
+ | sed -E "s/\\{nodeversion\\}/$(FULLVERSION)/g" \
+ | sed -E "s/\\{npmversion\\}/$(NPMVERSION)/g" \
+ >$(MACOSOUTDIR)/installer/productbuild/Resources/$$lang/conclusion.html ; \
+ done
$(PYTHON) ./configure \
--dest-cpu=x64 \
--tag=$(TAG) \
--release-urlbase=$(RELEASE_URLBASE) \
$(CONFIG_FLAGS) $(BUILD_RELEASE_FLAGS)
- $(MAKE) install V=$(V) DESTDIR=$(PKGDIR)
- SIGN="$(CODESIGN_CERT)" PKGDIR="$(PKGDIR)/usr/local" bash \
+ $(MAKE) install V=$(V) DESTDIR=$(MACOSOUTDIR)/dist/node
+ SIGN="$(CODESIGN_CERT)" PKGDIR="$(MACOSOUTDIR)/dist/node/usr/local" bash \
tools/osx-codesign.sh
- cat tools/osx-pkg.pmdoc/index.xml.tmpl \
- | sed -E "s/\\{nodeversion\\}/$(FULLVERSION)/g" \
- | sed -E "s/\\{npmversion\\}/$(NPMVERSION)/g" \
- > tools/osx-pkg.pmdoc/index.xml
- $(PACKAGEMAKER) \
- --id "org.nodejs.pkg" \
- --doc tools/osx-pkg.pmdoc \
- --out $(PKG)
+ mkdir -p $(MACOSOUTDIR)/dist/npm/usr/local/lib/node_modules
+ mkdir -p $(MACOSOUTDIR)/pkgs
+ mv $(MACOSOUTDIR)/dist/node/usr/local/lib/node_modules/npm \
+ $(MACOSOUTDIR)/dist/npm/usr/local/lib/node_modules
+ unlink $(MACOSOUTDIR)/dist/node/usr/local/bin/npm
+ unlink $(MACOSOUTDIR)/dist/node/usr/local/bin/npx
+ $(NODE) tools/license2rtf.js < LICENSE > \
+ $(MACOSOUTDIR)/installer/productbuild/Resources/license.rtf
+ cp doc/osx_installer_logo.png $(MACOSOUTDIR)/installer/productbuild/Resources
+ pkgbuild --version $(FULLVERSION) \
+ --identifier org.nodejs.node.pkg \
+ --root $(MACOSOUTDIR)/dist/node $(MACOSOUTDIR)/pkgs/node-$(FULLVERSION).pkg
+ pkgbuild --version $(NPMVERSION) \
+ --identifier org.nodejs.npm.pkg \
+ --root $(MACOSOUTDIR)/dist/npm \
+ --scripts ./tools/macos-installer/pkgbuild/npm/scripts \
+ $(MACOSOUTDIR)/pkgs/npm-$(NPMVERSION).pkg
+ productbuild --distribution $(MACOSOUTDIR)/installer/productbuild/distribution.xml \
+ --resources $(MACOSOUTDIR)/installer/productbuild/Resources \
+ --package-path $(MACOSOUTDIR)/pkgs ./$(PKG)
SIGN="$(PRODUCTSIGN_CERT)" PKG="$(PKG)" bash tools/osx-productsign.sh
pkg: $(PKG)