From 62ddf8499747fb1e366477d666c0634ad50039a9 Mon Sep 17 00:00:00 2001
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Date: Tue, 19 Mar 2019 23:22:40 -0400
Subject: [PATCH 2/2] Install both binaries and use libdir.

This allows us to build with a shared library for other users while
still providing the normal executable.

Taken from - https://src.fedoraproject.org/rpms/nodejs/raw/rawhide/f/0002-Install-both-binaries-and-use-libdir.patch

Upstream-Status: Pending

Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 configure.py     |  7 +++++++
 tools/install.py | 21 +++++++++------------
 2 files changed, 16 insertions(+), 12 deletions(-)

diff --git a/configure.py b/configure.py
index 6efb98c2316f089f3167e486282593245373af3f..a6d2ec939e4480dfae703f3978067537abf9f0f0 100755
--- a/configure.py
+++ b/configure.py
@@ -721,10 +721,16 @@ parser.add_argument('--shared',
     dest='shared',
     default=None,
     help='compile shared library for embedding node in another project. ' +
          '(This mode is not officially supported for regular applications)')
 
+parser.add_argument('--libdir',
+    action='store',
+    dest='libdir',
+    default='lib',
+    help='a directory to install the shared library into')
+
 parser.add_argument('--without-v8-platform',
     action='store_true',
     dest='without_v8_platform',
     default=False,
     help='do not initialize v8 platform during node.js startup. ' +
@@ -1305,10 +1311,11 @@ def configure_node(o):
     o['variables']['debug_nghttp2'] = 'false'
 
   o['variables']['node_no_browser_globals'] = b(options.no_browser_globals)
 
   o['variables']['node_shared'] = b(options.shared)
+  o['variables']['libdir'] = options.libdir
   node_module_version = getmoduleversion.get_version()
 
   if options.dest_os == 'android':
     shlib_suffix = 'so'
   elif sys.platform == 'darwin':
diff --git a/tools/install.py b/tools/install.py
index 41cc1cbc60a9480cc08df3aa0ebe582c2becc3a2..11208f9e7166ab60da46d5ace2257c239a7e9263 100755
--- a/tools/install.py
+++ b/tools/install.py
@@ -128,26 +128,23 @@ def subdir_files(path, dest, action):
   for subdir, files_in_path in ret.items():
     action(files_in_path, subdir + '/')
 
 def files(action):
   is_windows = sys.platform == 'win32'
-  output_file = 'node'
   output_prefix = 'out/Release/'
+  output_libprefix = output_prefix
 
-  if 'false' == variables.get('node_shared'):
-    if is_windows:
-      output_file += '.exe'
+  if is_windows:
+    output_bin = 'node.exe'
+    output_lib = 'node.dll'
   else:
-    if is_windows:
-      output_file += '.dll'
-    else:
-      output_file = 'lib' + output_file + '.' + variables.get('shlib_suffix')
+    output_bin = 'node'
+    output_lib = 'libnode.' + variables.get('shlib_suffix')
 
-  if 'false' == variables.get('node_shared'):
-    action([output_prefix + output_file], 'bin/' + output_file)
-  else:
-    action([output_prefix + output_file], 'lib/' + output_file)
+  action([output_prefix + output_bin], 'bin/' + output_bin)
+  if 'true' == variables.get('node_shared'):
+    action([output_libprefix + output_lib], variables.get('libdir') + '/' + output_lib)
 
   if 'true' == variables.get('node_use_dtrace'):
     action(['out/Release/node.d'], 'lib/dtrace/node.d')
 
   # behave similarly for systemtap
-- 
2.33.0

