From 2cd5adc28bcdfb5adcc56b70462703ecf4678a2d Mon Sep 17 00:00:00 2001 From: Ryan Dahl Date: Tue, 22 Nov 2011 12:38:48 -0800 Subject: [PATCH] Install npm with 'make install' --- tools/wafadmin/Build.py | 2 +- wscript | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/tools/wafadmin/Build.py b/tools/wafadmin/Build.py index 10700ec20e4..07904868cee 100644 --- a/tools/wafadmin/Build.py +++ b/tools/wafadmin/Build.py @@ -773,7 +773,7 @@ class BuildContext(Utils.Context): try: shutil.copy2(src, tgt) - os.chmod(tgt, chmod) + if chmod < 0: os.chmod(tgt, chmod) except IOError: try: os.stat(src) diff --git a/wscript b/wscript index f72a33e3777..3c5bda4ee26 100644 --- a/wscript +++ b/wscript @@ -969,6 +969,20 @@ def build(bld): bld.install_files('${PREFIX}/bin/', 'tools/node-waf', chmod=0755) bld.install_files('${LIBDIR}/node/wafadmin', 'tools/wafadmin/*.py') bld.install_files('${LIBDIR}/node/wafadmin/Tools', 'tools/wafadmin/Tools/*.py') + install_npm(bld) + +def install_npm(bld): + start_dir = bld.path.find_dir('deps/npm') + # The chmod=-1 is a Node hack. We changed WAF so that when chmod was set to + # -1 that the same permission in this tree are used. Necessary to get + # npm-cli.js to be executable without having to list every file in NPM. + bld.install_files('${LIBDIR}/node_modules/npm', + start_dir.ant_glob('**/*'), + cwd=start_dir, + relative_trick=True, + chmod=0) + bld.symlink_as('${PREFIX}/bin/npm', + '../lib/node_modules/npm/bin/npm-cli.js') def shutdown(): Options.options.debug