Skip to content

Commit

Permalink
build: add --libdir flag to configure
Browse files Browse the repository at this point in the history
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 <sgallagh@redhat.com>
PR-URL: #44361
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
  • Loading branch information
sgallagher authored and RafaelGSS committed Sep 5, 2022
1 parent 754d26a commit e27e709
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 7 deletions.
9 changes: 9 additions & 0 deletions configure.py
Expand Up @@ -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',
Expand Down Expand Up @@ -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':
Expand Down
9 changes: 2 additions & 7 deletions tools/install.py
Expand Up @@ -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/')
Expand Down

0 comments on commit e27e709

Please sign in to comment.