]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - mk-dlls.sh.in
ncurses 5.7 - patch 20100925
[ncurses.git] / mk-dlls.sh.in
diff --git a/mk-dlls.sh.in b/mk-dlls.sh.in
new file mode 100644 (file)
index 0000000..da2f39b
--- /dev/null
@@ -0,0 +1,94 @@
+#!/bin/sh
+# $Id: mk-dlls.sh.in,v 1.1 2010/09/25 22:29:49 juergen Exp $
+##############################################################################
+# Copyright (c) 2008,2010 Free Software Foundation, Inc.                     #
+#                                                                            #
+# Permission is hereby granted, free of charge, to any person obtaining a    #
+# copy of this software and associated documentation files (the "Software"), #
+# to deal in the Software without restriction, including without limitation  #
+# the rights to use, copy, modify, merge, publish, distribute, distribute    #
+# with modifications, sublicense, and/or sell copies of the Software, and to #
+# permit persons to whom the Software is furnished to do so, subject to the  #
+# following conditions:                                                      #
+#                                                                            #
+# The above copyright notice and this permission notice shall be included in #
+# all copies or substantial portions of the Software.                        #
+#                                                                            #
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,   #
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL    #
+# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER      #
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING    #
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER        #
+# DEALINGS IN THE SOFTWARE.                                                  #
+#                                                                            #
+# Except as contained in this notice, the name(s) of the above copyright     #
+# holders shall not be used in advertising or otherwise to promote the sale, #
+# use or other dealings in this Software without prior written               #
+# authorization.                                                             #
+##############################################################################
+#
+# Author: Juergen Pfeifer
+#
+# Build DLLs on MinGW
+#
+LANG=en_US @CC@ -v 2>&1 | grep Target | grep mingw
+if [ $? -eq 1 ]; then
+  echo "$0 requires a mingw environment" >&2
+else
+  if [ -d lib ]; then
+    cf="-shared"
+    lf="--enable-auto-import"
+    pushd lib 2>&1 >/dev/null
+      for t in "" "t"
+      do
+        for m in "" "_g"
+        do
+          if [ -f libncurses${t}${m}.a ]; then
+            f=libncurses${t}${m}.a
+            g=`basename $f .a | cut -c 4-`
+            gi=libw${g}.dll.a
+            td=tmp-${g}
+            rm -rf "${td}"
+            mkdir "${td}"
+            cd "${td}"
+              ar x ../${f} `ar t ../${f}`
+              @CC@ $cf -o w${g}.dll -Wl,--out-implib,${gi} -Wl,--output-def,w${g}.def -Wl,$lf `ar t ../$f` @LIBS@
+              lib //NOLOGO /MACHINE:i386 /DEF:w${g}.def
+              rm -f `ar t ../$f`
+              mv w${g}.dll ..
+              mv w${g}.lib ..
+              mv ${gi} ..
+            cd ..
+            rm -rf "${td}"
+
+            for l in panel menu form
+            do
+              for f in lib${l}${t}${m}.a
+              do
+                g=`basename $f .a | cut -c 4-`
+                td=tmp-${g}
+                gi2=libw${g}.dll.a
+                rm -rf "${td}"
+                mkdir "${td}"
+                echo $g
+                cd "${td}"
+                  ar x ../$f `ar t ../$f`
+                  @CC@ $cf -o w${g}.dll -Wl,--out-implib,${gi2} -Wl,--output-def,w${g}.def -Wl,$lf `ar t ../$f` ../${gi} @LIBS@
+                  lib //NOLOGO /MACHINE:i386 /DEF:w${g}.def
+                  rm -f `ar t ../$f`
+                  mv w${g}.dll ..
+                  mv w${g}.lib ..
+                  mv ${gi2} ..
+                cd ..
+                rm -rf "${td}"
+              done
+            done
+          fi
+        done
+      done
+    popd
+  else
+    echo lib has not been built >&2
+  fi
+fi