Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 30 additions & 20 deletions install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -92,8 +92,6 @@ if [[ ! -x "$build_script" ]]; then
echo "$this_script: $build_script script does not exist or the user lacks executable permission for it."
echo "$this_script: Please run this_script in the top-level OpenCoarrays source directory or set the"
echo "$this_script: OPENCOARRAYS_SRC_DIR environment variable to the top-level OpenCoarrays source path."
echo "$this_script: If you have specified an installation directory that requires administrative privileges,"
echo "$this_script: please prepend 'sudo' or 'sudo -E' to your invocation of the script [exit 20]."
exit 20
fi

Expand Down Expand Up @@ -311,12 +309,13 @@ find_or_install()
export FC=$package_install_path/bin/gfortran
export CC=$package_install_path/bin/gcc
export CXX=$package_install_path/bin/g++
gfortran_lib_paths="$package_install_path/lib64/:$package_install_path/lib"
if [[ -z "$LD_LIBRARY_PATH" ]]; then
echo "$this_script: export LD_LIBRARY_PATH=$package_install_path/lib/"
export LD_LIBRARY_PATH=$package_install_path/lib/
echo "$this_script: export LD_LIBRARY_PATH=\"$gfortran_lib_paths\""
export LD_LIBRARY_PATH="$gfortran_lib_paths"
else
echo "$this_script: export LD_LIBRARY_PATH=$package_install_path/lib/:$LD_LIBRARY_PATH"
export LD_LIBRARY_PATH=$package_install_path/lib/:$LD_LIBRARY_PATH
echo "$this_script: export LD_LIBRARY_PATH=\"$gfortran_lib_paths:$LD_LIBRARY_PATH\""
export LD_LIBRARY_PATH="$gfortran_lib_paths:$LD_LIBRARY_PATH"
fi
# Remove $package from the dependency stack
stack_pop dependency_pkg package_done
Expand Down Expand Up @@ -627,7 +626,7 @@ find_or_install()

