runtime variable substitution
David Strubbe
dstrubbe at gmail.com
Sat Jul 13 15:28:02 PDT 2013
Ok, if I just move it outside pre-configure it seems to work.
Thanks,
David
On Sat, Jul 13, 2013 at 5:52 PM, David Strubbe <dstrubbe at gmail.com> wrote:
> I see. So, is there a place I can move this piece of code, or should I
> just write an error message by hand instead of using
> require_active_variants?
>
>
> On Sat, Jul 13, 2013 at 5:07 PM, Joshua Root <jmr at macports.org> wrote:
>
>> On 2013-7-14 06:44 , David Strubbe wrote:
>> > Hi all,
>> >
>> > I am trying to add MPI support to my octopus port, and trying to find
>> > the proper way of enforcing consistent Fortran versions. I put the
>> > following code into pre-configure, which almost seems to do the job. The
>> > error is not triggered, and the message gives the correct Fortran
>> > compiler in the cases I tried. However, the "require_active_variants
>> > libxc" line does not seem to be executed: there is no corresponding
>> > output in the main.log, and it does not cause an error even when the
>> > variant in question is not set. Am I supposed to wrap something around
>> > this call to make it substitute the variable properly?
>> >
>> > Thanks,
>> > David
>> >
>> > pre-configure {
>> > set fortran unknown
>> > set fortrans { gcc42 gcc43 gcc44 gcc45 gcc46 gcc47 gcc48 g95 }
>> > foreach fc_name ${fortrans} {
>> > if { [variant_isset ${fc_name}] } {
>> > set fortran ${fc_name}
>> > } elseif { [variant_isset openmpi] } {
>> > if { [active_variants openmpi ${fc_name}] } { set fortran
>> > ${fc_name} }
>> > } elseif { [variant_isset mpich] } {
>> > if { _portnameactive mpich} {
>> > if { [active_variants mpich ${fc_name}] } { set fortran
>> > ${fc_name} }
>> > } elseif { _portnameactive mpich-devel } {
>> > if { [active_variants mpich-devel ${fc_name}] } { set
>> > fortran ${fc_name} }
>> > }
>> > }
>> > }
>> > if { ${fortran} == "unknown" } {
>> > ui_error "Internal error: cannot determine Fortran compiler."
>> > }
>> > ui_msg "Fortran compiler is ${fortran}."
>> >
>> > require_active_variants libxc ${fortran}
>> > }
>>
>> require_active_variants only appends to a variable indicating which
>> variants you want to require. The actual check is done in pre-configure
>> (and pre-archivefetch) code, which has already run by the time your
>> pre-configure runs.
>>
>> - Josh
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-dev/attachments/20130713/00b82a13/attachment-0001.html>
More information about the macports-dev
mailing list