Skip to content

Commit 88f1dd9

Browse files
oech3oech3
authored andcommitted
GNUmakefile: Support CARGO_BUILD_TARGET
1 parent 748d991 commit 88f1dd9

File tree

2 files changed

+15
-15
lines changed

2 files changed

+15
-15
lines changed

.github/workflows/CICD.yml

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

GNUmakefile

Lines changed: 14 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
# Install directories
3130
PREFIX ?= /usr/local
@@ -43,11 +42,12 @@ PROG_PREFIX ?=
4342

4443
# This won't support any directory with spaces in its name, but you can just
4544
# make a symlink without spaces that points to the directory.
45+
# CARGO_BUILD_TARGET should be undefined for not cross-build.
4646
BASEDIR ?= $(shell pwd)
4747
ifdef CARGO_TARGET_DIR
4848
BUILDDIR := $(CARGO_TARGET_DIR)/${PROFILE}
4949
else
50-
BUILDDIR := $(BASEDIR)/target/${PROFILE}
50+
BUILDDIR := $(BASEDIR)/target/$(CARGO_BUILD_TARGET)/${PROFILE}
5151
endif
5252
PKG_BUILDDIR := $(BUILDDIR)/deps
5353
DOCSDIR := $(BASEDIR)/docs
@@ -335,14 +335,14 @@ use_default := 1
335335
build-pkgs:
336336
ifneq (${MULTICALL}, y)
337337
ifdef BUILD_SPEC_FEATURE
338-
${CARGO} build ${CARGOFLAGS} --features "$(BUILD_SPEC_FEATURE)" ${PROFILE_CMD} $(foreach pkg,$(EXES),-p uu_$(pkg)) $(RUSTC_ARCH)
338+
${CARGO} build ${CARGOFLAGS} --features "$(BUILD_SPEC_FEATURE)" ${PROFILE_CMD} $(foreach pkg,$(EXES),-p uu_$(pkg))
339339
else
340-
${CARGO} build ${CARGOFLAGS} ${PROFILE_CMD} $(foreach pkg,$(EXES),-p uu_$(pkg)) $(RUSTC_ARCH)
340+
${CARGO} build ${CARGOFLAGS} ${PROFILE_CMD} $(foreach pkg,$(EXES),-p uu_$(pkg))
341341
endif
342342
endif
343343

344344
build-coreutils:
345-
${CARGO} build ${CARGOFLAGS} --features "${EXES} $(BUILD_SPEC_FEATURE)" ${PROFILE_CMD} --no-default-features $(RUSTC_ARCH)
345+
${CARGO} build ${CARGOFLAGS} --features "${EXES} $(BUILD_SPEC_FEATURE)" ${PROFILE_CMD} --no-default-features
346346

347347
build: build-coreutils build-pkgs locales
348348

@@ -392,21 +392,21 @@ busytest: $(BUILDDIR)/busybox $(addprefix test_busybox_,$(filter-out $(SKIP_UTIL
392392
endif
393393

394394
clean:
395-
cargo clean $(RUSTC_ARCH)
396-
cd $(DOCSDIR) && $(MAKE) clean $(RUSTC_ARCH)
395+
cargo clean
396+
cd $(DOCSDIR) && $(MAKE) clean
397397

398398
distclean: clean
399-
$(CARGO) clean $(CARGOFLAGS) $(RUSTC_ARCH) && $(CARGO) update $(CARGOFLAGS) $(RUSTC_ARCH)
399+
$(CARGO) clean $(CARGOFLAGS) && $(CARGO) update $(CARGOFLAGS)
400400

401401
ifeq ($(MANPAGES),y)
402+
# Do not cross-build uudoc
402403
build-uudoc:
403-
# Use same PROFILE with coreutils to share crates (if not cross-build)
404-
${CARGO} build ${CARGOFLAGS} --bin uudoc --features "uudoc ${EXES}" ${PROFILE_CMD} --no-default-features
404+
@unset CARGO_BUILD_TARGET && ${CARGO} build ${CARGOFLAGS} --bin uudoc --features "uudoc ${EXES}" ${PROFILE_CMD} --no-default-features
405405

406406
install-manpages: build-uudoc
407407
mkdir -p $(DESTDIR)$(DATAROOTDIR)/man/man1
408408
$(foreach prog, $(INSTALLEES) $(HASHSUM_PROGS), \
409-
$(BUILDDIR)/uudoc manpage $(prog) > $(DESTDIR)$(DATAROOTDIR)/man/man1/$(PROG_PREFIX)$(prog).1 $(newline) \
409+
$(BASEDIR)/target/$(PROFILE)/uudoc manpage $(prog) > $(DESTDIR)$(DATAROOTDIR)/man/man1/$(PROG_PREFIX)$(prog).1 $(newline) \
410410
)
411411
else
412412
install-manpages:
@@ -419,9 +419,9 @@ install-completions: build-uudoc
419419
mkdir -p $(DESTDIR)$(DATAROOTDIR)/bash-completion/completions
420420
mkdir -p $(DESTDIR)$(DATAROOTDIR)/fish/vendor_completions.d
421421
$(foreach prog, $(INSTALLEES) $(HASHSUM_PROGS) , \
422-
$(BUILDDIR)/uudoc completion $(prog) zsh > $(DESTDIR)$(DATAROOTDIR)/zsh/site-functions/_$(PROG_PREFIX)$(prog) $(newline) \
423-
$(BUILDDIR)/uudoc completion $(prog) bash > $(DESTDIR)$(DATAROOTDIR)/bash-completion/completions/$(PROG_PREFIX)$(prog).bash $(newline) \
424-
$(BUILDDIR)/uudoc completion $(prog) fish > $(DESTDIR)$(DATAROOTDIR)/fish/vendor_completions.d/$(PROG_PREFIX)$(prog).fish $(newline) \
422+
$(BASEDIR)/target/$(PROFILE)/uudoc completion $(prog) zsh > $(DESTDIR)$(DATAROOTDIR)/zsh/site-functions/_$(PROG_PREFIX)$(prog) $(newline) \
423+
$(BASEDIR)/target/$(PROFILE)/uudoc completion $(prog) bash > $(DESTDIR)$(DATAROOTDIR)/bash-completion/completions/$(PROG_PREFIX)$(prog).bash $(newline) \
424+
$(BASEDIR)/target/$(PROFILE)/uudoc completion $(prog) fish > $(DESTDIR)$(DATAROOTDIR)/fish/vendor_completions.d/$(PROG_PREFIX)$(prog).fish $(newline) \
425425
)
426426
else
427427
install-completions:

0 commit comments

Comments
 (0)