Skip to content

Commit a130771

Browse files
danbevMylesBorins
authored andcommitted
build,tools: fix cmd_regen_makefile
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>
1 parent d114961 commit a130771

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

tools/gyp_node.py

+6
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,12 @@ def run_gyp(args):
5151
args.append('-Dlinux_use_bundled_gold=0')
5252
args.append('-Dlinux_use_gold_flags=0')
5353

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

0 commit comments

Comments
 (0)