All environment variables that affect miniextendr’s build, configure, test, and lint processes.

πŸ”—Install mode

There is no env var that controls install mode. configure auto-detects from a single signal:

ModeWhenBehavior
Sourceinst/vendor.tar.xz absentCargo resolves via [patch."git+url"] to monorepo siblings, or fetches the git URL when no siblings are detected.
Tarballinst/vendor.tar.xz presentConfigure unpacks the tarball, writes [source] replacement to vendored-sources, build runs --offline.

NOT_CRAN, PREPARE_CRAN, FORCE_VENDOR, BUILD_CONTEXT are removed. See CRAN Compatibility for the full table and rationale.

πŸ”—Cargo & Rust

VariablePurposeDefault
MINIEXTENDR_FEATURESComma-separated cargo features to enableAll features except nonapi
CARGO_PROFILEBuild profile: dev or releaserelease
CARGO_TARGET_DIRArtifact directory (must be outside src/)${abs_top_srcdir}/rust-target
CARGO_BUILD_TARGETRust target triple for cross-compilationEmpty (native); auto-detected from autoconf host
CARGO_HOMECargo registry/cache directory for offline or restricted environmentsEmpty (cargo’s default, ~/.cargo)
RUST_TOOLCHAINToolchain selector (e.g., +stable, +nightly)Empty (system default)
ENV_RUSTFLAGSRust compiler flags, passed as RUSTFLAGS to cargoValue of RUSTFLAGS

All of the above are declared as AC_ARG_VAR in configure.ac and can be set when invoking ./configure:

cd rpkg && MINIEXTENDR_FEATURES="rayon,serde" CARGO_PROFILE=dev bash ./configure

πŸ”—R Installation

VariablePurposeDefault
R_HOMEPath to R installationAuto-detected via R RHOME
R_LIBSR library path for package installationSystem default

πŸ”—Lint

VariablePurposeDefault
MINIEXTENDR_LINTDisable lint: 0, false, no, or offEnabled

The lint runs automatically during cargo build/cargo check via build.rs. Disable with:

MINIEXTENDR_LINT=0 cargo check --manifest-path=rpkg/src/rust/Cargo.toml

πŸ”—Runtime

VariablePurposeDefault
MINIEXTENDR_BACKTRACEShow full Rust backtraces on panic: 1 or true (case-insensitive)Suppressed
MINIEXTENDR_ENCODING_DEBUGPrint encoding snapshot at init (any value enables)Not set

MINIEXTENDR_BACKTRACE is read at panic time, not at package load, so it can be toggled during a session without restarting R. See Error Handling: Panic Hook and Backtraces.

MINIEXTENDR_ENCODING_DEBUG is only useful when embedding R via miniextendr-engine or on platforms where non-API encoding symbols are exported. See Encoding.

πŸ”—minirextendr (Scaffolding)

VariablePurposeDefault
MINIEXTENDR_LOCAL_PATHPath to local miniextendr monorepo for tests/scaffoldingAuto-detected

πŸ”—Wrapper generation (Internal)

Set by src/Makevars for the Rscript tools/write-wrappers.R step only; never set it yourself:

VariablePurpose
MINIEXTENDR_WRAPPER_GENPresence makes R_init_<pkg> take its minimal path (routine registration only: no panic hook, locale check, ALTREP classes or mx_abi), because the library is unloaded right after the writers run. A package loaded with it set works in a degraded state.

πŸ”—Cargo-Internal (Set Automatically)

These are set by cargo/build.rs and not meant for manual use:

VariablePurpose
CARGO_MANIFEST_DIRDirectory containing Cargo.toml
CARGO_CFG_TARGET_OSTarget OS (windows, macos, linux)
CARGO_CFG_TARGET_ENVTarget environment (msvc, gnu, musl)
CARGO_FEATURE_*One per enabled feature (uppercase + underscore)