Difference between revisions of "Database/Drivers/MySQL Native/OOoBuildEnvironment"

From Apache OpenOffice Wiki
Jump to: navigation, search
(Configure OOo)
(How to set up an OpenOffice.org Build environment for C/OOo development)
Line 1: Line 1:
 
= How to set up an OpenOffice.org Build environment for C/OOo development =
 
= How to set up an OpenOffice.org Build environment for C/OOo development =
  
== Requirements ==
+
= SuSE Linux =
  
For the first step use:
+
== SuSE 11 ==
  
* VMWare
+
SuSE 11 does not use Sun Java by default. The default installation will come with GNU Java and javac = GCC. Don't use the GNU stuff, use Sun's Java SDK 1.5. Deinstall GNU Java, search for java and gcj in Yast. OpenOffice 3.0 M28 might fail to detect GNU Java and might not come up with any proper error message during configure.
* Linux
+
* 32bit
+
  
== Setup ==
+
== Beware ==
  
=== Check out the OpenOffice.org source required for C/OOo development ===
+
If your connection is not OC-192 ;), then you might want to log into a server with a fast connection and do the following there. The just pack the sources and download them locally using scp.
<code><pre>
+
mkdir OpenOffice3
+
cd OpenOffice3/
+
cvs -d :pserver:anoncvs@anoncvs.services.openoffice.org:/cvs checkout -r DEV300_m10 OpenOffice3
+
cd config_office/
+
</pre></code>
+
  
=== Configure OOo ===
+
== Prerequisites ==
  
Your system might not need the --with-system-freetype and with-jdk-home options. You may have to install a bunch of additional packages. For SuSE 10.3 its likely that you need to install:
+
This list is based on what is needed to be additionally installed on a virgin Ubuntu 8.10 Interpid/Debian 4r6 Etch system. If might be different for you, meaning you might need to install more packages. However, be sure you have these to skip some iterations of [configure [, install ]]+
  
* xorg-*-devel
+
* libarchive-zip-perl (Perl Archive/Zip)
* gperf - perfect hash generator
+
* libcupsys2-dev
* ant >= 1.6.0
+
* libpam0g-dev
* Perl::Archive::Zip
+
* sdk-java 1.5
* Java 1.5 (NOT 1.4, NOT 1.6!) - but it should be installed by default
+
* gperf
* ccache - it helps... reserve some 3GB for it (ccache -M 3G). You can change the ccache dir from ~/.ccache to something else with an option.
+
* libfreetype6-dev
 +
* libxaw7-dev
 +
* libfontconfig1-dev
 +
* libxrandr-dev
 +
* libgconf2-dev
 +
* libgnomevfs2-dev
 +
* libgdk-pixbuf-dev
 +
* ant
 +
* bison
 +
* flex
 +
* zip
 +
* unzip
  
 +
== Get sources ==
  
You also nedd to download some files and put them in certain directories:
+
* Without a key
* Unowinreg: http://tools.openoffice.org/unowinreg_prebuild/680/ -> external/unowinreg/
+
svn checkout svn://svn.services.openoffice.org/ooo/tags/DEV300_m37
* Mozilla: http://tools.openoffice.org/moz_prebuild/680/<OS>[inc|lib|runtime].zip -> moz/zipped/
+
cd DEV300_m37
 +
svn switch svn://svn.services.openoffice.org/ooo/cws/mysqlnative
  
Try ./configure and install everything what's missing, if need be. Hint: leave a hint on this wiki page for others, in case anything is missing :).
+
* Get sources - with a key
 +
svn checkout svn+ssh://svn@svn.services.openoffice.org/ooo/tags/DEV300_m37
 +
cd DEV300_m37
 +
svn switch svn+ssh://svn@svn.services.openoffice.org/ooo/cws/mysqlnative
  
<code><pre>
+
== Configure ==
./configure --disable-mediawiki --disable-build-mozilla --with-use-shell=bash --with-system-freetype
+
</pre></code>
+
  
=== Bootstrap and Build ===
+
* Get unowinreg.dll from http://tools.openoffice.org/unowinreg_prebuild/680/unowinreg.dll and use it
 +
cp /path/to/download/of/unowinreg.dll external/unowinreg/
  
<code><pre>
+
* Get 3 zips from http://tools.openoffice.org/moz_prebuild/680/ and use them
cd ../
+
cp /path/to/download/of/LINUXGCCIinc.zip moz/zipped/
./bootstrap
+
cp /path/to/download/of/LINUXGCCIlib.zip moz/zipped/
source LinuxX86Env.Set.sh
+
cp /path/to/download/of/LINUXGCCIruntime.zip moz/zipped/
dmake
+
 
</pre></code>
+
OpenOffice will search for <OS><COM><CPU>{inc,lib,runtime}.zip in moz/zipped/ . You might have to rename the download files. Watch out for error messages returned by configure (see below).
 +
 
 +
