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
This commit is contained in:
Stefan Neis
2004-10-31 19:33:07 +00:00
parent ba5a47aed8
commit d5a547f391
2 changed files with 44 additions and 15 deletions

View File

@@ -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

21
src/os2/dllnames.sh Normal file
View File

@@ -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