#! /usr/bin/env bash # file : build/c/gnu/dep # copyright : Copyright (c) 2004-2012 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 / or . (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 to 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"