#! /usr/bin/env bash # file : build/c/gnu/dep # author : Boris Kolpackov # copyright : Copyright (c) 2004-2010 Code Synthesis Tools CC # license : GNU GPL v2; see accompanying LICENSE file # Post-process generated dependency information. # # $1 current project's $(out_base) # $2 - $N optional .cpp-options files out_base=$1 shift files=$* #echo $out_base #echo $files script= function gen_script () { while [ "$1" ]; do prefix=$1 shift path=$1 shift # Besides unresolved paths also replace default installation # targets (/usr/include and /usr/local/include). # script="$script"\ "s \\ $prefix \\ $path$prefix g;"\ "s \\ /usr/include/$prefix \\ $path$prefix g;"\ "s \\ /usr/local/include/$prefix \\ $path$prefix g;"\ "s ^$prefix $path$prefix ;"\ "s ^/usr/include/$prefix $path$prefix ;"\ "s ^/usr/local/include/$prefix $path$prefix ;" done } if [ "$files" ]; then prefixes=`sed -e 's%^prefix: \(.*\)$%\1%' -e t -e d $files` gen_script $prefixes fi # The last part of the script translates all file names that don't start # with / (that is, local generated files) to files in $out_base. Note that # it is assumed that such files are never installed and therefore there is # no way get around the situation where this file is picket up from some # other place (e.g., /usr/include). # epilogue="s% \([^/ \\\\]\)% $out_base/\1%g;s%^\([^/ ].*:\)%$out_base/\1%" exec sed -e "$script$epilogue"