Add test to check for up-to-date GPL license headers to lint.
authorPatrick Georgi <patrick.georgi@coresystems.de>
Fri, 19 Nov 2010 10:16:43 +0000 (10:16 +0000)
committerPatrick Georgi <patrick.georgi@coresystems.de>
Fri, 19 Nov 2010 10:16:43 +0000 (10:16 +0000)
"make lint" should not stop after first failed test.
Improve "make lint" output.

Signed-off-by: Patrick Georgi <patrick.georgi@coresystems.de>
Acked-by: Patrick Georgi <patrick.georgi@coresystems.de>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@6097 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1

Makefile
util/lint/lint-000-license-headers [new file with mode: 0755]
util/lint/lint-001-no-global-config-in-romstage

index 50421a65fde1ac1510c4837ef6bd99c6bf6dc8e2..0cfa85f6e8e473de9c7321fef190d6881e84f2df 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -367,9 +367,9 @@ update:
        dongle.py -c /dev/term/1 $(obj)/coreboot.rom EOF
 
 lint:
-       LINTLOG=`mktemp`; \
+       FAILED=0; LINTLOG=`mktemp`; \
        for script in util/lint/lint-*; do \
-               echo `basename $$script`; \
+               echo; echo `basename $$script`; \
                grep "^# DESCR:" $$script | sed "s,.*DESCR: *,," ; \
                echo ========; \
                $$script > $$LINTLOG; \
@@ -379,9 +379,11 @@ lint:
                        echo test failed: ; \
                        cat $$LINTLOG; \
                        rm -f $$LINTLOG; \
-                       exit 1; \
-               fi \
+                       FAILED=$$(( $$FAILED + 1 )); \
+               fi; \
+               echo ========; \
        done; \
+       test $$FAILED -eq 0 || { echo "ERROR: $$FAILED test(s) failed." &&  exit 1; }; \
        rm -f $$LINTLOG
 
 # This include must come _before_ the pattern rules below!
diff --git a/util/lint/lint-000-license-headers b/util/lint/lint-000-license-headers
new file mode 100755 (executable)
index 0000000..2e8588d
--- /dev/null
@@ -0,0 +1,34 @@
+#!/bin/sh
+# This file is part of the coreboot project.
+#
+# Copyright (C) 2010 coresystems GmbH
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+#
+# DESCR: Check that all files in src/ and util/ have valid license headers
+
+LC_ALL=C export LC_ALL
+find src util -name .svn -type d -prune -o \
+       -name README -prune -o \
+       -name LICENSE -prune -o \
+       -name TODO -prune -o \
+       -name COPYING -prune -o \
+       -name microcode-\*.h -prune -o \
+       -name \*.[18] -prune -o \
+       -name romcc -type d -prune -o \
+       -name crossgcc -type d -prune -o \
+       -type f -exec \
+               grep -L "51 Franklin St, Fifth Floor, Boston" {} + | \
+       sed -e "s,^.*$,File & has no valid GPL header.,"
index b48b8b47cfa071c359b2491480bf740a1fa385c6..ae4d6a41c422f07f2cbecf127aa575d608e33cb3 100755 (executable)
@@ -1,5 +1,23 @@
 #!/bin/sh
-# DESCR: Check that no symbols #defined in any romstage.c is used elsewhere
+# This file is part of the coreboot project.
+#
+# Copyright (C) 2010 coresystems GmbH
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+# DESCR: Check that no symbol #defined in any romstage.c is used elsewhere
+
 DEFINES=`grep "#define" src/mainboard/*/*/romstage.c |sed 's,.*#define[\t ]\([^\t ]*\)[\t ].*,\1,' | grep -v "(" | sort -u`
 SCANBUCKET=`mktemp`
 LC_ALL=C export LC_ALL