Skip to content

Commit d3ef957

Browse files
rvaggjasnell
authored andcommitted
build: enable xz compressed tarballs where possible
PR-URL: #4894 Reviewed-By: Ben Noordhuis <[email protected]> Reviewed-By: Johan Bergström <[email protected]> Reviewed-By: James M Snell <[email protected]>
1 parent a816f99 commit d3ef957

File tree

1 file changed

+31
-2
lines changed

1 file changed

+31
-2
lines changed

Makefile

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,9 @@ TARNAME=node-$(FULLVERSION)
276276
TARBALL=$(TARNAME).tar
277277
BINARYNAME=$(TARNAME)-$(OSTYPE)-$(ARCH)
278278
BINARYTAR=$(BINARYNAME).tar
279+
# OSX doesn't have xz installed by default, http://macpkg.sourceforge.net/
280+
XZ=$(shell which xz > /dev/null 2>&1; echo $$?)
281+
XZ_COMPRESSION ?= 9
279282
PKG=$(TARNAME).pkg
280283
PACKAGEMAKER ?= /Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker
281284
PKGDIR=out/dist-osx
@@ -349,7 +352,11 @@ $(TARBALL): release-only node doc
349352
find $(TARNAME)/ -type l | xargs rm # annoying on windows
350353
tar -cf $(TARNAME).tar $(TARNAME)
351354
rm -rf $(TARNAME)
352-
gzip -f -9 $(TARNAME).tar
355+
gzip -c -f -9 $(TARNAME).tar > $(TARNAME).tar.gz
356+
ifeq ($(XZ), 0)
357+
xz -c -f -$(XZ_COMPRESSION) $(TARNAME).tar > $(TARNAME).tar.xz
358+
endif
359+
rm $(TARNAME).tar
353360

354361
tar: $(TARBALL)
355362

@@ -358,6 +365,11 @@ tar-upload: tar
358365
chmod 664 node-$(FULLVERSION).tar.gz
359366
scp -p node-$(FULLVERSION).tar.gz $(STAGINGSERVER):nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/node-$(FULLVERSION).tar.gz
360367
ssh $(STAGINGSERVER) "touch nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/node-$(FULLVERSION).tar.gz.done"
368+
ifeq ($(XZ), 0)
369+
chmod 664 node-$(FULLVERSION).tar.xz
370+
scp -p node-$(FULLVERSION).tar.xz $(STAGINGSERVER):nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/node-$(FULLVERSION).tar.xz
371+
ssh $(STAGINGSERVER) "touch nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/node-$(FULLVERSION).tar.xz.done"
372+
endif
361373

362374
doc-upload: tar
363375
ssh $(STAGINGSERVER) "mkdir -p nodejs/$(DISTTYPEDIR)/$(FULLVERSION)"
@@ -376,6 +388,9 @@ $(TARBALL)-headers: config.gypi release-only
376388
tar -cf $(TARNAME)-headers.tar $(TARNAME)
377389
rm -rf $(TARNAME)
378390
gzip -c -f -9 $(TARNAME)-headers.tar > $(TARNAME)-headers.tar.gz
391+
ifeq ($(XZ), 0)
392+
xz -c -f -$(XZ_COMPRESSION) $(TARNAME)-headers.tar > $(TARNAME)-headers.tar.xz
393+
endif
379394
rm $(TARNAME)-headers.tar
380395

381396
tar-headers: $(TARBALL)-headers
@@ -385,6 +400,11 @@ tar-headers-upload: tar-headers
385400
chmod 664 $(TARNAME)-headers.tar.gz
386401
scp -p $(TARNAME)-headers.tar.gz $(STAGINGSERVER):nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/$(TARNAME)-headers.tar.gz
387402
ssh $(STAGINGSERVER) "touch nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/$(TARNAME)-headers.tar.gz.done"
403+
ifeq ($(XZ), 0)
404+
chmod 664 $(TARNAME)-headers.tar.xz
405+
scp -p $(TARNAME)-headers.tar.xz $(STAGINGSERVER):nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/$(TARNAME)-headers.tar.xz
406+
ssh $(STAGINGSERVER) "touch nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/$(TARNAME)-headers.tar.xz.done"
407+
endif
388408

389409
$(BINARYTAR): release-only
390410
rm -rf $(BINARYNAME)
@@ -396,7 +416,11 @@ $(BINARYTAR): release-only
396416
cp ChangeLog $(BINARYNAME)
397417
tar -cf $(BINARYNAME).tar $(BINARYNAME)
398418
rm -rf $(BINARYNAME)
399-
gzip -f -9 $(BINARYNAME).tar
419+
gzip -c -f -9 $(BINARYNAME).tar > $(BINARYNAME).tar.gz
420+
ifeq ($(XZ), 0)
421+
xz -c -f -$(XZ_COMPRESSION) $(BINARYNAME).tar > $(BINARYNAME).tar.xz
422+
endif
423+
rm $(BINARYNAME).tar
400424

401425
binary: $(BINARYTAR)
402426

@@ -405,6 +429,11 @@ binary-upload-arch: binary
405429
chmod 664 node-$(FULLVERSION)-$(OSTYPE)-$(ARCH).tar.gz
406430
scp -p node-$(FULLVERSION)-$(OSTYPE)-$(ARCH).tar.gz $(STAGINGSERVER):nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/node-$(FULLVERSION)-$(OSTYPE)-$(ARCH).tar.gz
407431
ssh $(STAGINGSERVER) "touch nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/node-$(FULLVERSION)-$(OSTYPE)-$(ARCH).tar.gz.done"
432+
ifeq ($(XZ), 0)
433+
chmod 664 node-$(FULLVERSION)-$(OSTYPE)-$(ARCH).tar.xz
434+
scp -p node-$(FULLVERSION)-$(OSTYPE)-$(ARCH).tar.xz $(STAGINGSERVER):nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/node-$(FULLVERSION)-$(OSTYPE)-$(ARCH).tar.xz
435+
ssh $(STAGINGSERVER) "touch nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/node-$(FULLVERSION)-$(OSTYPE)-$(ARCH).tar.xz.done"
436+
endif
408437

409438
ifeq ($(OSTYPE),darwin)
410439
binary-upload:

0 commit comments

Comments
 (0)