blob: c1afb3ffaa4d02897e3fe4fb2d94c232f9892018 [file] [log] [blame]
Paul Brookbd9141b2010-11-26 18:47:45 +00001#! /bin/sh
Paolo Bonzini15564d82015-03-12 16:00:05 +01002# Writes a target device config file to stdout, from a default and from
3# include directives therein. Also emits Makefile dependencies.
4#
5# Usage: make_device_config.sh SRC DEPFILE-NAME DEPFILE-TARGET > DEST
Paul Brookbd9141b2010-11-26 18:47:45 +00006
Paolo Bonzini15564d82015-03-12 16:00:05 +01007src=$1
8dep=$2
9target=$3
Paul Brookbd9141b2010-11-26 18:47:45 +000010src_dir=`dirname $src`
11all_includes=
12
13process_includes () {
14 cat $1 | grep '^include' | \
15 while read include file ; do
16 all_includes="$all_includes $src_dir/$file"
17 process_includes $src_dir/$file
18 done
19}
20
21f=$src
22while [ -n "$f" ] ; do
Gerd Hoffmannf4ece402013-02-01 10:48:34 +010023 f=`cat $f | tr -d '\r' | awk '/^include / {printf "'$src_dir'/%s ", $2}'`
Paul Brookcf669242010-11-27 00:43:04 +000024 [ $? = 0 ] || exit 1
Paul Brookbd9141b2010-11-26 18:47:45 +000025 all_includes="$all_includes $f"
26done
Paolo Bonzini15564d82015-03-12 16:00:05 +010027process_includes $src
Paul Brookbd9141b2010-11-26 18:47:45 +000028
Paolo Bonzini15564d82015-03-12 16:00:05 +010029cat $src $all_includes | grep -v '^include'
30echo "$target: $all_includes" > $dep