Eric, Thanks a lot for your effort on Sun CC 5.0. However before I introduce the changes I'd like to make sure the changes work with old version of sun CC as well. Besides I need to clarify few questions regarding your changes - 1. Why do you need external template instance? What fails if its not? The 'instance=static' option was introduced to avoid creating of external templates for one of our customer so I need to understand exactly what your requirments are on this. 2. Why do you need -mt switch in samples when they are not using any threading operations?
Arundhati Eric wrote: > Below is a script I wrote that patches in support for the Sun WorkShop > 5.0 compiler > on the Xerces-C 1.1.0 source tree. > > This script does the following: > Removes NO_NATIVE_BOOL. (Sun WorkShop 5.0 now has native bool > support.) > Makes various changes to support the external template instance > placement and linkage method. > Removes -lC parameter to the linker. Explicitly specifying it > confuses WorkShop. > Adds -mt as a parameter to the compiler and linker when > compiling the samples. This is already set up correctly > in the src directory. > > In order to support the external template instance method, Makefile.incl > had to be changed. > Make now directs the compiler to output its object files to > $XERCESCROOT/obj > rather than creating them in the current directory followed by a copy to > $XERCESCROOT/obj. > This is needed to ensure that the template repository is created > properly. > > Note: Because object files are directly compiled into $XERCESCROOT you > will see > the following sorts of error messages during the make: > cp: cannot access BinFileInputStream.o > cp: cannot access BinInputStream.o > cp: cannot access BinMemInputStream.o > . > . > . > They can be safely ignored. > > I would be willing to be spend some more time to get Xerces-C compiling > out of the box > under the Sun WorkShop 5.0 compiler. > > Any questions, > -Eric Yankowitz > [EMAIL PROTECTED] > > To run the script modify the "export SRCROOT=....." and "export > PACKAGE=......" > lines WITHIN the script and ensure that your path points to gnu make, > gnu autoconf, > and gnu m4 ahead of any other versions. > > #! /bin/ksh > > export SRCROOT=/home/statemnt/libs/xerces > export PACKAGE=/home/statemnt/pack/cpp/xml/xerces-csrc_1_1_0_d05.tar.gz > > export XERCESCROOT=$SRCROOT/xerces-csrc_1_1_0_d05 > cd $SRCROOT > > echo "Attempting to remove any previous installations @ $XERCESCROOT" > echo > > rm -rf $XERCESCROOT > > echo "Unpacking $PACKAGE" > echo > gzip -dc $PACKAGE | tar xvf - > > cd $XERCESCROOT/src > echo "Running: autoconf" > echo > autoconf > > echo "Configuring the source tree" > echo > ./runConfigure -psolaris -ccc -xCC -d -nfileonly -rpthread > > echo "Patching up files for WorkShop Compilers 5.0 98/12/15 C++ 5.0" > echo > > echo "Sun WorkShop 5.0 Compiler supports native bools." > echo "Removing NO_NATIVE_BOOL define." > echo > mv util/Compilers/SunCCDefs.hpp util/Compilers/SunCCDefs.hpp.orig > sed -e "s/^#define NO_NATIVE_BOOL$//" util/Compilers/SunCCDefs.hpp.orig > > > util/Compilers/SunCCDefs.hpp > > echo "External template instance placement and linkage is prefered, so I > am" > echo "defining XML4C_TMPLSINC." > echo > echo "#define XML4C_TMPLSINC" >> util/Compilers/SunCCDefs.hpp > > echo "Patching Makefile.incl for external template instance support." > echo "To ensure creating a correct template repository, Object files" > echo "will now be directly outputed to $XERCESCROOT/obj." > echo "Also, The -lC option is redundant and causes problems, so I am > removing it." > echo > mv Makefile.incl Makefile.incl.orig > sed -e "186s/-lC -lc//" -e "189s/-lC -lc//" \ > -e "180s/-instances=static//" \ > -e "424s/[EMAIL PROTECTED]/$\(ALL_OBJECTS_DIR\)\/$\(@F\)/" \ > -e "430s/[EMAIL PROTECTED]/$\(ALL_OBJECTS_DIR\)\/$\(@F\)/" \ > -e "432s/[EMAIL PROTECTED]/$\(ALL_OBJECTS_DIR\)\/$\(@F\)/" \ > Makefile.incl.orig > Makefile.incl > > make > > cd ../samples > echo "Removing -lC from the samples/runConfigure" > echo > mv ./runConfigure ./runConfigure.orig > sed -e"247d" ./runConfigure.orig > ./runConfigure > chmod +x ./runConfigure > > echo "Setting/Removing the following in samples/Makefile.incl:" > echo " Removing -lC" > echo " Setting external template instances" > echo " Setting multi-threading" > echo > mv Makefile.incl Makefile.incl.orig > sed -e "129s/-lC -lc//" \ > -e "126s/-instances=static//" \ > -e "126,127s/$/ -mt/" \ > Makefile.incl.orig > Makefile.incl > > ./runConfigure -psolaris -ccc -xCC -d > > make