From: Stefan Neis Date: Sun, 31 Oct 2004 19:33:07 +0000 (+0000) Subject: Newest version of script(s) for creating DLLs - now divided in two, X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/d5a547f391f7619b006ee0717b562826677bcd4a Newest version of script(s) for creating DLLs - now divided in two, main script takes additional argument for script generating DLL name, new script generates DLL names from (too long) library names. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30207 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/os2/dllar.sh b/src/os2/dllar.sh index 8f49a04c41..86e0fe3340 100644 --- a/src/os2/dllar.sh +++ b/src/os2/dllar.sh @@ -92,7 +92,8 @@ CleanUp() { # Print usage and exit script with rc=1. PrintHelp() { - echo 'Usage: dllar [-o[utput] output_file] [-i[mport] importlib_name]' + echo 'Usage: dllar.sh [-o[utput] output_file] [-i[mport] importlib_name]' + echo ' [-name-mangler-script script.sh]' echo ' [-d[escription] "dll descrption"] [-cc "CC"] [-f[lags] "CFLAGS"]' echo ' [-ord[inals]] -ex[clude] "symbol(s)"' echo ' [-libf[lags] "{INIT|TERM}{GLOBAL|INSTANCE}"] [-nocrt[dll]] [-nolxl[ite]]' @@ -106,6 +107,13 @@ PrintHelp() { echo ' This name is used as the import library name and may be longer and' echo ' more descriptive than the DLL name which has to follow the old ' echo ' 8.3 convention of FAT.' + echo '*> "script.sh may be given to override the output_file name by a' + echo ' different name. It is mainly useful if the regular make process' + echo ' of some package does not take into account OS/2 restriction of' + echo ' DLL name lengths. It takes the importlib name as input and is' + echo ' supposed to procude a shorter name as output. The script should' + echo ' expect to get importlib_name without extension and should produce' + echo ' a (max.) 8 letter name without extension.' echo '*> "cc" is used to use another GCC executable. (default: gcc.exe)' echo '*> "flags" should be any set of valid GCC flags. (default: -s -Zcrtdll)' echo ' These flags will be put at the start of GCC command line.' @@ -155,6 +163,7 @@ cmdLine=$* outFile="" outimpFile="" inputFiles="" +renameScript="" description="" CC=gcc.exe CFLAGS="-s -Zcrtdll" @@ -187,6 +196,10 @@ while [ $1 ]; do shift outimpFile=$1 ;; + -name-mangler-script) + shift + renameScript=$1 + ;; -d*) shift description=$1 @@ -369,19 +382,13 @@ arcFile="${outimpFile}.a" arcFile2="${outimpFile}.lib" #create $dllFile as something matching 8.3 restrictions, -dllFile="$outFile" -case $dllFile in -*wx_base_*) - dllFile=`echo $dllFile | sed 's/base_\(...\)/b\1/'` - ;; -*wx_*_*) - dllFile=`echo $dllFile | sed 's/_\(..\)[^_]*_\(..\)[^-]*-/\1\2/'` - ;; -*) - ;; -esac -dllFile="`echo $dllFile | sed 's/\.//' | sed 's/_//' | sed 's/-//'`" - +if [ -z $renameScript ] ; then + dllFile="$outFile" + echo "using outFile as dllFile ($outFile)". +else + dllFile=`$renameScript $outimpFile` + echo "modified $outimpFile to $dllFile" +fi if [ $do_backup -ne 0 ] ; then if [ -f $arcFile ] ; then @@ -408,7 +415,8 @@ done # Create the def file. rm -f $defFile echo "LIBRARY `basnam $dllFile` $library_flags" >> $defFile -dllFile="$dllFile.dll" +dllFile="${dllFile}.dll" +echo "dllFile now $dllFile"; if [ ! -z $description ]; then echo "DESCRIPTION \"${description}\"" >> $defFile fi diff --git a/src/os2/dllnames.sh b/src/os2/dllnames.sh new file mode 100644 index 0000000000..6365aafe9b --- /dev/null +++ b/src/os2/dllnames.sh @@ -0,0 +1,21 @@ +#!/bin/sh +# +# dllnames - a tool to form short DLL names for wxWindows +# +# This script will accept an import library name and create +# a short(er) DLL name from it. + +dllFile="$1" +case $dllFile in +*wx_base_*) + dllFile=`echo $dllFile | sed 's/base_\(...\)/b\1/'` + ;; +*wx_*_*) + dllFile=`echo $dllFile | sed 's/_\(..\)[^_]*_\(..\)[^-]*-/\1\2/'` + ;; +*) + ;; +esac +dllFile="`echo $dllFile | sed 's/\.//' | sed 's/_//' | sed 's/-//'`" +echo $dllFile +exit 0 \ No newline at end of file