<html>#1769: Deal with Fortran module files in standard C include paths (where they don't belong, but might have been placed by the system)
<table style='border-spacing: 1ex 0pt; '>
<tr><td style='text-align:right'> Reporter:</td><td>Bruno Mundim</td></tr>
<tr><td style='text-align:right'>   Status:</td><td>resolved</td></tr>
<tr><td style='text-align:right'>Milestone:</td><td></td></tr>
<tr><td style='text-align:right'>  Version:</td><td>development version</td></tr>
<tr><td style='text-align:right'>     Type:</td><td>bug</td></tr>
<tr><td style='text-align:right'> Priority:</td><td>minor</td></tr>
<tr><td style='text-align:right'>Component:</td><td>EinsteinToolkit thorn</td></tr>
</table>

<p>Changes (by Roland Haas):</p>
<p><table>
<tr><td>status:</td><td>resolved (was open)</td></tr>
</table></p>
<p>Note: the description changed, as the ticket evolved. The original description can be found below.</p>
<h2 id="markdown-header-new-description">New description:</h2>
<p>Only as short summary: Some systems install Fortran module files into standard paths for C include files. In order to find them, these paths need to be given to the Fortran compiler using the -I flag. They are not searched by default (by some compilers), since these paths, while C standard include paths, are not Fortran standard include paths. On the other hand, adding this -I option to all compilations in Cactus would interfere with C/C++, as these directories should not be added in that case.</p>
<p>One possible solution, not implemented right now, might be to use the relatively new INC_DIRS_F variable in the detect script.</p>
<h2 id="markdown-header-original-description">Original description:</h2>
<p>Several Linux distributions have already started to move their libraries to a new directory structure that reflects the target architecture and allows the installation of packages from multiple architectures in the same system. The following links provide more details of this change:</p>
<div class="codehilite"><pre><span></span>https://wiki.debian.org/Multiarch/TheCaseForMultiarch
https://wiki.ubuntu.com/MultiarchSpec
</pre></div>


<p>This change potentially affects several of external library scripts shipped with ET. For example the HDF5/src/detect.sh script is not able to detect the hdf5 libraries installed in the directory /usr/lib/x86_64-linux-gnu for Ubuntu 14.04.2 LTS.</p>
<p>I have attached a simple patch to remedy this issue and open a discussion on the best way to proceed here. This patch does depend on the availability of gcc on the system. It currently works fine for me, but we might need a better solution for systems without gcc.</p>
<p><strong>Keyword:</strong> ExternalLibraries<br />
<strong>Keyword:</strong> HDF5<br />
<strong>Keyword:</strong> Multiarch</p>
<p>Comment (by Roland Haas):</p>
<p>Fortran modules are now handled (more) correctly.</p>
<p>The multi-arch issue that came up during discussion is addressed (but not yet resolved) in #2133</p>
<p>--<br/>
Ticket URL: <a href='https://bitbucket.org/einsteintoolkit/tickets/issues/1769/deal-with-fortran-module-files-in-standard'>https://bitbucket.org/einsteintoolkit/tickets/issues/1769/deal-with-fortran-module-files-in-standard</a></p>
</html>