summaryrefslogblamecommitdiffstats
path: root/scripts/make_device_config.sh
blob: 354af317b3ddff748dc3d7847668e0b6e88d2d61 (plain) (tree)
1
2
3
4
5
6
7
8
9
          



                                                                       
 


         
                       











                                               
                                                                            
                      

                                 
                     
 

                                           
#! /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