Configure: verifying the Ruby library path.
An attempt to build a Ruby module for a custom Ruby installation that has the same major version as the system Ruby may unexpectedly cause the use of the system Ruby library. This closes #449 issue on GitHub.
This commit is contained in:
parent
375cbc2cc4
commit
0d7a6885a3
1 changed files with 10 additions and 4 deletions
|
@ -70,25 +70,31 @@ if /bin/sh -c "$NXT_RUBY -v" >> $NXT_AUTOCONF_ERR 2>&1; then
|
|||
|
||||
NXT_RUBY_LIBNAME=`$NXT_RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG["RUBY_SO_NAME"])'`
|
||||
NXT_RUBY_LIBSCONF=`$NXT_RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG["LIBS"])'`
|
||||
NXT_RUBY_LIBPATH=`$NXT_RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG["libdir"])'`
|
||||
NXT_RUBY_LIBS="-l$NXT_RUBY_LIBNAME $NXT_RUBY_LIBSCONF"
|
||||
|
||||
nxt_feature="Ruby library"
|
||||
nxt_feature_name=""
|
||||
nxt_feature_run=no
|
||||
nxt_feature_run=value
|
||||
nxt_feature_incs="${NXT_RUBY_INCPATH}"
|
||||
nxt_feature_libs="${NXT_RUBY_LIBS}"
|
||||
nxt_feature_test="
|
||||
#include <ruby.h>
|
||||
|
||||
int main() {
|
||||
static const char *argv[3] = {
|
||||
\"NGINX_Unit\", \"-rrbconfig\",
|
||||
\"-eprint RbConfig::CONFIG['libdir']\"
|
||||
};
|
||||
|
||||
RUBY_INIT_STACK;
|
||||
ruby_init();
|
||||
return ruby_cleanup(0);
|
||||
return ruby_run_node(ruby_options(3, (char **) argv));
|
||||
}"
|
||||
|
||||
. auto/feature
|
||||
|
||||
if [ $nxt_found = no ]; then
|
||||
NXT_RUBY_LIBPATH=`$NXT_RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG["libdir"])'`
|
||||
if [ "$nxt_feature_value" != "$NXT_RUBY_LIBPATH" ]; then
|
||||
NXT_RUBY_LIBS="-L$NXT_RUBY_LIBPATH -Wl,-rpath,${NXT_RUBY_LIBPATH} $NXT_RUBY_LIBS"
|
||||
|
||||
nxt_feature="Ruby library in $NXT_RUBY_LIBPATH"
|
||||
|
|
Loading…
Reference in a new issue