 15564d85af
			
		
	
	
		15564d85af
		
	
	
	
	
		
			
			The .d file name must match exactly what is used in the SUBDIR_DEVICES_MAK_DEP variable. Instead of making assumptions in the make_device_config.sh script, just pass it in. Similarly, the makefile target may not match the output file name, because Makefile uses a temporary file. Instead of making assumptions on what the Makefile does, emit the config-devices.mak file to stdout, and use the passed-in destination as the makefile target Reported-by: Peter Maydell <peter.maydell@linaro.org> Cc: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
		
			
				
	
	
		
			31 lines
		
	
	
		
			733 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			733 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #! /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
 |