diff options
author | Fedor Indutny <fedor.indutny@gmail.com> | 2014-02-20 20:52:26 +0400 |
---|---|---|
committer | Fedor Indutny <fedor.indutny@gmail.com> | 2014-02-21 00:46:26 +0400 |
commit | b940e0fd86f29694c571e4fef5b49434eb1cbb8d (patch) | |
tree | decb1a50389d504255a7c978a4122219b7b35f2f /tools | |
parent | 085db9dd6c1f3faf526c16170e9ffe89b8ec6211 (diff) | |
download | node-new-b940e0fd86f29694c571e4fef5b49434eb1cbb8d.tar.gz |
gyp: specialize node.d for freebsd
`node.d` should use `psinfo.d` instead of `procfs.d` and have statically
defined architecture on FreeBSD.
Diffstat (limited to 'tools')
-rwxr-xr-x | tools/install.py | 2 | ||||
-rwxr-xr-x | tools/specialize_node_d.py | 32 |
2 files changed, 33 insertions, 1 deletions
diff --git a/tools/install.py b/tools/install.py index 7249de36e9..f51d95a129 100755 --- a/tools/install.py +++ b/tools/install.py @@ -132,7 +132,7 @@ def files(action): # install unconditionally, checking if the platform supports dtrace doesn't # work when cross-compiling and besides, there's at least one linux flavor # with dtrace support now (oracle's "unbreakable" linux) - action(['src/node.d'], 'lib/dtrace/') + action(['out/Release/node.d'], 'lib/dtrace/node.d') if 'freebsd' in sys.platform or 'openbsd' in sys.platform: action(['doc/node.1'], 'man/man1/') diff --git a/tools/specialize_node_d.py b/tools/specialize_node_d.py new file mode 100755 index 0000000000..0ee505ae91 --- /dev/null +++ b/tools/specialize_node_d.py @@ -0,0 +1,32 @@ +#!/usr/bin/env python + +# +# specialize_node_d.py output_file src/node.d flavor arch +# +# Specialize node.d for given flavor (`freebsd`) and arch (`x64` or `ia32`) +# + +import re +import subprocess +import sys +import errno + +if len(sys.argv) != 5: + print "usage: specialize_node_d.py outfile src/node.d flavor arch" + sys.exit(2); + +outfile = file(sys.argv[1], 'w'); +infile = file(sys.argv[2], 'r'); +flavor = sys.argv[3]; +arch = sys.argv[4]; + +model = r'curpsinfo->pr_dmodel == PR_MODEL_ILP32' + +for line in infile: + if flavor == 'freebsd': + line = re.sub('procfs.d', 'psinfo.d', line); + if arch == 'x64': + line = re.sub(model, '0', line); + else: + line = re.sub(model, '1', line); + outfile.write(line); |