[CMake] Compaq Fortran 6.1 detection fails under Windows

Philippe Poilbarbe Philippe.Poilbarbe at cls.fr
Mon Jun 19 11:32:09 EDT 2006


Hello,

I am trying to compile fortran code under Windows.
When the Fortran language is enabled, the fortran checking routine shows 
the following error:

Determining if the Fortran compiler works failed with the following output:
    nmake -f CMakeFiles\cmTryCompileExec.dir/build.make /nologo 
-L                  CMakeFiles\cmTryCompileExec.dir\build
Building Fortran object 
CMakeFiles/cmTryCompileExec.dir/testFortranCompiler.obj
    C:\PROGRA~1\MICROS~2\DF98\BIN\F90.EXE  -o 
CMakeFiles/cmTryCompileExec.dir/testFortranCompiler.obj   -c 
C:\devel\BRAT\CMakeFiles\CMakeTmp\testFortranCompiler.f
F90: error: Switch '-o' is ambiguous
NMAKE : fatal error U1077: 'C:\PROGRA~1\MICROS~2\DF98\BIN\F90.EXE' : 
return code '0x1'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual 
Studio\VC98\BIN\nmake.exe"' : return code '0x2'
Stop.

Did somebody have the same kind of problem and solved it ?

The fortran compiler if Compaq Fortran 6.1 and it
does not seem to have a -o option (f90 -help command
output is below).
CMake version: 2.4.2


Thanks
-- 
Philippe Poilbarbe.
CLS - Space Oceanography Division



Compaq Visual Fortran Optimizing Compiler Version 6.1
Copyright (C) 1997,1999 DIGITAL Equipment Corp. All rights reserved.

Invokes Compaq Visual Fortran preprocessor, Compaq Visual Fortran compiler,
and linker.

f90 [options] file1 [file2...] [/link options]

Compiler Options
 /align:keyword         Specifies how data items are aligned.
                         Keywords are [no]commons, dcommons, [no]records,
                         rec1byte, rec2byte, rec4byte, rec8byte.
 /[no]altparam          Specifies if alternate form of parameter constant
                         declarations (without parenthesis) is recognized.
 /architecture:keyword  Specifies which version of the machine architecture
                         to generate instructions for.
                         On ALPHA, keyword is generic, host, ev4, ev5, 
ev56, ev6
                         On Intel, keyword is generic, host, p5, p6
 /[no]asmattr:keyword   Specifies the information to generate in the
                         assembleable listing file.
                         Keywords are [no]source, [no]machine.
 /[no]asmfile[:filename]
                        Specifies that an assembleable listing file 
should be
                         generated.
 /assume:keyword        Specifies assumptions made by the optimizer and code
                         generator.
                         Keywords are none, [no]accuracy_sensitive,
                         [no]byterecl, [no]buffered_io, [no]dummy_aliases,
                         [no]minus0, [no]source_include, [no]underscore.
 /[no]automatic         Puts local variables on the run-time stack.
 /bintext:string        Places the string specified into the object file.
 /[no]browser[:filename]
                        Specifies that source browser information should be
                         generated.
 /[no]check:keyword     Check run-time conditions.
                         Keywords are all, none, [no]bounds, 
[no]flawed_pentium,
                         [no]format, [no]overflow, [no]output_conversion,
                         [no]power, [no]underflow.
 /[no]compile_only      Specifies that only the compilation phase is 
performed.
 /convert:keyword       Specifies the format of unformatted files containing
                         numeric data.
                         Keyword is big_endian, cray, ibm, little_endian,
                         native, vaxd, vaxg.
 /[no]d_lines           Compile lines having a D or d character in column 1.
 /[no]dbglibs           Controls linking against debug C run-time library
 /[no]debug:keyword     Specifies the amount of debug information included.
                         Keyword is none, minimal, partial, full.
 /define:symbol[=int]   Defines the symbol specified for use with 
conditional
                         compilation metacommands.  Optionally, the 
symbol can
                         be defined to be an integer value.
 /[no]dll[:filename]    Specifies that the program should be linked as a
                         dynamic-link (DLL) file.
 /[no]error_limit:size  Specifies the maximum number of error-level or
                         fatal-level compiler errors allowed.
 /[no]exe[:filename]    Specifies the name to be used for the built program
                         (.EXE) or dynamic-link (.DLL) library.
 /extfor:ext            Specifies file extensions to be processed as Fortran
                         source programs.
 /[no]extend_source[:size]
                        Determines the column that ends the statement 
field of
                         each source line in a fixed-format file. 
/Extend_source
                         ends the source in column 132.
                         Size is 72, 80, 132.
 /f66                   Allows extensions that enhance FORTRAN-66 
compatibility.
 /[no]f77rtl            Specifies that the Fortran 77 specific run-time 
support
                         should be used.
 /fast                  Generates most-optimized code.
 /[no]fixed             Interprets Fortran source files in the specified 
form.
 /[no]fltconsistency    Specifies that improved floating-point consistency
                         should be used.
                         INTEL only.
 /[no]fpconstant        Extends the precision of single precision constants
                         assigned to double precision variables to double
                         precision.
 /fpe:option            Specifies behavior on floating-point exceptions.
                         Option is 0, 3.
 /[no]fpscomp[:keyword] Specifies the level of compatibility to adhere to
                         with Fortran PowerStation.
                         Keywords are all, none, [no]filesfromcmd, 
[no]general,
                         [no]ioformat, [no]libs, [no]logicals, [no]symbols.
 /[no]free              Interprets Fortran source files in the specified 
form.
 /granularity:keyword   Ensures that data can be accessed from different
                         threads.
                         Keyword is byte, longword, quadword.
                         ALPHA only.
 /iface:keyword         Specifies the calling conventions to be used.
                         Keywords are [no]mixed_str_len_arg and one of cref,
                         default, stdref.
 /[no]include:dir       Defines the directories in which the compiler 
