
1: #!/bin/sh 2: # mkdep - create dependencies. 3: # 4: # Copyright (c) 1998, 2001 Joseph Samuel Myers. 5: # All rights reserved. 6: # 7: # Redistribution and use in source and binary forms, with or without 8: # modification, are permitted provided that the following conditions 9: # are met: 10: # 1. Redistributions of source code must retain the above copyright 11: # notice, this list of conditions and the following disclaimer. 12: # 2. Redistributions in binary form must reproduce the above copyright 13: # notice, this list of conditions and the following disclaimer in the 14: # documentation and/or other materials provided with the distribution. 15: # 3. The name of the author may not be used to endorse or promote products 16: # derived from this software without specific prior written permission. 17: # 18: # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 19: # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 20: # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 21: # IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 22: # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 23: # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 24: # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 25: # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 26: # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 27: # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 28: # SUCH DAMAGE. 29: 30: # usage: mkdep source output compiler flags 31: # e.g. mkdep foo/bar.c foo/bar.d gcc -g -O2 -DFOOBAR 32: 33: set -e 34: 35: source_file=$1 36: base_name=${source_file%%.c} 37: base_base_name=`basename $base_name` 38: output_file=$2 39: compiler=$3 40: shift 3 41: 42: "$compiler" -M "$@" "$source_file" >"$output_file".tmp 43: 44: sed "s!^$base_base_name.o *:!$base_name.o :!g 45: s!$base_name.o *:!$base_name.o $base_name.d:!g" <"$output_file".tmp >"$output_file" 46: 47: rm -f "$output_file".tmp