mirror of
https://github.com/electron/node-gyp.git
synced 2025-09-15 13:43:40 +02:00
Add support for AIX
For AIX we need to use gmake. For AIX we need to set up the path to the exp file which contains the symbols needed for linking. The file will either be in one of the following depeding on whether are are in installed or development environment: - the include/node directory - the out/Release directory PR-URL: https://github.com/nodejs/node-gyp/pull/753 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
This commit is contained in:
parent
a8d441a0a2
commit
9bfa0876b4
5 changed files with 221 additions and 2 deletions
|
@ -19,6 +19,7 @@ var fs = require('graceful-fs')
|
|||
, spawn = cp.spawn
|
||||
, execFile = cp.execFile
|
||||
, win = process.platform == 'win32'
|
||||
, findNodeDirectory = require('./find-node-directory')
|
||||
|
||||
exports.usage = 'Generates ' + (win ? 'MSVC project files' : 'a Makefile') + ' for the current module'
|
||||
|
||||
|
@ -299,6 +300,34 @@ function configure (gyp, argv, callback) {
|
|||
argv.push('-I', config)
|
||||
})
|
||||
|
||||
// for AIX we need to set up the path to the exp file
|
||||
// which contains the symbols needed for linking.
|
||||
// The file will either be in one of the following
|
||||
// depending on whether it is an installed or
|
||||
// development environment:
|
||||
// - the include/node directory
|
||||
// - the out/Release directory
|
||||
// - the out/Debug directory
|
||||
// - the root directory
|
||||
var node_exp_file = ''
|
||||
if (process.platform === 'aix') {
|
||||
var node_root_dir = findNodeDirectory()
|
||||
var candidates = ['include/node/node.exp',
|
||||
'out/Release/node.exp',
|
||||
'out/Debug/node.exp',
|
||||
'node.exp']
|
||||
for (var next = 0; next < candidates.length; next++) {
|
||||
node_exp_file = path.resolve(node_root_dir, candidates[next])
|
||||
try {
|
||||
fs.accessSync(node_exp_file, fs.R_OK)
|
||||
// exp file found, stop looking
|
||||
break
|
||||
} catch (exception) {
|
||||
// this candidate was not found or not readable, do nothing
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// this logic ported from the old `gyp_addon` python file
|
||||
var gyp_script = path.resolve(__dirname, '..', 'gyp', 'gyp_main.py')
|
||||
var addon_gypi = path.resolve(__dirname, '..', 'addon.gypi')
|
||||
|
@ -319,6 +348,9 @@ function configure (gyp, argv, callback) {
|
|||
argv.push('-Dlibrary=shared_library')
|
||||
argv.push('-Dvisibility=default')
|
||||
argv.push('-Dnode_root_dir=' + nodeDir)
|
||||
if (process.platform === 'aix') {
|
||||
argv.push('-Dnode_exp_file=' + node_exp_file)
|
||||
}
|
||||
argv.push('-Dnode_gyp_dir=' + nodeGypDir)
|
||||
argv.push('-Dnode_lib_file=' + release.name + '.lib')
|
||||
argv.push('-Dmodule_root_dir=' + process.cwd())
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue