Hi David.  Compiled ICU, added the statements to the PATH and LIBPATH,
now running into trouble with unicode/ures.h:

<snip>
Building util
gmake -s -C util 
.
.
.
  (CP)
/PEBuilds/bldtogether/xerces-c-src_2_7_0/include/xercesc/util/Platforms/
AIX
  (C++) AIXPlatformUtils.o
"/PEBuilds/bldtogether/xerces-c-src_2_7_0/include/xercesc/util/MsgLoader
s/ICU/ICUMsgLoader.hpp", line 26.10: 1540-0836 (S) The #include file
"unicode/ures.h" is not found.
gmake[3]: *** [AIXPlatformUtils.o] Error 1
gmake[2]: *** [all] Error 2
gmake[1]: *** [platforms] Error 2
gmake: *** [Util] Error 2
chdir /PEBuilds/bldtogether/xerces-c-src_2_7_0/lib 
</snip>

Unicode/ures.h is located in "$BLDROOT/local/include", which I put in
both my PATH and LIBPATH; that didn't fix the problem.  The only way I
could get this to work in the past was when I ran Xerces's runConfigure
with a -Z-I parameter.  How should I do that with the perl script?

- Phil

-----Original Message-----
From: David Bertoni [mailto:[EMAIL PROTECTED] 
Sent: Monday, June 19, 2006 4:33 PM
To: [email protected]
Subject: Re: CAN ANYBODY HELP ME? NOBODY RESPONDED TO MY POST THREE
WEEKS AGO

Schlesinger, Philip wrote:
 > Hi David and all.
 >
 > I tried the perl script for building ICU and Xerces together.  Ran
into  > problems with the perl script too - hope you can help.
 >
 > I exported three variables:
 > export XERCESCROOT=/PEBuilds/bldtogether/xerces-c-src_2_7_0
 > export ICUROOT=/PEBuilds/bldtogether/icu  >  > export
XERCESC_NLS_HOME=/PEBuilds/bldtogether/xerces-c-src_2_7_0/msg
 > Note that this third directory does NOT exist as part of the  >
xerces-c-current.tar.gz file and I did not create it.  I only exported
> this third variable because the directions for building xerces via the
> perl script said to do it.

Hmmm, this is no longer necessary, so you should create a Jira issue so
we can update the documentation.

 >
 > I also edited the Xerces files to make them build a single-threaded
> version as per the documents online.
 >
 > My perl script execution line:
 >
 > perl packageBinaries.pl -s $XERCESCROOT -o
/PEBuilds/bldtogether/build  > -t icu -m icu -c xlc -x xlC -r none -b 32
>  > Log available here:
 > http://www.electronicfiles.net/files/3560/myperlbuild.zip
 >
 > Note: I have no idea how to make the perl script comple ICU for
single  > threading - something for the documentation?  Or does putting
the "-r  > none" on the command line do single threading for both xerces
and icu?
 >
 > Anyway, the result of the perl script:
 >
 > The target directory - /PEBuilds/bldtogether/build - has the
following  > directories empty:
 >
 > /PEBuilds/bldtogether/build/bin
 > /PEBuilds/bldtogether/build/etc
 > /PEBuilds/bldtogether/build/lib
 > /PEBuilds/bldtogether/build/msg
 >
 > After going to /PEBuilds/bldtogether/build/samples and running:
 >
 > runConfigure -paix -cxlc -xxlC -rnone -b32  >  > ...I ran gmake.  The
gmake output is in the same samples file.  It can't  > find the library
"xerces-c".

I suspect this is because your ICU binaries are not on the path, and the
ICU libraries are not on the LIBPATH.

Here's what I did:

1. Modified the ICU runConfigureICU to use "xlc" and "xlC" instead of
"xlc_r" and "xlC_r".

2. Ran runConfigureICU with the following options:

     ./runConfigureICU AIX --prefix=/home2/dbertoni/xerces-c/local
--disable-threads.

Note that "--disable-threads" alone does not disable threads,
apparently.

3. Ran "gmake check install" to make, verify and install the ICU.

4. Updated my .profile to add /home2/dbertoni/xerces-c/local/bin to the
PATH.

5. Updated my .profile to add /home2/dbertoni/xerces-c/local/lib to the
LIBPATH.

6. Untarred the source archive and copied
xerces-c-src_2_7_0/src/xercesc/Makefile.incl to my build directory.

7. Modified Makefile.incl as follows:

208c208
<     ALLLIBS = ${LIBS} -L/usr/lpp/xlC/lib -licuuc32 -licudata32
---
 >     ALLLIBS = ${LIBS} -L/usr/lpp/xlC/lib -licuuc34 -licudata34
214c214
<     ALLLIBS = ${LIBS} -L/usr/lpp/xlC/lib -licuuc32 -licudata32
-lXercesMessages26
---
 >     ALLLIBS = ${LIBS} -L/usr/lpp/xlC/lib -licuuc34 -licudata34
-lXercesMessages27

8. Copied xerces-c-src_2_7_0/src/scripts/packageBinaries.pl to my build
directory.

9. Modified packageBinaries.pl as follows:

diff: 0653-827 Missing newline at the end of file
xerces-c-src_2_7_0/scripts/packageBinaries.pl.
383,384c383,384
<         psystem("cp -fv $ICUROOT/bin/icuuc32.dll $targetdir/bin");
<         psystem("cp -fv $ICUROOT/bin/icuuc32d.dll $targetdir/bin");
---
 >         psystem("cp -fv $ICUROOT/bin/icuuc34.dll $targetdir/bin");
 >         psystem("cp -fv $ICUROOT/bin/icuuc34d.dll $targetdir/bin");
386c386
<         # it seems icudt32*.DLL is generated (upper case dll)
---
 >         # it seems icudt34*.DLL is generated (upper case dll)
388,389c388,389
<         psystem("cp -fv $ICUROOT/bin/icudt32*.DLL $targetdir/bin");
<         psystem("cp -fv $ICUROOT/bin/icudt32*.dll $targetdir/bin");
---
 >         psystem("cp -fv $ICUROOT/bin/icudt34*.DLL $targetdir/bin");
 >         psystem("cp -fv $ICUROOT/bin/icudt34*.dll $targetdir/bin");
1145,1147c1145,1147
<         # on AIX,              it is called libicudata32.0.a
<         # on Solaris/Linux,    it is called libicudata.so.32.0
<         # on HP,               it is called libicudata.sl.32.0
---
 >         # on AIX,              it is called libicudata34.1.a
 >         # on Solaris/Linux,    it is called libicudata.so.34.1
 >         # on HP,               it is called libicudata.sl.34.1
1150,1153c1150,1153
<         psystem("cp -f $ICUROOT/lib/libicudata32.0.so .");
<         psystem("cp -f $ICUROOT/lib/libicudata32.0.a .");
<         psystem("cp -f $ICUROOT/lib/libicudata.so.32.0 .");
<         psystem("cp -f $ICUROOT/lib/libicudata.sl.32.0 .");
---
 >         psystem("cp -f $ICUROOT/lib/libicudata34.1.so .");
 >         psystem("cp -f $ICUROOT/lib/libicudata34.1.a .");
 >         psystem("cp -f $ICUROOT/lib/libicudata.so.34.1 .");
 >         psystem("cp -f $ICUROOT/lib/libicudata.sl.34.1 .");
1155,1156c1155,1156
<         psystem("find . -name 'libicudata32.0.so' -exec ln -s {}
libicudata.so \\;");
<         psystem("find . -name 'libicudata32.0.so' -exec ln -s {}
libicudata32.so \\;");
---
 >         psystem("find . -name 'libicudata34.1.so' -exec ln -s {}
libicudata.so \\;");
 >         psystem("find . -name 'libicudata34.1.so' -exec ln -s {}
libicudata34.so \\;");
1158,1159c1158,1159
<         psystem("find . -name 'libicudata32.0.a'  -exec ln -s {}
libicudata.a \\;");
<         psystem("find . -name 'libicudata32.0.a'  -exec ln -s {}
libicudata32.a \\;");
---
 >         psystem("find . -name 'libicudata34.1.a'  -exec ln -s {}
libicudata.a \\;");
 >         psystem("find . -name 'libicudata34.1.a'  -exec ln -s {}
libicudata34.a \\;");
1161,1162c1161,1162
<         psystem("find . -name 'libicudata.so.32.0' -exec ln -s {}
libicudata.so \\;");
<         psystem("find . -name 'libicudata.so.32.0' -exec ln -s {}
libicudata.so.32 \\;");
---
 >         psystem("find . -name 'libicudata.so.34.1' -exec ln -s {}
libicudata.so \\;");
 >         psystem("find . -name 'libicudata.so.34.1' -exec ln -s {}
libicudata.so.34 \\;");
1164,1165c1164,1165
<         psystem("find . -name 'libicudata.sl.32.0' -exec ln -s {}
libicudata.sl \\;");
<         psystem("find . -name 'libicudata.sl.32.0' -exec ln -s {}
libicudata.sl.32 \\;");
---
 >         psystem("find . -name 'libicudata.sl.34.1' -exec ln -s {}
libicudata.sl \\;");
 >         psystem("find . -name 'libicudata.sl.34.1' -exec ln -s {}
libicudata.sl.34 \\;");
1169,1171c1169,1171
<         # on AIX,              it is called libicuuc32.0.a
<         # on Solaris/Linux,    it is called libicuuc.so.32.0
<         # on HP,               it is called libicuuc.sl.32.0
---
 >         # on AIX,              it is called libicuuc34.1.a
 >         # on Solaris/Linux,    it is called libicuuc.so.34.1
 >         # on HP,               it is called libicuuc.sl.34.1
1174,1177c1174,1177
<         psystem("cp -f $ICUROOT/lib/libicuuc32.0.so .");
<         psystem("cp -f $ICUROOT/lib/libicuuc32.0.a  .");
<         psystem("cp -f $ICUROOT/lib/libicuuc.so.32.0  .");
<         psystem("cp -f $ICUROOT/lib/libicuuc.sl.32.0  .");
---
 >         psystem("cp -f $ICUROOT/lib/libicuuc34.1.so .");
 >         psystem("cp -f $ICUROOT/lib/libicuuc34.1.a  .");
 >         psystem("cp -f $ICUROOT/lib/libicuuc.so.34.1  .");
 >         psystem("cp -f $ICUROOT/lib/libicuuc.sl.34.1  .");
1179,1180c1179,1180
<         psystem("find . -name 'libicuuc32.0.so' -exec ln -s {}
libicuuc.so \\;");
<         psystem("find . -name 'libicuuc32.0.so' -exec ln -s {}
libicuuc32.so \\;");
---
 >         psystem("find . -name 'libicuuc34.1.so' -exec ln -s {}
libicuuc.so \\;");
 >         psystem("find . -name 'libicuuc34.1.so' -exec ln -s {}
libicuuc34.so \\;");
1182,1183c1182,1183
<         psystem("find . -name 'libicuuc32.0.a'  -exec ln -s {}
libicuuc.a \\;");
<         psystem("find . -name 'libicuuc32.0.a'  -exec ln -s {}
libicuuc32.a \\;");
---
 >         psystem("find . -name 'libicuuc34.1.a'  -exec ln -s {}
libicuuc.a \\;");
 >         psystem("find . -name 'libicuuc34.1.a'  -exec ln -s {}
libicuuc34.a \\;");
1185,1186c1185,1186
<         psystem("find . -name 'libicuuc.so.32.0' -exec ln -s {}
libicuuc.so \\;");
<         psystem("find . -name 'libicuuc.so.32.0' -exec ln -s {}
libicuuc.so.32 \\;");
---
 >         psystem("find . -name 'libicuuc.so.34.1' -exec ln -s {}
libicuuc.so \\;");
 >         psystem("find . -name 'libicuuc.so.34.1' -exec ln -s {}
libicuuc.so.34 \\;");
1188,1189c1188,1189
<         psystem("find . -name 'libicuuc.sl.32.0' -exec ln -s {}
libicuuc.sl \\;");
<         psystem("find . -name 'libicuuc.sl.32.0' -exec ln -s {}
libicuuc.sl.32 \\;");
---
 >         psystem("find . -name 'libicuuc.sl.34.1' -exec ln -s {}
libicuuc.sl \\;");
 >         psystem("find . -name 'libicuuc.sl.34.1' -exec ln -s {}
libicuuc.sl.34 \\;");
1460c1460
<     }
---
 >     }

10. Created a small script to build the package:

export BLDROOT=/home2/dbertoni/xerces-c
export XERCESCROOT=$BLDROOT/xerces-c-src_2_7_0
export OUTDIR=$BLDROOT/xerces-c2.7.0-aix export
ICUROOT=/home2/dbertoni/xerces-c/local
rm -rf $OUTDIR/
rm -rf $XERCESCROOT/
rm $OUTDIR.tar
rm $OUTDIR.tar.gz
gtar xzf xerces-c-current.tar.gz
cp Makefile.incl $XERCESCROOT/src/xercesc/Makefile.incl
cp packageBinaries.pl $XERCESCROOT/scripts/packageBinaries.pl
cd $XERCESCROOT/scripts
perl packageBinaries.pl -s $XERCESCROOT -o $OUTDIR -m icu -n socket -t
icu -b 64 -c xlc -x xlC -r none -j cd $BLDROOT

This completed successfully, and I had a source package containing
binaries without threads enabled.

Dave


Reply via email to