* Configure (distribution build - "pro" build)
 +
cd config_office
 +
./configure --disable-build-mozilla --disable-mediawiki --with-use-shell=bash
 +
 
 +
* Configure (debug build, with asserts - "non-pro")
 +
cd config_office
 +
./configure --disable-build-mozilla --disable-mediawiki --with-use-shell=bash --enable-dbgutil
 +
 
 +
I was able to configure on openSuSE11.0 with the following command, after installing all needed libraries :
 +
./configure --disable-build-mozilla --disable-mediawiki --with-use-shell=bash --with-system-freetype \
 +
--with-system-stdlibs --with-system-cairo --with-system-zlib  --with-system-openssl --with-system-jpeg \
 +
--with-system-expat --with-system-freetype --with-system-libwpd --with-system-libxml --with-system-python \
 +
--with-system-icu --with-system-db --with-system-lucene  --with-system-hsqldb --with-system-beanshell \
 +
--with-system-libxslt --with-system-odbc-headers --with-system-sane-header --with-system-curl \
 +
--with-system-boost  --with-system-vigra --with-system-neon
 +
 
 +
I tried --with-system-libs but got into problems finding some packages. If you get libegg problems (I do) add --disable-systray
 +
 
 +
== Build ==
 +
 
 +
* Follow the messages, probably you have to do the following, if you have used bash as shell for the build in the configure line. For tcsch use LinuxX86Env.Set:
 +
cd ..
 +
source LinuxX86Env.Set.sh
 +
./bootstrap
 +
 
 +
* If you have dual or quad-core, or SMP, run the following and adjust for your configuration
 +
export MAXPROCESS=3
 +
 
 +
* ccache is very recommended, go install it. Then configure it to have enough space. By default it stores data in your home directory. This is configurable like  (I have CC and CXX changed in .bashrc but some people prefer to do a symlink):
 +
 
 +
export CCACHE_DIR="/path/to/ccache/dir/for/oo.org/build"
 +
ccache -M 2G -F 100000
 +
export CC="ccache gcc"
 +
export CXX="ccache g++"
 +
 
 +
* dmake should have been boostrapped. Now just run the following and go get a 6h sleep :)
 +
dmake
 +
 
 +
== SSH Keys ==
 +
On Unix or Windows/cygwin a SSH identity (private/public key pair) is generated with:
 +
 
 +
ssh-keygen -t dsa
 +
You'll be asked for pass phrase which protects your private key. Per default the public key is named $HOME/.ssh/id_dsa.pub. Note that SSH keys created between September 2006 and May 2008 on Debian or Debian derived systems like Ubuntu may be insecure. Please use recent SSH tools. If you want a dedicated identity for just OOo SVN usage, generate a specially named key pair:
 +
ssh-keygen -t dsa -f ~/.ssh/id_dsa_ooo_svn
 +
and instruct Subversion to use this identity (key pair) with the following configuration entry in $HOME/.subversion/config:
 +
[tunnels]
 +
ssh = ssh -i /home/andrey/.ssh/id_dsa_ooo_svn
 +
 
 +
=== RPM Installation ===
 +
 
 +
Something like this...
 +
 
 +
rpm -Uhv ./instsetoo_native/unxlngi6.pro/URE/rpm/install/en-US/RPMS/openoffice.org-ure-1.4.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-core01-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-core02-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-core03-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-core04-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-core05-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-core06-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-core07-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-ooofonts-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-images-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/openoffice.org3-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-writer-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/openoffice.org3-writer-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-base-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/openoffice.org3-base-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-calc-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/openoffice.org3-calc-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-testtool-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-draw-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/openoffice.org3-draw-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-impress-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/openoffice.org3-impress-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-math-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/openoffice.org3-math-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-pyuno-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-javafilter-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-xsltfilter-3.1.0-9367.i586.rpm  ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-graphicfilter-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-binfilter-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-ooolinguistic-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-en-US-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-en-US-help-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-en-US-writer-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-en-US-impress-3.1.0-9367.i586.rpm instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-en-US-binfilter-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-en-US-calc-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-en-US-math-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-en-US-draw-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-en-US-res-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-en-US-base-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/openoffice.org3-en-US-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice_SDK/rpm/install/en-US/RPMS/ooobasis3.1-sdk-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/openoffice.org3-dict-en-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/desktop-integration/openoffice.org3.0-suse-menus-3.0-9367.noarch.rpm ./sysui/unxlngi6.pro/bin/desktop-integration/openoffice.org3.0-suse-menus-3.0-9367.noarch.rpm ./sysui/unxlngi6.pro/bin/desktop-integration/broffice.org3.0-suse-menus-3.0-9367.noarch.rpm
 +
 
 +
=== DEB Installation ===
 +
 
 +
Something like this...
 +
 
 +
cd instsetoo_native/unxlngi6.pro/OpenOffice/deb/install/en-US/DEBS
 +
