installation requires GNU make
When using BSD (or POSIX) implementations of `make`, e.g., `MAKE=bmake`, package installation fails with
```
/usr/bin/ld: cannot find -lstatxlsxwriter: No such file or directory
```
This is because pattern rules without prerequisites as used in
<https://github.com/ropensci/writexl/blob/39efd5e244e52d3ae8ebeea810c312fde7a29334/src/Makevars#L28-L30>
are a GNU extension.
Why not define the recipe directly for the `$(STATLIB)` target, as in writexl 1.5.2 (which worked with `bmake`) ?
```Makefile
$(STATLIB): $(LIBXLSXWRITER)
$(AR) -crs $@ $(LIBXLSXWRITER)
```
(NB: For maximum portability, the `-s` modifier should also be avoided; [R-exts#Writing-portable-packages](https://cran.r-project.org/doc/manuals/r-devel/R-exts.html#Writing-portable-packages) recommends the sequence `rm`, `$(AR) -cr`, `$(RANLIB)`.)
关闭于 2026-04-08 5 条评论