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