mirror of
https://github.com/HDFGroup/hdf5.git
synced 2024-12-03 02:32:04 +08:00
7927acd7f3
Bug Fix Description: H5FC was failing on Copper (IBM P690). The reason: the xlf compiler needs files to end in .f in stead of .f90. If you have .f90 files, you need the "-qsuffix=f=f90" flag defined. This was defined for compiling things via the "-c" option (to object files) but not for straight compilation of a file. I also noticed that the directory modules were being extracted from was "." and "../src". H5FC would find these alright when doing a "make check-install" but if Suzie User were to try this, it might fail for her. Suzie would have to specify explicitly where to grab these files. Solution: The solution to the problem was a bit more involved. I added a new variable called "F9XSUFFIXFLAG" which is set to this value if the machine needs it. Added new variable called "FSEARCH_DIRS" which can be set to the directories to find modules during compilation. The H5FC script knows where to find the correct modules (it's in the lib/ directory), so it uses the F9XMODFLAG to find them and not the FSEARCH_DIRS flag. Platforms tested: Modi4 (Fortran & Parallel) Verbena (Fortran) C++ not needed since this is Fortran-only fix Arabica (Fortran) Copper (Fortran) Ran "make install" and "make check-install" afterwards... Misc. update:
52 lines
1.1 KiB
Bash
52 lines
1.1 KiB
Bash
# -*- shell-script -*-
|
|
#
|
|
# This file is part of the HDF5 build script. It is processed shortly
|
|
# after configure starts and defines, among other things, flags for
|
|
# the various compile modes.
|
|
#
|
|
# See BlankForm in this directory for details.
|
|
|
|
# The default compiler is `gcc'.
|
|
if test -z "$CC"; then
|
|
CC=gcc
|
|
CC_BASENAME=gcc
|
|
fi
|
|
|
|
# Omit frame pointer for optimized code?
|
|
NOFP=${NOFP:=-fomit-frame-pointer}
|
|
|
|
# Figure out compiler flags
|
|
. $srcdir/config/gnu-flags
|
|
|
|
# The default Fortran 90 compiler
|
|
|
|
#
|
|
# HDF5 integers
|
|
#
|
|
# R_LARGE is the number of digits for the bigest integer supported.
|
|
# R_INTEGER is the number of digits in INTEGER
|
|
#
|
|
# (for the Linux architechture)
|
|
#
|
|
R_LARGE=18
|
|
R_INTEGER=9
|
|
HSIZE_T='SELECTED_INT_KIND(R_LARGE)'
|
|
HSSIZE_T='SELECTED_INT_KIND(R_LARGE)'
|
|
HID_T='SELECTED_INT_KIND(R_INTEGER)'
|
|
SIZE_T='SELECTED_INT_KIND(R_INTEGER)'
|
|
OBJECT_NAMELEN_DEFAULT_F=-1
|
|
|
|
if test -z "$F9X"; then
|
|
F9X=pgf90
|
|
fi
|
|
|
|
if test -z "$f9x_flags_set"; then
|
|
F9XSUFFIXFLAG=""
|
|
FSEARCH_DIRS=""
|
|
FFLAGS=""
|
|
DEBUG_FFLAGS=""
|
|
PROD_FFLAGS=""
|
|
PROFILE_FFLAGS=""
|
|
f9x_flags_set=yes
|
|
fi
|