From 930b4e322c628413d0406ba8722cbae480619028 Mon Sep 17 00:00:00 2001 From: BLANCO-GARCIA <oscar-roberto.blanco-garcia@synchrotron-soleil.fr> Date: Thu, 31 Aug 2023 10:47:46 +0200 Subject: [PATCH] moving to gcc for compatibility with matlab --- make_for_tracy3.sh | 43 ++++++++++++++++++++++++++++++++----------- 1 file changed, 32 insertions(+), 11 deletions(-) diff --git a/make_for_tracy3.sh b/make_for_tracy3.sh index 2c52e13..c025b3a 100755 --- a/make_for_tracy3.sh +++ b/make_for_tracy3.sh @@ -6,14 +6,14 @@ # not sh since on Ubuntu sh is not bash -set -x # for debugging +#set -x # for debugging -if [ $# -ne 1 ] +if [ $# -ne 1 ] then # affiche l'usage - echo "Missing parameter" - echo "Use: $0 debug for debug" - echo "Use: $0 opt for optimization result" - echo "Use: $0 mpi for optimization result" + echo "Missing parameter" + echo "Use: $0 debug for debug" + echo "Use: $0 opt for optimization result" + echo "Use: $0 mpi for optimization result" exit 1 fi @@ -30,6 +30,8 @@ cd "$dir/$TRACY" rm -f autom4te.cache/* rm -rf aclocal.m4 +### 2023jun01 sometimes distclean does not work +# try to comment distclean, run it once and then uncomment make distclean # Clean everything and call autoreconf @@ -42,7 +44,7 @@ fi #dirName=/home/sources/physmach/nadolski/codes #dirName=/usr/local/applis_pa/codes/tracy/ -dirName=/nfs/tegile/work/sources/physmach/blanco-garcia/codes +#dirName=/nfs/tegile/work/sources/physmach/blanco-garcia/codes if [ $1 == "opt" ] then @@ -51,12 +53,31 @@ CC=icc CXX=icpc LDFLAGS="-L$dirnName/nrecipes/recipes_c-ansi/lib/" ./configure - fi if [ $1 == "mpi" ] -then -#CC=icc CXX=icpc LDFLAGS="-L$dirName/nrecipes/recipes_c-ansi/lib/ -L/opt/intel/parallel_studio_xe_2017_update2/compilers_and_libraries_2017.2.174/linux/mpi/intel64/lib -lmpi" ./configure --enable-mpi-exec --prefix=$dir/$TRACY/tracy FFLAGS="-O2 -Wall -fbounds-check" CFLAGS="-O2 -Wall -fno-implicit-templates" CXXFLAGS="-O2 -Wall -fno-implicit-templates" -CC=icc CXX=icpc LDFLAGS="-L$dirName/nrecipes/recipes_c-ansi/lib/ -L/opt/intel/parallel_studio_xe_2017_update2/compilers_and_libraries_2017.2.174/linux/mpi/intel64/lib -lmpi" ./configure --enable-mpi-exec --prefix=$dir/$TRACY/tracy FFLAGS="-O2 -Wall -fbounds-check" CFLAGS="-O2 -ansi -Wall -fno-implicit-templates" CXXFLAGS="-O2 -ansi -Wall -fno-implicit-templates" +then +## 2023jun14 orblancog. I move to gcc because icc libraries are incompatible with matlab +# https://jira.synchrotron-soleil.fr/jira/browse/CTRLDESK-21799 +# CC=icc CXX=icpc LDFLAGS="-L$dirName/nrecipes/recipes_c-ansi/lib/ -L/opt/intel/parallel_studio_xe_2017_update2/compilers_and_libraries_2017.2.174/linux/mpi/intel64/lib -lmpi" ./configure --enable-mpi-exec --prefix=$dir/$TRACY/tracy FFLAGS="-O2 -Wall -fbounds-check" CFLAGS="-O2 -Wall -fno-implicit-templates" CXXFLAGS="-O2 -Wall -fno-implicit-templates" +# ok for compilation # CC=icc CXX=icpc LDFLAGS="-L$dirName/nrecipes/recipes_c-ansi/lib/ -L/opt/intel/parallel_studio_xe_2017_update2/compilers_and_libraries_2017.2.174/linux/mpi/intel64/lib -lmpi" ./configure --enable-mpi-exec --prefix=$dir/$TRACY/tracy FFLAGS="-O2 -Wall -fbounds-check" CFLAGS="-O2 -ansi -Wall -fno-implicit-templates" CXXFLAGS="-O2 -ansi -Wall -fno-implicit-templates" +# CC=icc CXX=icpc LDFLAGS="-L$NUM_REC/nrecipes/recipes_c-ansi/lib/ -L/opt/intel/parallel_studio_xe_2017_update2/compilers_and_libraries_2017.2.174/linux/mpi/intel64/lib -lmpi" ./configure --enable-mpi-exec --prefix=$dir/$TRACY/tracy FFLAGS="-O2 -Wall -fbounds-check" CFLAGS="-O2 -ansi -Wall -fno-implicit-templates" CXXFLAGS="-O2 -ansi -Wall -fno-implicit-templates" +# CC=gcc CXX=g++ LDFLAGS="-L$dirName/nrecipes/recipes_c-ansi/lib/ -I/usr/local/applications/tools/openmpi/4.1.1/include -L/usr/local/applications/tools/openmpi/4.1.1/lib -lmpi" ./configure --enable-mpi-exec FFLAGS="-O2 -Wall -fbounds-check " CFLAGS="-O2 -Wall -ansi " CXXFLAGS="-O2 -Wall -ansi -fno-implicit-templates -I/usr/local/applications/tools/openmpi/4.1.1/include -L/usr/local/applications/tools/openmpi/4.1.1/lib -lmpi_cxx" # CC=gcc CXX=g++ LDFLAGS="-L$dirName/nrecipes/recipes_c-ansi/lib/ -I/usr/local/applications/tools/openmpi/4.1.1/include -L/usr/local/applications/tools/openmpi/4.1.1/lib -lmpi" ./configure --enable-mpi-exec FFLAGS="-O2 -Wall -fbounds-check " CFLAGS="-O2 -Wall -ansi " CXXFLAGS="-O2 -Wall -ansi -fno-implicit-templates -I/usr/local/applications/tools/openmpi/4.1.1/include -L/usr/local/applications/tools/openmpi/4.1.1/lib -lmpi_cxx" + +# check gcc version +currentver="$(gcc -dumpversion)" +echo "GCC is $currentver" +requiredver="9.2.0" + if [ "$(printf '%s\n' "$requiredver" "$currentver" | sort -V | head -n1)" = "$requiredver" ]; then + then + CC=gcc CXX=g++ LDFLAGS="-L$NUM_REC/lib/ -I/usr/local/applications/tools/openmpi/4.1.1/include -L/usr/local/applications/tools/openmpi/4.1.1/lib -lmpi" ./configure --enable-mpi-exec FFLAGS="-O2 -Wall -fbounds-check " CFLAGS="-O2 -Wall -ansi " CXXFLAGS="-O2 -Wall -ansi -fno-implicit-templates -I/usr/local/applications/tools/openmpi/4.1.1/include -L/usr/local/applications/tools/openmpi/4.1.1/lib -lmpi_cxx -fopenmp " + else + # newer gcc versions require extra fortran flags + echo "GCC greater than or equal to ${requiredver}" + echo "extra flags to fortran ..." + ##add fallow-argument-mismatch + CC=gcc CXX=g++ LDFLAGS="-L$NUM_REC/lib/ -I/usr/local/applications/tools/openmpi/4.1.1/include -L/usr/local/applications/tools/openmpi/4.1.1/lib -lmpi" ./configure --enable-mpi-exec FFLAGS="-O2 -Wall -fbounds-check -fallow-argument-mismatch " CFLAGS="-O2 -Wall -ansi " CXXFLAGS="-O2 -Wall -ansi -fno-implicit-templates -I/usr/local/applications/tools/openmpi/4.1.1/include -L/usr/local/applications/tools/openmpi/4.1.1/lib -lmpi_cxx -fopenmp " + fi fi make #make install DESTDIR=/usr/local/applis_pa/codes/tracy/bin -make install DESTDIR=/home/sources/physmach/blanco-garcia +make install DESTDIR=~ -- GitLab