@@ -101,6 +101,7 @@ def CalculateVariables(default_variables, params):
101
101
default_variables .setdefault ("SHARED_LIB_SUFFIX" , ".a" )
102
102
elif flavor == "zos" :
103
103
default_variables .setdefault ("SHARED_LIB_SUFFIX" , ".x" )
104
+ COMPILABLE_EXTENSIONS .update ({".pli" : "pli" })
104
105
else :
105
106
default_variables .setdefault ("SHARED_LIB_SUFFIX" , ".so" )
106
107
default_variables .setdefault ("SHARED_LIB_DIR" , "$(builddir)/lib.$(TOOLSET)" )
@@ -318,7 +319,7 @@ def CalculateGeneratorInputInfo(params):
318
319
cmd_link = $(LINK.$(TOOLSET)) $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o $@ $(LD_INPUTS) $(LIBS)
319
320
320
321
quiet_cmd_solink = SOLINK($(TOOLSET)) $@
321
- cmd_solink = $(LINK.$(TOOLSET)) $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -Wl,DLL - o $(patsubst %.x,%.so,$@) $(LD_INPUTS) $(LIBS) && if [ -f $(notdir $@) ]; then /bin/cp $(notdir $@) $@; else true; fi
322
+ cmd_solink = $(LINK.$(TOOLSET)) $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o $@ $(LD_INPUTS) $(LIBS)
322
323
323
324
quiet_cmd_solink_module = SOLINK_MODULE($(TOOLSET)) $@
324
325
cmd_solink_module = $(LINK.$(TOOLSET)) $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o $@ $(filter-out FORCE_DO_CMD, $^) $(LIBS)
@@ -378,6 +379,7 @@ def CalculateGeneratorInputInfo(params):
378
379
LINK.target ?= %(LINK.target)s
379
380
LDFLAGS.target ?= $(LDFLAGS)
380
381
AR.target ?= $(AR)
382
+ PLI.target ?= %(PLI.target)s
381
383
382
384
# C++ apps need to be linked with g++.
383
385
LINK ?= $(CXX.target)
@@ -391,6 +393,7 @@ def CalculateGeneratorInputInfo(params):
391
393
LINK.host ?= %(LINK.host)s
392
394
LDFLAGS.host ?= $(LDFLAGS_host)
393
395
AR.host ?= %(AR.host)s
396
+ PLI.host ?= %(PLI.host)s
394
397
395
398
# Define a dir function that can handle spaces.
396
399
# http://www.gnu.org/software/make/manual/make.html#Syntax-of-Functions
@@ -628,6 +631,15 @@ def WriteRootHeaderSuffixRules(writer):
628
631
writer .write ("\n " )
629
632
630
633
634
+ SHARED_HEADER_OS390_COMMANDS = """
635
+ PLIFLAGS.target ?= -qlp=64 -qlimits=extname=31 $(PLIFLAGS)
636
+ PLIFLAGS.host ?= -qlp=64 -qlimits=extname=31 $(PLIFLAGS)
637
+
638
+ quiet_cmd_pli = PLI($(TOOLSET)) $@
639
+ cmd_pli = $(PLI.$(TOOLSET)) $(GYP_PLIFLAGS) $(PLIFLAGS.$(TOOLSET)) -c $< && \
640
+ if [ -f $(notdir $@) ]; then /bin/cp $(notdir $@) $@; else true; fi
641
+ """
642
+
631
643
SHARED_HEADER_SUFFIX_RULES_COMMENT1 = """\
632
644
# Suffix rules, putting all outputs into $(obj).
633
645
"""
@@ -2450,10 +2462,12 @@ def CalculateMakefilePath(build_file, base_name):
2450
2462
"AR.target" : GetEnvironFallback (("AR_target" , "AR" ), "$(AR)" ),
2451
2463
"CXX.target" : GetEnvironFallback (("CXX_target" , "CXX" ), "$(CXX)" ),
2452
2464
"LINK.target" : GetEnvironFallback (("LINK_target" , "LINK" ), "$(LINK)" ),
2465
+ "PLI.target" : GetEnvironFallback (("PLI_target" , "PLI" ), "pli" ),
2453
2466
"CC.host" : GetEnvironFallback (("CC_host" , "CC" ), "gcc" ),
2454
2467
"AR.host" : GetEnvironFallback (("AR_host" , "AR" ), "ar" ),
2455
2468
"CXX.host" : GetEnvironFallback (("CXX_host" , "CXX" ), "g++" ),
2456
2469
"LINK.host" : GetEnvironFallback (("LINK_host" , "LINK" ), "$(CXX.host)" ),
2470
+ "PLI.host" : GetEnvironFallback (("PLI_host" , "PLI" ), "pli" ),
2457
2471
}
2458
2472
if flavor == "mac" :
2459
2473
flock_command = "./gyp-mac-tool flock"
@@ -2469,16 +2483,36 @@ def CalculateMakefilePath(build_file, base_name):
2469
2483
header_params .update ({"link_commands" : LINK_COMMANDS_ANDROID })
2470
2484
elif flavor == "zos" :
2471
2485
copy_archive_arguments = "-fPR"
2472
- makedep_arguments = "-qmakedep=gcc"
2486
+ CC_target = GetEnvironFallback (("CC_target" , "CC" ), "njsc" )
2487
+ makedep_arguments = "-MMD"
2488
+ if CC_target == "clang" :
2489
+ CC_host = GetEnvironFallback (("CC_host" , "CC" ), "clang" )
2490
+ CXX_target = GetEnvironFallback (("CXX_target" , "CXX" ), "clang++" )
2491
+ CXX_host = GetEnvironFallback (("CXX_host" , "CXX" ), "clang++" )
2492
+ elif CC_target == "ibm-clang64" :
2493
+ CC_host = GetEnvironFallback (("CC_host" , "CC" ), "ibm-clang64" )
2494
+ CXX_target = GetEnvironFallback (("CXX_target" , "CXX" ), "ibm-clang++64" )
2495
+ CXX_host = GetEnvironFallback (("CXX_host" , "CXX" ), "ibm-clang++64" )
2496
+ elif CC_target == "ibm-clang" :
2497
+ CC_host = GetEnvironFallback (("CC_host" , "CC" ), "ibm-clang" )
2498
+ CXX_target = GetEnvironFallback (("CXX_target" , "CXX" ), "ibm-clang++" )
2499
+ CXX_host = GetEnvironFallback (("CXX_host" , "CXX" ), "ibm-clang++" )
2500
+ else :
2501
+ # Node.js versions prior to v18:
2502
+ makedep_arguments = "-qmakedep=gcc"
2503
+ CC_host = GetEnvironFallback (("CC_host" , "CC" ), "njsc" )
2504
+ CXX_target = GetEnvironFallback (("CXX_target" , "CXX" ), "njsc++" )
2505
+ CXX_host = GetEnvironFallback (("CXX_host" , "CXX" ), "njsc++" )
2473
2506
header_params .update (
2474
2507
{
2475
2508
"copy_archive_args" : copy_archive_arguments ,
2476
2509
"makedep_args" : makedep_arguments ,
2477
2510
"link_commands" : LINK_COMMANDS_OS390 ,
2478
- "CC.target" : GetEnvironFallback (("CC_target" , "CC" ), "njsc" ),
2479
- "CXX.target" : GetEnvironFallback (("CXX_target" , "CXX" ), "njsc++" ),
2480
- "CC.host" : GetEnvironFallback (("CC_host" , "CC" ), "njsc" ),
2481
- "CXX.host" : GetEnvironFallback (("CXX_host" , "CXX" ), "njsc++" ),
2511
+ "extra_commands" : SHARED_HEADER_OS390_COMMANDS ,
2512
+ "CC.target" : CC_target ,
2513
+ "CXX.target" : CXX_target ,
2514
+ "CC.host" : CC_host ,
2515
+ "CXX.host" : CXX_host ,
2482
2516
}
2483
2517
)
2484
2518
elif flavor == "solaris" :
0 commit comments