1b2441318SGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0 29f7ef985SJiri Olsaifeq ($(srctree),) 3e19b7ceeSUwe Kleine-Königsrctree := $(patsubst %/,%,$(dir $(CURDIR))) 49f7ef985SJiri Olsasrctree := $(patsubst %/,%,$(dir $(srctree))) 59f7ef985SJiri Olsaendif 69f7ef985SJiri Olsa 79f7ef985SJiri Olsainclude $(srctree)/tools//scripts/Makefile.include 89f7ef985SJiri Olsa 99f7ef985SJiri Olsadefine allow-override 109f7ef985SJiri Olsa $(if $(or $(findstring environment,$(origin $(1))),\ 119f7ef985SJiri Olsa $(findstring command line,$(origin $(1)))),,\ 129f7ef985SJiri Olsa $(eval $(1) = $(2))) 139f7ef985SJiri Olsaendef 149f7ef985SJiri Olsa 159f7ef985SJiri Olsa$(call allow-override,CC,$(CROSS_COMPILE)gcc) 169f7ef985SJiri Olsa$(call allow-override,LD,$(CROSS_COMPILE)ld) 179f7ef985SJiri Olsa 180c3b7e42SJiri Olsaexport HOSTCC HOSTLD HOSTAR 190c3b7e42SJiri Olsa 20293f324cSCharlie Jenkinsexport srctree CC LD 219f7ef985SJiri Olsa 229f7ef985SJiri OlsaMAKEFLAGS := --no-print-directory 239f7ef985SJiri Olsabuild := -f $(srctree)/tools/build/Makefile.build dir=. obj 249f7ef985SJiri Olsa 255e50426dSJiri Olsaall: $(OUTPUT)fixdep 269f7ef985SJiri Olsa 27762323ebSJiri Olsa# Make sure there's anything to clean, 28762323ebSJiri Olsa# feature contains check for existing OUTPUT 298af52e69SJames ClarkTMP_O := $(if $(OUTPUT),$(OUTPUT)feature/,./) 30762323ebSJiri Olsa 319f7ef985SJiri Olsaclean: 329f7ef985SJiri Olsa $(call QUIET_CLEAN, fixdep) 335c816641SMasahiro Yamada $(Q)find $(or $(OUTPUT),.) -name '*.o' -delete -o -name '\.*.cmd' -delete -o -name '\.*.d' -delete 3485e0d509SJiri Olsa $(Q)rm -f $(OUTPUT)fixdep 35661b37cdSJesper Dangaard Brouer $(call QUIET_CLEAN, feature-detect) 36762323ebSJiri Olsaifneq ($(wildcard $(TMP_O)),) 37762323ebSJiri Olsa $(Q)$(MAKE) -C feature OUTPUT=$(TMP_O) clean >/dev/null 38762323ebSJiri Olsaendif 399f7ef985SJiri Olsa 40*a808a2b3SJosh PoimboeufFIXDEP := $(OUTPUT)fixdep 41*a808a2b3SJosh PoimboeufFIXDEP_IN := $(OUTPUT)fixdep-in.o 42*a808a2b3SJosh Poimboeuf 43*a808a2b3SJosh Poimboeuf# To track fixdep's dependencies properly, fixdep needs to run on itself. 44*a808a2b3SJosh Poimboeuf# Build it twice the first time. 45*a808a2b3SJosh Poimboeuf$(FIXDEP_IN): FORCE 46*a808a2b3SJosh Poimboeuf $(Q)if [ ! -f $(FIXDEP) ]; then \ 47*a808a2b3SJosh Poimboeuf $(MAKE) $(build)=fixdep HOSTCFLAGS="$(KBUILD_HOSTCFLAGS)"; \ 48*a808a2b3SJosh Poimboeuf rm -f $(FIXDEP).o; \ 49*a808a2b3SJosh Poimboeuf fi 50*a808a2b3SJosh Poimboeuf $(Q)$(MAKE) $(build)=fixdep HOSTCFLAGS="$(KBUILD_HOSTCFLAGS)" 51*a808a2b3SJosh Poimboeuf 52*a808a2b3SJosh Poimboeuf 53*a808a2b3SJosh Poimboeuf$(FIXDEP): $(FIXDEP_IN) 54*a808a2b3SJosh Poimboeuf $(QUIET_LINK)$(HOSTCC) $(FIXDEP_IN) $(KBUILD_HOSTLDFLAGS) -o $@ 55*a808a2b3SJosh Poimboeuf 56*a808a2b3SJosh PoimboeufFORCE: 57*a808a2b3SJosh Poimboeuf 58*a808a2b3SJosh Poimboeuf.PHONY: FORCE 59