mirror of
https://github.com/pyenv/pyenv.git
synced 2024-11-21 20:47:00 -05:00
Merge pull request #528 from sstephenson/dylib
Speed up rbenv by dynamically loading compiled command
This commit is contained in:
commit
39cde6fc95
13 changed files with 749 additions and 31 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -4,3 +4,6 @@
|
||||||
/versions
|
/versions
|
||||||
/sources
|
/sources
|
||||||
/cache
|
/cache
|
||||||
|
/libexec/*.dylib
|
||||||
|
/src/Makefile
|
||||||
|
/src/*.o
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
install: git clone https://github.com/sstephenson/bats.git
|
install: git clone https://github.com/sstephenson/bats.git
|
||||||
script: bats/bin/bats --tap test
|
script: PATH="./bats/bin:$PATH" test/run
|
||||||
# skips unnecessary Ruby-specific setup
|
|
||||||
language: c
|
language: c
|
||||||
|
env:
|
||||||
|
- RBENV_NATIVE_EXT=
|
||||||
|
- RBENV_NATIVE_EXT=1
|
||||||
|
|
|
@ -12,6 +12,16 @@ if [ -n "$RBENV_DEBUG" ]; then
|
||||||
set -x
|
set -x
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if enable -f "${0%/*}"/../libexec/rbenv-realpath.dylib realpath 2>/dev/null; then
|
||||||
|
abs_dirname() {
|
||||||
|
local path="$(realpath "$1")"
|
||||||
|
echo "${path%/*}"
|
||||||
|
}
|
||||||
|
else
|
||||||
|
if [ -n "$RBENV_NATIVE_EXT" ]; then
|
||||||
|
echo "rbenv: failed to load \`realpath' builtin" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
READLINK=$(type -p greadlink readlink | head -1)
|
READLINK=$(type -p greadlink readlink | head -1)
|
||||||
if [ -z "$READLINK" ]; then
|
if [ -z "$READLINK" ]; then
|
||||||
echo "rbenv: cannot find readlink - are you missing GNU coreutils?" >&2
|
echo "rbenv: cannot find readlink - are you missing GNU coreutils?" >&2
|
||||||
|
@ -35,6 +45,7 @@ abs_dirname() {
|
||||||
pwd
|
pwd
|
||||||
cd "$cwd"
|
cd "$cwd"
|
||||||
}
|
}
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -z "${RBENV_ROOT}" ]; then
|
if [ -z "${RBENV_ROOT}" ]; then
|
||||||
RBENV_ROOT="${HOME}/.rbenv"
|
RBENV_ROOT="${HOME}/.rbenv"
|
||||||
|
|
|
@ -19,6 +19,11 @@ if [ -z "$RBENV_COMMAND" ]; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if ! enable -f "${BASH_SOURCE%/*}"/rbenv-realpath.dylib realpath 2>/dev/null; then
|
||||||
|
if [ -n "$RBENV_NATIVE_EXT" ]; then
|
||||||
|
echo "rbenv: failed to load \`realpath' builtin" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
READLINK=$(type -p greadlink readlink | head -1)
|
READLINK=$(type -p greadlink readlink | head -1)
|
||||||
if [ -z "$READLINK" ]; then
|
if [ -z "$READLINK" ]; then
|
||||||
echo "rbenv: cannot find readlink - are you missing GNU coreutils?" >&2
|
echo "rbenv: cannot find readlink - are you missing GNU coreutils?" >&2
|
||||||
|
@ -42,13 +47,14 @@ realpath() {
|
||||||
echo "$(pwd)/$name"
|
echo "$(pwd)/$name"
|
||||||
cd "$cwd"
|
cd "$cwd"
|
||||||
}
|
}
|
||||||
|
fi
|
||||||
|
|
||||||
IFS=: hook_paths=($RBENV_HOOK_PATH)
|
IFS=: hook_paths=($RBENV_HOOK_PATH)
|
||||||
|
|
||||||
shopt -s nullglob
|
shopt -s nullglob
|
||||||
for path in "${hook_paths[@]}"; do
|
for path in "${hook_paths[@]}"; do
|
||||||
for script in "$path/$RBENV_COMMAND"/*.bash; do
|
for script in "$path/$RBENV_COMMAND"/*.bash; do
|
||||||
echo $(realpath $script)
|
realpath "$script"
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
shopt -u nullglob
|
shopt -u nullglob
|
||||||
|
|
|
@ -28,31 +28,7 @@ if [ -z "$shell" ]; then
|
||||||
shell="$(basename "${shell:-$SHELL}")"
|
shell="$(basename "${shell:-$SHELL}")"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
READLINK=$(type -p greadlink readlink | head -1)
|
root="${0%/*}/.."
|
||||||
if [ -z "$READLINK" ]; then
|
|
||||||
echo "rbenv: cannot find readlink - are you missing GNU coreutils?" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
resolve_link() {
|
|
||||||
$READLINK "$1"
|
|
||||||
}
|
|
||||||
|
|
||||||
abs_dirname() {
|
|
||||||
local cwd="$(pwd)"
|
|
||||||
local path="$1"
|
|
||||||
|
|
||||||
while [ -n "$path" ]; do
|
|
||||||
cd "${path%/*}"
|
|
||||||
local name="${path##*/}"
|
|
||||||
path="$(resolve_link "$name" || true)"
|
|
||||||
done
|
|
||||||
|
|
||||||
pwd
|
|
||||||
cd "$cwd"
|
|
||||||
}
|
|
||||||
|
|
||||||
root="$(abs_dirname "$0")/.."
|
|
||||||
|
|
||||||
if [ -z "$print" ]; then
|
if [ -z "$print" ]; then
|
||||||
case "$shell" in
|
case "$shell" in
|
||||||
|
|
25
src/Makefile.in
Normal file
25
src/Makefile.in
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
CC = @CC@
|
||||||
|
|
||||||
|
CFLAGS = @CFLAGS@
|
||||||
|
LOCAL_CFLAGS = @LOCAL_CFLAGS@
|
||||||
|
DEFS = @DEFS@
|
||||||
|
LOCAL_DEFS = @LOCAL_DEFS@
|
||||||
|
|
||||||
|
CCFLAGS = $(DEFS) $(LOCAL_DEFS) $(LOCAL_CFLAGS) $(CFLAGS)
|
||||||
|
|
||||||
|
SHOBJ_CC = @SHOBJ_CC@
|
||||||
|
SHOBJ_CFLAGS = @SHOBJ_CFLAGS@
|
||||||
|
SHOBJ_LD = @SHOBJ_LD@
|
||||||
|
SHOBJ_LDFLAGS = @SHOBJ_LDFLAGS@
|
||||||
|
SHOBJ_XLDFLAGS = @SHOBJ_XLDFLAGS@
|
||||||
|
SHOBJ_LIBS = @SHOBJ_LIBS@
|
||||||
|
SHOBJ_STATUS = @SHOBJ_STATUS@
|
||||||
|
|
||||||
|
.c.o:
|
||||||
|
$(SHOBJ_CC) $(SHOBJ_CFLAGS) $(CCFLAGS) -c -o $@ $<
|
||||||
|
|
||||||
|
../libexec/rbenv-realpath.dylib: realpath.o
|
||||||
|
$(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ realpath.o $(SHOBJ_LIBS)
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f *.o ../libexec/*.dylib
|
31
src/bash.h
Normal file
31
src/bash.h
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
#ifndef __BASH_H__
|
||||||
|
#define __BASH_H__
|
||||||
|
|
||||||
|
#define EXECUTION_SUCCESS 0
|
||||||
|
#define EXECUTION_FAILURE 1
|
||||||
|
#define EX_USAGE 258
|
||||||
|
|
||||||
|
#define BUILTIN_ENABLED 1
|
||||||
|
|
||||||
|
typedef struct word_desc {
|
||||||
|
char *word;
|
||||||
|
int flags;
|
||||||
|
} WORD_DESC;
|
||||||
|
|
||||||
|
typedef struct word_list {
|
||||||
|
struct word_list *next;
|
||||||
|
WORD_DESC *word;
|
||||||
|
} WORD_LIST;
|
||||||
|
|
||||||
|
typedef int sh_builtin_func_t(WORD_LIST *);
|
||||||
|
|
||||||
|
struct builtin {
|
||||||
|
char *name;
|
||||||
|
sh_builtin_func_t *function;
|
||||||
|
int flags;
|
||||||
|
char * const *long_doc;
|
||||||
|
const char *short_doc;
|
||||||
|
char *unused;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
46
src/configure
vendored
Executable file
46
src/configure
vendored
Executable file
|
@ -0,0 +1,46 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
src_dir="${0%/*}"
|
||||||
|
|
||||||
|
if [ -z "$CC" ]; then
|
||||||
|
if type -p gcc >/dev/null; then
|
||||||
|
CC=gcc
|
||||||
|
else
|
||||||
|
echo "warning: gcc not found; using CC=cc" >&2
|
||||||
|
CC=cc
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! type -p "$CC" >/dev/null; then
|
||||||
|
echo "aborted: compiler not found: $CC" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$(uname -s)" in
|
||||||
|
Darwin* )
|
||||||
|
host_os="darwin$(uname -r)"
|
||||||
|
;;
|
||||||
|
OpenBSD* )
|
||||||
|
host_os="openbsd$(uname -r)"
|
||||||
|
;;
|
||||||
|
* )
|
||||||
|
host_os="linux-gnu"
|
||||||
|
esac
|
||||||
|
|
||||||
|
eval "$("$src_dir"/shobj-conf -C "$CC" -o "$host_os")"
|
||||||
|
|
||||||
|
sed "
|
||||||
|
s,@CC@,${CC},
|
||||||
|
s,@CFLAGS@,${CFLAGS},
|
||||||
|
s,@LOCAL_CFLAGS@,${LOCAL_CFLAGS},
|
||||||
|
s,@DEFS@,${DEFS},
|
||||||
|
s,@LOCAL_DEFS@,${LOCAL_DEFS},
|
||||||
|
s,@SHOBJ_CC@,${SHOBJ_CC},
|
||||||
|
s,@SHOBJ_CFLAGS@,${SHOBJ_CFLAGS},
|
||||||
|
s,@SHOBJ_LD@,${SHOBJ_LD},
|
||||||
|
s,@SHOBJ_LDFLAGS@,${SHOBJ_LDFLAGS//,/\,},
|
||||||
|
s,@SHOBJ_XLDFLAGS@,${SHOBJ_XLDFLAGS//,/\,},
|
||||||
|
s,@SHOBJ_LIBS@,${SHOBJ_LIBS},
|
||||||
|
s,@SHOBJ_STATUS@,${SHOBJ_STATUS},
|
||||||
|
" "$src_dir"/Makefile.in > "$src_dir"/Makefile
|
43
src/realpath.c
Normal file
43
src/realpath.c
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
#include "bash.h"
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
int realpath_builtin(list)
|
||||||
|
WORD_LIST *list;
|
||||||
|
{
|
||||||
|
int es;
|
||||||
|
char *realbuf, *p;
|
||||||
|
|
||||||
|
if (list == 0) {
|
||||||
|
// builtin_usage();
|
||||||
|
return (EX_USAGE);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (es = EXECUTION_SUCCESS; list; list = list->next) {
|
||||||
|
p = list->word->word;
|
||||||
|
realbuf = realpath(p, NULL);
|
||||||
|
if (realbuf == NULL) {
|
||||||
|
es = EXECUTION_FAILURE;
|
||||||
|
// builtin_error("%s: cannot resolve: %s", p, strerror(errno));
|
||||||
|
} else {
|
||||||
|
printf("%s\n", realbuf);
|
||||||
|
free(realbuf);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return es;
|
||||||
|
}
|
||||||
|
|
||||||
|
char *realpath_doc[] = {
|
||||||
|
"Display each PATHNAME argument, resolving symbolic links. The exit status",
|
||||||
|
"is 0 if each PATHNAME was resolved; non-zero otherwise.",
|
||||||
|
(char *)NULL
|
||||||
|
};
|
||||||
|
|
||||||
|
struct builtin realpath_struct = {
|
||||||
|
"realpath",
|
||||||
|
realpath_builtin,
|
||||||
|
BUILTIN_ENABLED,
|
||||||
|
realpath_doc,
|
||||||
|
"realpath pathname [pathname...]",
|
||||||
|
0
|
||||||
|
};
|
558
src/shobj-conf
Executable file
558
src/shobj-conf
Executable file
|
@ -0,0 +1,558 @@
|
||||||
|
#! /bin/sh
|
||||||
|
#
|
||||||
|
# shobj-conf -- output a series of variable assignments to be substituted
|
||||||
|
# into a Makefile by configure which specify system-dependent
|
||||||
|
# information for creating shared objects that may be loaded
|
||||||
|
# into bash with `enable -f'
|
||||||
|
#
|
||||||
|
# usage: shobj-conf [-C compiler] -c host_cpu -o host_os -v host_vendor
|
||||||
|
#
|
||||||
|
# Chet Ramey
|
||||||
|
# chet@po.cwru.edu
|
||||||
|
|
||||||
|
# Copyright (C) 1996-2002 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
|
||||||
|
|
||||||
|
#
|
||||||
|
# defaults
|
||||||
|
#
|
||||||
|
SHOBJ_STATUS=supported
|
||||||
|
SHLIB_STATUS=supported
|
||||||
|
|
||||||
|
SHOBJ_CC=cc
|
||||||
|
SHOBJ_CFLAGS=
|
||||||
|
SHOBJ_LD=
|
||||||
|
SHOBJ_LDFLAGS=
|
||||||
|
SHOBJ_XLDFLAGS=
|
||||||
|
SHOBJ_LIBS=
|
||||||
|
|
||||||
|
SHLIB_XLDFLAGS=
|
||||||
|
SHLIB_LIBS=
|
||||||
|
|
||||||
|
SHLIB_DOT='.'
|
||||||
|
SHLIB_LIBPREF='lib'
|
||||||
|
SHLIB_LIBSUFF='so'
|
||||||
|
|
||||||
|
SHLIB_LIBVERSION='$(SHLIB_LIBSUFF)'
|
||||||
|
SHLIB_DLLVERSION='$(SHLIB_MAJOR)'
|
||||||
|
|
||||||
|
PROGNAME=`basename $0`
|
||||||
|
USAGE="$PROGNAME [-C compiler] -c host_cpu -o host_os -v host_vendor"
|
||||||
|
|
||||||
|
while [ $# -gt 0 ]; do
|
||||||
|
case "$1" in
|
||||||
|
-C) shift; SHOBJ_CC="$1"; shift ;;
|
||||||
|
-c) shift; host_cpu="$1"; shift ;;
|
||||||
|
-o) shift; host_os="$1"; shift ;;
|
||||||
|
-v) shift; host_vendor="$1"; shift ;;
|
||||||
|
*) echo "$USAGE" >&2 ; exit 2;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
case "${host_os}-${SHOBJ_CC}" in
|
||||||
|
sunos4*-*gcc*)
|
||||||
|
SHOBJ_CFLAGS=-fpic
|
||||||
|
SHOBJ_LD=/usr/bin/ld
|
||||||
|
SHOBJ_LDFLAGS='-assert pure-text'
|
||||||
|
|
||||||
|
SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
|
||||||
|
;;
|
||||||
|
|
||||||
|
sunos4*)
|
||||||
|
SHOBJ_CFLAGS=-pic
|
||||||
|
SHOBJ_LD=/usr/bin/ld
|
||||||
|
SHOBJ_LDFLAGS='-assert pure-text'
|
||||||
|
|
||||||
|
SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
|
||||||
|
;;
|
||||||
|
|
||||||
|
sunos5*-*gcc*|solaris2*-*gcc*)
|
||||||
|
SHOBJ_CFLAGS=-fpic
|
||||||
|
SHOBJ_LD='${CC}'
|
||||||
|
ld_used=`gcc -print-prog-name=ld`
|
||||||
|
if ${ld_used} -V 2>&1 | grep GNU >/dev/null 2>&1; then
|
||||||
|
# This line works for the GNU ld
|
||||||
|
SHOBJ_LDFLAGS='-shared -Wl,-h,$@'
|
||||||
|
else
|
||||||
|
# This line works for the Solaris linker in /usr/ccs/bin/ld
|
||||||
|
SHOBJ_LDFLAGS='-shared -Wl,-i -Wl,-h,$@'
|
||||||
|
fi
|
||||||
|
|
||||||
|
# SHLIB_XLDFLAGS='-R $(libdir)'
|
||||||
|
SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
|
||||||
|
;;
|
||||||
|
|
||||||
|
sunos5*|solaris2*)
|
||||||
|
SHOBJ_CFLAGS='-K pic'
|
||||||
|
SHOBJ_LD=/usr/ccs/bin/ld
|
||||||
|
SHOBJ_LDFLAGS='-G -dy -z text -i -h $@'
|
||||||
|
|
||||||
|
# SHLIB_XLDFLAGS='-R $(libdir)'
|
||||||
|
SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
|
||||||
|
;;
|
||||||
|
|
||||||
|
# All versions of Linux or the semi-mythical GNU Hurd.
|
||||||
|
linux*-*|gnu*-*|k*bsd*-gnu-*)
|
||||||
|
SHOBJ_CFLAGS=-fPIC
|
||||||
|
SHOBJ_LD='${CC}'
|
||||||
|
SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
|
||||||
|
|
||||||
|
SHLIB_XLDFLAGS='-Wl,-rpath,$(libdir) -Wl,-soname,`basename $@ $(SHLIB_MINOR)`'
|
||||||
|
SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
|
||||||
|
;;
|
||||||
|
|
||||||
|
freebsd2* | netbsd*)
|
||||||
|
SHOBJ_CFLAGS=-fpic
|
||||||
|
SHOBJ_LD=ld
|
||||||
|
SHOBJ_LDFLAGS='-x -Bshareable'
|
||||||
|
|
||||||
|
SHLIB_XLDFLAGS='-R$(libdir)'
|
||||||
|
SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
|
||||||
|
;;
|
||||||
|
|
||||||
|
# FreeBSD-3.x ELF
|
||||||
|
freebsd[3-9]*|freebsdelf[3-9]*|freebsdaout[3-9]*|dragonfly*)
|
||||||
|
SHOBJ_CFLAGS=-fpic
|
||||||
|
SHOBJ_LD='${CC}'
|
||||||
|
|
||||||
|
if [ -x /usr/bin/objformat ] && [ "`/usr/bin/objformat`" = "elf" ]; then
|
||||||
|
SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
|
||||||
|
|
||||||
|
SHLIB_XLDFLAGS='-Wl,-rpath,$(libdir)'
|
||||||
|
SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
|
||||||
|
else
|
||||||
|
SHOBJ_LDFLAGS='-shared'
|
||||||
|
|
||||||
|
SHLIB_XLDFLAGS='-R$(libdir)'
|
||||||
|
SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
# Darwin/MacOS X
|
||||||
|
darwin1*)
|
||||||
|
SHOBJ_STATUS=supported
|
||||||
|
SHLIB_STATUS=supported
|
||||||
|
|
||||||
|
SHOBJ_CFLAGS=''
|
||||||
|
SHLIB_LIBSUFF='dylib'
|
||||||
|
|
||||||
|
SHOBJ_LD='${CC}'
|
||||||
|
SHOBJ_LDFLAGS='-dynamiclib'
|
||||||
|
;;
|
||||||
|
|
||||||
|
darwin8*)
|
||||||
|
SHOBJ_STATUS=supported
|
||||||
|
SHLIB_STATUS=supported
|
||||||
|
|
||||||
|
SHOBJ_CFLAGS='-fno-common'
|
||||||
|
|
||||||
|
SHOBJ_LD='MACOSX_DEPLOYMENT_TARGET=10.3 ${CC}'
|
||||||
|
|
||||||
|
SHLIB_LIBVERSION='$(SHLIB_MAJOR)$(SHLIB_MINOR).$(SHLIB_LIBSUFF)'
|
||||||
|
SHLIB_LIBSUFF='dylib'
|
||||||
|
|
||||||
|
SHOBJ_LDFLAGS='-undefined dynamic_lookup'
|
||||||
|
SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v'
|
||||||
|
|
||||||
|
SHLIB_LIBS='-lncurses' # see if -lcurses works on MacOS X 10.1
|
||||||
|
;;
|
||||||
|
|
||||||
|
darwin*|macosx*)
|
||||||
|
SHOBJ_STATUS=unsupported
|
||||||
|
SHLIB_STATUS=supported
|
||||||
|
|
||||||
|
SHOBJ_CFLAGS='-fno-common'
|
||||||
|
|
||||||
|
SHOBJ_LD='${CC}'
|
||||||
|
|
||||||
|
SHLIB_LIBVERSION='$(SHLIB_MAJOR)$(SHLIB_MINOR).$(SHLIB_LIBSUFF)'
|
||||||
|
SHLIB_LIBSUFF='dylib'
|
||||||
|
|
||||||
|
case "${host_os}" in
|
||||||
|
darwin[78]*) SHOBJ_LDFLAGS=''
|
||||||
|
SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v'
|
||||||
|
;;
|
||||||
|
*) SHOBJ_LDFLAGS='-dynamic'
|
||||||
|
SHLIB_XLDFLAGS='-arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v'
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
SHLIB_LIBS='-lncurses' # see if -lcurses works on MacOS X 10.1
|
||||||
|
;;
|
||||||
|
|
||||||
|
openbsd*)
|
||||||
|
SHOBJ_CFLAGS=-fPIC
|
||||||
|
SHOBJ_LD='${CC}'
|
||||||
|
SHOBJ_LDFLAGS='-shared'
|
||||||
|
|
||||||
|
SHLIB_XLDFLAGS='-R$(libdir)'
|
||||||
|
SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
|
||||||
|
;;
|
||||||
|
|
||||||
|
bsdi2*)
|
||||||
|
SHOBJ_CC=shlicc2
|
||||||
|
SHOBJ_CFLAGS=
|
||||||
|
SHOBJ_LD=ld
|
||||||
|
SHOBJ_LDFLAGS=-r
|
||||||
|
SHOBJ_LIBS=-lc_s.2.1.0
|
||||||
|
|
||||||
|
# BSD/OS 2.x and 3.x `shared libraries' are too much of a pain in
|
||||||
|
# the ass -- they require changing {/usr/lib,etc}/shlib.map on
|
||||||
|
# each system, and the library creation process is byzantine
|
||||||
|
SHLIB_STATUS=unsupported
|
||||||
|
;;
|
||||||
|
|
||||||
|
bsdi3*)
|
||||||
|
SHOBJ_CC=shlicc2
|
||||||
|
SHOBJ_CFLAGS=
|
||||||
|
SHOBJ_LD=ld
|
||||||
|
SHOBJ_LDFLAGS=-r
|
||||||
|
SHOBJ_LIBS=-lc_s.3.0.0
|
||||||
|
|
||||||
|
# BSD/OS 2.x and 3.x `shared libraries' are too much of a pain in
|
||||||
|
# the ass -- they require changing {/usr/lib,etc}/shlib.map on
|
||||||
|
# each system, and the library creation process is byzantine
|
||||||
|
SHLIB_STATUS=unsupported
|
||||||
|
;;
|
||||||
|
|
||||||
|
bsdi4*)
|
||||||
|
# BSD/OS 4.x now supports ELF and SunOS-style dynamically-linked
|
||||||
|
# shared libraries. gcc 2.x is the standard compiler, and the
|
||||||
|
# `normal' gcc options should work as they do in Linux.
|
||||||
|
|
||||||
|
SHOBJ_CFLAGS=-fPIC
|
||||||
|
SHOBJ_LD='${CC}'
|
||||||
|
SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
|
||||||
|
|
||||||
|
SHLIB_XLDFLAGS='-Wl,-soname,`basename $@ $(SHLIB_MINOR)`'
|
||||||
|
SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
|
||||||
|
;;
|
||||||
|
|
||||||
|
osf*-*gcc*)
|
||||||
|
# Fix to use gcc linker driver from bfischer@TechFak.Uni-Bielefeld.DE
|
||||||
|
SHOBJ_LD='${CC}'
|
||||||
|
SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
|
||||||
|
|
||||||
|
SHLIB_XLDFLAGS='-rpath $(libdir)'
|
||||||
|
SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
|
||||||
|
;;
|
||||||
|
|
||||||
|
osf*)
|
||||||
|
SHOBJ_LD=ld
|
||||||
|
SHOBJ_LDFLAGS='-shared -soname $@ -expect_unresolved "*"'
|
||||||
|
|
||||||
|
SHLIB_XLDFLAGS='-rpath $(libdir)'
|
||||||
|
SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
|
||||||
|
;;
|
||||||
|
|
||||||
|
aix4.[2-9]*-*gcc*) # lightly tested by jik@cisco.com
|
||||||
|
SHOBJ_CFLAGS=-fpic
|
||||||
|
SHOBJ_LD='ld'
|
||||||
|
SHOBJ_LDFLAGS='-bdynamic -bnoentry -bexpall'
|
||||||
|
SHOBJ_XLDFLAGS='-G'
|
||||||
|
|
||||||
|
SHLIB_XLDFLAGS='-bM:SRE'
|
||||||
|
SHLIB_LIBS='-lcurses -lc'
|
||||||
|
SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
|
||||||
|
;;
|
||||||
|
|
||||||
|
aix4.[2-9]*)
|
||||||
|
SHOBJ_CFLAGS=-K
|
||||||
|
SHOBJ_LD='ld'
|
||||||
|
SHOBJ_LDFLAGS='-bdynamic -bnoentry -bexpall'
|
||||||
|
SHOBJ_XLDFLAGS='-G'
|
||||||
|
|
||||||
|
SHLIB_XLDFLAGS='-bM:SRE'
|
||||||
|
SHLIB_LIBS='-lcurses -lc'
|
||||||
|
SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
|
||||||
|
;;
|
||||||
|
|
||||||
|
#
|
||||||
|
# THE FOLLOWING ARE UNTESTED -- and some may not support the dlopen interface
|
||||||
|
#
|
||||||
|
irix[56]*-*gcc*)
|
||||||
|
SHOBJ_CFLAGS='-fpic'
|
||||||
|
SHOBJ_LD='${CC}'
|
||||||
|
SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
|
||||||
|
|
||||||
|
SHLIB_XLDFLAGS='-Wl,-rpath,$(libdir)'
|
||||||
|
SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
|
||||||
|
;;
|
||||||
|
|
||||||
|
irix[56]*)
|
||||||
|
SHOBJ_CFLAGS='-K PIC'
|
||||||
|
SHOBJ_LD=ld
|
||||||
|
# SHOBJ_LDFLAGS='-call_shared -hidden_symbol -no_unresolved -soname $@'
|
||||||
|
# Change from David Kaelbling <drk@sgi.com>. If you have problems,
|
||||||
|
# remove the `-no_unresolved'
|
||||||
|
SHOBJ_LDFLAGS='-shared -no_unresolved -soname $@'
|
||||||
|
|
||||||
|
SHLIB_XLDFLAGS='-rpath $(libdir)'
|
||||||
|
SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
|
||||||
|
;;
|
||||||
|
|
||||||
|
hpux9*-*gcc*)
|
||||||
|
# must use gcc; the bundled cc cannot compile PIC code
|
||||||
|
SHOBJ_CFLAGS='-fpic'
|
||||||
|
SHOBJ_LD='${CC}'
|
||||||
|
SHOBJ_LDFLAGS='-shared -Wl,-b -Wl,+s'
|
||||||
|
|
||||||
|
SHLIB_XLDFLAGS='-Wl,+b,$(libdir)'
|
||||||
|
SHLIB_LIBSUFF='sl'
|
||||||
|
SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
|
||||||
|
;;
|
||||||
|
|
||||||
|
hpux9*)
|
||||||
|
SHOBJ_STATUS=unsupported
|
||||||
|
SHLIB_STATUS=unsupported
|
||||||
|
|
||||||
|
# If you are using the HP ANSI C compiler, you can uncomment and use
|
||||||
|
# this code (I have not tested it)
|
||||||
|
# SHOBJ_STATUS=supported
|
||||||
|
# SHLIB_STATUS=supported
|
||||||
|
#
|
||||||
|
# SHOBJ_CFLAGS='+z'
|
||||||
|
# SHOBJ_LD='ld'
|
||||||
|
# SHOBJ_LDFLAGS='-b +s'
|
||||||
|
#
|
||||||
|
# SHLIB_XLDFLAGS='+b $(libdir)'
|
||||||
|
# SHLIB_LIBSUFF='sl'
|
||||||
|
# SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
|
||||||
|
|
||||||
|
;;
|
||||||
|
|
||||||
|
hpux10*-*gcc*)
|
||||||
|
# must use gcc; the bundled cc cannot compile PIC code
|
||||||
|
SHOBJ_CFLAGS='-fpic'
|
||||||
|
SHOBJ_LD='${CC}'
|
||||||
|
# if you have problems linking here, moving the `-Wl,+h,$@' from
|
||||||
|
# SHLIB_XLDFLAGS to SHOBJ_LDFLAGS has been reported to work
|
||||||
|
SHOBJ_LDFLAGS='-shared -Wl,-b -Wl,+s'
|
||||||
|
|
||||||
|
SHLIB_XLDFLAGS='-Wl,+h,$@ -Wl,+b,$(libdir)'
|
||||||
|
SHLIB_LIBSUFF='sl'
|
||||||
|
SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
|
||||||
|
;;
|
||||||
|
|
||||||
|
hpux10*)
|
||||||
|
SHOBJ_STATUS=unsupported
|
||||||
|
SHLIB_STATUS=unsupported
|
||||||
|
|
||||||
|
# If you are using the HP ANSI C compiler, you can uncomment and use
|
||||||
|
# this code (I have not tested it)
|
||||||
|
# SHOBJ_STATUS=supported
|
||||||
|
# SHLIB_STATUS=supported
|
||||||
|
#
|
||||||
|
# SHOBJ_CFLAGS='+z'
|
||||||
|
# SHOBJ_LD='ld'
|
||||||
|
# SHOBJ_LDFLAGS='-b +s +h $@'
|
||||||
|
#
|
||||||
|
# SHLIB_XLDFLAGS='+b $(libdir)'
|
||||||
|
# SHLIB_LIBSUFF='sl'
|
||||||
|
# SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
|
||||||
|
|
||||||
|
;;
|
||||||
|
|
||||||
|
hpux11*-*gcc*)
|
||||||
|
# must use gcc; the bundled cc cannot compile PIC code
|
||||||
|
SHOBJ_CFLAGS='-fpic'
|
||||||
|
SHOBJ_LD='${CC}'
|
||||||
|
# SHOBJ_LDFLAGS='-shared -Wl,-b -Wl,-B,symbolic -Wl,+s -Wl,+std -Wl,+h,$@'
|
||||||
|
SHOBJ_LDFLAGS='-shared -fpic -Wl,-b -Wl,+s -Wl,+h,$@'
|
||||||
|
|
||||||
|
SHLIB_XLDFLAGS='-Wl,+b,$(libdir)'
|
||||||
|
SHLIB_LIBSUFF='sl'
|
||||||
|
SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
|
||||||
|
;;
|
||||||
|
|
||||||
|
hpux11*)
|
||||||
|
SHOBJ_STATUS=unsupported
|
||||||
|
SHLIB_STATUS=unsupported
|
||||||
|
|
||||||
|
# If you are using the HP ANSI C compiler, you can uncomment and use
|
||||||
|
# this code (I have not tested it)
|
||||||
|
# SHOBJ_STATUS=supported
|
||||||
|
# SHLIB_STATUS=supported
|
||||||
|
#
|
||||||
|
# SHOBJ_CFLAGS='+z'
|
||||||
|
# SHOBJ_LD='ld'
|
||||||
|
# SHOBJ_LDFLAGS='-b +s +h $@'
|
||||||
|
#
|
||||||
|
# SHLIB_XLDFLAGS='+b $(libdir)'
|
||||||
|
# SHLIB_LIBSUFF='sl'
|
||||||
|
# SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
|
||||||
|
|
||||||
|
;;
|
||||||
|
|
||||||
|
sysv4*-*gcc*)
|
||||||
|
SHOBJ_CFLAGS=-shared
|
||||||
|
SHOBJ_LDFLAGS='-shared -h $@'
|
||||||
|
SHOBJ_LD='${CC}'
|
||||||
|
|
||||||
|
SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
|
||||||
|
;;
|
||||||
|
|
||||||
|
sysv4*)
|
||||||
|
SHOBJ_CFLAGS='-K PIC'
|
||||||
|
SHOBJ_LD=ld
|
||||||
|
SHOBJ_LDFLAGS='-dy -z text -G -h $@'
|
||||||
|
|
||||||
|
SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
|
||||||
|
;;
|
||||||
|
|
||||||
|
sco3.2v5*-*gcc*)
|
||||||
|
SHOBJ_CFLAGS='-fpic' # DEFAULTS TO ELF
|
||||||
|
SHOBJ_LD='${CC}'
|
||||||
|
SHOBJ_LDFLAGS='-shared'
|
||||||
|
|
||||||
|
SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
|
||||||
|
;;
|
||||||
|
|
||||||
|
sco3.2v5*)
|
||||||
|
SHOBJ_CFLAGS='-K pic -b elf'
|
||||||
|
SHOBJ_LD=ld
|
||||||
|
SHOBJ_LDFLAGS='-G -b elf -dy -z text -h $@'
|
||||||
|
|
||||||
|
SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
|
||||||
|
;;
|
||||||
|
|
||||||
|
sysv5uw7*-*gcc*)
|
||||||
|
SHOBJ_CFLAGS='-fpic'
|
||||||
|
SHOBJ_LD='${CC}'
|
||||||
|
SHOBJ_LDFLAGS='-shared'
|
||||||
|
|
||||||
|
SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
|
||||||
|
;;
|
||||||
|
|
||||||
|
sysv5uw7*)
|
||||||
|
SHOBJ_CFLAGS='-K PIC'
|
||||||
|
SHOBJ_LD=ld
|
||||||
|
SHOBJ_LDFLAGS='-G -dy -z text -h $@'
|
||||||
|
|
||||||
|
SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
|
||||||
|
;;
|
||||||
|
|
||||||
|
sysv5UnixWare*-*gcc*)
|
||||||
|
SHOBJ_CFLAGS=-fpic
|
||||||
|
SHOBJ_LD='${CC}'
|
||||||
|
SHOBJ_LDFLAGS='-shared'
|
||||||
|
|
||||||
|
SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
|
||||||
|
;;
|
||||||
|
|
||||||
|
sysv5UnixWare*)
|
||||||
|
SHOBJ_CFLAGS='-K PIC'
|
||||||
|
SHOBJ_LD=ld
|
||||||
|
SHOBJ_LDFLAGS='-G -dy -z text -h $@'
|
||||||
|
|
||||||
|
SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
|
||||||
|
;;
|
||||||
|
|
||||||
|
sysv5OpenUNIX*-*gcc*)
|
||||||
|
SHOBJ_CFLAGS=-fpic
|
||||||
|
SHOBJ_LD='${CC}'
|
||||||
|
SHOBJ_LDFLAGS='-shared'
|
||||||
|
|
||||||
|
SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
|
||||||
|
;;
|
||||||
|
|
||||||
|
sysv5OpenUNIX*)
|
||||||
|
SHOBJ_CFLAGS='-K PIC'
|
||||||
|
SHOBJ_LD=ld
|
||||||
|
SHOBJ_LDFLAGS='-G -dy -z text -h $@'
|
||||||
|
|
||||||
|
SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
|
||||||
|
;;
|
||||||
|
|
||||||
|
dgux*-*gcc*)
|
||||||
|
SHOBJ_CFLAGS=-fpic
|
||||||
|
SHOBJ_LD='${CC}'
|
||||||
|
SHOBJ_LDFLAGS='-shared'
|
||||||
|
|
||||||
|
SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
|
||||||
|
;;
|
||||||
|
|
||||||
|
dgux*)
|
||||||
|
SHOBJ_CFLAGS='-K pic'
|
||||||
|
SHOBJ_LD=ld
|
||||||
|
SHOBJ_LDFLAGS='-G -dy -h $@'
|
||||||
|
|
||||||
|
SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
|
||||||
|
;;
|
||||||
|
|
||||||
|
msdos*)
|
||||||
|
SHOBJ_STATUS=unsupported
|
||||||
|
SHLIB_STATUS=unsupported
|
||||||
|
;;
|
||||||
|
|
||||||
|
cygwin*)
|
||||||
|
SHOBJ_LD='$(CC)'
|
||||||
|
SHOBJ_LDFLAGS='-shared -Wl,--enable-auto-import -Wl,--enable-auto-image-base -Wl,--export-all -Wl,--out-implib=$(@).a'
|
||||||
|
SHLIB_LIBPREF='cyg'
|
||||||
|
SHLIB_LIBSUFF='dll'
|
||||||
|
SHLIB_LIBVERSION='$(SHLIB_DLLVERSION).$(SHLIB_LIBSUFF)'
|
||||||
|
SHLIB_LIBS='$(TERMCAP_LIB)'
|
||||||
|
|
||||||
|
SHLIB_DOT=
|
||||||
|
# For official cygwin releases, DLLVERSION will be defined in the
|
||||||
|
# environment of configure, and will be incremented any time the API
|
||||||
|
# changes in a non-backwards compatible manner. Otherwise, it is just
|
||||||
|
# SHLIB_MAJOR.
|
||||||
|
if [ -n "$DLLVERSION" ] ; then
|
||||||
|
SHLIB_DLLVERSION="$DLLVERSION"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Rely on correct gcc configuration for everything else
|
||||||
|
#
|
||||||
|
*-*gcc*)
|
||||||
|
SHOBJ_CFLAGS=-fpic
|
||||||
|
SHOBJ_LD='${CC}'
|
||||||
|
SHOBJ_LDFLAGS='-shared'
|
||||||
|
|
||||||
|
SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
SHOBJ_STATUS=unsupported
|
||||||
|
SHLIB_STATUS=unsupported
|
||||||
|
;;
|
||||||
|
|
||||||
|
esac
|
||||||
|
|
||||||
|
echo SHOBJ_CC=\'"$SHOBJ_CC"\'
|
||||||
|
echo SHOBJ_CFLAGS=\'"$SHOBJ_CFLAGS"\'
|
||||||
|
echo SHOBJ_LD=\'"$SHOBJ_LD"\'
|
||||||
|
echo SHOBJ_LDFLAGS=\'"$SHOBJ_LDFLAGS"\'
|
||||||
|
echo SHOBJ_XLDFLAGS=\'"$SHOBJ_XLDFLAGS"\'
|
||||||
|
echo SHOBJ_LIBS=\'"$SHOBJ_LIBS"\'
|
||||||
|
|
||||||
|
echo SHLIB_XLDFLAGS=\'"$SHLIB_XLDFLAGS"\'
|
||||||
|
echo SHLIB_LIBS=\'"$SHLIB_LIBS"\'
|
||||||
|
|
||||||
|
echo SHLIB_DOT=\'"$SHLIB_DOT"\'
|
||||||
|
|
||||||
|
echo SHLIB_LIBPREF=\'"$SHLIB_LIBPREF"\'
|
||||||
|
echo SHLIB_LIBSUFF=\'"$SHLIB_LIBSUFF"\'
|
||||||
|
|
||||||
|
echo SHLIB_LIBVERSION=\'"$SHLIB_LIBVERSION"\'
|
||||||
|
echo SHLIB_DLLVERSION=\'"$SHLIB_DLLVERSION"\'
|
||||||
|
|
||||||
|
echo SHOBJ_STATUS=\'"$SHOBJ_STATUS"\'
|
||||||
|
echo SHLIB_STATUS=\'"$SHLIB_STATUS"\'
|
||||||
|
|
||||||
|
exit 0
|
|
@ -21,7 +21,7 @@ load test_helper
|
||||||
root="$(cd $BATS_TEST_DIRNAME/.. && pwd)"
|
root="$(cd $BATS_TEST_DIRNAME/.. && pwd)"
|
||||||
run rbenv-init - bash
|
run rbenv-init - bash
|
||||||
assert_success
|
assert_success
|
||||||
assert_line "source '${root}/libexec/../completions/rbenv.bash'"
|
assert_line "source '${root}/test/../libexec/../completions/rbenv.bash'"
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "detect parent shell" {
|
@test "detect parent shell" {
|
||||||
|
@ -35,7 +35,7 @@ load test_helper
|
||||||
root="$(cd $BATS_TEST_DIRNAME/.. && pwd)"
|
root="$(cd $BATS_TEST_DIRNAME/.. && pwd)"
|
||||||
run rbenv-init - fish
|
run rbenv-init - fish
|
||||||
assert_success
|
assert_success
|
||||||
assert_line ". '${root}/libexec/../completions/rbenv.fish'"
|
assert_line ". '${root}/test/../libexec/../completions/rbenv.fish'"
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "fish instructions" {
|
@test "fish instructions" {
|
||||||
|
|
9
test/run
Executable file
9
test/run
Executable file
|
@ -0,0 +1,9 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if [ -n "$RBENV_NATIVE_EXT" ]; then
|
||||||
|
src/configure
|
||||||
|
make -C src
|
||||||
|
fi
|
||||||
|
|
||||||
|
exec bats ${CI:+--tap} test
|
|
@ -1,7 +1,15 @@
|
||||||
unset RBENV_VERSION
|
unset RBENV_VERSION
|
||||||
unset RBENV_DIR
|
unset RBENV_DIR
|
||||||
|
|
||||||
RBENV_TEST_DIR="${BATS_TMPDIR}/rbenv"
|
if enable -f "${BATS_TEST_DIRNAME}"/../libexec/rbenv-realpath.dylib realpath 2>/dev/null; then
|
||||||
|
RBENV_TEST_DIR="$(realpath "$BATS_TMPDIR")/rbenv"
|
||||||
|
else
|
||||||
|
if [ -n "$RBENV_NATIVE_EXT" ]; then
|
||||||
|
echo "rbenv: failed to load \`realpath' builtin" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
RBENV_TEST_DIR="${BATS_TMPDIR}/rbenv"
|
||||||
|
fi
|
||||||
|
|
||||||
# guard against executing this block twice due to bats internals
|
# guard against executing this block twice due to bats internals
|
||||||
if [ "$RBENV_ROOT" != "${RBENV_TEST_DIR}/root" ]; then
|
if [ "$RBENV_ROOT" != "${RBENV_TEST_DIR}/root" ]; then
|
||||||
|
|
Loading…
Reference in a new issue