mirror of
https://git.FreeBSD.org/ports.git
synced 2024-11-30 01:15:52 +00:00
323 lines
12 KiB
Plaintext
323 lines
12 KiB
Plaintext
--- comp.orig 2012-12-05 05:49:41.000000000 +0900
|
|
+++ comp 2013-02-27 15:56:56.000000000 +0900
|
|
@@ -97,6 +97,8 @@
|
|
if ($TARGET == ibm-bg) set OK=true
|
|
if ($TARGET == linux32) set OK=true
|
|
if ($TARGET == linux64) set OK=true
|
|
+if ($TARGET == freebsd32) set OK=true
|
|
+if ($TARGET == freebsd64) set OK=true
|
|
if ($TARGET == mac32) set OK=true
|
|
if ($TARGET == mac64) set OK=true
|
|
if ($TARGET == necsx) set OK=true
|
|
@@ -149,6 +151,8 @@
|
|
if ($TARGET == ibm-bg) set BLAS3=true
|
|
if (($TARGET == linux32) && ($GMS_MATHLIB != none)) set BLAS3=true
|
|
if (($TARGET == linux64) && ($GMS_MATHLIB != none)) set BLAS3=true
|
|
+if (($TARGET == freebsd32) && ($GMS_MATHLIB != none)) set BLAS3=true
|
|
+if (($TARGET == freebsd64) && ($GMS_MATHLIB != none)) set BLAS3=true
|
|
if ($TARGET == mac32) set BLAS3=true
|
|
if ($TARGET == mac64) set BLAS3=true
|
|
if ($TARGET == sgi32) set BLAS3=true
|
|
@@ -579,6 +583,26 @@
|
|
endif
|
|
endif
|
|
#
|
|
+if ($TARGET == freebsd32) then
|
|
+ setenv MACHIN '*I32'
|
|
+ if ($MODULE == ddi) setenv MACHIN '*SOC'
|
|
+ if ($MODULE == iolib) setenv MACHIN '*UNX'
|
|
+ if ($MODULE == unport) setenv MACHIN '*L32'
|
|
+endif
|
|
+#
|
|
+if ($TARGET == freebsd64) then
|
|
+ setenv MACHIN '*I64'
|
|
+ if ($MODULE == ddi) setenv MACHIN '*SOC'
|
|
+ if ($MODULE == iolib) setenv MACHIN '*UNX'
|
|
+ if ($MODULE == unport) then
|
|
+ if ($GMS_FORTRAN == ifort) then
|
|
+ setenv MACHIN '*INT'
|
|
+ else
|
|
+ setenv MACHIN '*L64'
|
|
+ endif
|
|
+ endif
|
|
+endif
|
|
+
|
|
if ($TARGET == mac32) then
|
|
setenv MACHIN '*I32'
|
|
if ($MODULE == ddi) setenv MACHIN '*SOC'
|
|
@@ -1640,6 +1664,137 @@
|
|
endsw
|
|
# ... end of Linux on 32 bit processors.
|
|
endif
|
|
+if ($TARGET == freebsd32) then
|
|
+#
|
|
+# there are three supported 32 bit compilers: g77, gfortran, ifort
|
|
+# g77,
|
|
+# the gnu FORTRAN being included in older Linux distributions
|
|
+# lacks support for unit numbers over 99, or REAL*16
|
|
+# gfortran,
|
|
+# the gnu FORTRAN being included in newer Linux distributions
|
|
+# this allows unit numbers over 99, but not REAL*16
|
|
+# Intel's commercial ifort,
|
|
+# supports unit numbers above 99 and REAL*16 (runs all of GAMESS)
|
|
+
|
|
+ switch ($GMS_FORTRAN)
|
|
+#
|
|
+# The meaning of g77's flags are
|
|
+# -O0, -O1, -O2, -O3 are the optimization levels, -O means -O1
|
|
+# -Wno-globals -fno-globals together suppress argument type checking.
|
|
+# -fautomatic defeats use of static storage
|
|
+# -malign-double uses 64 bit data alignment
|
|
+# g77 does not support FORTRAN logical units above 99, or 128 bit math.
|
|
+#
|
|
+ case g77:
|
|
+ set OPT = '-O2'
|
|
+ if ($MODULE == ormas1) set OPT='-O2 -fno-move-all-movables' # RH9, g77 3.3
|
|
+ if ($MODULE == zheev) set OPT='-O0' # defensive compiling
|
|
+ if (($MODULE == qeigen) || ($MODULE == int2c)) then
|
|
+ mv -f $MODULE_F $MODULE.junk
|
|
+ sed -e "s/Q-/D-/g" \
|
|
+ -e "s/Q+00/D+00/g" \
|
|
+ -e "s/REAL\*16/DOUBLE PRECISION/" $MODULE.junk > $MODULE_F
|
|
+ rm -f $MODULE.junk
|
|
+ endif
|
|
+ if (($MODULE == iolib) || ($MODULE == inputa) || \
|
|
+ ($MODULE == gamess) || ($MODULE == mp2ims)) then
|
|
+ mv -f $MODULE_F $MODULE.junk
|
|
+ sed -e "s/MXUNIT=299/MXUNIT=99/g" $MODULE.junk > $MODULE_F
|
|
+ rm -f $MODULE.junk
|
|
+ endif
|
|
+ set echo
|
|
+ g77 -c $OPT -malign-double -fautomatic \
|
|
+ -Wno-globals -fno-globals $MODULE_F
|
|
+ unset echo
|
|
+ breaksw
|
|
+#
|
|
+# gfortran was included with Fedora Core distributions starting around FC4.
|
|
+# This is a 32 bit version, i.e. not using -fdefault-integer-8!
|
|
+# Unlike g77, gfortran allows for unit numbers above 100.
|
|
+# Like g77, gfortran does not support quadruple precision.
|
|
+# -Ox optimization level is from the gcc back end, x can be 0,1,2,3
|
|
+# -std=legacy suppresses warnings about use of f77 constructs.
|
|
+#
|
|
+ case gfortran:
|
|
+ set OPT='-O2'
|
|
+ if ($MODULE == zheev) set OPT='-O0' # defensive compiling
|
|
+ if ($MODULE == pcmcv2) set OPT='-O1' # EFP+CPCM, ala Francois, v4.1.2
|
|
+ if ($GMS_GFORTRAN_VERNO == 4.6) then
|
|
+ if ($MODULE == cosmo) set OPT='-O0' # this issue seen in 4.6.x
|
|
+ if ($MODULE == tddgrd) set OPT='-O0' # this issue seen in 4.6.1
|
|
+ endif
|
|
+ if ($GMS_GFORTRAN_VERNO == 4.7) then
|
|
+ if ($MODULE == cosmo) set OPT='-O0'
|
|
+ if ($MODULE == dcscf) set OPT='-O0'
|
|
+ if ($MODULE == rohfcc) set OPT='-O0'
|
|
+ if ($MODULE == tddgrd) set OPT='-O0'
|
|
+ endif
|
|
+# as of 4.6 tested in late 2011, gfortran can do q.p.!
|
|
+ switch ($GMS_GFORTRAN_VERNO)
|
|
+ case 4.0:
|
|
+ case 4.1:
|
|
+ case 4.2:
|
|
+ case 4.3:
|
|
+ case 4.4:
|
|
+ case 4.5:
|
|
+ set extraflags=''
|
|
+ if (($MODULE == qeigen) || ($MODULE == int2c)) then
|
|
+ mv -f $MODULE_F $MODULE.junk
|
|
+ sed -e "s/Q-/D-/g" \
|
|
+ -e "s/Q+00/D+00/g" \
|
|
+ -e "s/REAL\*16/DOUBLE PRECISION/" $MODULE.junk > $MODULE_F
|
|
+ rm -f $MODULE.junk
|
|
+ endif
|
|
+ breaksw
|
|
+ case 4.6:
|
|
+ case 4.7:
|
|
+ set extraflags='-fno-whole-file'
|
|
+ breaksw
|
|
+ default:
|
|
+ echo Unrecognized gfortran version
|
|
+ exit 4
|
|
+ breaksw
|
|
+ endsw
|
|
+#
|
|
+ set echo
|
|
+ %%FC%% -c $OPT -std=legacy $MODULE_F
|
|
+ unset echo
|
|
+ breaksw
|
|
+#
|
|
+# 3. Intel Fortran Compiler for Linux
|
|
+#
|
|
+# Note that this is more agressive (-O3 compared to -O2) than the
|
|
+# 64 bit compile below. If an ifort version gives you problems,
|
|
+# drop the optimization back to -O2.
|
|
+# Dmitri likes to use "-O3 -xN -ssp -unroll8 -ip -pad -opt_report",
|
|
+# but that may cause certain ifort versions to fail on some files.
|
|
+# See http://staff.aist.go.jp/d.g.fedorov/compgms.html for aggressive
|
|
+# optimizations in 32 bit mode, as a function of the ifort version.
|
|
+#
|
|
+ case ifort:
|
|
+ set OPT = '-O3'
|
|
+ if ($MODULE == delocl) set OPT='-O0' # from Cheol
|
|
+ if ($MODULE == prpamm) set OPT='-O0' # for exam13
|
|
+ if ($MODULE == zheev) set OPT='-O0'
|
|
+ set EXTRAOPT=" "
|
|
+ if ($GMS_IFORT_VERNO >= 8) set EXTRAOPT="$EXTRAOPT -assume byterecl"
|
|
+ if ($GMS_IFORT_VERNO >= 10) set EXTRAOPT="$EXTRAOPT -vec-report0"
|
|
+ if ($GMS_IFORT_VERNO < 12) set EXTRAOPT="$EXTRAOPT -w95 -cm"
|
|
+ if ($GMS_IFORT_VERNO >= 12) set EXTRAOPT="$EXTRAOPT -warn nousage -inline-level=0"
|
|
+ set echo
|
|
+ ifort -c -i4 $OPT -ftz -auto $EXTRAOPT $MODULE_F
|
|
+ unset echo
|
|
+ breaksw
|
|
+#
|
|
+ default:
|
|
+ echo "Please spell your Linux 32 bit FORTRAN compiler name correctly."
|
|
+ exit 4
|
|
+ breaksw
|
|
+ endsw
|
|
+# ... end of FreeBSD on 32 bit processors.
|
|
+endif
|
|
+
|
|
+
|
|
#
|
|
# ------ Linux on 64 bit chips ------
|
|
# This should work on any 64 bit Linux release, for any type of
|
|
@@ -1897,6 +2052,136 @@
|
|
endsw
|
|
# ... end of Linux on 64 bit processors.
|
|
endif
|
|
+
|
|
+if ($TARGET == freebsd64) then
|
|
+#
|
|
+# there are two supported 64 bit compilers: gfortran, ifort
|
|
+#
|
|
+ switch ($GMS_FORTRAN)
|
|
+
|
|
+ case gfortran:
|
|
+# -finit-real=<zero|inf|-inf|nan> could be interesting debug opt
|
|
+# -fno-automatic forces static storage of all local variables
|
|
+# -fno-whole-file suppresses argument's data type checking
|
|
+ set OPT='-O2'
|
|
+ if (".$GMS_DEBUG_FLAGS" != .) set OPT="$GMS_DEBUG_FLAGS"
|
|
+
|
|
+ if ($GMS_GFORTRAN_VERNO == 4.6) then
|
|
+ if ($MODULE == cosmo) set OPT='-O0' # this issue seen in 4.6.1
|
|
+ if ($MODULE == tddgrd) set OPT='-O0' # exam41, seen in 4.6.1
|
|
+ endif
|
|
+ if ($GMS_GFORTRAN_VERNO == 4.7) then
|
|
+ if ($MODULE == cosmo) set OPT='-O0'
|
|
+ if ($MODULE == dcscf) set OPT='-O0' # exam44, seen in 4.7 only
|
|
+ if ($MODULE == rohfcc) set OPT='-O0' # exam47, seen in 4.7 only
|
|
+ if ($MODULE == tddgrd) set OPT='-O0'
|
|
+ endif
|
|
+ if ($MODULE == zheev) set OPT='-O0' # defensive compiling
|
|
+
|
|
+ set EXTRAOPT=" "
|
|
+
|
|
+ if (($MODULE == cchem) || ($MODULE == ga)) then
|
|
+ mv $MODULE.f $MODULE.F
|
|
+ set MODULE_F=$MODULE.F
|
|
+ if ($GMS_LIBCCHEM == true) then
|
|
+ if ($MODULE == cchem) set EXTRAOPT="-DHAVE_CCHEM $extraflags"
|
|
+ if ($MODULE == ga) set EXTRAOPT="-I$GMS_PATH/libcchem/ga/include"
|
|
+ endif
|
|
+ endif
|
|
+#
|
|
+# as of 4.6 tested in late 2011, gfortran can do q.p.!
|
|
+ switch ($GMS_GFORTRAN_VERNO)
|
|
+ case 4.0:
|
|
+ case 4.1:
|
|
+ case 4.2:
|
|
+ case 4.3:
|
|
+ case 4.4:
|
|
+ case 4.5:
|
|
+ if (($MODULE == qeigen) || ($MODULE == int2c)) then
|
|
+ mv -f $MODULE_F $MODULE.junk
|
|
+ sed -e "s/Q-/D-/g" \
|
|
+ -e "s/Q+00/D+00/g" \
|
|
+ -e "s/REAL\*16/DOUBLE PRECISION/" $MODULE.junk > $MODULE_F
|
|
+ rm -f $MODULE.junk
|
|
+ endif
|
|
+ breaksw
|
|
+ case 4.6:
|
|
+ case 4.7:
|
|
+ set EXTRAOPT="$EXTRAOPT -fno-whole-file"
|
|
+ breaksw
|
|
+ default:
|
|
+ echo Unrecognized gfortran version
|
|
+ exit 4
|
|
+ breaksw
|
|
+ endsw
|
|
+
|
|
+ set echo
|
|
+ %%FC%% -c -fdefault-integer-8 $OPT -std=legacy $EXTRAOPT $MODULE_F
|
|
+ unset echo
|
|
+ breaksw
|
|
+
|
|
+ case ifort:
|
|
+# -i4/-i8 set default integer length
|
|
+# -On can have n=1,2,3. Use of 3 caused problems with earlier
|
|
+# compilers, so it isn't being used here. Try it if you like.
|
|
+# stack storage for locals is governed by -auto versus -save.
|
|
+# -assume byterecl was introduced at ifort 8.0 (older versions will
|
|
+# print a message saying this flag is ignored). Newer versions
|
|
+# need this so that direct access file opens are measured in
|
|
+# bytes rather than the new default in v8.0, namely 4-byte units.
|
|
+# -vec-report0 suppresses loop vectorization messages (new in 10.0)
|
|
+# -w95 suppresses Hollerith initialization and other f90-like warnings
|
|
+# -cm means suppress comments about programming practices,
|
|
+# these two options spelled '-warn nousage' at version 12.
|
|
+# -WB means warn but don't fail on out-of-bounds array references
|
|
+# -ftz flushes underflow results to zero
|
|
+#
|
|
+ set OPT = '-O2'
|
|
+ if (".$GMS_DEBUG_FLAGS" != .) set OPT="$GMS_DEBUG_FLAGS"
|
|
+# alas, I'm so tired of hearing about so many versions failing to
|
|
+# diagonalize, that this time critical code is run w/o optimization.
|
|
+# Very many (all?) ifort versions have problems with eigen.src.
|
|
+ if ($MODULE == eigen) set OPT='-O0' # read note just above.
|
|
+ if ($MODULE == fmo) set OPT='-O1' # 12.0.4, exam37
|
|
+ if ($MODULE == guess) set OPT='-O0' # 10.0, exam39
|
|
+ if ($MODULE == locpol) set OPT='-O1' # 10.0, makefp/gmres
|
|
+ if ($MODULE == morokm) set OPT='-O0' # Jan Fredin
|
|
+ if ($MODULE == prpel) set OPT='-O1' # 10.0, exam13
|
|
+ if (($MODULE == rohfcc) && ($GMS_IFORT_VERNO == 12)) \
|
|
+ set OPT='-O0' # exam42+exam47 (op.sh.CC,IP-EOM)
|
|
+ if ($MODULE == tdxitr) set OPT='-O1' # 10.0, exam39
|
|
+ if ($MODULE == vscf) set OPT='-O0' # intensities for combinations
|
|
+ if ($MODULE == zheev) set OPT='-O0' # defensive compiling
|
|
+
|
|
+ set EXTRAOPT=" "
|
|
+
|
|
+ if (($MODULE == cchem) || ($MODULE == ga)) then
|
|
+ mv $MODULE.f $MODULE.F
|
|
+ set MODULE_F=$MODULE.F
|
|
+ if ($GMS_LIBCCHEM == true) then
|
|
+ if ($MODULE == cchem) set EXTRAOPT="-DHAVE_CCHEM"
|
|
+ if ($MODULE == ga) set EXTRAOPT="-I$GMS_PATH/libcchem/ga/include"
|
|
+ endif
|
|
+ endif
|
|
+
|
|
+ if ($GMS_IFORT_VERNO >= 8) set EXTRAOPT="$EXTRAOPT -assume byterecl"
|
|
+ if ($GMS_IFORT_VERNO >= 10) set EXTRAOPT="$EXTRAOPT -vec-report0"
|
|
+ if ($GMS_IFORT_VERNO < 12) set EXTRAOPT="$EXTRAOPT -w95 -cm"
|
|
+ if ($GMS_IFORT_VERNO >= 12) set EXTRAOPT="$EXTRAOPT -warn nousage -inline-level=0"
|
|
+ set echo
|
|
+ ifort -c -i8 $OPT -ftz -auto $EXTRAOPT $MODULE_F
|
|
+ unset echo
|
|
+ breaksw
|
|
+#
|
|
+ default:
|
|
+ echo "Please spell your FreeBSD 64 bit FORTRAN compiler name correctly."
|
|
+ exit 4
|
|
+ breaksw
|
|
+ endsw
|
|
+# ... end of FreeBSD on 64 bit processors.
|
|
+endif
|
|
+
|
|
+
|
|
#
|
|
# Apple Macintosh system using OS X
|
|
# jargon: 10.0=cheetah, 10.1=puma, 10.2=jaguar, 10.3=panther,
|