Change xidepend to create a variable containing all the XIncluded sources, which can be used as a dependency, rather than writing the dependency target itself. Future work: Makefile.dep should depend on xidepend, but xidepend should not be passed to itself. 2015-06-12 Jon Turney <jon.turney@dronecode.org.uk> * xidepend: Write a Makefile fragment defining variables containing all the XIncluded sources, rather than a dependency on those sources. * Makefile.in: Use that variable to express the dependency. Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
		
			
				
	
	
		
			36 lines
		
	
	
		
			896 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			896 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| if [ "$1" = "-r" ]
 | |
| then
 | |
| 	# We're being called recursively by another xidepend instance, so
 | |
| 	# suppress outputs that only happen at the top level.
 | |
| 	shift
 | |
| 	subproc=1
 | |
| else
 | |
| 	subproc=0
 | |
| fi
 | |
| 
 | |
| for f in "$@"
 | |
| do
 | |
| 	f=`basename "$f"`
 | |
| 	if fgrep -q 'xi:include' "$f"
 | |
| 	then
 | |
| 		# This file uses XIncludes.  Let's chase its deps recursively.
 | |
| 		base=`basename "$f" .xml`
 | |
| 		if [ $subproc -eq 0 ] ; then echo -n "${base}_SOURCES=${f}" ; fi
 | |
| 
 | |
| 		deps=`grep 'xi:include.*href' "$f" | cut -f2 -d\" | tr '\n' ' '`
 | |
| 		echo -n " $deps"
 | |
| 		for d in $deps
 | |
| 		do
 | |
| 			# Call ourselves recursively to continue to collect deps.
 | |
| 			# The -r flag tells our subprocess that it is merely
 | |
| 			# contributing to a dependency line in progress.
 | |
| 			$0 -r $d
 | |
| 		done
 | |
| 
 | |
| 		# If we're at the top recursion level, we have nothing else to
 | |
| 		# add to this dependency line other than the newline.
 | |
| 		if [ $subproc -eq 0 ] ; then echo ; fi
 | |
| 	fi
 | |
| done
 |