12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- #!/bin/sh
- ##
- ## Copyright (c) 2010 The WebM project authors. All Rights Reserved.
- ##
- ## Use of this source code is governed by a BSD-style license
- ## that can be found in the LICENSE file in the root of the source
- ## tree. An additional intellectual property rights grant can be found
- ## in the file PATENTS. All contributing project authors may
- ## be found in the AUTHORS file in the root of the source tree.
- ##
- self=$0
- show_help() {
- echo "usage: $self [options] <srcfile>"
- echo
- echo "Generate Makefile dependency information from assembly code source"
- echo
- exit 1
- }
- die_unknown(){
- echo "Unknown option \"$1\"."
- echo "See $0 --help for available options."
- exit 1
- }
- for opt do
- optval="${opt#*=}"
- case "$opt" in
- --build-pfx=*) pfx="${optval}"
- ;;
- --depfile=*) out="${optval}"
- ;;
- -I*) raw_inc_paths="${raw_inc_paths} ${opt}"
- inc_path="${inc_path} ${opt#-I}"
- ;;
- -h|--help) show_help
- ;;
- *) [ -f "$opt" ] && srcfile="$opt"
- ;;
- esac
- done
- [ -n "$srcfile" ] || show_help
- sfx=${sfx:-asm}
- includes=$(LC_ALL=C egrep -i "include +\"?[a-z0-9_/]+\.${sfx}" $srcfile |
- perl -p -e "s;.*?([a-z0-9_/]+.${sfx}).*;\1;")
- #" restore editor state
- for inc in ${includes}; do
- found_inc_path=
- for idir in ${inc_path}; do
- [ -f "${idir}/${inc}" ] && found_inc_path="${idir}" && break
- done
- if [ -f `dirname $srcfile`/$inc ]; then
- # Handle include files in the same directory as the source
- $self --build-pfx=$pfx --depfile=$out ${raw_inc_paths} `dirname $srcfile`/$inc
- elif [ -n "${found_inc_path}" ]; then
- # Handle include files on the include path
- $self --build-pfx=$pfx --depfile=$out ${raw_inc_paths} "${found_inc_path}/$inc"
- else
- # Handle generated includes in the build root (which may not exist yet)
- echo ${out} ${out%d}o: "${pfx}${inc}"
- fi
- done
- echo ${out} ${out%d}o: $srcfile
|