sudo dpkg -i *.deb
 +
cd desktop_integration
 +
sudo dpkg -i *.deb
 +
 
 +
Then the programs are in /opt/openoffice3/program/
 +
 
 +
= Compiling the driver =
 +
 
 +
Ok, you got OpenOffice.org to compile, and it has finished compiling after 3-6 hours.
 +
 
 +
== Patching the CWS ('''you need this if you don't use m37 or up''') ==
 +
 
 +
The latest driver code is still not in the CWS. You need to fetch it from bazaar. We will streamline compiling and commit the source into the CWS as soon as possible. Make sure that you have the OOo build environment set up when compiling the driver (source LinuxX86Env.Set.sh etc.)
 +
 
 +
Add the MySQL driver to the source tree:
 +
 
 +
DEV300_m35> cd connectivity/source/drivers/
 +
DEV300_m35/connectivity/source/drivers> bzr clone bzr+ssh://<user>@bk-internal.mysql.com/bzrroot/public/connector-ooo-bzr/trunk/
 +
 
 +
Add the driver to the OOo build process by patching connectivity/prj/build.lst:
 +
 
 +
DEV300_m35> nano connectivity/prj/build.lst
 +
 
 +
Add a line to the build list for compiling the mysql driver, for example:
 +
 
 +
cn  connectivity\source\drivers\trunk              nmake  -  all cn_mysqlc cn_dbtools cn_inc NULL
 +
 
 +
=== Compiling the driver (manually) ===
 +
 
 +
The driver is compiled by default. You can manually do it in the following way:\
 +
 
 +
DEV300_m37> cd connectivity/source/drivers/mysqlc/
 +
DEV300_m37> dmake  killobj
 +
DEV300_m37> cd ../../../
 +
DEV300_m37> rm unxlngi6.pro/bin/mysql-native.oxt
 +
DEV300_m37> build debug="something"
 +
 
 +
If all goes well you can find the extension here:
 +
 
 +
DEV300_m37> ls -la connectivity/unxlngi6.pro/bin/mysql-native.oxt
 +
 
 +
When using a non-pro build this is:
 +
 
 +
DEV300_m37> ls -la connectivity/unxlngi6/bin/mysql-native.oxt
 +
 
 +
Please note, its strongly suggested to build a debug version. Please note, the extension is compiled with debug output enabled. When using the extension you will see a lots of debug output being written to stdout.
 +
 
 +
=== Driver/extension installation ===
 +
 
 +
You can either install the extension in the GUI or use "unopkg". If you want to use "unopkg" make sure that you run it in a shell that does NOT have the build environment set up (source LinuxX86Env.Set.sh etc. must NOT have been run before).
 +
 
 +
> /opt/openoffice.org3/program/unopkg list
 +
all deployed user packages:
 +
Identifier: org.openoffice.legacy.mysql-native.oxt
 +
  Version: 0.0.1
 +
  URL: vnd.sun.star.expand:$UNO_USER_PACKAGES_CACHE/uno_packages/JjWiOU_/mysql-native.oxt
 +
  is registered: yes
 +
  Media-Type: application/vnd.sun.star.package-bundle
 +
  Description:
 +
  bundled Packages: {
 +
      URL: vnd.sun.star.expand:$UNO_USER_PACKAGES_CACHE/uno_packages/JjWiOU_/mysql-native.oxt/mysqlc.so
 +
      is registered: yes
 +
      Media-Type: application/vnd.sun.star.uno-component;type=native;platform=Linux_x86
 +
      Description:
 +
  }
 +
 
 +
> /opt/openoffice.org3/program/unopkg remove org.openoffice.legacy.mysql-native.oxt
 +
MysqlCDriver::getSupportedServiceNames_Static
 +
MysqlCDriver::getImplementationName_Static
 +
 
 +
> /opt/openoffice.org3/program/unopkg add ~/DEV300_m35/connectivity/unxlngi6.pro/bin/mysql-native.oxt
 +
MysqlCDriver::getSupportedServiceNames_Static
 +
MysqlCDriver::getImplementationName_Static
 +
MysqlCDriver::getSupportedServiceNames_Static
 +
MysqlCDriver::getImplementationName_Static
 +
MysqlCDriver::getSupportedServiceNames_Static
 +
MysqlCDriver::getImplementationName_Static
 +
 
 +
=== Debug hints ===
 +
 
 +
If you follow the above instructions you create a debug build.
 +
 
 +
You can enable the libmysql and Connector/C++ internal traces. To enable the Connector/C++ trace (should be on by default ATM), patch driver/mysql_debug.h:
 +
 
 +
[...]
 +
#ifndef _MYSQL_DEBUG_H_
 +
#define _MYSQL_DEBUG_H_
 +
 
 +
#if 1
 +
