Difference between revisions of "CamCASP/Compilation"
import>Ajs1 |
import>Ajs1 |
||
Line 37: | Line 37: | ||
These are really simple scripts. After compilation (when '''makeall''' exits) the default GCC flags will be set. So your experimental version of GCC doesn't affect anything else. |
These are really simple scripts. After compilation (when '''makeall''' exits) the default GCC flags will be set. So your experimental version of GCC doesn't affect anything else. |
||
+ | |||
+ | ---- |
||
* '''Compiling on Mac OS X''' |
* '''Compiling on Mac OS X''' |
||
− | 1. Install Fink and FinkCommander. See http://finkcommander.sourceforge.net. |
+ | 1. Install Fink and FinkCommander. (See http://finkcommander.sourceforge.net.) You can build all the programs from the command line -- no need for Xcode. |
2. Make sure you get the latest version of gfortran, from http://gcc.gnu.org/wiki/GFortranBinaries. |
2. Make sure you get the latest version of gfortran, from http://gcc.gnu.org/wiki/GFortranBinaries. |
||
Line 51: | Line 53: | ||
(i) In line 200, add "gfortran" to the darwin complist. |
(i) In line 200, add "gfortran" to the darwin complist. |
||
(ii) Change line 744 to 'tab=$(echo "\t")'. |
(ii) Change line 744 to 'tab=$(echo "\t")'. |
||
− | (iii) Copy the g77 section in lines 1072 to 1086 to follow l. 1091. |
+ | (iii) Copy the g77 section in lines 1072 to 1086 to follow l. 1091. In this copied section: |
− | Change g77 |
+ | Change g77 to gfortran and set mcpu to "". |
Remove the line 'LIB="-lcc_dynamic"' -- this flag isn't needed with current versions of gcc. |
Remove the line 'LIB="-lcc_dynamic"' -- this flag isn't needed with current versions of gcc. |
||
Change the definition of opt to 'opt="$copt2 -std=legacy"'. |
Change the definition of opt to 'opt="$copt2 -std=legacy"'. |
||
Line 58: | Line 60: | ||
Some minor code changes are also needed. In cc/pckutil.F, line 100, change z'C0000000' to transfer(z'C0000000',1)). A similar change is needed in lines 101, 236 and 238. |
Some minor code changes are also needed. In cc/pckutil.F, line 100, change z'C0000000' to transfer(z'C0000000',1)). A similar change is needed in lines 101, 236 and 238. |
||
− | 6. Building SAPT is troublesome, because |
+ | 6. Building SAPT is troublesome, because file-names in Mac OS X are case-insensitive, so the shell script called SAPT in the SAPT bin directory gets confused with the SAPT executable called sapt. This can be worked around by renaming the SAPT script, e.g. as doSAPT, and commenting out the lines (around line 348) in Compall that change the first line of SAPT. (It doesn't need to be changed for Mac OS.) This must be done before attempting to run Compall. Line 329 of Compall also needs to be changed to provide for the gfortran option. The current version of CamCASP doesn't use either SAPT or sapt unless 3rd-order energies are wanted. |
Revision as of 17:01, 26 December 2008
CamCASP => Compilation
Notes on compiling CamCASP
- Gfortran
There seem to be problems with gfortran versions earlier than 4.3. I think it is because the preprocessor is not automatically used (even if -cpp is used, because only with version 4.4 is this option recognised). It may be possible to get around this, but for now, I've found it easier to download my own copy of GCC 4.4.
GCC 4.4 will reside in its own directory. Do not install it in with the other GCC compilers as it is still under development. Because it will reside in a non-standard location, you need to set some environment scripts to get the compilation going. I use the following scripts.
1. gcc_4.4.env
#!/bin/bash gcc44="tmp/gcc-trunk" export LD_RUN_PATH=${HOME}/$gcc44/lib64 echo $LD_RUN_PATH export LD_LIBRARY_PATH=${HOME}/$gcc44/lib64:$LD_LIBRARY_PATH export PATH=${HOME}/$gcc44/bin:$PATH
2. makeall
#!/bin/bash source ./gcc_4.4.env echo $LD_RUN_PATH echo $LD_LIBRARY_PATH gfortran -v mymake='make COMPILER=gfortran MACHINE=tati ' ${mymake} clean ${mymake} all exit
These are really simple scripts. After compilation (when makeall exits) the default GCC flags will be set. So your experimental version of GCC doesn't affect anything else.
- Compiling on Mac OS X
1. Install Fink and FinkCommander. (See http://finkcommander.sourceforge.net.) You can build all the programs from the command line -- no need for Xcode.
2. Make sure you get the latest version of gfortran, from http://gcc.gnu.org/wiki/GFortranBinaries.
3. You need the full ATLAS lapack library.
4. The CamCASP programs should compile without any problems using the scripts above. Make sure that the -static flag is not specified, though.
5. For Dalton, the configure script must be edited to allow for the use of gfortran.
(i) In line 200, add "gfortran" to the darwin complist. (ii) Change line 744 to 'tab=$(echo "\t")'. (iii) Copy the g77 section in lines 1072 to 1086 to follow l. 1091. In this copied section: Change g77 to gfortran and set mcpu to "". Remove the line 'LIB="-lcc_dynamic"' -- this flag isn't needed with current versions of gcc. Change the definition of opt to 'opt="$copt2 -std=legacy"'.
Some minor code changes are also needed. In cc/pckutil.F, line 100, change z'C0000000' to transfer(z'C0000000',1)). A similar change is needed in lines 101, 236 and 238.
6. Building SAPT is troublesome, because file-names in Mac OS X are case-insensitive, so the shell script called SAPT in the SAPT bin directory gets confused with the SAPT executable called sapt. This can be worked around by renaming the SAPT script, e.g. as doSAPT, and commenting out the lines (around line 348) in Compall that change the first line of SAPT. (It doesn't need to be changed for Mac OS.) This must be done before attempting to run Compall. Line 329 of Compall also needs to be changed to provide for the gfortran option. The current version of CamCASP doesn't use either SAPT or sapt unless 3rd-order energies are wanted.