Author: oxygene Date: Sun May 22 00:18:59 2011 New Revision: 6607 URL: https://tracker.coreboot.org/trac/coreboot/changeset/6607
Log: Add regression test for build directory handling to make lint target A couple of scenarios that were fixed in the last few revisions are tested to ensure that it's easy to determine breakage. Signed-off-by: Patrick Georgi <[email protected]> Acked-by: Patrick Georgi <[email protected]> Added: trunk/util/lint/lint-002-build-dir-handling (contents, props changed) Modified: trunk/Makefile Modified: trunk/Makefile ============================================================================== --- trunk/Makefile Sat May 21 01:31:41 2011 (r6606) +++ trunk/Makefile Sun May 22 00:18:59 2011 (r6607) @@ -237,7 +237,9 @@ endif +ifndef NOMKDIR $(shell mkdir -p $(obj) $(objutil)/kconfig/lxdialog $(additional-dirs) $(alldirs)) +endif cscope: cscope -bR Added: trunk/util/lint/lint-002-build-dir-handling ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ trunk/util/lint/lint-002-build-dir-handling Sun May 22 00:18:59 2011 (r6607) @@ -0,0 +1,63 @@ +#!/bin/sh +# This file is part of the coreboot project. +# +# Copyright (C) 2011 Patrick Georgi <[email protected]> +# +# 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 build directories can be chosen freely + +# $1: command to test for GNU make +search_make() { +if [ -n "`$1 --version 2>&1 |grep GNU`" ]; then MAKE=$1; fi +} + +# if $1 and $2 differ, exit with failure +compare_output() { +if ! [ "$1" = "$2" ]; then + echo \'$1\' should be \'$2\' + exit 1 +fi +} + +# $1: object directory +run_printall() { +$MAKE NOMKDIR=1 DOTCONFIG=$TMPCONFIG obj=$1 printall |sed -e "s,^ *,," -e "s, ,\n,g" -e "s,^ramstage-objs:=,," -e "s,mainboard/[^/]*/[^/]*/,.../," |grep "/static.*\.[co]" |sort |tr '\012\015' ' ' |sed -e "s, *, ,g" -e "s, *$,," +} + +# find GNU make +search_make make +search_make gmake +search_make gnumake + +if [ "$MAKE" = "" ]; then + echo Could not identify GNU make + exit 1 +fi + +# prepare a config to use +TMPCONFIG=`mktemp` +rm -f $TMPCONFIG +$MAKE NOMKDIR=1 DOTCONFIG=$TMPCONFIG allyesconfig >/dev/null + +# look up parent directory +PARENTDIR=`dirname $PWD` + +compare_output "`run_printall build`" "build/.../static.c build/.../static.ramstage.o" +compare_output "`run_printall ../obj`" "$PARENTDIR/obj/.../static.c $PARENTDIR/obj/.../static.ramstage.o" +compare_output "`run_printall /tmp`" "/tmp/.../static.c /tmp/.../static.ramstage.o" +compare_output "`run_printall /../tmp`" "/tmp/.../static.c /tmp/.../static.ramstage.o" + +rm -f $TMPCONFIG + -- coreboot mailing list: [email protected] http://www.coreboot.org/mailman/listinfo/coreboot

