make_device_config.sh 735 B

123456789101112131415161718192021222324252627282930
  1. #! /bin/sh
  2. # 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
  6. src=$1
  7. dep=$2
  8. target=$3
  9. src_dir=$(dirname $src)
  10. all_includes=
  11. process_includes () {
  12. cat $1 | grep '^include' | \
  13. while read include file ; do
  14. all_includes="$all_includes $src_dir/$file"
  15. process_includes $src_dir/$file
  16. done
  17. }
  18. f=$src
  19. while [ -n "$f" ] ; do
  20. f=$(cat $f | tr -d '\r' | awk '/^include / {printf "'$src_dir'/%s ", $2}')
  21. [ $? = 0 ] || exit 1
  22. all_includes="$all_includes $f"
  23. done
  24. process_includes $src
  25. cat $src $all_includes | grep -v '^include'
  26. echo "$target: $all_includes" > $dep