Hi Neil:

I have no experience with the NAG Fortran compiler, but just to
get the discussion rolling, I think I can guess at the answer to
your principal question below.

On 2013-02-17 17:13-0700 Neil Carlson wrote:

When building a shared library using the NAG Fortran compiler, cmake is
invoking
the compiler with the "-fPIC" option.  This is wrong.  The correct option
is "-PIC".
I've found I can get things to work if I add the following two lines to my
CMakeLists.txt
file (probably not the right way to fix things):

set(CMAKE_Fortran_COMPILE_OPTIONS_PIC "-PIC")
set(CMAKE_SHARED_LIBRARY_Fortran_FLAGS "-PIC")

Several questions (I'm *very* new to cmake, so apologies if they're stupid):
1)  I've found the file Modules/Platform/Linux-NAG-Fortran.cmake.  Is that
where
   compiler-specific settings like this belong?   And are the above two
lines the
   correct thing to add to that file?

There appear to be two places that set up NAG flags for CMake-2.8.10.2:

Modules/Compiler/NAG-Fortran.cmake
Modules/Platform/Linux-NAG-Fortran.cmake (which you mentioned above) and

My best guess is the former is where you set NAG-related flags that are
platform independent like those above.  For example, that file already contains

set(CMAKE_SHARED_LIBRARY_Fortran_FLAGS "-PIC")

so I don't think you have to set that variable at all!

I would also try setting

set(CMAKE_Fortran_COMPILE_OPTIONS_PIC "-PIC")

in Modules/Compiler/NAG-Fortran.cmake as well to see if that
completely satisfies your needs.

Note the only place CMAKE_Fortran_COMPILE_OPTIONS_PIC is set now is in
Modules/CMakeFortranInformation.cmake.  There it just sets that value
to the equivalent _C_ variable, but I don't know what C compiler is
used with NAG (which is strictly a Fortran compiler as far as I know)
which is why I suggested setting CMAKE_Fortran_COMPILE_OPTIONS_PIC
above rather than CMAKE_C_COMPILE_OPTIONS_PIC which likely would screw up
the C case.

In sum, I am just guessing based on patterns used for other
compilers/platforms.  You really should do some experiments to
see what gives the correct results, but the experiment I
would start with is insert

set(CMAKE_Fortran_COMPILE_OPTIONS_PIC "-PIC")

in Modules/Compiler/NAG-Fortran.cmake.

If that guess is incorrect, the Fortran expert here, Brad King, will hopefully
correct me.

Alan
__________________________
Alan W. Irwin

Astronomical research affiliation with Department of Physics and Astronomy,
University of Victoria (astrowww.phys.uvic.ca).

Programming affiliations with the FreeEOS equation-of-state
implementation for stellar interiors (freeeos.sf.net); the Time
Ephemerides project (timeephem.sf.net); PLplot scientific plotting
software package (plplot.sf.net); the libLASi project
(unifont.org/lasi); the Loads of Linux Links project (loll.sf.net);
and the Linux Brochure Project (lbproject.sf.net).
__________________________

Linux-powered Science
__________________________
--

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to