From 06a69ad4960ed9cbd7aed02b8ccc4ef362676fd4 Mon Sep 17 00:00:00 2001 From: Blake Vernon Date: Fri, 11 Sep 2026 09:39:46 -0600 Subject: [PATCH 1/4] add roxygen guard --- src/Makevars.in | 10 ++++++---- src/Makevars.win.in | 10 ++++++---- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/Makevars.in b/src/Makevars.in index 3019395..2c57aad 100644 --- a/src/Makevars.in +++ b/src/Makevars.in @@ -39,9 +39,11 @@ $(STATLIB): export PATH="$(PATH):$(HOME)/.cargo/bin" && \ @PANIC_EXPORTS@RUSTFLAGS="$(RUSTFLAGS) --print=native-static-libs" cargo build @CRAN_FLAGS@ --lib @PROFILE@ --manifest-path=./rust/Cargo.toml --target-dir="$(TARGET_DIR)" @TARGET@ - $(CC) -o $(DOCUMENT) rust/document.c $(PKG_LIBS) -L"$(R_HOME)/lib$(R_ARCH)" -lR - ./$(DOCUMENT) $(R_PACKAGE_NAME) ../R/extendr-wrappers.R - rm -f $(DOCUMENT) + if [ -n "$$ROXYGEN_PKG" ]; then \ + $(CC) -o $(DOCUMENT) rust/document.c $(PKG_LIBS) -L"$(R_HOME)/lib$(R_ARCH)" -lR && \ + ./$(DOCUMENT) $(R_PACKAGE_NAME) ../R/extendr-wrappers.R && \ + rm -f $(DOCUMENT); \ + fi # Always clean up CARGOTMP rm -Rf "$(CARGOTMP)"; @@ -50,4 +52,4 @@ rust_clean: $(SHLIB) rm -Rf "$(CARGOTMP)" "$(VENDOR_DIR)" @CLEAN_TARGET@ clean: - rm -Rf $(SHLIB) $(STATLIB) $(OBJECTS) "$(TARGET_DIR)" "$(VENDOR_DIR)" $(DOCUMENT) \ No newline at end of file + rm -Rf $(SHLIB) $(STATLIB) $(OBJECTS) "$(TARGET_DIR)" "$(VENDOR_DIR)" $(DOCUMENT) diff --git a/src/Makevars.win.in b/src/Makevars.win.in index 1f590b5..7c83952 100644 --- a/src/Makevars.win.in +++ b/src/Makevars.win.in @@ -38,9 +38,11 @@ $(STATLIB): RUSTFLAGS="$(RUSTFLAGS) --print=native-static-libs" cargo build @CRAN_FLAGS@ --target=$(TARGET) --lib @PROFILE@ --manifest-path=rust/Cargo.toml --target-dir="$(TARGET_DIR)" # Generate wrappers using linked C executable - $(CC) -o $(DOCUMENT) rust/document.c $(PKG_LIBS) -L"$(R_HOME)/bin$(R_ARCH)" -lR - ./$(DOCUMENT) $(R_PACKAGE_NAME) ../R/extendr-wrappers.R - rm -f $(DOCUMENT) + if [ -n "$$ROXYGEN_PKG" ]; then \ + $(CC) -o $(DOCUMENT) rust/document.c $(PKG_LIBS) -L"$(R_HOME)/bin$(R_ARCH)" -lR && \ + ./$(DOCUMENT) $(R_PACKAGE_NAME) ../R/extendr-wrappers.R && \ + rm -f $(DOCUMENT); \ + fi # Always clean up CARGOTMP rm -Rf "$(CARGOTMP)"; @@ -49,4 +51,4 @@ rust_clean: $(SHLIB) rm -Rf "$(CARGOTMP)" "$(VENDOR_DIR)" @CLEAN_TARGET@ clean: - rm -Rf $(SHLIB) $(STATLIB) $(OBJECTS) "$(TARGET_DIR)" "$(VENDOR_DIR)" $(DOCUMENT) \ No newline at end of file + rm -Rf $(SHLIB) $(STATLIB) $(OBJECTS) "$(TARGET_DIR)" "$(VENDOR_DIR)" $(DOCUMENT) From 0deee17a2940dcfb22c84e8b4c4cbf1684c05127 Mon Sep 17 00:00:00 2001 From: Blake Vernon Date: Fri, 11 Sep 2026 09:40:00 -0600 Subject: [PATCH 2/4] remove unnecessary ucrt --- src/Makevars.ucrt | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 src/Makevars.ucrt diff --git a/src/Makevars.ucrt b/src/Makevars.ucrt deleted file mode 100644 index 17b153e..0000000 --- a/src/Makevars.ucrt +++ /dev/null @@ -1,5 +0,0 @@ -# Rtools42 doesn't have the linker in the location that cargo expects, so we -# need to overwrite it via configuration. -CARGO_LINKER = x86_64-w64-mingw32.static.posix-gcc.exe - -include Makevars.win From 92552511f0264695eaa96413f1946bf0f1f2549c Mon Sep 17 00:00:00 2001 From: Blake Vernon Date: Fri, 11 Sep 2026 11:34:51 -0600 Subject: [PATCH 3/4] echo success instead of intent --- src/Makevars.in | 11 ++++++----- src/Makevars.win.in | 20 +++++++++++++------- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/src/Makevars.in b/src/Makevars.in index 2c57aad..fdad66d 100644 --- a/src/Makevars.in +++ b/src/Makevars.in @@ -25,14 +25,14 @@ VENDOR_DIR = $(CURDIR)/vendor $(STATLIB): if [ -d ./vendor ]; then \ - echo "=== Using offline vendor directory ==="; \ mkdir -p "$(CARGOTMP)" && \ - cp rust/vendor-config.toml "$(CARGOTMP)/config.toml"; \ + cp rust/vendor-config.toml "$(CARGOTMP)/config.toml" && \ + echo "* used offline vendor directory"; \ elif [ -f ./rust/vendor.tar.xz ]; then \ - echo "=== Using offline vendor tarball ==="; \ tar xf rust/vendor.tar.xz && \ mkdir -p "$(CARGOTMP)" && \ - cp rust/vendor-config.toml "$(CARGOTMP)/config.toml"; \ + cp rust/vendor-config.toml "$(CARGOTMP)/config.toml" && \ + echo "* unpacked offline vendor tarball"; \ fi export CARGO_HOME="$(CARGOTMP)" && \ @@ -42,7 +42,8 @@ $(STATLIB): if [ -n "$$ROXYGEN_PKG" ]; then \ $(CC) -o $(DOCUMENT) rust/document.c $(PKG_LIBS) -L"$(R_HOME)/lib$(R_ARCH)" -lR && \ ./$(DOCUMENT) $(R_PACKAGE_NAME) ../R/extendr-wrappers.R && \ - rm -f $(DOCUMENT); \ + rm -f $(DOCUMENT) && \ + echo "* generated extendr wrappers"; \ fi # Always clean up CARGOTMP diff --git a/src/Makevars.win.in b/src/Makevars.win.in index 7c83952..5c7e6db 100644 --- a/src/Makevars.win.in +++ b/src/Makevars.win.in @@ -16,34 +16,40 @@ CARGOTMP = $(CURDIR)/.cargo VENDOR_DIR = vendor $(STATLIB): + @echo; mkdir -p "$(CARGOTMP)/libgcc_mock" touch "$(CARGOTMP)/libgcc_mock/libgcc_eh.a" # If a vendor directory exists, it is used for offline compilation. Otherwise if # vendor.tar.xz exists, it is unzipped and used for offline compilation. + @echo; if [ -d ./vendor ]; then \ - echo "=== Using offline vendor directory ==="; \ mkdir -p "$(CARGOTMP)" && \ - cp rust/vendor-config.toml "$(CARGOTMP)/config.toml"; \ + cp rust/vendor-config.toml "$(CARGOTMP)/config.toml" && \ + echo "* used offline vendor directory"; \ elif [ -f ./rust/vendor.tar.xz ]; then \ - echo "=== Using offline vendor tarball ==="; \ tar xf rust/vendor.tar.xz && \ mkdir -p "$(CARGOTMP)" && \ - cp rust/vendor-config.toml "$(CARGOTMP)/config.toml"; \ + cp rust/vendor-config.toml "$(CARGOTMP)/config.toml" && \ + echo "* unpacked offline vendor tarball"; \ fi - # Build the project using Cargo with additional flags + # Build the project using Cargo with additional flags + @echo; export CARGO_HOME="$(CARGOTMP)" && \ export LIBRARY_PATH="$(LIBRARY_PATH);$(CARGOTMP)/libgcc_mock" && \ RUSTFLAGS="$(RUSTFLAGS) --print=native-static-libs" cargo build @CRAN_FLAGS@ --target=$(TARGET) --lib @PROFILE@ --manifest-path=rust/Cargo.toml --target-dir="$(TARGET_DIR)" - # Generate wrappers using linked C executable + # Generate wrappers using linked C executable (dev only) + @echo; if [ -n "$$ROXYGEN_PKG" ]; then \ $(CC) -o $(DOCUMENT) rust/document.c $(PKG_LIBS) -L"$(R_HOME)/bin$(R_ARCH)" -lR && \ ./$(DOCUMENT) $(R_PACKAGE_NAME) ../R/extendr-wrappers.R && \ - rm -f $(DOCUMENT); \ + rm -f $(DOCUMENT) && \ + echo "* generated extendr wrappers"; \ fi + @echo; # Always clean up CARGOTMP rm -Rf "$(CARGOTMP)"; From a73257596fabc2c59a492cb157cfc85103f4360c Mon Sep 17 00:00:00 2001 From: Blake Vernon Date: Fri, 11 Sep 2026 12:24:07 -0600 Subject: [PATCH 4/4] add blank lines in output --- src/Makevars.in | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Makevars.in b/src/Makevars.in index fdad66d..31bf858 100644 --- a/src/Makevars.in +++ b/src/Makevars.in @@ -23,7 +23,7 @@ VENDOR_DIR = $(CURDIR)/vendor # If a vendor directory exists, it is used for offline compilation. Otherwise if # vendor.tar.xz exists, it is unzipped and used for offline compilation. $(STATLIB): - + @echo; if [ -d ./vendor ]; then \ mkdir -p "$(CARGOTMP)" && \ cp rust/vendor-config.toml "$(CARGOTMP)/config.toml" && \ @@ -35,10 +35,12 @@ $(STATLIB): echo "* unpacked offline vendor tarball"; \ fi + @echo; export CARGO_HOME="$(CARGOTMP)" && \ export PATH="$(PATH):$(HOME)/.cargo/bin" && \ @PANIC_EXPORTS@RUSTFLAGS="$(RUSTFLAGS) --print=native-static-libs" cargo build @CRAN_FLAGS@ --lib @PROFILE@ --manifest-path=./rust/Cargo.toml --target-dir="$(TARGET_DIR)" @TARGET@ + @echo; if [ -n "$$ROXYGEN_PKG" ]; then \ $(CC) -o $(DOCUMENT) rust/document.c $(PKG_LIBS) -L"$(R_HOME)/lib$(R_ARCH)" -lR && \ ./$(DOCUMENT) $(R_PACKAGE_NAME) ../R/extendr-wrappers.R && \ @@ -46,6 +48,7 @@ $(STATLIB): echo "* generated extendr wrappers"; \ fi + @echo; # Always clean up CARGOTMP rm -Rf "$(CARGOTMP)";