#define CPP_ENTER(msg)                  MySQL_DebugLogger * __l = this->logger? this->logger->get():NULL;(void)__l;\
 +
                                                                MySQL_DebugEnterEvent __this_func(__LINE__, __FILE__, msg, logger)
 +
#define CPP_ENTER_WL(l, msg)    MySQL_DebugLogger * __l = (l)? (l)->get():NULL;(void)__l;\
 +
                                                                MySQL_DebugEnterEvent __this_func(__LINE__, __FILE__, msg, (l))
 +
#define CPP_INFO(msg)          {if (__l) __l->log("INF", msg); }
 +
#define CPP_INFO_FMT(...)      {if (__l) __l->log_va("INF", __VA_ARGS__); }
 +
#define CPP_ERR(msg)            {if (__l) __l->log("ERR", msg); }
 +
#define CPP_ERR_FMT(...)        {if (__l) __l->log_va("ERR", __VA_ARGS__); }
 +
#else
 +
[...]
 +
 
 +
= OpenSolaris notes (OUTDATED) =
 +
 
 +
'''NOTE: I'm still fighting with OpenSolaris issues'''
 +
NOTE: The OOo team works only on Solaris 8(!).
 +
 
 +
* Install OpenSolaris from 2008.05 CD image (Sun Microsystems Inc.  SunOS 5.11      snv_86  January 2008)
 +
* Update OpenSolaris to current version
 +
 
 +
The update will download approx. 1.5 - 2 GB. Accordingly it will take some time.
 +
 
 +
pfexec pkg refresh
 +
export PKG_CLIENT_TIMEOUT=300
 +
pfexec pkg install SUNWipkg
 +
pfexec pkg image-update
 +
su
 +
pfexec mount -F zfs rpool/ROOT/opensolaris-1 /mnt
 +
pfexec /mnt/boot/solaris/bin/update_grub -R /mnt
 +
pfexec reboot
 +
 
 +
At the time of writing you will end up with SunOS opensolaris 5.11 snv_95 .
 +
 
 +
* Install additional packages required for compiling OOo 3.0
 +
 
 +
Start with SunStudio (ss-dev) and assorted development libraries/tools. That's another ~700MB to download.
 +
 
 +
pfexec pkg install SUNWcvs ss-dev SUNWxorg-headers SUNWgnu-gperf SUNWcurl
 +
pfexec pkg install SUNWgnome-common-devel SUNWxwinc SUNWant SUNWlxml SUNWicu
 +
 
 +
There is a bug in OpenSolaris and SUNWxorg-headers will not install all required X headers/libraries! You need to install old versions of the FSWxorg-headers package. You must use old versions because newer versions are empty - their binaries conflict with SUNWxorg-headers and OpenSolaris decided to silently distribute empty packages. Use pfexec pkg contents FSWxorg-headers to check wheter this has been fixed... if not:
 +
 
 +
pfexec pkg install FSWxorg-data@0.5.11-0.79  FSWxorg-headers@0.5.11-0.79
 +
 
 +
* Fix/Hack libXaw installation
 +
 
 +
As explained the FSWxorg* and SUNWxorg* packages might conflict. You need some header from FSWxorg* including libXaw. However, you need to compile libXaw manually although some of its headers are part of FSWxorg-headers.
 +
 
 +
export PATH=$PATH:/opt/SunStudioExpress/bin/:/usr/gnu/bin:/usr/bin:/usr/X11/bin:/usr/sbin:/sbin:/usr/local/bin/
 +
wget http://xorg.freedesktop.org/releases/individual/lib/libXaw-1.0.4.tar.bz2
 +
bunzip2 libXaw-1.0.4.tar.bz2
 +
tar xvf libXaw-1.0.4.tar
 +
cd libXaw-1.0.4
 +
CC=cc ./configure --prefix=/usr/X11
 +
make;
 +
su
 +
make install
 +
 
 +
* Install missing Perl packages
 +
 
 +
OOo needs some Perl packages. You will need to install at least Archive::Zip. Some Archive::Zip dependencies might require a C compiler. If you run into issues make sure that you give Perl whatever C compiler it wants. If possible go for the Sun Compiler (CC=/opt/SunStudioExpress/bin/cc CXX=/opt/SunStudioExpress/bin/CC).
 +
 
 +
su
 +
export PATH=$PATH:/opt/SunStudioExpress/bin/:/usr/gnu/bin:/usr/bin:/usr/X11/bin:/usr/sbin:/sbin:/usr/local/bin/
 +
perl -MCPAN -e shell
 +
shell> install Archive::Zip
 +
 
 +
* Install OpenOffice.org sources as described for Linux
 +
* Patch configure
 +
 
 +
The OOo team does use one Solaris 8 reference system to cover all *Solaris* versions. Naturally this means that configure will not work out-of-the-box on OpenSolaris. You will need to fix several issues manually. Check out for:
 +
 
 +
** SunStudio C Compiler wrong version - found 5.10 needs 5.9
 +
 
 +
