I am just trying to adjust one of my packages so the C code builds in
Windows. This is code that has been around for a long time, and I'm am
only a casual reader of C, so it has had the "if it is not broken don't
touch it" approach for many years. The section 1.2.1 "Using Makevars"
of "Writing R extensions" starts:
"Sometimes writing your own configure script can be avoided by supplying
a file Makevars: also one of the most common uses of a configure script
is to make Makevars from Makevars.in." ...
I am still a bit confused about whether packages src/ should have, in
addition to Makevars.win, a file Makevars or a file Makevars.in. The
rest of the section seems to imply that the file should be Makevars, but
the first four examples I pulled of CRAN all have Makevars.in. My
confusion is about whether R scripts will automatically turn Makevars.in
into Makevars or would I need my own configure script to do this (and I
am hoping not to need a configure script).
Which is preferred? (And could the first paragraph of the section be
made more explicit?)
Thanks,
Paul
====================================================================================
La version fran?aise suit le texte anglais.
------------------------------------------------------------------------------------
This email may contain privileged and/or confidential in...{{dropped:26}}
Makevars or Makevars.in
2 messages · Paul Gilbert, Brian Ripley
On Tue, 10 Nov 2009, Paul Gilbert wrote:
I am just trying to adjust one of my packages so the C code builds in Windows. This is code that has been around for a long time, and I'm am only a casual reader of C, so it has had the "if it is not broken don't touch it" approach for many years. The section 1.2.1 "Using Makevars" of "Writing R extensions" starts: "Sometimes writing your own configure script can be avoided by supplying a file Makevars: also one of the most common uses of a configure script is to make Makevars from Makevars.in." ... I am still a bit confused about whether packages src/ should have, in addition to Makevars.win, a file Makevars or a file Makevars.in. The rest of the section seems to imply that the file should be Makevars, but the first four examples I pulled of CRAN all have Makevars.in. My confusion is about whether R scripts will automatically turn Makevars.in into Makevars or would I need my own configure script to do this (and I am hoping not to need a configure script). Which is preferred? (And could the first paragraph of the section be made more explicit?)
I think you need to read the earlier mentions of Makevars in that
manual: your confusion seems to be that you have jumped in to a later
section. The only use of src/Makevars.in is that it is a conventional
name for a template file for configure to turn into src/Makevars. As
the manual says
The default rules can be tweaked by setting macros in a file
@file{src/Makevars} ... There are platform-specific file names on
Windows: @file{src/Makevars.win} takes precedence over
@file{src/Makevars}.
So to tweak the make rules you need src/Makevars: if you need a
platform-specific version you need src/Makevars and src/Makevars.win.
You may choose to use configure (or configure.win) to make these, but
you do not need to (and packages using e.g. LAPACK or BLAS do not do
so).
Brian D. Ripley, ripley at stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595