[Bioc-devel] portable make syntax

Kevin Ushey kevinushey at gmail.com
Sat Jan 24 01:58:40 CET 2015


If I understand correctly, all versions of `make` on the BioC build
systems will support GNU extensions to Makefiles, and so it's probably
not worth your time to make this 'portable' -- just add the
SystemRequirements bit.

However, you could work around this by (following R-exts at
http://cran.r-project.org/doc/manuals/r-release/R-exts.html#Writing-portable-packages)
wrapping your shell command in backticks, e.g.

    R_HOME=`if test -z ${R_HOME}; then ...; else ...; fi`

or something to that effect.

On Fri, Jan 23, 2015 at 4:05 PM, Laurent Gatto <lg390 at cam.ac.uk> wrote:
>
> Dear all,
>
> I have been using the following in various vignettes/Makefile
>
> ifeq (${R_HOME},)
> R_HOME= $(shell R RHOME)
> endif
>
> This syntax is GNU specific and now results in warnings when checking
> the package:
>
> * checking for GNU extensions in Makefiles ... WARNING
> Found the following file(s) containing GNU extensions:
>   vignettes/Makefile
> Portable Makefiles do not use GNU extensions such as +=, :=, $(shell),
> $(wildcard), ifeq ... endif. See section ‘Writing portable packages’ in
> the ‘Writing R Extensions’ manual.
>
> I couldn't find anything in R-exts; does anyone know a more portable
> syntax?
>
> Alternatively, I could add
>
> SystemRequirements: GNU make
>
> to my DESCRIPTION file, which however does not seem ideal.
>
> Any suggestions?
>
> Thank you very much in advance.
>
> Laurent
>
> _______________________________________________
> Bioc-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/bioc-devel



More information about the Bioc-devel mailing list