Skip to content

Commit 40e50ba

Browse files
authored
GNUmakefile: Support CARGO_BUILD_TARGET (#9223)
Fixes #9206 . Removes `RUSTC_ARCH` variable.
1 parent 33f8cac commit 40e50ba

2 files changed

Lines changed: 17 additions & 15 deletions

File tree

.github/workflows/CICD.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,7 @@ jobs:
298298
fi
299299
# Check that we don't cross-build uudoc
300300
# also do not try to generate manpages for part of hashsum
301-
make install-manpages PREFIX=/tmp/usr UTILS=true RUSTC_ARCH="--target aarch64-unknown-linux-gnu"
301+
env CARGO_BUILD_TARGET=aarch64-unknown-linux-gnu make install-manpages PREFIX=/tmp/usr UTILS=true
302302
# build (host)
303303
make build
304304
echo "Check that target directory will be ignored by backup tools"

GNUmakefile

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ endif
2525
# Binaries
2626
CARGO ?= cargo
2727
CARGOFLAGS ?=
28-
RUSTC_ARCH ?= # should be empty except for cross-build, not --target $(shell rustc --print host-tuple)
2928

3029
#prefix prepended to all binaries and library dir
3130
PROG_PREFIX ?=
@@ -46,8 +45,11 @@ INSTALLDIR_BIN=$(DESTDIR)$(BINDIR)
4645
BASEDIR ?= $(shell pwd)
4746
ifdef CARGO_TARGET_DIR
4847
BUILDDIR := $(CARGO_TARGET_DIR)/${PROFILE}
48+
BUILDDIR_UUDOC := $(CARGO_TARGET_DIR)/${PROFILE}
4949
else
50-
BUILDDIR := $(BASEDIR)/target/${PROFILE}
50+
BUILDDIR := $(BASEDIR)/target/$(CARGO_BUILD_TARGET)/${PROFILE}
51+
# uudoc should not be cross build
52+
BUILDDIR_UUDOC := $(BASEDIR)/target/$(PROFILE)
5153
endif
5254
PKG_BUILDDIR := $(BUILDDIR)/deps
5355
DOCSDIR := $(BASEDIR)/docs
@@ -316,14 +318,14 @@ all: build
316318
build-pkgs:
317319
ifneq (${MULTICALL}, y)
318320
ifdef BUILD_SPEC_FEATURE
319-
${CARGO} build ${CARGOFLAGS} --features "$(BUILD_SPEC_FEATURE)" ${PROFILE_CMD} $(foreach pkg,$(EXES),-p uu_$(pkg)) $(RUSTC_ARCH)
321+
${CARGO} build ${CARGOFLAGS} --features "$(BUILD_SPEC_FEATURE)" ${PROFILE_CMD} $(foreach pkg,$(EXES),-p uu_$(pkg))
320322
else
321-
${CARGO} build ${CARGOFLAGS} ${PROFILE_CMD} $(foreach pkg,$(EXES),-p uu_$(pkg)) $(RUSTC_ARCH)
323+
${CARGO} build ${CARGOFLAGS} ${PROFILE_CMD} $(foreach pkg,$(EXES),-p uu_$(pkg))
322324
endif
323325
endif
324326

325327
build-coreutils:
326-
${CARGO} build ${CARGOFLAGS} --features "${EXES} $(BUILD_SPEC_FEATURE)" ${PROFILE_CMD} --no-default-features $(RUSTC_ARCH)
328+
${CARGO} build ${CARGOFLAGS} --features "${EXES} $(BUILD_SPEC_FEATURE)" ${PROFILE_CMD} --no-default-features
327329

328330
build: build-coreutils build-pkgs locales
329331

@@ -373,21 +375,21 @@ busytest: $(BUILDDIR)/busybox $(addprefix test_busybox_,$(filter-out $(SKIP_UTIL
373375
endif
374376

375377
clean:
376-
cargo clean $(RUSTC_ARCH)
377-
cd $(DOCSDIR) && $(MAKE) clean $(RUSTC_ARCH)
378+
cargo clean
379+
cd $(DOCSDIR) && $(MAKE) clean
378380

379381
distclean: clean
380-
$(CARGO) clean $(CARGOFLAGS) $(RUSTC_ARCH) && $(CARGO) update $(CARGOFLAGS) $(RUSTC_ARCH)
382+
$(CARGO) clean $(CARGOFLAGS) && $(CARGO) update $(CARGOFLAGS)
381383

382384
ifeq ($(MANPAGES),y)
385+
# Do not cross-build uudoc
383386
build-uudoc:
384-
# Use same PROFILE with coreutils to share crates (if not cross-build)
385-
${CARGO} build ${CARGOFLAGS} --bin uudoc --features "uudoc ${EXES}" ${PROFILE_CMD} --no-default-features
387+
@unset CARGO_BUILD_TARGET && ${CARGO} build ${CARGOFLAGS} --bin uudoc --features "uudoc ${EXES}" ${PROFILE_CMD} --no-default-features
386388

387389
install-manpages: build-uudoc
388390
mkdir -p $(DESTDIR)$(DATAROOTDIR)/man/man1
389391
$(foreach prog, $(INSTALLEES) $(HASHSUM_PROGS), \
390-
$(BUILDDIR)/uudoc manpage $(prog) > $(DESTDIR)$(DATAROOTDIR)/man/man1/$(PROG_PREFIX)$(prog).1 $(newline) \
392+
$(BUILDDIR_UUDOC)/uudoc manpage $(prog) > $(DESTDIR)$(DATAROOTDIR)/man/man1/$(PROG_PREFIX)$(prog).1 $(newline) \
391393
)
392394
else
393395
install-manpages:
@@ -400,9 +402,9 @@ install-completions: build-uudoc
400402
mkdir -p $(DESTDIR)$(DATAROOTDIR)/bash-completion/completions
401403
mkdir -p $(DESTDIR)$(DATAROOTDIR)/fish/vendor_completions.d
402404
$(foreach prog, $(INSTALLEES) $(HASHSUM_PROGS) , \
403-
$(BUILDDIR)/uudoc completion $(prog) zsh > $(DESTDIR)$(DATAROOTDIR)/zsh/site-functions/_$(PROG_PREFIX)$(prog) $(newline) \
404-
$(BUILDDIR)/uudoc completion $(prog) bash > $(DESTDIR)$(DATAROOTDIR)/bash-completion/completions/$(PROG_PREFIX)$(prog).bash $(newline) \
405-
$(BUILDDIR)/uudoc completion $(prog) fish > $(DESTDIR)$(DATAROOTDIR)/fish/vendor_completions.d/$(PROG_PREFIX)$(prog).fish $(newline) \
405+
$(BUILDDIR_UUDOC)/uudoc completion $(prog) zsh > $(DESTDIR)$(DATAROOTDIR)/zsh/site-functions/_$(PROG_PREFIX)$(prog) $(newline) \
406+
$(BUILDDIR_UUDOC)/uudoc completion $(prog) bash > $(DESTDIR)$(DATAROOTDIR)/bash-completion/completions/$(PROG_PREFIX)$(prog).bash $(newline) \
407+
$(BUILDDIR_UUDOC)/uudoc completion $(prog) fish > $(DESTDIR)$(DATAROOTDIR)/fish/vendor_completions.d/$(PROG_PREFIX)$(prog).fish $(newline) \
406408
)
407409
else
408410
install-completions:

0 commit comments

Comments
 (0)