Files
patches/efivar/efivar-39-posixify-build.patch
2026-05-26 02:08:47 -05:00

126 lines
5.2 KiB
Diff

diff --git a/Makefile b/Makefile
index 5f1dc88..1ef6fcd 100644
--- a/Makefile
+++ b/Makefile
@@ -35,12 +35,12 @@ brick : all
done
a :
- @if [ $${EUID} != 0 ]; then \
+ @if [ "$$(id -u)" != 0 ]; then \
echo no 1>&2 ; \
exit 1 ; \
fi
-GITTAG = $(shell bash -c "echo $$(($(VERSION) + 1))")
+GITTAG = $(shell printf '%s\n' $$(( $(VERSION) + 1 )))
efivar.spec : | Makefile src/include/version.mk
diff --git a/src/include/defaults.mk b/src/include/defaults.mk
index 4da0cde..40f4d51 100644
--- a/src/include/defaults.mk
+++ b/src/include/defaults.mk
@@ -11,13 +11,15 @@ PKGS ?=
CROSS_COMPILE ?=
COMPILER ?= gcc
-ifeq ($(origin CC),command line)
-override COMPILER := $(CC)
-override CC := $(CROSS_COMPILE)$(COMPILER)
-endif
+
+tool-if-exists = $(strip $(shell command -v $(1) >/dev/null 2>&1 && printf '%s' '$(1)'))
+cc-command = $(firstword $(filter-out ccache sccache distcc,$(foreach word,$(1),$(notdir $(word)))))
+cc-name = $(patsubst $(CROSS_COMPILE)%,%,$(call cc-command,$(1)))
+
$(call set-if-undefined,CC,$(CROSS_COMPILE)$(COMPILER))
+override COMPILER := $(or $(call cc-name,$(CC)),$(COMPILER))
$(call set-if-undefined,CCLD,$(CC))
-$(call set-if-undefined,HOSTCC,$(COMPILER))
+$(call set-if-undefined,HOSTCC,$(call cc-name,$(CC)))
$(call set-if-undefined,HOSTCCLD,$(HOSTCC))
# temporary, see https://sourceware.org/bugzilla/show_bug.cgi?id=28264
@@ -107,11 +109,11 @@ override HOST_LDFLAGS = $(HOST_CFLAGS) -L. \
$(call pkg-config-ccldflags)
override HOST_CCLDFLAGS = $(HOST_LDFLAGS)
-PKG_CONFIG ?= $(shell if [ -e "$$(env $(CROSS_COMPILE)pkg-config 2>&1)" ]; then echo $(CROSS_COMPILE)pkg-config ; else echo pkg-config ; fi)
+PKG_CONFIG ?= $(or $(call tool-if-exists,$(CROSS_COMPILE)pkg-config),pkg-config)
INSTALL ?= install
-AR := $(CROSS_COMPILE)$(COMPILER)-ar
-NM := $(CROSS_COMPILE)$(COMPILER)-nm
-RANLIB := $(CROSS_COMPILE)$(COMPILER)-ranlib
+$(call set-if-undefined,AR,$(or $(call tool-if-exists,$(CROSS_COMPILE)$(call cc-name,$(CC))-ar),$(if $(findstring clang,$(call cc-name,$(CC))),$(call tool-if-exists,$(CROSS_COMPILE)llvm-ar),$(call tool-if-exists,$(CROSS_COMPILE)gcc-ar)),$(call tool-if-exists,$(CROSS_COMPILE)ar),ar))
+$(call set-if-undefined,NM,$(or $(call tool-if-exists,$(CROSS_COMPILE)$(call cc-name,$(CC))-nm),$(if $(findstring clang,$(call cc-name,$(CC))),$(call tool-if-exists,$(CROSS_COMPILE)llvm-nm),$(call tool-if-exists,$(CROSS_COMPILE)gcc-nm)),$(call tool-if-exists,$(CROSS_COMPILE)nm),nm))
+$(call set-if-undefined,RANLIB,$(or $(call tool-if-exists,$(CROSS_COMPILE)$(call cc-name,$(CC))-ranlib),$(if $(findstring clang,$(call cc-name,$(CC))),$(call tool-if-exists,$(CROSS_COMPILE)llvm-ranlib),$(call tool-if-exists,$(CROSS_COMPILE)gcc-ranlib)),$(call tool-if-exists,$(CROSS_COMPILE)ranlib),ranlib))
ABIDW := abidw
ABIDIFF := abidiff
MANDOC := mandoc
diff --git a/src/include/coverity.mk b/src/include/coverity.mk
index 2e7024b..f852097 100644
--- a/src/include/coverity.mk
+++ b/src/include/coverity.mk
@@ -4,11 +4,11 @@ COV_URL=$(call get-config,coverity.url)
COV_FILE=$(NAME)-coverity-$(VERSION)-$(COMMIT_ID).tar.bz2
cov-int : clean
- cov-build --dir cov-int make all
+ cov-build --dir cov-int $(MAKE) all
cov-clean :
@rm -vf $(NAME)-coverity-*.tar.*
- @if [[ -d cov-int ]]; then rm -rf cov-int && echo "removed 'cov-int'"; fi
+ @if [ -d cov-int ]; then rm -rf cov-int && echo "removed 'cov-int'"; fi
cov-file : | $(COV_FILE)
@@ -16,9 +16,9 @@ $(COV_FILE) : cov-int
tar caf $@ cov-int
cov-upload :
- @if [[ -n "$(COV_URL)" ]] && \
- [[ -n "$(COV_TOKEN)" ]] && \
- [[ -n "$(COV_EMAIL)" ]] ; \
+ @if [ -n "$(COV_URL)" ] && \
+ [ -n "$(COV_TOKEN)" ] && \
+ [ -n "$(COV_EMAIL)" ] ; \
then \
echo curl --form token=$(COV_TOKEN) --form email="$(COV_EMAIL)" --form file=@"$(COV_FILE)" --form version=$(VERSION).1 --form description="$(COMMIT_ID)" "$(COV_URL)" ; \
curl --form token=$(COV_TOKEN) --form email="$(COV_EMAIL)" --form file=@"$(COV_FILE)" --form version=$(VERSION).1 --form description="$(COMMIT_ID)" "$(COV_URL)" ; \
@@ -31,7 +31,7 @@ coverity : cov-file cov-upload
clean : | cov-clean
-COV_BUILD ?= $(shell x=$$(which --skip-alias --skip-functions cov-build 2>/dev/null) ; [ -n "$$x" ] && echo 1)
+COV_BUILD ?= $(shell command -v cov-build >/dev/null 2>&1 && printf '%s' 1)
ifeq ($(COV_BUILD),)
COV_BUILD_ERROR = $(error cov-build not found)
endif
diff --git a/src/include/scan-build.mk b/src/include/scan-build.mk
index 19da90c..125c85c 100644
--- a/src/include/scan-build.mk
+++ b/src/include/scan-build.mk
@@ -1,4 +1,4 @@
-SCAN_BUILD ?= $(shell x=$$(which --skip-alias --skip-functions scan-build 2>/dev/null) ; [ -n "$$x" ] && echo 1)
+SCAN_BUILD ?= $(shell command -v scan-build >/dev/null 2>&1 && printf '%s' 1)
ifeq ($(SCAN_BUILD),)
SCAN_BUILD_ERROR = $(error scan-build not found)
endif
@@ -6,12 +6,12 @@ endif
scan-test : ; $(SCAN_BUILD_ERROR)
scan-clean : clean
- @if [[ -d scan-results ]]; then rm -rf scan-results && echo "removed 'scan-results'"; fi
+ @if [ -d scan-results ]; then rm -rf scan-results && echo "removed 'scan-results'"; fi
scan-build : | scan-test
scan-build : clean
$(MAKE) -C src makeguids
- scan-build -o scan-results make $(DASHJ) CC=clang all
+ scan-build -o scan-results $(MAKE) $(DASHJ) CC=clang all
scan-build-all: | scan-build
scan : | scan-build