On 11 May 2023 at 09:02, Martin Maechler wrote: | I've been told in private that the above "be happy if" | may *not* be a good idea, | or rather even close to impossible as cmake seems to not fit | well, at all, with the quite sophisticated | autoconf -> configure -> make | setup we have with building R + recommended packages | cross-platform compatibly as well as possible.
Yes, my bad -- it _is_ indeed in Writing R Extensions (albeit with an actual error, see below) so I now use what it recommended (in the form pointed out by Reed though) so for me it is sh -> make -> cmake but could be autoconf too. I presume the macOS systems needs it for cross-compilation or other dances. Still annoying as hell. A simple default may be better but I do not know any of the dragons running around inside macOS. Dirk Appendix: Actual Error in Writing R Extensions. Section 1.2.6 ends on these lines (r-release, and r-devel) I am quoting in full One way to work around this is for the package’s ‘configure’ script to include if test -z "$CMAKE"; then CMAKE="`which cmake`"; fi if test -z "$CMAKE"; then CMAKE=/Applications/CMake.app/Contents/bin/cmake; fi if test -f "$CMAKE"; then echo "no 'cmake' command found"; exit 1; fi and for the second approach to substitute ‘CMAKE’ into ‘src//Makevars’. The final 'test -f' has to be negated. Demo: edd@rob:/tmp$ cat foo.sh ##!/bin/sh if test -z "$CMAKE"; then CMAKE="`which cmake`"; fi if test -z "$CMAKE"; then CMAKE=/Applications/CMake.app/Contents/bin/cmake; fi if test -f "$CMAKE"; then echo "no 'cmake' command found"; exit 1; fi echo "** using $CMAKE" edd@rob:/tmp$ ./foo.sh no 'cmake' command found edd@rob:/tmp$ which cmake /usr/bin/cmake edd@rob:/tmp$ If I change foo.sh to use '! test -f' all is well edd@rob:/tmp$ be foo.sh # be is an alias for emacsclient in tty mode edd@rob:/tmp$ ./foo.sh ** using /usr/bin/cmake edd@rob:/tmp$ -- dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org ______________________________________________ R-package-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel