Customizing the configuration file

The configuration file specifies information that the compiler uses when you invoke it. XL Fortran provides the default configuration file /etc/opt/ibmcmp/xlf/10.1/xlf.cfg at installation time.

If you are running on a single-user system, or if you already have a compilation environment with compilation scripts or makefiles, you may want to leave the default configuration file as it is.

Otherwise, especially if you want many users to be able to choose among several sets of compiler options, you may want to add new named stanzas to the configuration file and to create new commands that are links to existing commands. For example, you could specify something similar to the following to create a link to the xlf95 command:

ln -s /opt/ibmcmp/xlf/10.1/bin/xlf95 /home/username/bin/my_xlf95

When you run the compiler under another name, it uses whatever options, libraries, and so on, that are listed in the corresponding stanza.

Notes:
  1. The configuration file contains other named stanzas to which you may want to link.
  2. If you make any changes to the default configuration file and then move or copy your makefiles to another system, you will also need to copy the changed configuration file.
  3. You cannot use tabs as separator characters in the configuration file. If you modify the configuration file, make sure that you use spaces for any indentation.

Attributes

The configuration file contains the following attributes:

use
The named and local stanzas provide the values for attributes. For single-valued attributes, values in the use attribute apply if there is no value in the local, or default, stanza. For comma-separated lists, the values from the use attribute are added to the values from the local stanza. You can only use a single level of the use attribute. Do not specify a use attribute that names a stanza with another use attribute.
crt
When invoked in 32-bit mode, the default (which is the path name of the object file that contains the startup code), passed as the first parameter to the linkage editor.
crt_64
When invoked in 64-bit mode, using -q64 for example, the path name of the object file that contains the startup code, passed as the first parameter to the linkage editor.
mcrt
Same as for crt, but the object file contains profiling code for the -p option.
mcrt_64
Same as for crt_64, but the object file contains profiling code for the -p option.
gcrt
Same as crt, but the object file contains profiling code for the -pg option.
gcrt_64
Same as crt_64, but the object file contains profiling code for the -pg option.
gcc_libs
When invoked in 32-bit mode, the linker options to specify the path to the GCC libraries and to link the GCC library.
gcc_libs_64
When invoked in 64-bit mode, the linker options to specify the path to the GCC libraries and to link the GCC library.
gcc_path
Specifies the path to the 32-bit tool chain.
gcc_path_64
Specifies the path to the 64-bit tool chain.
cpp
The absolute path name of the C preprocessor, which is automatically called for files ending with a specific suffix (usually .F).
xlf
The absolute path name of the main compiler executable file. The compiler commands are driver programs that execute this file.
code
The absolute path name of the optimizing code generator.
xlfopt
Lists names of options that are assumed to be compiler options, for cases where, for example, a compiler option and a linker option use the same letter. The list is a concatenated set of single-letter flags. Any flag that takes an argument is followed by a colon, and the whole list is enclosed by double quotation marks.
as
The absolute path name of the assembler.
asopt
Lists names of options that are assumed to be assembler options for cases where, for example, a compiler option and an assembler option use the same letter. The list is a concatenated set of single-letter flags. Any flag that takes an argument is followed by a colon, and the whole list is enclosed by double quotation marks. You may find it more convenient to set up this attribute than to pass options to the assembler through the -W compiler option.
ld
The absolute path name of the linker.
ldopt
Lists names of options that are assumed to be linker options for cases where, for example, a compiler option and a linker option use the same letter. The list is a concatenated set of single-letter flags. Any flag that takes an argument is followed by a colon, and the whole list is enclosed by double quotation marks.

You may find it more convenient to set up this attribute than to pass options to the linker through the -W compiler option. However, most unrecognized options are passed to the linker anyway.

options
A string of options that are separated by commas. The compiler processes these options as if you entered them on the command line before any other option. This attribute lets you shorten the command line by including commonly used options in one central place.
cppoptions
A string of options that are separated by commas, to be processed by cpp (the C preprocessor) as if you entered them on the command line before any other option. This attribute is needed because some cpp options are usually required to produce output that can be compiled by XL Fortran. The default option is -C, which preserves any C-style comments in the output.
fsuffix
The allowed suffix for Fortran source files. The default is f. The compiler requires that all source files in a single compilation have the same suffix. Therefore, to compile files with other suffixes, such as f95, you must change this attribute in the configuration file or use the -qsuffix compiler option. For more information on -qsuffix, see -qsuffix option .
cppsuffix
The suffix that indicates a file must be preprocessed by the C preprocessor (cpp) before being compiled by XL Fortran. The default is F.
osuffix
The suffix used to recognize object files that are specified as input files. The default is o.
ssuffix
The suffix used to recognize assembler files that are specified as input files. The default is s.
libraries
-l options, which are separated by commas, that specify the libraries used to link all programs.
smplibraries
Specifies the libraries that are used to link programs that you compiled with the -qsmp compiler option.
hot
Absolute path name of the program that does array language transformations.
ipa
Absolute path name of the program that performs interprocedural optimizations, loop optimizations, and program parallelization.
bolt
Absolute path name of the binder.
defaultmsg
Absolute path name of the default message files.
include
Indicates the search path that is used for compilation include files and module files.
include_32
Indicates the search path that is used for 32-bit compilation include files.
include_64
Indicates the search path that is used for 64-bit compilation include files.
Note:
To specify multiple search paths for compilation include files, separate each path location with a comma as follows:
include = -l/path1, -l/path2, ...
Related information:
You can use the -F option to select a different configuration file, a specific stanza in the configuration file, or both.