Difference between revisions of "Building with ooobuild"

From Apache OpenOffice Wiki
Jump to: navigation, search
 
(38 intermediate revisions by 22 users not shown)
Line 1: Line 1:
 
== Vanilla Up-stream builds ==
 
== Vanilla Up-stream builds ==
 
+
{{Tip| If you want to build:
See the [http://tools.openoffice.org/ tools] project for build guides for various platforms.
+
* the Vanilla Openoffice.org releases/milestones or
 
+
* want to directly contribute to the development (using [[ChildWorkSpace]]s)
 +
'''Everything you need to know is explained in the [[Development/OpenOffice.org Building Guide|Building Guide]].'''}}
  
 
== ooo-build builds ==
 
== ooo-build builds ==
Line 11: Line 12:
 
----
 
----
 
<br>
 
<br>
 +
 +
=== get the source ===
 +
 +
You need to checkout the source code using git:
 +
 +
git clone git://anongit.freedesktop.org/git/ooo-build/ooo-build
 +
 +
(see [http://freedesktop.org/wiki/Software/ooo-build/GettingIt fd.o wiki] for authoritative info)
  
 
=== configure ===
 
=== configure ===
Line 18: Line 27:
 
       of commands now; although running both won't actually hurt:
 
       of commands now; although running both won't actually hurt:
 
     </p>
 
     </p>
    <pre>
+
       ./autogen.sh --with-distro=<b>HelloMum</b>  # only for the git version
       ./autogen.sh # only for the CVS version
+
       ./configure  --with-distro=<b>HelloMum</b> # the packaged version
       ./configure  # the packaged version
+
 
    </pre>
+
 
     <p>
 
     <p>
 
       This will guess which branch snapshot you want to build; if
 
       This will guess which branch snapshot you want to build; if
 
       you have other ideas use the --with-tag option; eg.
 
       you have other ideas use the --with-tag option; eg.
 
       <code>--with-tag=src680-m65</code> for a legacy branch.
 
       <code>--with-tag=src680-m65</code> for a legacy branch.
 +
    </p>
 +
    <p>
 +
      NB. getting your distro right is quite important; values like
 +
      SUSE-10.1 (also SLED10), UbuntuDapper, DebianEtch64 may float
 +
      your boat. Checkout <code>ls distro-configs</code> to see more.
 
     </p>
 
     </p>
 
     <p>
 
     <p>
Line 35: Line 48:
 
     </p>
 
     </p>
 
     <p>
 
     <p>
       In particular, building SRC680 requires a recent jdk &amp; a
+
       In particular, building DEV300 requires a recent jdk &amp; a
 
       version of apache-ant. If you use a Novell system, just do:
 
       version of apache-ant. If you use a Novell system, just do:
 
       <code>sudo rug in apache-ant</code>, alternatively download
 
       <code>sudo rug in apache-ant</code>, alternatively download
Line 42: Line 55:
 
       appropriately before configuring.
 
       appropriately before configuring.
 
     </p>
 
     </p>
 
+
    <h4>Known ./configure parameters</h4>
 +
    <ul>
 +
    <li><h5>up-stream options</h5><p> - all options are passed through directly
 +
    to the internal configure, so they should work nicely here too.</p>
 +
    </li>
 +
    <li><h5><code>--with-system-<package name></code></h5>
 +
        <p>where &lt;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.</p>
 +
        <p><b>Examples:</b><br>
 +
          <code>--with-system-python</code><br>
 +
          <code>--with-system-mozilla</code><br>
 +
          <code>--with-system-gcc</code><br>
 +
          <code>--with-system-neon</code><br>
 +
          <code>--with-system-curl</code><br>
 +
        </p>
 +
    </li>
 +
    <li><h5><code>--without-system-<package name></code></h5>
 +
        <p><b>Examples:</b><br>
 +
            <code>--without-system-mozilla</code>
 +
        </p>
 +
    </li>
 +
    <li><h5><code>--with-<package or tag>[=value]</code></h5>
 +
        <p><b>Examples:</b><br>
 +
            <code>--with-lang=en-US</code><br>
 +
            <code>--with-build-version="Build 2.0.1.3"</code><br>
 +
            <code>--with-distro=Gentoo</code><br>
 +
        </p>
 +
    </li>
 +
    <li><h5><code>--without-<package or tag></code></h5>
 +
        <p><b>Examples:</b><br>
 +
            <code>--without-myspell-dicts</code><br>
 +
            <code>--without-java</code><br>
 +
            <code>--without-nas</code><br>
 +
        </p>
 +
    </li>
 +
    <li><h5><code>--enable-<package name></code></h5>
 +
        <p><b>Examples:</b><br>
 +
            <code>--enable-openldap</code><br>
 +
        </p>
 +
    </li>
 +
    <li><h5><code>--disable-<package name></code></h5>
 +
        <p><b>Examples:</b><br>
 +
            <code>--disable-openldap</code><br>
 +
            <code>--disable-qadevoo</code><br>
 +
            <code>--disable-mozilla</code><br>
 +
            <code>--disable-access</code><br>
 +
            <code>--disable-evolution2</code><br>
 +
        </p>
 +
    </li>
 +
    <li><h5><code>--mandir=<dir></code></h5></li>
 +
    </ul>
  
 
=== Requirements ===
 
=== Requirements ===
  
If you don't have a working Java VM (i.e. any runtime), you should pass <code>--with-java=no</code> to either <code>autogen.sh</code> or <code>configure</code>.
+
On opensuse 11.1, this line should get you all prerequisites:
 
+
  zypper si -d OpenOffice_org-bootstrap
You need the Archive/Zip module for Perl. (perl-Archive-Zip on RPM-based distributions, libarchive-zip-perl on dpkg-based distributions)
+
 
+
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 <code>--disable-openldap</code> to <code>autogen.sh</code> or <code>configure</code>.
+
 
+
You need neon and neon-devel.
+
 
+
You need qt3 and qt3-devel, or if you don't have the KDE development packages, pass <code>--disable-kde</code> to <code>autogen.sh</code> or <code>configure</code>.
+
  
You need mozilla-nss-devel.
+
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 <code>--with-java=no</code> to either <code>autogen.sh</code> or <code>configure</code>.
 +
*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[http://ooo.ximian.com/cpan.html] 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 <code>--disable-openldap</code> to <code>autogen.sh</code> or <code>configure</code>.
 +
*You need neon and neon-devel.
 +
*You need qt3 and qt3-devel, or if you don't have the KDE development packages, pass <code>--disable-kde</code> to <code>autogen.sh</code> or <code>configure</code>.
 +
*You need mozilla-nss-devel.
 +
*In SuSE, you need gecko-sdk, mono-devel and cups-devel
  
 
=== download ===
 
=== download ===
Line 77: Line 139:
 
       If for whatever reason this fails, you can verify your download
 
       If for whatever reason this fails, you can verify your download
 
       by fetching the equivalent .md5 file &amp; comparing it to
 
       by fetching the equivalent .md5 file &amp; comparing it to
       the result of <code>md5sum &lt;archive&gt;</code>. The source
+
       the result of <code>md5sum <archive></code>. The source
       archives are http://go-ooo.org/packages/SRC680
+
       archives are http://download.go-oo.org/SRC680
 
       - put the source in ooo-build/src.
 
       - put the source in ooo-build/src.
 
     </p>
 
     </p>
Line 87: Line 149:
 
       This is the taxing bit - type <code>make</code> and don't forget
 
       This is the taxing bit - type <code>make</code> and don't forget
 
       to press enter. Quite possibly you want to log the output, so
 
       to press enter. Quite possibly you want to log the output, so
       why not <code>make 2&gt;&amp;1 | tee /tmp/log</code>.
+
       why not <code>make 2>&1 | tee /tmp/log</code>.
 
     </p>
 
     </p>
 
     <p>
 
     <p>
Line 101: Line 163:
  
 
*[[Installing]]
 
*[[Installing]]
 +
*[[Tinderbox Setup]]
 +
*[[BuildSpeedup]]
 +
*[[OpenSUSE Build Instructions]]
 +
*[[SUSE9.3 Build Instructions]]
 +
*[[Building ooo-build on Mac OS X]]
 +
*[[Ubuntu Build Instructions]]
 +
*OpenOffice.org "Tools" page [http://tools.openoffice.org/dev_docs/build_linux.html]
 +
*[[Build Tool Requirements]]
 +
*[[O3-build|O3 Build]], an ISO image containing all the required software to build OOo on Linux.
 +
 +
[[Category:Build_System]]

Latest revision as of 16:50, 14 July 2018

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