mirror of
https://github.com/ipxe/ipxe
synced 2026-02-04 06:59:59 +03:00
[legal] Add licence.pl and %.licence make target
It is now possible to run e.g. make bin/rtl8139.dsk.licence in order to see a licensing assessment for any given gPXE build. The assessment will either produce a single overall licence for the build (based on combining all the licences used within the source files for that build), or will exit with an error stating why a licence assessment is not possible (for example, if there are files involved that do not yet contain an explicit FILE_LICENCE() declaration).
This commit is contained in:
@@ -672,13 +672,31 @@ $(BIN)/%.deps : $(BIN)/%.tmp
|
||||
# Get unneeded source files for the specified target
|
||||
#
|
||||
define nodeps_list
|
||||
$(sort $(filter-out $(call deps_list,$<),\
|
||||
$(sort $(filter-out $(call deps_list,$(1)),\
|
||||
$(foreach BOBJ,$(BOBJS),\
|
||||
$($(basename $(notdir $(BOBJ)))_DEPS))))
|
||||
endef
|
||||
$(BIN)/%.nodeps : $(BIN)/%.tmp
|
||||
$(Q)$(ECHO) $(call nodeps_list,$<)
|
||||
|
||||
# Get licensing verdict for the specified target
|
||||
#
|
||||
define unlicensed_deps_list
|
||||
$(shell grep -L FILE_LICENCE $(call deps_list,$(1)))
|
||||
endef
|
||||
define licence_list
|
||||
$(patsubst __licence_%,%,\
|
||||
$(filter __licence_%,$(shell $(NM) $(1) | cut -d" " -f3)))
|
||||
endef
|
||||
$(BIN)/%.licence : $(BIN)/%.tmp
|
||||
$(QM)$(ECHO) " [LICENCE] $@"
|
||||
$(Q)$(if $(strip $(call unlicensed_deps_list,$<)),\
|
||||
echo -n "Unable to determine licence because the following " ;\
|
||||
echo "files are missing a licence declaration:" ;\
|
||||
echo $(call unlicensed_deps_list,$<);\
|
||||
exit 1,\
|
||||
$(LICENCE) $(call licence_list,$<))
|
||||
|
||||
# Extract compression information from intermediate object file
|
||||
#
|
||||
$(BIN)/%.zinfo : $(BIN)/%.tmp
|
||||
|
||||
Reference in New Issue
Block a user