Hi Mateusz,
the correct way of building Xerces 3.0 is through the ./configure
script (as you found out at the end of the mail). As for the '/obj'
folder, it could be caused by a typo in a recent commit; in the
meanwhile, disable the ICU message loader by running ./configure
--disable-msgloader-icu
Hope this helps,
Alberto
At 18.27 25/04/2007 +0200, Mateusz Loskot wrote:
Hi,
I'm trying to build Xerces from SVN under Linux and I found that
official instructions are not very exact:
http://xml.apache.org/xerces-c/build-winunix.html#UNIX
Is there any better manual about building development version of Xerces?
Here is my problem. I checkouted the Xerces and here is my configuration:
mloskot:~/dev/apache/xerces/_svn/trunk$ svn info | grep URL
URL: http://svn.apache.org/repos/asf/xerces/c/trunk
In the manual, there is said to configure:
export XERCESCROOT=/my/path/to/xerces/_svn/trunk
mloskot:~/dev/apache/xerces/_svn/trunk$ echo $XERCESCROOT
/home/mloskot/dev/apache/xerces/_svn/trunk
Next, I should do:
cd $XERCESCROOT/src/xercesc
autoconf
but it fails because there are no autoconf files to operate on under
this location:
mloskot:~/dev/apache/xerces/_svn/trunk/src/xercesc$ ls
com dom framework internal NLS parsers sax sax2 util validators
xinclude
Also, I can not find the runConfigure script in the SVN sources tree.
However, there is ./configure script in the trunk directory:
mloskot:~/dev/apache/xerces/_svn/trunk$ ls configure
configure
so I tried this one:
mloskot:~/dev/apache/xerces/_svn/trunk$ ./configure
...
configure:
configure: Report:
configure: NetAccessor: curl
configure: File Manager: POSIX
configure: Atomic Op Manager: POSIX
configure: Mutex Manager: POSIX
configure: Message Loader: icu
configure: Transcoder: icu
Now, I try to build it:
########################################################################
mloskot:~/dev/apache/xerces/_svn/trunk$ make
make all-recursive
make[1]: Entering directory `/home/mloskot/dev/apache/xerces/_svn/trunk'
Making all in lib
make[2]: Entering directory `/home/mloskot/dev/apache/xerces/_svn/trunk/lib'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/mloskot/dev/apache/xerces/_svn/trunk/lib'
Making all in src
make[2]: Entering directory `/home/mloskot/dev/apache/xerces/_svn/trunk/src'
Making all in xercesc/util/MsgLoaders/ICU/resources
make[3]: Entering directory
`/home/mloskot/dev/apache/xerces/_svn/trunk/src/xercesc/util/MsgLoaders/ICU/resources'
generating XercesMessages3_0_0_en_US.res
/usr/bin/genrb --package-name XercesMessages3_0_0 en_US.txt
building /obj/.libs/libXercesMessages3_0_0.so
/usr/bin/pkgdata --name XercesMessages3_0_0 --mode dll -v -d .
res-file-list-unix.txt
/usr/bin/pkgdata: No -O option found, trying 'icu-config --incfile'.
/usr/bin/pkgdata: icu-config: using '-O /usr/lib/icu/3.4.1/Makefile.inc'
# Reading res-file-list-unix.txt..
Warning: Found path 'XercesMessages3_0_0_' in file name. Assuming
compatibility (-E) mode.
# Output file: ./lib$(LIBNAME).so
make -f ./XercesMessages3_0_0_dll.mak
make[4]: Entering directory
`/home/mloskot/dev/apache/xerces/_svn/trunk/src/xercesc/util/MsgLoaders/ICU/resources'
cat res-file-list-unix.txt > ./XercesMessages3_0_0_dll.lst
LD_LIBRARY_PATH=/usr/lib:$LD_LIBRARY_PATH /usr/sbin/gencmn -c -e
XercesMessages3_0_0 -n XercesMessages3_0_0 -E -t dat -d . 0
./XercesMessages3_0_0_dll.lst
LD_LIBRARY_PATH=/usr/lib:$LD_LIBRARY_PATH /usr/sbin/genccode -a gcc -n
XercesMessages3_0_0 -e XercesMessages3_0_0 -d . XercesMessages3_0_0.dat
generating assembly code for XercesMessages3_0_0.dat
cc -g -Wall -O2 -fno-strict-aliasing -D_REENTRANT -D_REENTRANT
-I/usr/include -c -DPIC -fPIC -o XercesMessages3_0_0_dat.o
./XercesMessages3_0_0_dat.s
rm -rf ./XercesMessages3_0_0_dat.s
cc -DHAVE_CONFIG_H -D_REENTRANT -D_REENTRANT -I/usr/include -g -Wall
-O2 -fno-strict-aliasing -shared -o libXercesMessages3_0_0.so
./XercesMessages3_0_0_dat.o -Wl,-Bsymbolic
ls -l libXercesMessages3_0_0.so
-rwxr-xr-x 1 mloskot mloskot 107844 2007-04-25 18:25
libXercesMessages3_0_0.so
make[4]: Leaving directory
`/home/mloskot/dev/apache/xerces/_svn/trunk/src/xercesc/util/MsgLoaders/ICU/resources'
mkdir -p /obj/.libs
mkdir: cannot create directory `/obj': Permission denied
make[3]: *** [/obj/.libs/libXercesMessages3_0_0.so] Error 1
make[3]: Leaving directory
`/home/mloskot/dev/apache/xerces/_svn/trunk/src/xercesc/util/MsgLoaders/ICU/resources'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/mloskot/dev/apache/xerces/_svn/trunk/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/mloskot/dev/apache/xerces/_svn/trunk'
make: *** [all] Error 2
########################################################################
As the error above says, it can't create directory /obj/.libs:
mkdir -p /obj/.libs
mkdir: cannot create directory `/obj': Permission denied
I wonder *why* it tries to create the 'obj' directory in the root
location ?
Does it mean I have to build Xerces with root privileges?
I'd appreciate if anyone could help me.
Cheers
--
Mateusz Loskot
http://mateusz.loskot.net