# On OS X, CMake must be built with Apple LLVM g++, which XCode command-line tools puts in /usr/bin
if [[ `uname` == "Darwin" && $package == "cmake" ]]; then
if [[ -x "/usr/bin/gcc" ]]; then
if [[ -x "/usr/bin/g++" ]]; then
CXX=/usr/bin/g++
else
printf "$this_script: OS X detected. Please install XCode command-line tools \n"
Expand Down Expand Up @@ -675,10 +674,11 @@ find_or_install()
export CC="$package_install_path/bin/gcc"
echo "$this_script: export CXX=$package_install_path/bin/g++"
export CXX="$package_install_path/bin/g++"
gfortran_lib_paths="$package_install_path/lib64/:$package_install_path/lib"
if [[ -z "$LD_LIBRARY_PATH" ]]; then
export LD_LIBRARY_PATH="$package_install_path/lib/"
export LD_LIBRARY_PATH="$gfortran_lib_paths"
else
export LD_LIBRARY_PATH="$package_install_path/lib/:$LD_LIBRARY_PATH"
export LD_LIBRARY_PATH="$gfortran_lib_paths:$LD_LIBRARY_PATH"
fi
elif [[ $package == "mpich" ]]; then
echo "$this_script: export MPIFC=$package_install_path/bin/mpif90"
Expand All @@ -687,11 +687,6 @@ find_or_install()
export MPICC="$package_install_path/bin/mpicc"
echo "$this_script: export MPICXX=$package_install_path/bin/mpicxx"
export MPICXX="$package_install_path/bin/mpicxx"
#if [[ -z "$LD_LIBRARY_PATH" ]]; then
# export LD_LIBRARY_PATH="$package_install_path/lib/"
#else
# export LD_LIBRARY_PATH="$package_install_path/lib/:$LD_LIBRARY_PATH"
#fi
else
printf "$this_script: WARNING: $package executable $executable installed correctly but the \n"
printf "$this_script: corresponding environment variable(s) have not been set. This \n"
Expand Down Expand Up @@ -812,11 +807,19 @@ report_results()
echo "fi " >> setup.sh
echo " " >> setup.sh
gcc_install_path=`./build gcc --default --query-path`
if [[ -d "$gcc_install_path/lib" ]]; then
if [[ -x "$gcc_install_path/bin/gfortran" ]]; then
echo "if [[ -z \"\$PATH\" ]]; then " >> setup.sh
echo " export PATH=\"$gcc_install_path/bin\" " >> setup.sh
echo "else " >> setup.sh
echo " export PATH=\"$gcc_install_path/bin:\$PATH\" " >> setup.sh
echo "fi " >> setup.sh
fi
if [[ -d "$gcc_install_path/lib" || -d "$gcc_install_path/lib64" ]]; then
gfortran_lib_paths="$gcc_install_path/lib64/:$gcc_install_path/lib"
echo "if [[ -z \"\$LD_LIBRARY_PATH\" ]]; then " >> setup.sh
echo " export LD_LIBRARY_PATH=\"$gcc_install_path/lib\" " >> setup.sh
echo " export LD_LIBRARY_PATH=\"$gfortran_lib_paths\" " >> setup.sh
echo "else " >> setup.sh
echo " export LD_LIBRARY_PATH=\"$gcc_install_path/lib\":\$LD_LIBRARY_PATH " >> setup.sh
echo " export LD_LIBRARY_PATH=\"$gfortran_lib_paths:\$LD_LIBRARY_PATH\" " >> setup.sh
echo "fi " >> setup.sh
fi
echo " " >> setup.sh
Expand Down Expand Up @@ -853,15 +856,22 @@ report_results()
echo "fi " >> setup.sh
fi
m4_install_path=`./build m4 --default --query-path`
if [[ -x "$m4_install_path/bin/yacc" ]]; then
if [[ -x "$m4_install_path/bin/m4" ]]; then
echo "if [[ -z \"\$PATH\" ]]; then " >> setup.sh
echo " export PATH=\"$m4_install_path/bin\" " >> setup.sh
echo "else " >> setup.sh
echo " export PATH=\"$m4_install_path/bin\":\$PATH " >> setup.sh
echo "fi " >> setup.sh
fi
setup_sh_location=$install_path
$SUDO mv setup.sh $install_path || setup_sh_location=${PWD}
opencoarrays_install_path=$install_path
if [[ -x "$opencoarrays_install_path/bin/caf" ]]; then
echo "if [[ -z \"\$PATH\" ]]; then " >> setup.sh
echo " export PATH=\"$opencoarrays_install_path/bin\" " >> setup.sh
echo "else " >> setup.sh
echo " export PATH=\"$opencoarrays_install_path/bin\":\$PATH " >> setup.sh
echo "fi " >> setup.sh
fi
$SUDO mv setup.sh $opencoarrays_install_path && setup_sh_location=$opencoarrays_install_path || setup_sh_location=${PWD}
echo "*** Before using caf, cafrun, or build, please execute the following command ***"
echo "*** or add it to your login script and launch a new shell (or the equivalent ***"
echo "*** for your shell if you are not using a bash shell): ***"
Expand Down
55 changes: 47 additions & 8 deletions install_prerequisites/build
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ set_default_version()
check_prerequisites()
{
if [[ "$package_to_build" == "gcc" && "$version_to_build" != "trunk" ]]; then
gcc_fetch="ftp"
gcc_fetch="ftp-url"
else
gcc_fetch="svn"
fi
Expand All @@ -138,14 +138,14 @@ check_prerequisites()
# See http://stackoverflow.com/questions/1494178/how-to-define-hash-tables-in-bash
package_download_mechanism=(
"gcc:$gcc_fetch"
"wget:ftp"
"wget:ftp-url"
"cmake:wget"
"mpich:wget"
"flex:wget"
"bison:wget"
"bison:ftp-url"
"pkg-config:wget"
"make:ftp"
"m4:ftp"
"make:ftp-url"
"m4:ftp-url"
"subversion:wget"
"_unknown:0"
)
Expand Down Expand Up @@ -184,7 +184,7 @@ set_url()
if [[ $package_to_build == 'cmake' ]]; then
major_minor="${version_to_build%.*}"
elif [[ "$package_to_build" == "gcc" && "$version_to_build" != "trunk" ]]; then
gcc_url_head="http://ftpmirror.gnu.org/gcc/gcc-$version_to_build/"
gcc_url_head="ftp.gnu.org:/gnu/gcc/gcc-$version_to_build/"
else
gcc_url_head="svn://gcc.gnu.org/svn/gcc/"
fi
Expand All @@ -196,7 +196,7 @@ set_url()
"mpich;http://www.mpich.org/static/downloads/$version_to_build/"
"flex;http://sourceforge.net/projects/flex/files/"
"make;ftp://ftp.gnu.org/gnu/make/"
"bison;http://ftp.gnu.org/gnu/bison/"
"bison;ftp.gnu.org:/gnu/bison/"
"cmake;http://www.cmake.org/files/v$major_minor/"
"subversion;http://www.eu.apache.org/dist/subversion/"
"_unknown;0"
Expand Down Expand Up @@ -257,6 +257,45 @@ set_url()

}

# Download a file from an anonymous ftp site
#
# Usage:
# ftp-url <ftp-mode> <ftp-site-address>:/<path-to-file>/<file-name>
#
# Example:
# ftp-url -n ftp.gnu.org:/gnu/m4/m4-1.4.17.tar.bz2

ftp-url()
{
ftp_mode=$1
url=$2

text_before_colon="${url%%:*}"
FTP_SERVER=$text_before_colon

text_after_colon="${url##*:}"
text_after_final_slash="${text_after_colon##*/}"
FILE_NAME=$text_after_final_slash

text_before_final_slash="${text_after_colon%/*}"
FILE_PATH="$text_before_final_slash"

USERNAME=anonymous
PASSWORD=""
echo "$this_script: starting anonymous download: ftp $ftp_mode $FTP_SERVER... cd $FILE_PATH... get $FILE_NAME"

ftp $ftp_mode $FTP_SERVER <<Done-ftp
user $USERNAME $PASSWORD
cd $FILE_PATH
passive
binary
get "$FILE_NAME"
bye
Done-ftp

echo "$this_script: finished anonymous ftp"
}

# Download pkg-config if the tar ball is not already in the present working directory
download_if_necessary()
{
Expand Down Expand Up @@ -307,7 +346,7 @@ download_if_necessary()
fi
elif [[ "$fetch" == "wget" ]]; then
args=--no-check-certificate
elif [[ "$fetch" == "ftp" ]]; then
elif [[ "$fetch" == "ftp-url" ]]; then
args=-n
elif [[ "$fetch" == "git" ]]; then
args=clone
Expand Down