summaryrefslogtreecommitdiff
path: root/make_device_config.sh
blob: 8abadfef7cbf91814e98ee1e871915bc1e445e3f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#! /bin/sh
# Construct a target device config file from a default, pulling in any
# files from include directives.

dest=$1.tmp
dep=$1.d
src=$2
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=`awk '/^include / {ORS=" " ; print "'$src_dir'/" $2}' $f`
  [ $? = 0 ] || exit 1
  all_includes="$all_includes $f"
done
process_includes $src > $dest

cat $src $all_includes | grep -v '^include' > $dest
echo "$1: $all_includes" > $dep