@@ -668,6 +668,9 @@ print_header()
668668 fi
669669}
670670
671+ . install_prerequisites/set_SUDO.sh
672+ set_SUDO_if_necessary
673+
671674build_opencoarrays ()
672675{
673676 print_header
@@ -681,7 +684,10 @@ build_opencoarrays()
681684 else
682685 CC=$MPICC FC=$MPIFC $CMAKE .. -DCMAKE_INSTALL_PREFIX=$install_path &&
683686 make -j$num_threads &&
684- make install
687+ if [[ ! -z $SUDO ]]; then
688+ printf " \nThe chosen installation path requires sudo privileges. Please enter password if prompted.\n"
689+ fi &&
690+ $SUDO make install
685691 fi
686692}
687693
@@ -698,70 +704,74 @@ report_results()
698704 echo " "
699705 echo " $install_path /bin."
700706 echo " "
701- if [[ -f $install_path / setup.sh ]]; then
702- rm $install_path / setup.sh
707+ if [[ -f setup.sh ]]; then
708+ $SUDO rm setup.sh
703709 fi
704710 # Prepend the OpenCoarrays license to the setup.sh script:
705711 while IFS=' ' read -r line || [[ -n " $line " ]]; do
706- echo " # $line " >> $install_path / setup.sh
712+ echo " # $line " >> setup.sh
707713 done < " $opencoarrays_src_dir /COPYRIGHT-BSD3"
708- echo " # " >> $install_path / setup.sh
709- echo " # Execute this script via the following commands: " >> $install_path / setup.sh
710- echo " # cd $install_path " >> $install_path / setup.sh
711- echo " # source setup.sh " >> $install_path / setup.sh
712- echo " " >> $install_path / setup.sh
713- echo " if [[ -z \"\$ PATH\" ]]; then " >> $install_path / setup.sh
714- echo " export PATH=\" $install_path / bin\" " >> $install_path / setup.sh
715- echo " else " >> $install_path / setup.sh
716- echo " export PATH=\" $install_path / bin\" :\$ PATH " >> $install_path / setup.sh
717- echo " fi " >> $install_path / setup.sh
718- echo " " >> $install_path / setup.sh
714+ echo " # " >> setup.sh
715+ echo " # Execute this script via the following commands: " >> setup.sh
716+ echo " # cd $install_path " >> setup.sh
717+ echo " # source setup.sh " >> setup.sh
718+ echo " " >> setup.sh
719+ echo " if [[ -z \"\$ PATH\" ]]; then " >> setup.sh
720+ echo " export PATH=\" bin\" " >> setup.sh
721+ echo " else " >> setup.sh
722+ echo " export PATH=\" bin\" :\$ PATH " >> setup.sh
723+ echo " fi " >> setup.sh
724+ echo " " >> setup.sh
719725 gcc_install_path=` ./build gcc --default --query-path`
720726 if [[ -d " $gcc_install_path /lib" ]]; then
721- echo " if [[ -z \"\$ LD_LIBRARY_PATH\" ]]; then " >> $install_path / setup.sh
722- echo " export LD_LIBRARY_PATH=\" $gcc_install_path /lib\" " >> $install_path / setup.sh
723- echo " else " >> $install_path / setup.sh
724- echo " export LD_LIBRARY_PATH=\" $gcc_install_path /lib\" :\$ LD_LIBRARY_PATH " >> $install_path / setup.sh
725- echo " fi " >> $install_path / setup.sh
727+ echo " if [[ -z \"\$ LD_LIBRARY_PATH\" ]]; then " >> setup.sh
728+ echo " export LD_LIBRARY_PATH=\" $gcc_install_path /lib\" " >> setup.sh
729+ echo " else " >> setup.sh
730+ echo " export LD_LIBRARY_PATH=\" $gcc_install_path /lib\" :\$ LD_LIBRARY_PATH " >> setup.sh
731+ echo " fi " >> setup.sh
726732 fi
727- echo " " >> $install_path / setup.sh
733+ echo " " >> setup.sh
728734 mpich_install_path=` ./build mpich --default --query-path`
729735 if [[ -x " $mpich_install_path /bin/mpif90" ]]; then
730- echo " if [[ -z \"\$ PATH\" ]]; then " >> $install_path / setup.sh
731- echo " export PATH=\" $mpich_install_path /bin\" " >> $install_path / setup.sh
732- echo " else " >> $install_path / setup.sh
733- echo " export PATH=\" $mpich_install_path /bin\" :\$ PATH " >> $install_path / setup.sh
734- echo " fi " >> $install_path / setup.sh
736+ echo " if [[ -z \"\$ PATH\" ]]; then " >> setup.sh
737+ echo " export PATH=\" $mpich_install_path /bin\" " >> setup.sh
738+ echo " else " >> setup.sh
739+ echo " export PATH=\" $mpich_install_path /bin\" :\$ PATH " >> setup.sh
740+ echo " fi " >> setup.sh
735741 fi
736742 cmake_install_path=` ./build cmake --default --query-path`
737743 if [[ -x " $cmake_install_path /bin/cmake" ]]; then
738- echo " if [[ -z \"\$ PATH\" ]]; then " >> $install_path / setup.sh
739- echo " export PATH=\" $cmake_install_path /bin\" " >> $install_path / setup.sh
740- echo " else " >> $install_path / setup.sh
741- echo " export PATH=\" $cmake_install_path /bin\" :\$ PATH " >> $install_path / setup.sh
742- echo " fi " >> $install_path / setup.sh
744+ echo " if [[ -z \"\$ PATH\" ]]; then " >> setup.sh
745+ echo " export PATH=\" $cmake_install_path /bin\" " >> setup.sh
746+ echo " else " >> setup.sh
747+ echo " export PATH=\" $cmake_install_path /bin\" :\$ PATH " >> setup.sh
748+ echo " fi " >> setup.sh
743749 fi
744750 flex_install_path=` ./build flex --default --query-path`
745751 if [[ -x " $flex_install_path /bin/flex" ]]; then
746- echo " if [[ -z \"\$ PATH\" ]]; then " >> $install_path / setup.sh
747- echo " export PATH=\" $flex_install_path /bin\" " >> $install_path / setup.sh
748- echo " else " >> $install_path / setup.sh
749- echo " export PATH=\" $flex_install_path /bin\" :\$ PATH " >> $install_path / setup.sh
750- echo " fi " >> $install_path / setup.sh
752+ echo " if [[ -z \"\$ PATH\" ]]; then " >> setup.sh
753+ echo " export PATH=\" $flex_install_path /bin\" " >> setup.sh
754+ echo " else " >> setup.sh
755+ echo " export PATH=\" $flex_install_path /bin\" :\$ PATH " >> setup.sh
756+ echo " fi " >> setup.sh
751757 fi
752758 bison_install_path=` ./build bison --default --query-path`
753759 if [[ -x " $bison_install_path /bin/yacc" ]]; then
754- echo " if [[ -z \"\$ PATH\" ]]; then " >> $install_path / setup.sh
755- echo " export PATH=\" $bison_install_path /bin\" " >> $install_path / setup.sh
756- echo " else " >> $install_path / setup.sh
757- echo " export PATH=\" $bison_install_path /bin\" :\$ PATH " >> $install_path / setup.sh
758- echo " fi " >> $install_path / setup.sh
760+ echo " if [[ -z \"\$ PATH\" ]]; then " >> setup.sh
761+ echo " export PATH=\" $bison_install_path /bin\" " >> setup.sh
762+ echo " else " >> setup.sh
763+ echo " export PATH=\" $bison_install_path /bin\" :\$ PATH " >> setup.sh
764+ echo " fi " >> setup.sh
759765 fi
766+ setup_sh_location=$install_path
767+ $SUDO mv setup.sh $install_path || setup_sh_location=${PWD}
760768 echo " *** Before using caf, cafrun, or build, please execute the following command ***"
761769 echo " *** or add it to your login script and launch a new shell (or the equivalent ***"
762770 echo " *** for your shell if you are not using a bash shell): ***"
763771 echo " "
764- echo " source $install_path /setup.sh"
772+ echo " source $setup_sh_location /setup.sh"
773+ echo " "
774+ echo " *** Installation complete. ***"
765775
766776 else # Installation failed
767777
0 commit comments