| #!/bin/bash | 
 | ## | 
 | ##  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 | 
 | self_basename=${self##*/} | 
 | EOL=$'\n' | 
 |  | 
 | show_help() { | 
 |     cat <<EOF | 
 | Usage: ${self_basename} [options] file1 [file2 ...] | 
 |  | 
 | This script generates a MSVC module definition file containing a list of symbols | 
 | to export from a DLL. Source files are technically bash scripts (and thus may | 
 | use #comment syntax) but in general, take the form of a list of symbols: | 
 |  | 
 |   <kind> symbol1 [symbol2, symbol3, ...] | 
 |  | 
 | where <kind> is either 'text' or 'data' | 
 |  | 
 |  | 
 | Options: | 
 |     --help                      Print this message | 
 |     --out=filename              Write output to a file [stdout] | 
 |     --name=project_name         Name of the library (required) | 
 | EOF | 
 |     exit 1 | 
 | } | 
 |  | 
 | die() { | 
 |     echo "${self_basename}: $@" | 
 |     exit 1 | 
 | } | 
 |  | 
 | die_unknown(){ | 
 |     echo "Unknown option \"$1\"." | 
 |     echo "See ${self_basename} --help for available options." | 
 |     exit 1 | 
 | } | 
 |  | 
 | text() { | 
 |     for sym in "$@"; do | 
 |         echo "  $sym" >> ${outfile} | 
 |     done | 
 | } | 
 |  | 
 | data() { | 
 |     for sym in "$@"; do | 
 |         printf "  %-40s DATA\n" "$sym" >> ${outfile} | 
 |     done | 
 | } | 
 |  | 
 | # Process command line | 
 | for opt in "$@"; do | 
 |     optval="${opt#*=}" | 
 |     case "$opt" in | 
 |     --help|-h) show_help | 
 |     ;; | 
 |     --out=*) outfile="$optval" | 
 |     ;; | 
 |     --name=*) name="${optval}" | 
 |     ;; | 
 |      -*) die_unknown $opt | 
 |     ;; | 
 |     *) file_list[${#file_list[@]}]="$opt" | 
 |     esac | 
 | done | 
 | outfile=${outfile:-/dev/stdout} | 
 | [ -n "$name" ] || die "Library name (--name) must be specified!" | 
 |  | 
 | echo "LIBRARY ${name}" > ${outfile} | 
 | echo "EXPORTS" >> ${outfile} | 
 | for f in "${file_list[@]}"; do | 
 |     . $f | 
 | done |