From e27e709d3ca93b3e7036ddc4f4d28dfde228bfb6 Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Sun, 28 Aug 2022 04:12:42 -0400 Subject: [PATCH] build: add --libdir flag to configure This will allow distribution packages to select an alternative location for the unofficial libnode.so. For example, on Fedora it will install into /usr/lib64 on 64-bit systems. Signed-off-by: Stephen Gallagher PR-URL: https://github.com/nodejs/node/pull/44361 Reviewed-By: Richard Lau Reviewed-By: Antoine du Hamel --- configure.py | 9 +++++++++ tools/install.py | 9 ++------- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/configure.py b/configure.py index e105d4e0cca4f6..d83cebc9d08a49 100755 --- a/configure.py +++ b/configure.py @@ -735,6 +735,14 @@ 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 relative to the ' + 'prefix. This is a no-op if --shared is not specified. ' + + '(This mode is not officially supported for regular applications)') + parser.add_argument('--without-v8-platform', action='store_true', dest='without_v8_platform', @@ -1376,6 +1384,7 @@ def configure_node(o): 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': diff --git a/tools/install.py b/tools/install.py index 5793b581f774db..4b01d67da54e1f 100755 --- a/tools/install.py +++ b/tools/install.py @@ -169,19 +169,14 @@ def files(action): # install libnode.version.so so_name = 'libnode.' + re.sub(r'\.x$', '.so', variables.get('shlib_suffix')) - action([output_prefix + so_name], 'lib/' + so_name) + action([output_prefix + so_name], variables.get('libdir') + '/' + so_name) # create symlink of libnode.so -> libnode.version.so (C++ addons compat) link_path = abspath(install_path, 'lib/libnode.so') try_symlink(so_name, link_path) else: output_lib = 'libnode.' + variables.get('shlib_suffix') - action([output_prefix + output_lib], 'lib/' + output_lib) - if 'true' == variables.get('node_use_dtrace'): - action(['out/Release/node.d'], 'lib/dtrace/node.d') - - # behave similarly for systemtap - action(['src/node.stp'], 'share/systemtap/tapset/') + action([output_prefix + output_lib], variables.get('libdir') + '/' + output_lib) action(['deps/v8/tools/gdbinit'], 'share/doc/node/') action(['deps/v8/tools/lldb_commands.py'], 'share/doc/node/')