| #! /bin/sh |
| # Writes a target device config file to stdout, from a default and from |
| # include directives therein. Also emits Makefile dependencies. |
| # |
| # Usage: make_device_config.sh SRC DEPFILE-NAME DEPFILE-TARGET > DEST |
| |
| src=$1 |
| dep=$2 |
| target=$3 |
| src_dir=$(dirname $src) |
| all_includes= |
| |
| process_includes () { |
| cat $1 | grep '^include' | \ |
| while read include file ; do |
| all_includes="$all_includes $src_dir/$file" |
| process_includes $src_dir/$file |
| done |
| } |
| |
| f=$src |
| while [ -n "$f" ] ; do |
| f=$(cat $f | tr -d '\r' | awk '/^include / {printf "'$src_dir'/%s ", $2}') |
| [ $? = 0 ] || exit 1 |
| all_includes="$all_includes $f" |
| done |
| process_includes $src |
| |
| cat $src $all_includes | grep -v '^include' |
| echo "$target: $all_includes" > $dep |