searches
                         for INCLUDE files.
 /[no]inline[:keyword]  Allow user-control over inlining.
                         Keyword is all, none, manual, size, speed.
 /[no]intconstant       Use Compaq Fortran 77 semantics, rather than Compaq
                         Fortran 90, to determine kind of integer constants.
 /integer_size:size     Specifies the default size of integer and logical
                         variables.
                         Size on INTEL is 16, 32.
                         Size on ALPHA is 16, 32, 64.
 /[no]libdir:keyword    Controls the library names that should be 
emitted into
                         the object file.
                         Keywords are all, none, [no]automatic, [no]user.
 /libs[:keyword]        Determines the default libraries to be linked 
against.
             Keyword is dll, qwin, qwins, static.
 /[no]list[:filename]   Creates a listing file.
 /[no]machine_code      Includes a machine-language representation of the
                         compiled code if a listing is generated.
 /[no]map[:filename]    Specifies that a link map file should be generated.
 /math_library:keyword  Specifies the math library routines to use.
                         Keyword on ALPHA is accurate, check, fast.
                         Keyword on INTEL is check, fast.
 /[no]module[:path]     Specifies path where mod files should be placed and
                         first location to look for mod files.
 /names:keyword         Specifies how source code identifiers and 
external names
                         are interpreted.
                         Keyword is as_is, lowercase, uppercase.
 /[no]object[:filename] Specifies the name of the object file.
 /[no]optimize[:keyword]
                        Specifies the optimization level.
                         Keyword is 0, 1, 2, 3, 4, 5
 /[no]pad_source        Specifies that fixed form source records are 
padded out
                         to the statement field width with blanks.
 /[no]pdbfile[:filename]
                        Specifies that any debug related information 
should be
                         generated to a program database file.
 /[no]pipeline          Enables software pipelining optimization.
                         ALPHA only.
 /real_size:size        Specifies the size of REAL and COMPLEX declarations,
                         constants, functions, and intrinsics.
                         Size is 32, 64.
 /[no]recursive         Compiles all procedures for possible recursive
                         execution.
 /[no]reentrancy:keyword
                        Specifies whether the threaded, reentrant run-time
                         support should be used.
                         Keyword is none, threaded.
 /rounding_mode:keyword Specifies how to round results of calculations.
                         Keyword is chopped, dynamic, minus_infinity, 
nearest.
                         ALPHA only.
 /[no]show:keyword      Includes information in a listing.
                         Keywords are [no]code, [no]include, [no]map.
 /source:filename       Specifies that the file indicated should be 
processed
                         as a Fortran source file.
 /stand:keyword         Specifies level of conformance with ANSI standard to
                         check for.
                         Keyword is f90, f95, none.
 /[no]static            Causes all local variables to be statically 
allocated.
 /[no]synchronous_exceptions
                        Associates an exception with the instruction that
                         causes it.
                         ALPHA only.
 /[no]syntax_only       Checks syntax only.
 /[no]threads           Specifies whether or not multi-threaded 
libraries should
                         be linked against.
 /[no]traceback         Specifies whether the compiler generates PC 
correlation
                         data used to display a symbolic traceback 
rather than
                         a hexidecimal traceback at runtime failure.
 /[no]transform_loops   Specifies that the loop transformation specific
                         array optimizations be performed.
 /tune:keyword          Selects processor-specific instruction tuning.
                         On ALPHA, keyword is generic, host, ev4, ev5, 
ev56, ev6
                         On Intel, keyword is generic, host, p5, p6
 /unroll:count          Specifies how may times loops are unrolled.
 /[no]vms               Causes the run-time system to provide certain 
functions
                         like VAX FORTRAN.
 /[no]warn:keyword      Specifies the level of warning messages issued.
                         Keywords are [no]alignments, [no]argument_checking,
                         [no]declarations, [no]errors, [no]fileopt,
                         [no]general, [no]stderrors, [no]truncated_source,
                         [no]uncalled, [no]uninitialized, [no]usage.
                         Keyword [no]granularity ALPHA only.
 /nowarn                Suppresses all warning messages.
 /winapp                Specifies building windows application and links
                         against required libraries.

Miscellaneous Options
 /compile_only          Does not invoke the linker.
 /extlnk:ext            Specifies file extensions to be processed by the 
linker.
 /fpp:"options"         Specifies options to be passed, as-is, to the
                         preprocessor.  Type the command "FPP /HELP" for
                         information on preprocessor options.
 /help,/?               Displays information about the f90 command.
 /keep                  Does not remove intermediate files.
 /[no]link              Precedes all linker options, which are passed, 
as-is,
                         to the linker.  If [no] is specified, does not 
invoke
                         the linker.
 /[no]logo              Suppresses the copyright notice displayed when the
                         compiler starts.
 /[no]watch:keyword     Determines the status information to be displayed.
                         Keywords are all, none, [no]cmd, [no]source.
 /what                  Displays the version numbers of the compiler and 
command
                         driver and their file names.

Preprocessor Options
 /comments              Outputs C-style comments to the explicit output 
file.
 /define:symbol         Defines symbol to the fpp preprocessor.
 /extfpp:ext            Specifies file extensions to be preprocessed.
 /include:dir           Defines the directories in which fpp searches for
                         #include files.
 /preprocess_only       Does not output line control information.
 /undefine:symbol       Removes any initial definition of symbol.

Many of the options supported by the Powerstation V4 compiler are supported
by the Compaq Visual Fortran compiler.  

Specific f90 Driver Default Options
 -nofpconstants -optimize:4 -altparam




More information about the CMake mailing list