Building OpenOffice.org
This page is moved into the Building Guide please make sure to add new information there and make this page a redirect if it only contains duplicate information. |
Contents
Prerequisites, Dependencies, Different Platforms And Building a Milestone
see Building Guide
Hints
dmake first checks for depencies of the modules. If you have a fresh checkout you could get some errors:
Fetching dependencies for module swext from solver... failed... Fetching from CVS... failed WARNING! Project(s): swext not found and couldn't be built. Dependencies on that module(s) ignored. Maybe you should correct build dmake: Error code 1, while making 'check_modules'
You have to checkout the module swext by i.e.:
cvs co -r DEV300_m2 swext
(for DEV300_m22)
There are also failing depencies for modules apache-commons and tomcat. Check them out in the same way as swext above.
If you get the following error or something similar:
ERROR: /usr/lib/libcairo.so.2: undefined symbol: FT_Library_SetLcdFilter<br /> dmake: Error code 1, while making '../unxlngi6.pro/lib/libeggtrayli.so'
your version of libcairo is too old. To solve this error install a newer version (i.e. libcairo.so.2.11.7).
When building with cairo, you almost certainly need to specify
--with-sytem-freetype, since the one that is in OOo's sources just is too
old.
Actually, there is an error about ant, if you build swext/mediawiki:
BUILD FAILED swext/mediawiki/build.xml:126: No supported regular expression matcher found: java.lang.ClassNotFoundException: org.apache.tools.ant.util.regexp.Jdk14RegexpMatcher
This error could be solved on Linux by installing a package called ant-optional or similar. There are some additional files for ant missing.
If you got an error like this
ERROR: Error 65280 occurred while making /work/ooovanillabuild/ucb/source/ucp/gvfs
look inside the output in your shell if there are something wrong with your glib-devel version. If you see inside the messages in the shell something like this:
/usr/include/glib-1.2/glib.h:2725:1: warning: this is the location of the previous definition (...) /usr/include/glib-2.0/glib/gthread.h:352:1: warning: "G_LOCK_NAME" redefined
you have to unistall one of the glib-devel version; mostly glib-devel version 1.
Tips and Tricks
Here are some tips that make your life easier or can accelerate the build
ccache, deps and parallel builds
see Building Guide
create prebuilt mozilla and use that instead of recompiling everytime
For the mozilla-components you have the choice to either build from mozilla sources, to use precompiled packages (the "official" ones can be obtained from tools.openoffice.org) or to use system-mozilla (the one installed on your buildsystem, not everything might work, depending on the version you got installed) You can easily create your own version of the prepacked binaries if you wish to do so (either because you cannot use the official ones because of mismatch of compiler version used to build them/other technical reasons or because you want to use stuff you didn't build yourself). To do so:
- build the
moz
module from the mozilla sources
(use--enable-build-mozilla
when running configure and put the mozilla-source tarball tomoz/download
) - in
moz
rundmake zip
to create the zip files - you'll find the zips in
{unxlngi#,wntmsci#}.pro/zipped
Copy them to a location of your liking.
Now instead of using --enable-build-mozilla
, use --disable-build-mozilla
and copy the zips you created or downloaded to moz/zipped
and these will be used when compiling.
This will greatly reduce build-time (you save the time that would otherwise be spent on compiling mozilla)
saving disk space by linking to the solver only
Use "--dlv_switch -link" when running build to tell deliver to only link the files instead of copying them:
build --dlv_switch -link
fixing epm 4 product name error
If you get "epm: Product names can only contain letters and numbers!" error, you must patch epm and comment out name check:
/* * for (i = 0; prodname[i]; i ++) * if (!isalnum(prodname[i] & 255)) * { * puts("epm: Product names can only contain letters and numbers!"); * usage(); * } */