Skip to content

Commit

Permalink
build,tools: fix cmd_regen_makefile
Browse files Browse the repository at this point in the history
Currently, after having configured and built node and then updating a
dependent target the following error is produced when trying to rebuild
the project:

$ ./configure && make -j8
$ touch node.gypi
$ make -j8
configure: error: no such option: -f
make[1]: *** [Makefile:685: Makefile] Error 2

The reason for this is that the target 'cmd_regen_makefile' is using the
command 'configure' instead of 'gyp_node.py' in out/Makefile:
cmd_regen_makefile = cd $(srcdir); /work/nodejs/node/configure -fmake

As far as I can tell gyp is using sys.argv[0] as the 'gyp_binary' in
__init__.py:
params = {'options': options,
              ...
              'gyp_binary': sys.argv[0],

But when called via 'configure' sys.argv[0] is 'configure' instead of
gyp_node.py leading to the above error.

This commit suggests setting the program name explicitly in
gyp_node.py. Alternatively perhaps this could be done in configure.py
instead but I was not sure what would be best.

PR-URL: #34255
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
  • Loading branch information
danbev authored and MylesBorins committed Jul 16, 2020
1 parent d114961 commit a130771
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions tools/gyp_node.py
Expand Up @@ -51,6 +51,12 @@ def run_gyp(args):
args.append('-Dlinux_use_bundled_gold=0')
args.append('-Dlinux_use_gold_flags=0')

# Set the current program to this module. This is done because gyp
# will use the program path in targets it generates. If this script was called
# by another script the program name will not be gyp_node.py but whatever
# the name of the script that called it is, leading to incorrect commands
# in generated targets (for example cmd_regen_makefile).
sys.argv[0] = os.path.abspath(__file__)
rc = gyp.main(args)
if rc != 0:
print('Error running GYP')
Expand Down

0 comments on commit a130771

Please sign in to comment.