On Tue, 5 Jun 2007, [EMAIL PROTECTED] wrote: > My fame package has to link to the libchli.so that comes with FAME. > However, FAME is now supplying both 32 and 64 bit versions of the > library. The 32-bit version is $FAME/hli/libchli.so while the 64-bit > version is $FAME/hli/64/libchli.so. To set the right flags, it seems > that I need to know, from within configure.ac, whether the R > installation is 32 bit or 64 bit. Is there a way to detect this?
That sort of differentiation is highly OS-specific. If FAME is indeed doing this on all OSes it will cause considerable confusion. It is more normal to have the 'standard' version in .../lib and the others in .../lib/32 or .../lib/sparcv9, or to use lib and lib64 or .... And I will assume from now on that you mean a Unix-alike. Next, on any decent OS you don't need to know, as it will choose the appropriate DSO from those it can find of that name. So just having -L$FAME/hli/64 -L$FAME/hli should suffice. However, if despite all that you want to know, yes of course configure.ac can detect it. Several possibilities include: - Ensure that you can compiling in exactly the same way as R way built, and test a C program outputting sizeof(void *) == 8. - ${R_HOME}/bin/Rscript -e 'cat(.Machine$sizeof.pointer)' gives the pointer size in bytes. - file ${R_HOME}/bin/exec/${r_arch}R will have '64-bit' in on a 64-bit build on all OSes I know of. Of these the second is most direct (and the slowest and needs R >= 2.5.0). -- Brian D. Ripley, [EMAIL PROTECTED] 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 ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel