[FFmpeg-cvslog] Merge commit '1a7bf48eed806beea7e835b31b06aa6bc94da5da'

James Almer git at videolan.org
Sat Nov 11 16:32:02 EET 2017


ffmpeg | branch: master | James Almer <jamrial at gmail.com> | Sat Nov 11 11:31:22 2017 -0300| [c14f8125a8930ed6b2d4fc138273ee9dc17c05f6] | committer: James Almer

Merge commit '1a7bf48eed806beea7e835b31b06aa6bc94da5da'

* commit '1a7bf48eed806beea7e835b31b06aa6bc94da5da':
  makedef: Extend the script for use with mingw tools as well

Merged-by: James Almer <jamrial at gmail.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=c14f8125a8930ed6b2d4fc138273ee9dc17c05f6
---

 compat/windows/makedef | 55 +++++++++++++++++++++++++++++++++++---------------
 1 file changed, 39 insertions(+), 16 deletions(-)

diff --git a/compat/windows/makedef b/compat/windows/makedef
index b3de99255c..fd7959a745 100755
--- a/compat/windows/makedef
+++ b/compat/windows/makedef
@@ -45,7 +45,11 @@ libname=$(mktemp -u "library").lib
 
 trap 'rm -f -- $libname' EXIT
 
-lib -out:${libname} $@ >/dev/null
+if [ -n "$AR" ]; then
+    $AR rcs ${libname} $@ >/dev/null
+else
+    lib -out:${libname} $@ >/dev/null
+fi
 if [ $? != 0 ]; then
     echo "Could not create temporary library." >&2
     exit 1
@@ -57,18 +61,28 @@ IFS='
 # Determine if we're building for x86 or x86_64 and
 # set the symbol prefix accordingly.
 prefix=""
-arch=$(dumpbin -headers ${libname} |
-       tr '\t' ' ' |
-       grep '^ \+.\+machine \+(.\+)' |
-       head -1 |
-       sed -e 's/^ \{1,\}.\{1,\} \{1,\}machine \{1,\}(\(...\)).*/\1/')
-
-if [ "${arch}" = "x86" ]; then
-    prefix="_"
+if [ -n "$NM" ]; then
+    case $ARCH in
+    *86)
+        prefix="_"
+        ;;
+    *)
+        ;;
+    esac
 else
-    if [ "${arch}" != "ARM" ] && [ "${arch}" != "x64" ]; then
-        echo "Unknown machine type." >&2
-        exit 1
+    arch=$(dumpbin -headers ${libname} |
+           tr '\t' ' ' |
+           grep '^ \+.\+machine \+(.\+)' |
+           head -1 |
+           sed -e 's/^ \{1,\}.\{1,\} \{1,\}machine \{1,\}(\(...\)).*/\1/')
+
+    if [ "${arch}" = "x86" ]; then
+        prefix="_"
+    else
+        if [ "${arch}" != "ARM" ] && [ "${arch}" != "x64" ]; then
+            echo "Unknown machine type." >&2
+            exit 1
+        fi
     fi
 fi
 
@@ -112,10 +126,19 @@ for line in $(cat ${vscript} | tr '\t' ' '); do
 '
 done
 
-dump=$(dumpbin -linkermember:1 ${libname} |
-          sed -e '/public symbols/,$!d' -e '/^ \{1,\}Summary/,$d' -e "s/ \{1,\}${prefix}/ /" -e 's/ \{1,\}/ /g' |
-          tail -n +2 |
-          cut -d' ' -f3)
+if [ -n "$NM" ]; then
+    # Use eval, since NM="nm -g"
+    dump=$(eval "$NM --defined-only -g ${libname}" |
+              grep -v : |
+              grep -v ^$ |
+              cut -d' ' -f3 |
+              sed -e "s/^${prefix}//")
+else
+    dump=$(dumpbin -linkermember:1 ${libname} |
+              sed -e '/public symbols/,$!d' -e '/^ \{1,\}Summary/,$d' -e "s/ \{1,\}${prefix}/ /" -e 's/ \{1,\}/ /g' |
+              tail -n +2 |
+              cut -d' ' -f3)
+fi
 
 rm ${libname}
 


======================================================================




More information about the ffmpeg-cvslog mailing list