| # SPDX-License-Identifier: GPL-2.0 |
| ifeq ($(srctree),) |
| srctree := $(patsubst %/,%,$(dir $(CURDIR))) |
| srctree := $(patsubst %/,%,$(dir $(srctree))) |
| endif |
| |
| include $(srctree)/tools//scripts/Makefile.include |
| |
| define allow-override |
| $(if $(or $(findstring environment,$(origin $(1))),\ |
| $(findstring command line,$(origin $(1)))),,\ |
| $(eval $(1) = $(2))) |
| endef |
| |
| $(call allow-override,CC,$(CROSS_COMPILE)gcc) |
| $(call allow-override,LD,$(CROSS_COMPILE)ld) |
| |
| export HOSTCC HOSTLD HOSTAR |
| |
| export srctree CC LD |
| |
| MAKEFLAGS := --no-print-directory |
| build := -f $(srctree)/tools/build/Makefile.build dir=. obj |
| |
| all: $(OUTPUT)fixdep |
| |
| # Make sure there's anything to clean, |
| # feature contains check for existing OUTPUT |
| TMP_O := $(if $(OUTPUT),$(OUTPUT)feature/,./) |
| |
| clean: |
| $(call QUIET_CLEAN, fixdep) |
| $(Q)find $(or $(OUTPUT),.) -name '*.o' -delete -o -name '\.*.cmd' -delete -o -name '\.*.d' -delete |
| $(Q)rm -f $(OUTPUT)fixdep |
| $(call QUIET_CLEAN, feature-detect) |
| ifneq ($(wildcard $(TMP_O)),) |
| $(Q)$(MAKE) -C feature OUTPUT=$(TMP_O) clean >/dev/null |
| endif |
| |
| FIXDEP := $(OUTPUT)fixdep |
| FIXDEP_IN := $(OUTPUT)fixdep-in.o |
| |
| # To track fixdep's dependencies properly, fixdep needs to run on itself. |
| # Build it twice the first time. |
| $(FIXDEP_IN): FORCE |
| $(Q)if [ ! -f $(FIXDEP) ]; then \ |
| $(MAKE) $(build)=fixdep HOSTCFLAGS="$(KBUILD_HOSTCFLAGS)"; \ |
| rm -f $(FIXDEP).o; \ |
| fi |
| $(Q)$(MAKE) $(build)=fixdep HOSTCFLAGS="$(KBUILD_HOSTCFLAGS)" |
| |
| |
| $(FIXDEP): $(FIXDEP_IN) |
| $(QUIET_LINK)$(HOSTCC) $(FIXDEP_IN) $(KBUILD_HOSTLDFLAGS) -o $@ |
| |
| FORCE: |
| |
| .PHONY: FORCE |