Building with ooobuild

From Apache OpenOffice Wiki
Jump to: navigation, search

Vanilla Up-stream builds

Tip.png If you want to build:
  • the Vanilla Openoffice.org releases/milestones or
  • want to directly contribute to the development (using ChildWorkSpaces)

Everything you need to know is explained in the Building Guide.


ooo-build builds

If you are looking for additional building tips for Windows check this page first.



get the source

You need to checkout the source code using git:

git clone git://anongit.freedesktop.org/git/ooo-build/ooo-build

(see fd.o wiki for authoritative info)

configure

The build process is pretty complicated; you have a choice of commands now; although running both won't actually hurt:

     ./autogen.sh --with-distro=HelloMum  # only for the git version
     ./configure  --with-distro=HelloMum # the packaged version

This will guess which branch snapshot you want to build; if you have other ideas use the --with-tag option; eg. --with-tag=src680-m65 for a legacy branch.

NB. getting your distro right is quite important; values like SUSE-10.1 (also SLED10), UbuntuDapper, DebianEtch64 may float your boat. Checkout ls distro-configs to see more.

If for some reason you have a 31337 multi-threaded computer, with great slabs of RAM; you'll want to use --with-num-cpus=8 etc. NB. it's not clever to force the build to swap like a demented pawnbroker by using an artificially high number; C++ compilation is seriously memory hungry.

In particular, building DEV300 requires a recent jdk & a version of apache-ant. If you use a Novell system, just do: sudo rug in apache-ant, alternatively download a package from " rpmfind.net or failing that see Ant download & set the ANT environment variable appropriately before configuring.

Known ./configure parameters

  • up-stream options

    - all options are passed through directly to the internal configure, so they should work nicely here too.

  • --with-system-<package name>

    where <package name> is replaced by the package to use. I don't have a particularly good understanding of its full effects beyond the fact that it (probably) doesn't then build its own copy of the package.

    Examples:
    --with-system-python
    --with-system-mozilla
    --with-system-gcc
    --with-system-neon
    --with-system-curl

  • --without-system-<package name>

    Examples:
    --without-system-mozilla

  • --with-<package or tag>[=value]

    Examples:
    --with-lang=en-US
    --with-build-version="Build 2.0.1.3"
    --with-distro=Gentoo

  • --without-<package or tag>

    Examples:
    --without-myspell-dicts
    --without-java
    --without-nas

  • --enable-<package name>

    Examples:
    --enable-openldap

  • --disable-<package name>

    Examples:
    --disable-openldap
    --disable-qadevoo
    --disable-mozilla
    --disable-access
    --disable-evolution2

  • --mandir=<dir>

Requirements

On opensuse 11.1, this line should get you all prerequisites:

zypper si -d OpenOffice_org-bootstrap

Also see the distro-specific setup in the link section at the bottom, otherwise here's the detailed list:

  • A recent version of automake, such as the 1.9 series.
  • If you don't have a working Java VM (i.e. any runtime), you should pass --with-java=no to either autogen.sh or configure.
  • You need the Archive/Zip module for Perl (perl-Archive-Zip on RPM-based distributions, libarchive-zip-perl on dpkg-based distributions). Alternatively, see instructions[1] for obtaining Perl modules through CPAN.
  • You need the development package for Python (this would be python-devel on RPM-based distributions).
  • You need curl and curl-devel.
  • You need odbc_config to be present. On SUSE systems, this is in the unixODBC-devel package.
  • You need libsndfile and libsndfile-devel.
  • If you don't have a recent enough openldap, pass --disable-openldap to autogen.sh or configure.
  • You need neon and neon-devel.
  • You need qt3 and qt3-devel, or if you don't have the KDE development packages, pass --disable-kde to autogen.sh or configure.
  • You need mozilla-nss-devel.
  • In SuSE, you need gecko-sdk, mono-devel and cups-devel

download

By the time you've upgraded your system to the point that it has all the packages you need to start building OO.o (mozilla etc. etc.) you're almost at the point that you can download the bulk of the source. To do this, after a successful configure simply type: ./download and wait.

If for whatever reason this fails, you can verify your download by fetching the equivalent .md5 file & comparing it to the result of md5sum <archive>. The source archives are http://download.go-oo.org/SRC680 - put the source in ooo-build/src.

make

This is the taxing bit - type make and don't forget to press enter. Quite possibly you want to log the output, so why not make 2>&1 | tee /tmp/log.

Since ooo-build wraps the actual OO.o configuration & build process, there are a number of internal config checks that also need to pass. For a first time build it's well worth staying near the console while everything unpacks, and the internal configure runs; if that completes without incident - you're usually into the heavy-duty thumb twiddling.

See also

Personal tools