Åke Sandgren <[email protected]> writes:

> What does your hooks look like?

  def pre_configure_hook(self, *args, **kwargs):

      """Pre-configure hook"""

      # Build RStan with threading
      ##################################################
      if self.name == 'RStan':
          self.cfg['buildopts'] = self.cfg['buildopts'] \
              + 'CXX14FLAGS="$CXX14FLAGS -DSTAN_THREADS"'
          self.log.info("[pre-build hook] Added -DSTAN_THREADS to CXX14FLAGS to 
buildopts")
          return

  def pre_extensions_hook(self, *args, **kwargs):

      """Pre-extensions hook"""

      # Build RStan with threading
      ##################################################
      if self.name == 'RStan':
          self.cfg['buildopts'] = self.cfg['buildopts'] \
              + 'CXX14FLAGS="$CXX14FLAGS -DSTAN_THREADS"'
          self.log.info("[pre-extensions hook] Added -DSTAN_THREADS to 
CXX14FLAGS to buildopts")
          return

I have also tried this with CXXFLAGS.

In my own copy of the EC I have tried various things:

  #preconfigopts = "-DSTAN_THREADS"
  #buildopts = "-DSTAN_THREADS"
  #preconfigopts = 'CXXFLAGS="$CXXFLAGS -DSTAN_THREADS" '
  #buildopts = 'CXXFLAGS="$CXXFLAGS -DSTAN_THREADS" '
  buildopts = ' -DSTAN_THREADS CC="$CC" FC="$F77"'

My impression is that none of these things affect the way the R packages
are build.

Cheers,

Loris

> And in what hook are you trying to do this? (Which i'll see when you
> show me the hook ...)
>
> On 11/27/19 10:19 AM, Loris Bennett wrote:
>> Hi Åke,
>> 
>> Åke Sandgren <[email protected]> writes:
>> 
>>> You might need to add it to the configopts (preconfigopts). Not sure
>>> which steps that easyconfig/block is going through.
>> 
>> I have tried tweaking the EC directly with
>> 
>>   preconfigopts = 'CXXFLAGS="$CXXFLAGS -DSTAN_THREADS" '
>> 
>> but this doesn't help.  In the log I see
>> 
>>   == 2019-11-27 10:01:00,566 easyconfig.py:583 INFO setting easyconfig
>>   parameter preconfigopts: value CXXFLAGS="$CXXFLAGS -DSTAN_THREADS"
>>   (type: <type 'str'>)
>> 
>> but subsequently
>> 
>>   == 2019-11-27 10:01:01,750 environment.py:97 INFO Environment variable
>>   CXXFLAGS set to -O2 -ftree-vectorize -march=native -fno-math-errno
>>   (previously undefined)
>> 
>> A heavy-handed approach would seem to be redefining the default value of
>> CXXFLAGS global.  Is that possible?
>> 
>> Otherwise it looks like I'll have to patch the Makefiles in the sources.
>> 
>> Cheers,
>> 
>> Loris
>> 
>>> On 11/21/19 10:05 AM, Loris Bennett wrote:
>>>> Loris Bennett <[email protected]> writes:
>>>>
>>>>> Hi,
>>>>>
>>>>> I am trying to install
>>>>>
>>>>>   RStan-2.18.2-foss-2018b-R-3.5.1.eb
>>>>>
>>>>> with the additional compiler flag:
>>>>>
>>>>>   -DSTAN_THREADS
>>>>>
>>>>> I want to us a hook and tried
>>>>>
>>>>>   def pre_configure_hook(self, *args, **kwargs):
>>>>>
>>>>>       """Pre-build hook"""
>>>>>
>>>>>       # Build RStan with threading
>>>>>       ##################################################
>>>>>       if self.name == 'RStan':
>>>>>           self.cfg['buildopts'] = self.cfg['buildopts'] \
>>>>>               + 'CXXFLAGS="$CXXFLAGS -DSTAN_THREADS"'
>>>>>           self.log.info("[pre-build hook] Added -DSTAN_THREADS to 
>>>>> CXXFLAGS to buildopts")
>>>>>           return
>>>>>
>>>>> In the log file I can see that  the hooks is called, but the flag
>>>>> doesn't seem to be used.
>>>>>
>>>>> What am I doing wrong?
>>>>
>>>> I have also tried adding
>>>>
>>>>   buildopts = "-DSTAN_THREADS"
>>>>
>>>> to my own copy of the easyconfig. This does appear in
>>>> the log file has having been set:
>>>>
>>>>   == 2019-11-21 09:20:23,543 easyconfig.py:583 INFO setting easyconfig
>>>>   parameter buildopts: value -DSTAN_THREADS (type: <type 'str'>)
>>>>
>>>> but it is not passed to the compiler.  The compile lines do contain
>>>> other macros, but these are obviously coming from elsewhere:
>>>>
>>>>  g++ -std=gnu++14
>>>>  -I"/trinity/shared/easybuild/software/R/3.5.1-foss-2018b/lib64/R/include"
>>>>  -DNDEBUG -I"../inst/include"
>>>>  
>>>> -I"`"/trinity/shared/easybuild/software/R/3.5.1-foss-2018b/lib64/R/bin/Rscript"
>>>>  --vanilla -e "cat(system.file('include', 'src', package =
>>>>  'StanHeaders'))"`" -DBOOST_DISABLE_ASSERTS
>>>>  -DBOOST_PHOENIX_NO_VARIADIC_EXPRESSION ...
>>>>
>>>> Any ideas how I could insert "-DSTAN_THREADS"?  Or can this kind of
>>>> thing only be done by patching the Makefile?
>>>>
>>>> Cheers,
>>>>
>>>> Loris
>>>>
>>>> --
>>>> Dr. Loris Bennett (Mr.)
>>>> ZEDAT, Freie Universität Berlin         Email [email protected]
>>>>
-- 
Dr. Loris Bennett (Mr.)
ZEDAT, Freie Universität Berlin         Email [email protected]

Reply via email to