That's nothing but a stinky configure. Add a test for 5.10 to configure and make configure accept 5.10.
 +
 
 +
** Wrong ANT version 1.6.5 needs at least 1.6.0
 +
 
 +
You need to set the JAVA_HOME through --with-jdk-home=/usr/jdk/latest
 +
 
 +
** Cannot find ANT libraries
 +
 
 +
Check the location of ant.jar using
 +
 
 +
  pfexec pkg search -r ant.jar
 +
 
 +
As you will see, the path it has changed over time. OOo does not search any of the OpenSolaris places by default. Find out the current location using
 +
 
 +
  pkg contents -t file SUNWant  | grep ant.jar
 +
 
 +
At the time of writing its usr/share/lib/ant/ant.jar . Either patch configure or set ANT_HOME - export ANT_HOME=/usr/share/lib/ant
 +
 
 +
* Run configure
 +
 
 +
You are getting closer to running configure... Make sure you say "bash". For whatever reason it sets the appropriate path to the GNU patch utility.
 +
 
 +
bash
 +
cd oo.org-m28/config-office
 +
export PATH=$PATH:/opt/SunStudioExpress/bin/:/usr/gnu/bin:/usr/bin:/usr/X11/bin:/usr/sbin:/sbin:/usr/local/bin/
 +
CC=cc CXX=CC ./configure --disable-build-mozilla --disable-mediawiki --with-use-shell=bash --with-jdk-home=/usr/jdk/latest/ --with-system-curl
 +
 +
See above on known configure issues.
 +
 
 +
* Source && Bootstrap
 +
 
 +
nixnutz@opensolaris:~/oo.org-m28/config_office$ cd ..
 +
nixnutz@opensolaris:~/oo.org-m28$ source  SolarisX86Env.Set.sh
 +
nixnutz@opensolaris:~/oo.org-m28$ ./bootstrap
 +
 
 +
* Start building OOo using dmake
 +
 
 +
nixnutz@opensolaris:~/oo.org-m28$ dmake
 +
 
 +
Most likely this will fail! Why? OOo will invoke the make utility with GNU make specific flags. Even more: OOo might try to build icu and the bundled icu will not build with Sun make at all. You might need to use GNU make. I have no idea how to tell OOo that it shall use /usr/gnu/bin/make instead of /usr/ccs/bin/make. I modified the soft link /usr/ccs/bin/make - blame me...

Revision as of 13:31, 6 January 2009

How to set up an OpenOffice.org Build environment for C/OOo development

SuSE Linux

SuSE 11

SuSE 11 does not use Sun Java by default. The default installation will come with GNU Java and javac = GCC. Don't use the GNU stuff, use Sun's Java SDK 1.5. Deinstall GNU Java, search for java and gcj in Yast. OpenOffice 3.0 M28 might fail to detect GNU Java and might not come up with any proper error message during configure.

Beware

If your connection is not OC-192 ;), then you might want to log into a server with a fast connection and do the following there. The just pack the sources and download them locally using scp.

Prerequisites

This list is based on what is needed to be additionally installed on a virgin Ubuntu 8.10 Interpid/Debian 4r6 Etch system. If might be different for you, meaning you might need to install more packages. However, be sure you have these to skip some iterations of [configure [, install ]]+

  • libarchive-zip-perl (Perl Archive/Zip)
  • libcupsys2-dev
  • libpam0g-dev
  • sdk-java 1.5
  • gperf
  • libfreetype6-dev
  • libxaw7-dev
  • libfontconfig1-dev
  • libxrandr-dev
  • libgconf2-dev
  • libgnomevfs2-dev
  • libgdk-pixbuf-dev
  • ant
  • bison
  • flex
  • zip
  • unzip

Get sources

  • Without a key
svn checkout svn://svn.services.openoffice.org/ooo/tags/DEV300_m37
cd DEV300_m37
svn switch svn://svn.services.openoffice.org/ooo/cws/mysqlnative
  • Get sources - with a key
svn checkout svn+ssh://svn@svn.services.openoffice.org/ooo/tags/DEV300_m37
cd DEV300_m37
svn switch svn+ssh://svn@svn.services.openoffice.org/ooo/cws/mysqlnative

Configure

cp /path/to/download/of/unowinreg.dll external/unowinreg/
cp /path/to/download/of/LINUXGCCIinc.zip moz/zipped/
cp /path/to/download/of/LINUXGCCIlib.zip moz/zipped/
cp /path/to/download/of/LINUXGCCIruntime.zip moz/zipped/

OpenOffice will search for <OS><COM><CPU>{inc,lib,runtime}.zip in moz/zipped/ . You might have to rename the download files. Watch out for error messages returned by configure (see below).

  • Configure (distribution build - "pro" build)
cd config_office
./configure --disable-build-mozilla --disable-mediawiki --with-use-shell=bash
  • Configure (debug build, with asserts - "non-pro")
