diff --git a/lib/exe.js b/lib/exe.js index 607abe7..368502c 100644 --- a/lib/exe.js +++ b/lib/exe.js @@ -139,7 +139,7 @@ exports.compile = function (options, complete) { * first download node */ function downloadNode (next) { - _downloadNode(version, options.nodeTempDir, next); + _downloadNode(version, options.nodeTempDir, nodeConfigureArgs, nodeMakeArgs, next); }, /** @@ -235,8 +235,8 @@ exports.compile = function (options, complete) { */ function checkThatExecutableExists (next) { - fs.access(nodeCompiler.releasePath, function (err) { - if (err) { + fs.exists(nodeCompiler.releasePath, function (exists) { + if (!exists) { _log("error", "The release executable has not been generated. " + "This indicates a failure in the build process. " + @@ -276,7 +276,7 @@ exports.compile = function (options, complete) { * @param {function} complete, callback */ -function _downloadNode (version, directory, complete) { +function _downloadNode(version, directory, nodeConfigureArgs, nodeMakeArgs, complete) { var nodeFileDir = path.resolve(path.join(directory, framework, version)), // fixes #107, was process.cwd(), + rest. nodeFilePath = path.resolve(path.join(nodeFileDir, framework + "-" + version + ".tar.gz")); @@ -365,7 +365,7 @@ function _downloadNode (version, directory, complete) { */ function (next, type) { - _getNodeCompiler(nodeFileDir, next, type) + _getNodeCompiler(nodeFileDir, nodeConfigureArgs, nodeMakeArgs, next, type) }, ], complete); @@ -376,7 +376,7 @@ function _downloadNode (version, directory, complete) { * it. */ -function _getNodeCompiler (nodeFileDir, complete, type) { +function _getNodeCompiler (nodeFileDir, nodeConfigureArgs, nodeMakeArgs, complete, type) { var dir = _getFirstDirectory(nodeFileDir); // standard @@ -424,9 +424,9 @@ function _getNodeCompiler (nodeFileDir, complete, type) { make: function (next) { var cfg = "./configure", configure; if(isPy !== "python") { - configure = spawn(isPy, [cfg], { cwd: dir }); + configure = spawn(isPy, [cfg].concat(nodeConfigureArgs), { cwd: dir }); } else { - configure = spawn(cfg, [], { cwd: dir }); + configure = spawn(cfg, nodeConfigureArgs, { cwd: dir }); } // local function, move to top eventually @@ -478,7 +478,7 @@ function _getNodeCompiler (nodeFileDir, complete, type) { if (os.platform().match(/bsd$/) != null) { platformMake = "gmake"; } - var make = spawn(platformMake, [], { cwd: dir }); + var make = spawn(platformMake, nodeMakeArgs, { cwd: dir }); make.stdout.pipe(process.stdout); make.stderr.pipe(process.stderr); make.on("close", function () { @@ -686,6 +686,8 @@ exports.package = function(path, options) { flags: (_package.nexe.runtime.ignoreFlags || options.f), resourceFiles: (_package.nexe.resourceFiles), nodeVersion: (_package.nexe.runtime.version || options.r), + nodeConfigureArgs: (_package.nexe.runtime.nodeConfigureArgs || []), + nodeMakeArgs: (_package.nexe.runtime.nodeMakeArgs || []), python: (_package.nexe.python || options.p), nodeTempDir: (_package.nexe.temp || options.t), framework: (_package.nexe.runtime.framework || options.f)