#! /bin/sh
#
# This file is used by adlc.make to selectively update generated
# adlc files. Because source and target diretories are relative
# paths, this file is copied to the target build directory before
# use.
#
# adlc-updater <file> <source-dir> <target-dir>
#
fix_lines() {
  # repair bare #line directives in $1 to refer to $2
  awk < $1 > $1+ '
    /^#line 999999$/ {print "#line " (NR+1) " \"" F2 "\""; next}
    {print}
  ' F2=$2
  mv $1+ $1
}
fix_lines $2/$1 $3/$1
[ -f $3/$1 ] && cmp -s $2/$1 $3/$1 || \
( [ -f $3/$1 ] && echo Updating $3/$1 ; touch $2/made-change ; mv $2/$1 $3/$1 )