cd config_office
./configure --disable-build-mozilla --disable-mediawiki --with-use-shell=bash --enable-dbgutil

I was able to configure on openSuSE11.0 with the following command, after installing all needed libraries :

./configure --disable-build-mozilla --disable-mediawiki --with-use-shell=bash --with-system-freetype \
--with-system-stdlibs --with-system-cairo --with-system-zlib  --with-system-openssl --with-system-jpeg \
--with-system-expat --with-system-freetype --with-system-libwpd --with-system-libxml --with-system-python \
--with-system-icu --with-system-db --with-system-lucene  --with-system-hsqldb --with-system-beanshell \
--with-system-libxslt --with-system-odbc-headers --with-system-sane-header --with-system-curl \
--with-system-boost  --with-system-vigra --with-system-neon

I tried --with-system-libs but got into problems finding some packages. If you get libegg problems (I do) add --disable-systray

Build

  • Follow the messages, probably you have to do the following, if you have used bash as shell for the build in the configure line. For tcsch use LinuxX86Env.Set:
cd ..
source LinuxX86Env.Set.sh
./bootstrap
  • If you have dual or quad-core, or SMP, run the following and adjust for your configuration
export MAXPROCESS=3
  • ccache is very recommended, go install it. Then configure it to have enough space. By default it stores data in your home directory. This is configurable like (I have CC and CXX changed in .bashrc but some people prefer to do a symlink):
export CCACHE_DIR="/path/to/ccache/dir/for/oo.org/build"
ccache -M 2G -F 100000
export CC="ccache gcc"
export CXX="ccache g++"
  • dmake should have been boostrapped. Now just run the following and go get a 6h sleep :)
dmake

SSH Keys

On Unix or Windows/cygwin a SSH identity (private/public key pair) is generated with:

ssh-keygen -t dsa

You'll be asked for pass phrase which protects your private key. Per default the public key is named $HOME/.ssh/id_dsa.pub. Note that SSH keys created between September 2006 and May 2008 on Debian or Debian derived systems like Ubuntu may be insecure. Please use recent SSH tools. If you want a dedicated identity for just OOo SVN usage, generate a specially named key pair:

ssh-keygen -t dsa -f ~/.ssh/id_dsa_ooo_svn 

and instruct Subversion to use this identity (key pair) with the following configuration entry in $HOME/.subversion/config:

[tunnels]
ssh = ssh -i /home/andrey/.ssh/id_dsa_ooo_svn

RPM Installation

Something like this...

rpm -Uhv ./instsetoo_native/unxlngi6.pro/URE/rpm/install/en-US/RPMS/openoffice.org-ure-1.4.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-core01-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-core02-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-core03-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-core04-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-core05-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-core06-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-core07-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-ooofonts-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-images-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/openoffice.org3-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-writer-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/openoffice.org3-writer-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-base-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/openoffice.org3-base-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-calc-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/openoffice.org3-calc-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-testtool-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-draw-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/openoffice.org3-draw-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-impress-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/openoffice.org3-impress-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-math-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/openoffice.org3-math-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-pyuno-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-javafilter-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-xsltfilter-3.1.0-9367.i586.rpm  ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-graphicfilter-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-binfilter-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-ooolinguistic-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-en-US-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-en-US-help-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-en-US-writer-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-en-US-impress-3.1.0-9367.i586.rpm instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-en-US-binfilter-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-en-US-calc-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-en-US-math-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-en-US-draw-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-en-US-res-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/ooobasis3.1-en-US-base-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/openoffice.org3-en-US-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice_SDK/rpm/install/en-US/RPMS/ooobasis3.1-sdk-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/openoffice.org3-dict-en-3.1.0-9367.i586.rpm ./instsetoo_native/unxlngi6.pro/OpenOffice/rpm/install/en-US/RPMS/desktop-integration/openoffice.org3.0-suse-menus-3.0-9367.noarch.rpm ./sysui/unxlngi6.pro/bin/desktop-integration/openoffice.org3.0-suse-menus-3.0-9367.noarch.rpm ./sysui/unxlngi6.pro/bin/desktop-integration/broffice.org3.0-suse-menus-3.0-9367.noarch.rpm

DEB Installation

Something like this...

cd instsetoo_native/unxlngi6.pro/OpenOffice/deb/install/en-US/DEBS sudo dpkg -i *.deb cd desktop_integration sudo dpkg -i *.deb

Then the programs are in /opt/openoffice3/program/

Compiling the driver

Ok, you got OpenOffice.org to compile, and it has finished compiling after 3-6 hours.

