From 41307f2874989048679c83686527a3887ed485b3 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Wed, 29 Apr 2009 08:51:27 +0100 Subject: [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). --- src/Makefile.housekeeping | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'src/Makefile.housekeeping') diff --git a/src/Makefile.housekeeping b/src/Makefile.housekeeping index 45020179..e886c4b2 100644 --- a/src/Makefile.housekeeping +++ b/src/Makefile.housekeeping @@ -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 -- cgit v1.2.3-55-g7522