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 <[email protected]>
PR-URL: #44361
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
  • Loading branch information
sgallagher authored Aug 28, 2022
1 parent 3a6003a commit 8a1aa55
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 2 deletions.
9 changes: 9 additions & 0 deletions configure.py
Original file line number Diff line number Diff line change
Expand Up @@ -706,6 +706,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 @@ -1323,6 +1331,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
4 changes: 2 additions & 2 deletions tools/install.py
Original file line number Diff line number Diff line change
Expand Up @@ -169,14 +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)
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 8a1aa55

Please sign in to comment.