Patching the CWS (you need this if you don't use m37 or up)

The latest driver code is still not in the CWS. You need to fetch it from bazaar. We will streamline compiling and commit the source into the CWS as soon as possible. Make sure that you have the OOo build environment set up when compiling the driver (source LinuxX86Env.Set.sh etc.)

Add the MySQL driver to the source tree:

DEV300_m35> cd connectivity/source/drivers/
DEV300_m35/connectivity/source/drivers> bzr clone bzr+ssh://<user>@bk-internal.mysql.com/bzrroot/public/connector-ooo-bzr/trunk/

Add the driver to the OOo build process by patching connectivity/prj/build.lst:

DEV300_m35> nano connectivity/prj/build.lst

Add a line to the build list for compiling the mysql driver, for example:

cn  connectivity\source\drivers\trunk               nmake   -   all cn_mysqlc cn_dbtools cn_inc NULL

Compiling the driver (manually)

The driver is compiled by default. You can manually do it in the following way:\

DEV300_m37> cd connectivity/source/drivers/mysqlc/ 
DEV300_m37> dmake  killobj 
DEV300_m37> cd ../../../ 
DEV300_m37> rm unxlngi6.pro/bin/mysql-native.oxt
DEV300_m37> build debug="something"

If all goes well you can find the extension here:

DEV300_m37> ls -la connectivity/unxlngi6.pro/bin/mysql-native.oxt

When using a non-pro build this is:

DEV300_m37> ls -la connectivity/unxlngi6/bin/mysql-native.oxt

Please note, its strongly suggested to build a debug version. Please note, the extension is compiled with debug output enabled. When using the extension you will see a lots of debug output being written to stdout.

Driver/extension installation

You can either install the extension in the GUI or use "unopkg". If you want to use "unopkg" make sure that you run it in a shell that does NOT have the build environment set up (source LinuxX86Env.Set.sh etc. must NOT have been run before).

> /opt/openoffice.org3/program/unopkg list
all deployed user packages:
Identifier: org.openoffice.legacy.mysql-native.oxt
 Version: 0.0.1
 URL: vnd.sun.star.expand:$UNO_USER_PACKAGES_CACHE/uno_packages/JjWiOU_/mysql-native.oxt
 is registered: yes
 Media-Type: application/vnd.sun.star.package-bundle
 Description:
 bundled Packages: {
     URL: vnd.sun.star.expand:$UNO_USER_PACKAGES_CACHE/uno_packages/JjWiOU_/mysql-native.oxt/mysqlc.so
     is registered: yes
     Media-Type: application/vnd.sun.star.uno-component;type=native;platform=Linux_x86
     Description:
 }
> /opt/openoffice.org3/program/unopkg remove org.openoffice.legacy.mysql-native.oxt
MysqlCDriver::getSupportedServiceNames_Static
MysqlCDriver::getImplementationName_Static
> /opt/openoffice.org3/program/unopkg add ~/DEV300_m35/connectivity/unxlngi6.pro/bin/mysql-native.oxt
MysqlCDriver::getSupportedServiceNames_Static
MysqlCDriver::getImplementationName_Static
MysqlCDriver::getSupportedServiceNames_Static
MysqlCDriver::getImplementationName_Static
MysqlCDriver::getSupportedServiceNames_Static
MysqlCDriver::getImplementationName_Static

Debug hints

If you follow the above instructions you create a debug build.

You can enable the libmysql and Connector/C++ internal traces. To enable the Connector/C++ trace (should be on by default ATM), patch driver/mysql_debug.h:

[...]
#ifndef _MYSQL_DEBUG_H_
#define _MYSQL_DEBUG_H_
#if 1
#define CPP_ENTER(msg)                  MySQL_DebugLogger * __l = this->logger? this->logger->get():NULL;(void)__l;\
                                                               MySQL_DebugEnterEvent __this_func(__LINE__, __FILE__, msg, logger)
#define CPP_ENTER_WL(l, msg)    MySQL_DebugLogger * __l = (l)? (l)->get():NULL;(void)__l;\
                                                               MySQL_DebugEnterEvent __this_func(__LINE__, __FILE__, msg, (l))
#define CPP_INFO(msg)           {if (__l) __l->log("INF", msg); }
#define CPP_INFO_FMT(...)       {if (__l) __l->log_va("INF", __VA_ARGS__); }
#define CPP_ERR(msg)            {if (__l) __l->log("ERR", msg); }
#define CPP_ERR_FMT(...)        {if (__l) __l->log_va("ERR", __VA_ARGS__); }
#else
[...]

OpenSolaris notes (OUTDATED)

NOTE: I'm still fighting with OpenSolaris issues NOTE: The OOo team works only on Solaris 8(!).

  • Install OpenSolaris from 2008.05 CD image (Sun Microsystems Inc. SunOS 5.11 snv_86 January 2008)
  • Update OpenSolaris to current version

The update will download approx. 1.5 - 2 GB. Accordingly it will take some time.

pfexec pkg refresh
export PKG_CLIENT_TIMEOUT=300
pfexec pkg install SUNWipkg
pfexec pkg image-update
su
pfexec mount -F zfs rpool/ROOT/opensolaris-1 /mnt
pfexec /mnt/boot/solaris/bin/update_grub -R /mnt
pfexec reboot

At the time of writing you will end up with SunOS opensolaris 5.11 snv_95 .

  • Install additional packages required for compiling OOo 3.0

Start with SunStudio (ss-dev) and assorted development libraries/tools. That's another ~700MB to download.

pfexec pkg install SUNWcvs ss-dev SUNWxorg-headers SUNWgnu-gperf SUNWcurl
pfexec pkg install SUNWgnome-common-devel SUNWxwinc SUNWant SUNWlxml SUNWicu

There is a bug in OpenSolaris and SUNWxorg-headers will not install all required X headers/libraries! You need to install old versions of the FSWxorg-headers package. You must use old versions because newer versions are empty - their binaries conflict with SUNWxorg-headers and OpenSolaris decided to silently distribute empty packages. Use pfexec pkg contents FSWxorg-headers to check wheter this has been fixed... if not:

pfexec pkg install FSWxorg-data@0.5.11-0.79  FSWxorg-headers@0.5.11-0.79
  • Fix/Hack libXaw installation

As explained the FSWxorg* and SUNWxorg* packages might conflict. You need some header from FSWxorg* including libXaw. However, you need to compile libXaw manually although some of its headers are part of FSWxorg-headers.

export PATH=$PATH:/opt/SunStudioExpress/bin/:/usr/gnu/bin:/usr/bin:/usr/X11/bin:/usr/sbin:/sbin:/usr/local/bin/
wget http://xorg.freedesktop.org/releases/individual/lib/libXaw-1.0.4.tar.bz2
bunzip2 libXaw-1.0.4.tar.bz2
tar xvf libXaw-1.0.4.tar
cd libXaw-1.0.4
CC=cc ./configure --prefix=/usr/X11
make;
su
make install
  • Install missing Perl packages

OOo needs some Perl packages. You will need to install at least Archive::Zip. Some Archive::Zip dependencies might require a C compiler. If you run into issues make sure that you give Perl whatever C compiler it wants. If possible go for the Sun Compiler (CC=/opt/SunStudioExpress/bin/cc CXX=/opt/SunStudioExpress/bin/CC).

su
export PATH=$PATH:/opt/SunStudioExpress/bin/:/usr/gnu/bin:/usr/bin:/usr/X11/bin:/usr/sbin:/sbin:/usr/local/bin/
perl -MCPAN -e shell
shell> install Archive::Zip
  • Install OpenOffice.org sources as described for Linux
  • Patch configure

The OOo team does use one Solaris 8 reference system to cover all *Solaris* versions. Naturally this means that configure will not work out-of-the-box on OpenSolaris. You will need to fix several issues manually. Check out for:

    • SunStudio C Compiler wrong version - found 5.10 needs 5.9

That's nothing but a stinky configure. Add a test for 5.10 to configure and make configure accept 5.10.

    • Wrong ANT version 1.6.5 needs at least 1.6.0

You need to set the JAVA_HOME through --with-jdk-home=/usr/jdk/latest

    • Cannot find ANT libraries

Check the location of ant.jar using

 pfexec pkg search -r ant.jar 

As you will see, the path it has changed over time. OOo does not search any of the OpenSolaris places by default. Find out the current location using

 pkg contents -t file SUNWant  | grep ant.jar

At the time of writing its usr/share/lib/ant/ant.jar . Either patch configure or set ANT_HOME - export ANT_HOME=/usr/share/lib/ant

  • Run configure

You are getting closer to running configure... Make sure you say "bash". For whatever reason it sets the appropriate path to the GNU patch utility.

bash
cd oo.org-m28/config-office
export PATH=$PATH:/opt/SunStudioExpress/bin/:/usr/gnu/bin:/usr/bin:/usr/X11/bin:/usr/sbin:/sbin:/usr/local/bin/
CC=cc CXX=CC ./configure --disable-build-mozilla --disable-mediawiki --with-use-shell=bash --with-jdk-home=/usr/jdk/latest/ --with-system-curl

See above on known configure issues.

  • Source && Bootstrap
nixnutz@opensolaris:~/oo.org-m28/config_office$ cd ..
nixnutz@opensolaris:~/oo.org-m28$ source  SolarisX86Env.Set.sh
nixnutz@opensolaris:~/oo.org-m28$ ./bootstrap
  • Start building OOo using dmake
nixnutz@opensolaris:~/oo.org-m28$ dmake

Most likely this will fail! Why? OOo will invoke the make utility with GNU make specific flags. Even more: OOo might try to build icu and the bundled icu will not build with Sun make at all. You might need to use GNU make. I have no idea how to tell OOo that it shall use /usr/gnu/bin/make instead of /usr/ccs/bin/make. I modified the soft link /usr/ccs/bin/make - blame me...

Personal tools