2525# Binaries
2626CARGO ?= cargo
2727CARGOFLAGS ?=
28- RUSTC_ARCH ?= # should be empty except for cross-build, not --target $(shell rustc --print host-tuple)
2928
3029# Install directories
3130PREFIX ?= /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.
4646BASEDIR ?= $(shell pwd)
4747ifdef CARGO_TARGET_DIR
4848BUILDDIR := $(CARGO_TARGET_DIR ) /${PROFILE}
4949else
50- BUILDDIR := $(BASEDIR ) /target/${PROFILE}
50+ BUILDDIR := $(BASEDIR ) /target/$( CARGO_BUILD_TARGET ) /$ {PROFILE}
5151endif
5252PKG_BUILDDIR := $(BUILDDIR ) /deps
5353DOCSDIR := $(BASEDIR ) /docs
@@ -335,14 +335,14 @@ use_default := 1
335335build-pkgs :
336336ifneq (${MULTICALL}, y)
337337ifdef 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))
339339else
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))
341341endif
342342endif
343343
344344build-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
347347build : build-coreutils build-pkgs locales
348348
@@ -392,21 +392,21 @@ busytest: $(BUILDDIR)/busybox $(addprefix test_busybox_,$(filter-out $(SKIP_UTIL
392392endif
393393
394394clean :
395- cargo clean $( RUSTC_ARCH )
396- cd $(DOCSDIR ) && $(MAKE ) clean $( RUSTC_ARCH )
395+ cargo clean
396+ cd $(DOCSDIR ) && $(MAKE ) clean
397397
398398distclean : clean
399- $(CARGO ) clean $(CARGOFLAGS ) $( RUSTC_ARCH ) && $(CARGO ) update $(CARGOFLAGS ) $( RUSTC_ARCH )
399+ $(CARGO ) clean $(CARGOFLAGS ) && $(CARGO ) update $(CARGOFLAGS )
400400
401401ifeq ($(MANPAGES ) ,y)
402+ # Do not cross-build uudoc
402403build-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
406406install-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 )
411411else
412412install-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 )
426426else
427427install-completions :
0 commit comments