make_device_config.sh 638 B

12345678910111213141516171819202122232425262728
  1. #! /bin/sh
  2. # Construct a target device config file from a default, pulling in any
  3. # files from include directives.
  4. dest=$1.tmp
  5. dep=$1.d
  6. src=$2
  7. src_dir=`dirname $src`
  8. all_includes=
  9. process_includes () {
  10. cat $1 | grep '^include' | \
  11. while read include file ; do
  12. all_includes="$all_includes $src_dir/$file"
  13. process_includes $src_dir/$file
  14. done
  15. }
  16. f=$src
  17. while [ -n "$f" ] ; do
  18. f=`tr -d '\r' < $f | awk '/^include / {printf "'$src_dir'/%s", $2}'`
  19. [ $? = 0 ] || exit 1
  20. all_includes="$all_includes $f"
  21. done
  22. process_includes $src > $dest
  23. cat $src $all_includes | grep -v '^include' > $dest
  24. echo "$1: $all_includes" > $dep