On Jan 9, 2016, at 9:45 PM, David Strubbe wrote:
>>> On Sat, Jan 9, 2016 at 2:31 AM, Ryan Schmidt wrote:
>
>> On Jan 6, 2016, at 1:21 PM, dstru...@macports.org wrote:
>> >
>> > Revision
>> > 144336
>> > Author
>> > dstru...@macports.org
>> > Date
>> > 2016-01-06 11:21:10 -0800 (Wed, 06 Jan 2016)
>> > Log Message
>> >
>> > silo: Use compilers portgroup for Fortran variants. Clarify meaning in
>> > description. Update livecheck. Remove irrelevant comment. Add caution
>> > about MPI with HDF5.
>>
>> Well, the comment was relevant in that it documented the error message one
>> got when ccache was used, thus explaining why it had been disabled for this
>> port.
>>
>> > Modified Paths
>> >
>> > • trunk/dports/science/silo/Portfile
>> > Diff
>> >
>> > Modified: trunk/dports/science/silo/Portfile (144335 => 144336)
>>
>> > -# Makefile:152: *** missing separator. Stop.
>> > +compilers.choosefc f77 f90
>> > +compilers.setup
>> > +
>> > configure.ccacheno
>
> Are you sure that is what this line meant? It is hard to believe that ccache
> could be related to this error message of illegal syntax in a Makefile. And,
> I just commented out the ccache line and the port seems to work fine without
> that line, or with configure.ccache yes.
Yes I'm sure, in that I put it there when I initially added the port in
https://trac.macports.org/changeset/78261 and I mentioned it in
https://trac.macports.org/ticket/29325#comment:4.
I just now backdated the port to that revision, re-enabled ccache and changed
"hdf5-18" to "hdf5", and verified that silo 4.8 did have this problem. Lines
151-152 of the Makefile ended up as:
CC_FULLPATH = /opt/local/bin/ccache
/usr/bin/clang
and later in the same file:
CXX_FULLPATH = /opt/local/bin/ccache
/usr/bin/clang++
In other words, the MacPorts-provided CC and CXX values "ccache /usr/bin/clang"
and "ccache /usr/bin/clang++" were erroneously expanded and corrupted.
Now, in silo 4.10.2, if I re-enable ccache, the corresponding lines of Makefile
read:
CC_FULLPATH = /opt/local/bin/ccache
and:
CXX_FULLPATH = /opt/local/bin/ccache
This is still wrong -- these variables are evidently meant to be the absolute
paths to the compilers, but they have instead been computed as the absolute
path to ccache -- but at least they've fixed things to use only the first word.
It looks like the only places these variables are used is to show a summary at
the end of the configure phase:
Compiling Options:
C Compiler /opt/local/bin/ccache
CPPFLAGS -I/opt/local -I/opt/local/include
CFLAGS -pipe -Os -arch x86_64 -D_LARGEFILE_SOURCE
-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wdeclaration-after-statement
LDFLAGS -L/opt/local/lib
-Wl,-headerpad_max_install_names -arch x86_64
LIBS -lhdf5
Languages:
C++ Compiler /opt/local/bin/ccache
CXXFLAGS -pipe -Os -stdlib=libc++ -arch x86_64
Fortran Compiler
FCFLAGS -pipe -Os -m64
FCLIBS
And the same information gets written to the installed file
/opt/local/lib/libsiloh5.settings as well.
It should probably be changed to directly use the unmodified values of CC and
CXX and not attempt the error-prone process of trying to expand them into an
absolute path, especially since it seems to serve no purpose other than to be
informational to the user. Then ccache support for this portfile can be
reenabled.
___
macports-dev mailing list
macports-dev@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-dev