[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:
Michael Brown
2009-04-29 08:51:27 +01:00
parent a525fb7782
commit 41307f2874
3 changed files with 144 additions and 1 deletions

View File

@@ -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