I took a quick look at  
https://cran.r-project.org/doc/manuals/r-release/R-exts.html#Using-Makevars and 
it looks like you need to use  PKG_CXXFLAGS

On Wed, 27 Nov 2019 at 13:41, Åke Sandgren 
<[email protected]<mailto:[email protected]>> wrote:
Ahhh R package.... no I think that's a lot harder.
Not sure how R packages are built so can't currently help there.

Anyway, you should use this way of changing things like buildopts

self.cfg.update('buildopts', "BIGNUMA=1 ")

And in pre_configure_hook you should only change opts related to
configure step. build step opts should be done in pre_build_hook

On 11/27/19 1:29 PM, Loris Bennett wrote:
> Åke Sandgren <[email protected]<mailto:[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<http://self.name> == 'RStan':
>           self.cfg['buildopts'] = self.cfg['buildopts'] \
>               + 'CXX14FLAGS="$CXX14FLAGS -DSTAN_THREADS"'
>           self.log.info<http://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<http://self.name> == 'RStan':
>           self.cfg['buildopts'] = self.cfg['buildopts'] \
>               + 'CXX14FLAGS="$CXX14FLAGS -DSTAN_THREADS"'
>           self.log.info<http://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]<mailto:[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]<mailto:[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<http://self.name> == 'RStan':
>>>>>>           self.cfg['buildopts'] = self.cfg['buildopts'] \
>>>>>>               + 'CXXFLAGS="$CXXFLAGS -DSTAN_THREADS"'
>>>>>>           self.log.info<http://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]<mailto:[email protected]>
>>>>>

--
Ake Sandgren, HPC2N, Umea University, S-90187 Umea, Sweden
Internet: [email protected]<mailto:[email protected]>   Phone: +46 90 7866134 
Fax: +46 90-580 14
Mobile: +46 70 7716134 WWW: http://www.hpc2n.umu.se


--
Dr. Alan O'Cais
E-CAM Software Manager
Juelich Supercomputing Centre
Forschungszentrum Juelich GmbH
52425 Juelich, Germany

Phone: +49 2461 61 5213
Fax: +49 2461 61 6656
E-mail: [email protected]<mailto:[email protected]>
WWW:    http://www.fz-juelich.de/ias/jsc/EN


------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------
Forschungszentrum Juelich GmbH
52425 Juelich
Sitz der Gesellschaft: Juelich
Eingetragen im Handelsregister des Amtsgerichts Dueren Nr. HR B 3498
Vorsitzender des Aufsichtsrats: MinDir Volker Rieke
Geschaeftsfuehrung: Prof. Dr.-Ing. Wolfgang Marquardt (Vorsitzender),
Karsten Beneke (stellv. Vorsitzender), Prof. Dr.-Ing. Harald Bolt,
Prof. Dr. Sebastian M. Schmidt
------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------

Reply via email to