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 and targos committed Sep 16, 2022
1 parent 034f6ff commit 49cd8e4
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 7 deletions.
9 changes: 9 additions & 0 deletions configure.py
Original file line number Diff line number Diff line change
Expand Up @@ -739,6 +739,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 @@ -1372,6 +1380,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
Original file line number Diff line number Diff line change
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 49cd8e4

Please sign in to comment.