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
Original file line number Diff line number Diff line change
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
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 e27e709

Please sign in to comment.