|
|
|
@ -32,6 +32,27 @@ _init() { |
|
|
|
|
MISSING="" |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
readlink() { |
|
|
|
|
TARGET_FILE=$1 |
|
|
|
|
|
|
|
|
|
cd `dirname $TARGET_FILE` |
|
|
|
|
TARGET_FILE=`basename $TARGET_FILE` |
|
|
|
|
|
|
|
|
|
# Iterate down a (possible) chain of symlinks |
|
|
|
|
while [ -L "$TARGET_FILE" ] |
|
|
|
|
do |
|
|
|
|
TARGET_FILE=$(env readlink $TARGET_FILE) |
|
|
|
|
cd `dirname $TARGET_FILE` |
|
|
|
|
TARGET_FILE=`basename $TARGET_FILE` |
|
|
|
|
done |
|
|
|
|
|
|
|
|
|
# Compute the canonicalized name by finding the physical path |
|
|
|
|
# for the directory we're in and appending the target file. |
|
|
|
|
PHYS_DIR=`pwd -P` |
|
|
|
|
RESULT=$PHYS_DIR/$TARGET_FILE |
|
|
|
|
echo $RESULT |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
### |
|
|
|
|
# |
|
|
|
|
# Takes two arguments |
|
|
|
@ -47,7 +68,7 @@ _init() { |
|
|
|
|
# 3 - If args have length zero |
|
|
|
|
# |
|
|
|
|
#### |
|
|
|
|
check_version () { |
|
|
|
|
check_version() { |
|
|
|
|
## validate args |
|
|
|
|
[[ -z "$1" ]] && return 3 |
|
|
|
|
[[ -z "$2" ]] && return 3 |
|
|
|
@ -72,7 +93,7 @@ check_version () { |
|
|
|
|
return 1 |
|
|
|
|
fi |
|
|
|
|
if ((10#${ver1[i]} < 10#${ver2[i]})); then |
|
|
|
|
## Installed version is lesser than required - Bad condition |
|
|
|
|
## Installed version is lesser than required - Bad condition |
|
|
|
|
return 2 |
|
|
|
|
fi |
|
|
|
|
done |
|
|
|
@ -82,18 +103,18 @@ check_version () { |
|
|
|
|
check_golang_env() { |
|
|
|
|
echo ${GOROOT:?} 2>&1 >/dev/null |
|
|
|
|
if [ $? -eq 1 ]; then |
|
|
|
|
echo "ERROR" |
|
|
|
|
echo "GOROOT environment variable missing, please refer to Go installation document" |
|
|
|
|
echo "https://github.com/minio/minio/blob/master/INSTALLGO.md#install-go-13" |
|
|
|
|
exit 1 |
|
|
|
|
echo "ERROR" |
|
|
|
|
echo "GOROOT environment variable missing, please refer to Go installation document" |
|
|
|
|
echo "https://github.com/minio/minio/blob/master/INSTALLGO.md#install-go-13" |
|
|
|
|
exit 1 |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
echo ${GOPATH:?} 2>&1 >/dev/null |
|
|
|
|
if [ $? -eq 1 ]; then |
|
|
|
|
echo "ERROR" |
|
|
|
|
echo "GOPATH environment variable missing, please refer to Go installation document" |
|
|
|
|
echo "https://github.com/minio/minio/blob/master/INSTALLGO.md#install-go-13" |
|
|
|
|
exit 1 |
|
|
|
|
echo "ERROR" |
|
|
|
|
echo "GOPATH environment variable missing, please refer to Go installation document" |
|
|
|
|
echo "https://github.com/minio/minio/blob/master/INSTALLGO.md#install-go-13" |
|
|
|
|
exit 1 |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
local go_binary_path=$(which go) |
|
|
|
@ -106,7 +127,7 @@ check_golang_env() { |
|
|
|
|
|
|
|
|
|
local new_go_binary_path=${go_binary_path} |
|
|
|
|
if [ -h "${go_binary_path}" ]; then |
|
|
|
|
new_go_binary_path=$(/bin/readlink -f ${go_binary_path}) |
|
|
|
|
new_go_binary_path=$(readlink ${go_binary_path}) |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
if [[ !"$(dirname ${new_go_binary_path})" =~ *"${GOROOT%%*(/)}"* ]] ; then |
|
|
|
@ -122,14 +143,14 @@ is_supported_os() { |
|
|
|
|
"Linux") |
|
|
|
|
os="linux" |
|
|
|
|
;; |
|
|
|
|
"Darwin") |
|
|
|
|
osx_host_version=$(env sw_vers -productVersion) |
|
|
|
|
check_version "${osx_host_version}" "${OSX_VERSION}" |
|
|
|
|
[[ $? -ge 2 ]] && die "Minimum OSX version supported is ${OSX_VERSION}" |
|
|
|
|
;; |
|
|
|
|
"*") |
|
|
|
|
echo "Exiting.. unsupported operating system found" |
|
|
|
|
exit 1; |
|
|
|
|
"Darwin") |
|
|
|
|
osx_host_version=$(env sw_vers -productVersion) |
|
|
|
|
check_version "${osx_host_version}" "${OSX_VERSION}" |
|
|
|
|
[[ $? -ge 2 ]] && die "Minimum OSX version supported is ${OSX_VERSION}" |
|
|
|
|
;; |
|
|
|
|
"*") |
|
|
|
|
echo "Exiting.. unsupported operating system found" |
|
|
|
|
exit 1; |
|
|
|
|
esac |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -145,41 +166,41 @@ is_supported_arch() { |
|
|
|
|
esac |
|
|
|
|
if [ $supported -eq 0 ]; then |
|
|
|
|
echo "Invalid arch: ${UNAME} not supported, please use x86_64/amd64" |
|
|
|
|
exit 1; |
|
|
|
|
exit 1; |
|
|
|
|
fi |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
check_deps() { |
|
|
|
|
check_version "$(env go version 2>/dev/null | sed 's/^.* go\([0-9.]*\).*$/\1/')" "${GO_VERSION}" |
|
|
|
|
if [ $? -ge 2 ]; then |
|
|
|
|
MISSING="${MISSING} golang(1.4)" |
|
|
|
|
MISSING="${MISSING} golang(1.4)" |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
check_version "$(env git --version 2>/dev/null | sed -e 's/^.* \([0-9.\].*\).*$/\1/' -e 's/^\([0-9.\]*\).*/\1/g')" "${GIT_VERSION}" |
|
|
|
|
if [ $? -ge 2 ]; then |
|
|
|
|
MISSING="${MISSING} git" |
|
|
|
|
MISSING="${MISSING} git" |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
case ${UNAME%% *} in |
|
|
|
|
"Linux") |
|
|
|
|
check_version "$(env gcc --version 2>/dev/null | sed 's/^.* \([0-9.]*\).*$/\1/' | head -1)" "${GCC_VERSION}" |
|
|
|
|
if [ $? -ge 2 ]; then |
|
|
|
|
MISSING="${MISSING} build-essential" |
|
|
|
|
fi |
|
|
|
|
check_version "$(env gcc --version 2>/dev/null | sed 's/^.* \([0-9.]*\).*$/\1/' | head -1)" "${GCC_VERSION}" |
|
|
|
|
if [ $? -ge 2 ]; then |
|
|
|
|
MISSING="${MISSING} build-essential" |
|
|
|
|
fi |
|
|
|
|
;; |
|
|
|
|
"Darwin") |
|
|
|
|
check_version "$(env gcc --version 2>/dev/null | sed 's/^.* \([0-9.]*\).*$/\1/' | head -1)" "${CLANG_VERSION}" |
|
|
|
|
if [ $? -ge 2 ]; then |
|
|
|
|
MISSING="${MISSING} xcode-cli" |
|
|
|
|
fi |
|
|
|
|
;; |
|
|
|
|
"*") |
|
|
|
|
;; |
|
|
|
|
"Darwin") |
|
|
|
|
check_version "$(env gcc --version 2>/dev/null | sed 's/^.* \([0-9.]*\).*$/\1/' | head -1)" "${CLANG_VERSION}" |
|
|
|
|
if [ $? -ge 2 ]; then |
|
|
|
|
MISSING="${MISSING} xcode-cli" |
|
|
|
|
fi |
|
|
|
|
;; |
|
|
|
|
"*") |
|
|
|
|
;; |
|
|
|
|
esac |
|
|
|
|
|
|
|
|
|
check_version "$(env yasm --version 2>/dev/null | sed 's/^.* \([0-9.]*\).*$/\1/' | head -1)" "${YASM_VERSION}" |
|
|
|
|
if [ $? -ge 2 ]; then |
|
|
|
|
MISSING="${MISSING} yasm(1.2.0)" |
|
|
|
|
MISSING="${MISSING} yasm(1.2.0)" |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
} |
|
|
|
@ -202,17 +223,17 @@ main() { |
|
|
|
|
|
|
|
|
|
## If dependencies are missing, warn the user and abort |
|
|
|
|
if [ "x${MISSING}" != "x" ]; then |
|
|
|
|
echo "ERROR" |
|
|
|
|
echo |
|
|
|
|
echo "The following build tools are missing:" |
|
|
|
|
echo |
|
|
|
|
echo "** ${MISSING} **" |
|
|
|
|
echo |
|
|
|
|
echo "Please install them " |
|
|
|
|
echo "${MISSING}" |
|
|
|
|
echo |
|
|
|
|
echo "Follow https://github.com/minio/minio/blob/master/INSTALLGO.md for further instructions" |
|
|
|
|
exit 1 |
|
|
|
|
echo "ERROR" |
|
|
|
|
echo |
|
|
|
|
echo "The following build tools are missing:" |
|
|
|
|
echo |
|
|
|
|
echo "** ${MISSING} **" |
|
|
|
|
echo |
|
|
|
|
echo "Please install them " |
|
|
|
|
echo "${MISSING}" |
|
|
|
|
echo |
|
|
|
|
echo "Follow https://github.com/minio/minio/blob/master/INSTALLGO.md for further instructions" |
|
|
|
|
exit 1 |
|
|
|
|
fi |
|
|
|
|
echo "Done" |
|
|
|
|
} |
|
|
|
|