[R-SIG-Mac] Building binary packages for distribution
simon.urbanek at r-project.org
Fri Apr 13 19:05:27 CEST 2012
On Apr 13, 2012, at 11:36 AM, Prof Brian Ripley wrote:
> I have hitherto used a Leopard system to build Mac binary packages for distribution, but that system has died and we only have Lion systems left (and the replacement hardware only runs Lion). I'm only concerned with building i386/x86_64 packages.
> We saw problems with packages built on Snow Leopard which would not run on Leopard, and the trick was to use -mmacosx-version-min=10.5 for compiling and linking.
It is only partially sufficient. The min version makes sure that the Mach-O output is 10.5-compatible, but it will still happily use Lion-only libraries when linking. You have to use 10.5 SDK (typically via -isysroot) in order to make sure the linked frameworks and libraries are actually compatible and present on Leopard.
I have at some point contemplated building the R releases and packages on SL with the 10.5 SDK, but it is simply too fragile. There are issues in details of dependencies, such as packages that use configuration scripts to determine flags (like gsl-config) -- you'd have to maintain a full system and worry about paths (linker/include paths may work with -isysroot re-direction but any other paths won't).
That said, it is possible to build R itself that way. I'd even argue that it's better to simply create pre-drivers for compilers that automatically add the corresponding -isysroot et al. and then exec the compiler rather than setting the flags fully.
> Does anyone know for certain if that suffices? And does setting the environment variable MACOSX_DEPLOYMENT_TARGET to 10.5 do the same thing? (My man pages suggest so, but I don't trust Apple's documentation to be current.)
AFAIK, yes, but it is equally insufficient. Apple has been warning about the env vars for a while that they may get rid of them, but I dont' think they did so far (there were more useful ones for managing sysroot which I think they got rid of by now).
More information about the R-SIG-Mac