# Bug: Makefile ignores CARGO_TARGET_DIR

2 messages from 2026-07-28 to 2026-07-28. Participants: William Pursell, Todd Zullinger.
Thread: https://gitlist.dev/t/66080

## William Pursell, 2026-07-28 11:46

Subject: Bug: Makefile ignores CARGO_TARGET_DIR
Message-ID: <CAJPQ5NbTLnbe_VU1awCVggw5m9kGdBZssrZBp8G0YxcMjb_rwA@mail.gmail.com>

```
The Makefile hardcodes the path to the Rust static library at line
962, but the cargo invocation at line 3036 does not override
CARGO_TARGET_DIR. (line numbers are relative to 9a0c4701)

When CARGO_TARGET_DIR is set in the environment, the link step fails:

clang: error: no such file or directory: 'target/release/libgitcore.a'

```

## Todd Zullinger, 2026-07-28 18:01

Subject: Re: Bug: Makefile ignores CARGO_TARGET_DIR
Message-ID: <20260728180138.6TN1pzgr@teonanacatl.net>
In-Reply-To: <CAJPQ5NbTLnbe_VU1awCVggw5m9kGdBZssrZBp8G0YxcMjb_rwA@mail.gmail.com>

```
William Pursell wrote:
> The Makefile hardcodes the path to the Rust static library at line
> 962, but the cargo invocation at line 3036 does not override
> CARGO_TARGET_DIR. (line numbers are relative to 9a0c4701)
> 
> When CARGO_TARGET_DIR is set in the environment, the link step fails:
> 
> clang: error: no such file or directory: 'target/release/libgitcore.a'

If the fix simply to add `--target $*` as is used a few
lines below in RUST_MEMBER_LIBS, e.g.:

diff --git i/Makefile w/Makefile
index 98e995e4be..fa6e4b2702 100644
--- i/Makefile
+++ w/Makefile
@@ -3034,7 +3034,7 @@ $(LIB_FILE): $(LIB_OBJS)
 ifndef NO_RUST
 ifeq ($(RUST_TARGETS),)
 $(RUST_LIB): Cargo.toml $(RUST_SOURCES) $(LIB_FILE)
-	$(QUIET_CARGO)cargo build $(CARGO_ARGS)
+	$(QUIET_CARGO)cargo build $(CARGO_ARGS) --target $*
 else
 ifneq ($(words $(RUST_TARGETS)),1)
 ifneq ($(uname_S),Darwin)

Does this also affect the `cargo build` calls in the
libgit-sys and libgit-rs make targets (~lines 4090 and
4092)?

-- 
Todd

```
