Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  1) # SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  2) # ==========================================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  3) # Installing headers
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  4) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  5) # All headers under include/uapi, include/generated/uapi,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  6) # arch/<arch>/include/uapi and arch/<arch>/include/generated/uapi are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  7) # exported.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  8) # They are preprocessed to remove __KERNEL__ section of the file.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  9) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) # ==========================================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) PHONY := __headers
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) __headers:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) include scripts/Kbuild.include
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) src := $(srctree)/$(obj)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) gen := $(objtree)/$(subst include/,include/generated/,$(obj))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) dst := usr/include
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) -include $(src)/Kbuild
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) # $(filter %/, ...) is a workaround for GNU Make <= 4.2.1, where
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) # $(wildcard $(src)/*/) contains not only directories but also regular files.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) src-subdirs := $(patsubst $(src)/%/,%,$(filter %/, $(wildcard $(src)/*/)))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) gen-subdirs := $(patsubst $(gen)/%/,%,$(filter %/, $(wildcard $(gen)/*/)))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) all-subdirs := $(sort $(src-subdirs) $(gen-subdirs))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) src-headers := $(if $(src-subdirs), $(shell cd $(src) && find $(src-subdirs) -name '*.h'))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) src-headers := $(filter-out $(no-export-headers), $(src-headers))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) gen-headers := $(if $(gen-subdirs), $(shell cd $(gen) && find $(gen-subdirs) -name '*.h'))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) gen-headers := $(filter-out $(no-export-headers), $(gen-headers))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) # If the same header is exported from source and generated directories,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) # the former takes precedence, but this should be warned.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) duplicated := $(filter $(gen-headers), $(src-headers))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) $(if $(duplicated), $(warning duplicated header export: $(duplicated)))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) gen-headers := $(filter-out $(duplicated), $(gen-headers))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) # Add dst path prefix
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) all-subdirs := $(addprefix $(dst)/, $(all-subdirs))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) src-headers := $(addprefix $(dst)/, $(src-headers))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) gen-headers := $(addprefix $(dst)/, $(gen-headers))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) all-headers := $(src-headers) $(gen-headers)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) # Work out what needs to be removed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) old-subdirs := $(wildcard $(all-subdirs))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) old-headers := $(if $(old-subdirs),$(shell find $(old-subdirs) -name '*.h'))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) unwanted    := $(filter-out $(all-headers), $(old-headers))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) # Create directories
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) existing-dirs := $(sort $(dir $(old-headers)))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) wanted-dirs   := $(sort $(dir $(all-headers)))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) new-dirs      := $(filter-out $(existing-dirs), $(wanted-dirs))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) $(if $(new-dirs), $(shell mkdir -p $(new-dirs)))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) # Rules
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) quiet_cmd_install = HDRINST $@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60)       cmd_install = $(CONFIG_SHELL) $(srctree)/scripts/headers_install.sh $< $@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) $(src-headers): $(dst)/%.h: $(src)/%.h $(srctree)/scripts/headers_install.sh FORCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) 	$(call if_changed,install)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) $(gen-headers): $(dst)/%.h: $(gen)/%.h $(srctree)/scripts/headers_install.sh FORCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) 	$(call if_changed,install)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) quiet_cmd_remove = REMOVE  $(unwanted)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69)       cmd_remove = rm -f $(unwanted)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) __headers: $(all-headers)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) ifneq ($(unwanted),)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) 	$(call cmd,remove)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) 	@:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) existing-headers := $(filter $(old-headers), $(all-headers))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) -include $(foreach f,$(existing-headers),$(dir $(f)).$(notdir $(f)).cmd)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) PHONY += FORCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) FORCE:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) .PHONY: $(PHONY)