
This minimize code differences between AOM master and nextgenv2 Change-Id: If144865bdf3ef0818e7aac11018b9e786444c550
83 lines
2.0 KiB
Bash
Executable File
83 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
## Copyright (c) 2016, Alliance for Open Media. All rights reserved
|
|
##
|
|
## This source code is subject to the terms of the BSD 2 Clause License and
|
|
## the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
|
|
## was not distributed with this source code in the LICENSE file, you can
|
|
## obtain it at www.aomedia.org/license/software. If the Alliance for Open
|
|
## Media Patent License 1.0 was not distributed with this source code in the
|
|
## PATENTS file, you can obtain it at www.aomedia.org/license/patent.
|
|
##
|
|
|
|
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
|