mklibs.sh 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #!/bin/sh
  2. set -e
  3. if [ -z "$OSGEO4W_POSTFIX" ]; then
  4. OSGEO4W_POSTFIX=""
  5. fi
  6. if [ "$OSGEO4W_POSTFIX" != "64" ]; then
  7. MACHINE=x86
  8. else
  9. MACHINE=x64
  10. fi
  11. PROGRAMFILES="/c/Program Files (x86)"
  12. VSDIR="$PROGRAMFILES/Microsoft Visual Studio 14.0"
  13. PATH="$VSDIR/Common7/IDE:$PATH"
  14. PATH="$VSDIR/VC/bin:$PATH"
  15. PATH="$VSDIR/Common7/Tools:$PATH"
  16. PATH="$PATH:/c/OSGeo4W${OSGEO4W_POSTFIX}/bin"
  17. export PATH
  18. [ -d mswindows/osgeo4w/vc ] || mkdir mswindows/osgeo4w/vc
  19. for dllfile in "$@"; do
  20. dlldir=${dllfile%/*}
  21. dllfile=${dllfile##*/}
  22. dllbase=${dllfile%.dll}
  23. dllname=${dllbase#lib}
  24. dllname=${dllname%.$VERSION}
  25. defname=$dllname.def
  26. libname=$dllname.lib
  27. echo "$dllfile => $dllname"
  28. (cd $dlldir; dumpbin -exports $dllfile) |
  29. sed -nf mswindows/osgeo4w/mklibs.sed |
  30. egrep -v "^[ ]*(_+IMPORT_DESCRIPTOR_.*|_+NULL_IMPORT_DESCRIPTOR)$" >mswindows/osgeo4w/vc/${defname%$VERSION}
  31. (cd mswindows/osgeo4w/vc ;
  32. lib -nologo -def:${defname} -subsystem:windows -machine:${MACHINE}
  33. lib -nologo $libname || exit)
  34. done