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