Difference between revisions of "Documentation/Building Guide AOO/Building on MacOsX"
(Created MacOSX specific page.) |
(→Requirements for Xcode 7 (or newer): fix broken link to autoconf sources) |
||
(35 intermediate revisions by 3 users not shown) | |||
Line 5: | Line 5: | ||
{{DISPLAYTITLE:Building on MacOSX}} | {{DISPLAYTITLE:Building on MacOSX}} | ||
− | [[Category: | + | [[Category:MacOSX]][[Category:Documentation]] |
+ | [[Category:Build_System]] | ||
__TOC__ | __TOC__ | ||
Line 11: | Line 12: | ||
= Overview = | = Overview = | ||
− | + | Building Apache OpenOffice from source code follows the | |
+ | platform independent [[Documentation/Building_Guide_AOO| building guide]] | ||
+ | when the build requirements outlined below are fulfilled. | ||
− | + | = General build requirements = | |
− | = | + | Please see the [[Documentation/Building Guide AOO#General_Build_Requirements|general build requirements]] page. |
+ | |||
+ | = Mac specific requirements for building AOO 4.1 (and older) = | ||
− | |||
{| class="prettytable" border="1" width="100%" | {| class="prettytable" border="1" width="100%" | ||
|- | |- | ||
Line 23: | Line 27: | ||
! Where to get / Remarks | ! Where to get / Remarks | ||
|- | |- | ||
− | | Mac OS X version 10. | + | | Mac OS X version 10.7 (aka Lion) or later |
− | | | + | | provided by Apple |
|- | |- | ||
− | | | + | | Xcode version 7 or later. |
− | | | + | | Use the App Store application to get and install it. For Xcode 7 (or newer) some [[#XCODE7|extra steps]] are needed. |
+ | You can also [http://developer.apple.com/technology/xcode.html download] it free of charge, but a registration at the [https://connect.apple.com/ Apple Developer Connection] site is required for that. | ||
|- | |- | ||
− | |XCode | + | | MacOSX SDK |
− | | | + | | SDKs compatible with OSX 10.7 are automatically provided by installing XCode 7 or newer. That most recent compatible SDK is 10.11; SDKs for 10.12 and above are not supported due to Apple's deprecation of Quicktime, which is needed for vcl. |
− | + | |- | |
− | + | | gnutar | |
− | + | | OSX<=10.8 contains the tool directly, for OSX>=10.9 some [[#OSX109|extra steps]] are needed. | |
+ | |- | ||
+ | |} | ||
+ | |||
+ | <div id="XCODE5"> | ||
+ | |||
+ | = Requirements for Xcode 7 (or newer) = | ||
+ | {| class="prettytable" border="1" width="100%" | ||
+ | |- | ||
+ | ! style="width: 20%"|What | ||
+ | ! Where to get / Remarks | ||
+ | |- | ||
+ | | Xcode commandline tools | ||
+ | | run this command in a terminal | ||
+ | sudo xcode-select --install | ||
+ | |- | ||
+ | | autoconf | ||
+ | | Run these commands in a terminal | ||
+ | curl -OL http://ftpmirror.gnu.org/autoconf/autoconf-2.69.tar.gz | ||
+ | tar xvjf autoconf-2.69.tar.gz | ||
+ | pushd autoconf-2.69 | ||
+ | ./configure --prefix=/usr/local | ||
+ | make | ||
+ | sudo make install | ||
+ | popd | ||
+ | |} | ||
+ | |||
+ | Alternatively, you can also install via MacPorts | ||
+ | </div> | ||
+ | |||
+ | <div id="OSX109"> | ||
+ | |||
+ | = OSX 10.9 (or newer) specific requirements = | ||
+ | {| class="prettytable" border="1" width="100%" | ||
+ | |- | ||
+ | ! style="width: 20%"|What | ||
+ | ! Where to get / Remarks | ||
+ | |- | ||
+ | | gnutar | ||
+ | | Run these commands in a terminal | ||
+ | curl -OL http://ftpmirror.gnu.org/tar/tar-1.27.tar.bz2 | ||
+ | tar xvjf tar-1.27.tar.bz2 | ||
+ | pushd tar-1.27 | ||
+ | ./configure --prefix=/usr/local | ||
+ | make | ||
+ | sudo make install | ||
+ | sudo ln -s /usr/local/bin/tar /usr/local/bin/gnutar | ||
+ | popd | ||
|} | |} | ||
− | + | Alternatively, you can also install via MacPorts | |
+ | |||
+ | </div> | ||
+ | |||
+ | = Reference Build System = | ||
+ | |||
+ | The reference build system for AOO 4.1.x and 4.2.x is a macOS VM with 8x3.33 cores and 24GB of RAM. The AOO 4.1.x VM is running macOS 10.13 (High Sierra) with Xcode 11, but requires the MacOSX10.11.sdk (SDK 10.12 and above do not support QuickTime, which is a requirement for AOO 4.1.x). We use [https://github.com/devernay/xcodelegacy xcodelegacy] to install the required SDK into Xcode (You could also use Xcode7 directly). This setup is also configured to allow us to product the "Official" Community builds for macOS/OSX and supports versions as old as 10.9 (''Mavericks''). On this platform it takes 2-3 hours for a full build. | ||
+ | |||
+ | For AOO 4.2.x and later, we are running macOS 10.15 (Catalina) and Xcode 12.2. This allows us to continue to build for older platforms (as old as OS X '''10.9'''! ) but also sign our releases for Apple Gatekeeper compatibility and deprecate the requirement for a QuickTime-compatible SDK. | ||
+ | |||
+ | If building for your own setup, some of the below may not be required. | ||
+ | |||
+ | == 3rd Party Requirements == | ||
+ | |||
+ | === Installed in /usr/local: === | ||
+ | |||
+ | * Apache ant 1.9.9 (or later) | ||
+ | * dmake 4.13.0 / https://github.com/jimjag/dmake/archive/v4.13.1/dmake-4.13.1.tar.gz (./configure --prefix=/usr/local) | ||
+ | * epm 5.0.0 / https://github.com/jimjag/epm/archive/v5.0.0/epm-5.0.0.tar.gz (./configure --prefix=/usr/local) | ||
+ | * openssl 1.0.2l (or later) (no-shared) | ||
+ | * libxml2-2.9.6 (or later) (--prefix=/usr/local --enable-shared=no --without-iconv) | ||
+ | * libxslt-1.1.31 (or later) (--prefix=/usr/local --enable-shared=no) | ||
+ | * pkg-config 0.29.2 (or later) (--prefix=/usr/local) | ||
+ | * jdk-7u80-macosx-x64 | ||
+ | |||
+ | You will notice that the recommended version of epm for OS X is 4.3 (or later); This is because previous versions required the long deprecated '''''PackageMaker''''' application (as well as '''''PackageMaker''''' being installed in a hardcoded location). Starting with epm 4.3, the official OS X ''pkgbuild'' utility is supported, removing the need for '''''PackageMaker'''''. AOO specific versions of epm and dmake are available [https://github.com/jimjag/ on Github]. | ||
+ | |||
+ | === Installed in /opt/local via MacPorts: === | ||
+ | |||
+ | * autoconf (symlinked to /usr/local/bin) | ||
+ | * gnutar (symlinked to /usr/local/bin) | ||
+ | * perl5 (symlinked to /usr/local/bin) | ||
+ | * subversion | ||
+ | * git | ||
+ | |||
+ | You will also need to install the required Perl packages noted in the general build page since OS X does not include them by default. If you don't want to mix System and User modifications, you can use MacPorts/HomeBrew to install Perl and use this user-land version for these extra packages. | ||
+ | |||
+ | == Local Environment Requirements: == | ||
+ | * Make sure that ''/usr/local/bin'' is in your ''PATH''. | ||
+ | * Set and export JAVA_HOME (export JAVA_HOME=$(/usr/libexec/java_home -v 1.7)) | ||
+ | * Ensure that these env variables are also correct (and exported): | ||
+ | ** ANT_HOME=/usr/local/share/java/apache-ant | ||
+ | ** LIBRARY_PATH=/usr/local/lib | ||
+ | ** C_INCLUDE_PATH=/usr/local/include | ||
+ | ** CPLUS_INCLUDE_PATH=/usr/local/include | ||
+ | |||
+ | == Configure and Build == | ||
+ | |||
+ | {| class="prettytable" border="1" width="100%" | ||
+ | | Run this command in a terminal | ||
+ | ./configure \ | ||
+ | --enable-verbose \ | ||
+ | --with-openldap \ | ||
+ | --enable-category-b \ | ||
+ | --enable-bundled-dictionaries \ | ||
+ | --enable-wiki-publisher \ | ||
+ | --without-junit \ | ||
+ | --with-jdk-home="$JAVA_HOME" \ | ||
+ | --with-ant-home="$ANT_HOME" \ | ||
+ | --with-epm=/usr/local/bin/epm \ | ||
+ | --with-dmake-path=/usr/local/bin/dmake \ | ||
+ | --without-stlport \ | ||
+ | --with-package-format="dmg" \ | ||
+ | --disable-systray \ | ||
+ | --with-alloc=internal \ | ||
+ | --with-lang="${LANGS}" | ||
+ | |} | ||
− | + | The ''LANGS'' env variable should contain the list of languages you wish to build for (e.g. "en-GB en-US es eu fi"). | |
− | + | Continue with the standard, platform independent build instructions. Copies of the official build scripts (and their corresponding ''config.log'' outputs) can be found [https://svn.apache.org/viewvc/openoffice/devtools/build-scripts/ here]. |
Latest revision as of 19:58, 25 June 2021
Template:Documentation/Building Guide AOO TOC
Overview
Building Apache OpenOffice from source code follows the platform independent building guide when the build requirements outlined below are fulfilled.
General build requirements
Please see the general build requirements page.
Mac specific requirements for building AOO 4.1 (and older)
What | Where to get / Remarks |
---|---|
Mac OS X version 10.7 (aka Lion) or later | provided by Apple |
Xcode version 7 or later. | Use the App Store application to get and install it. For Xcode 7 (or newer) some extra steps are needed.
You can also download it free of charge, but a registration at the Apple Developer Connection site is required for that. |
MacOSX SDK | SDKs compatible with OSX 10.7 are automatically provided by installing XCode 7 or newer. That most recent compatible SDK is 10.11; SDKs for 10.12 and above are not supported due to Apple's deprecation of Quicktime, which is needed for vcl. |
gnutar | OSX<=10.8 contains the tool directly, for OSX>=10.9 some extra steps are needed. |
Requirements for Xcode 7 (or newer)
What | Where to get / Remarks |
---|---|
Xcode commandline tools | run this command in a terminal
sudo xcode-select --install |
autoconf | Run these commands in a terminal
curl -OL http://ftpmirror.gnu.org/autoconf/autoconf-2.69.tar.gz tar xvjf autoconf-2.69.tar.gz pushd autoconf-2.69 ./configure --prefix=/usr/local make sudo make install popd |
Alternatively, you can also install via MacPorts
OSX 10.9 (or newer) specific requirements
What | Where to get / Remarks |
---|---|
gnutar | Run these commands in a terminal
curl -OL http://ftpmirror.gnu.org/tar/tar-1.27.tar.bz2 tar xvjf tar-1.27.tar.bz2 pushd tar-1.27 ./configure --prefix=/usr/local make sudo make install sudo ln -s /usr/local/bin/tar /usr/local/bin/gnutar popd |
Alternatively, you can also install via MacPorts
Reference Build System
The reference build system for AOO 4.1.x and 4.2.x is a macOS VM with 8x3.33 cores and 24GB of RAM. The AOO 4.1.x VM is running macOS 10.13 (High Sierra) with Xcode 11, but requires the MacOSX10.11.sdk (SDK 10.12 and above do not support QuickTime, which is a requirement for AOO 4.1.x). We use xcodelegacy to install the required SDK into Xcode (You could also use Xcode7 directly). This setup is also configured to allow us to product the "Official" Community builds for macOS/OSX and supports versions as old as 10.9 (Mavericks). On this platform it takes 2-3 hours for a full build.
For AOO 4.2.x and later, we are running macOS 10.15 (Catalina) and Xcode 12.2. This allows us to continue to build for older platforms (as old as OS X 10.9! ) but also sign our releases for Apple Gatekeeper compatibility and deprecate the requirement for a QuickTime-compatible SDK.
If building for your own setup, some of the below may not be required.
3rd Party Requirements
Installed in /usr/local:
- Apache ant 1.9.9 (or later)
- dmake 4.13.0 / https://github.com/jimjag/dmake/archive/v4.13.1/dmake-4.13.1.tar.gz (./configure --prefix=/usr/local)
- epm 5.0.0 / https://github.com/jimjag/epm/archive/v5.0.0/epm-5.0.0.tar.gz (./configure --prefix=/usr/local)
- openssl 1.0.2l (or later) (no-shared)
- libxml2-2.9.6 (or later) (--prefix=/usr/local --enable-shared=no --without-iconv)
- libxslt-1.1.31 (or later) (--prefix=/usr/local --enable-shared=no)
- pkg-config 0.29.2 (or later) (--prefix=/usr/local)
- jdk-7u80-macosx-x64
You will notice that the recommended version of epm for OS X is 4.3 (or later); This is because previous versions required the long deprecated PackageMaker application (as well as PackageMaker being installed in a hardcoded location). Starting with epm 4.3, the official OS X pkgbuild utility is supported, removing the need for PackageMaker. AOO specific versions of epm and dmake are available on Github.
Installed in /opt/local via MacPorts:
- autoconf (symlinked to /usr/local/bin)
- gnutar (symlinked to /usr/local/bin)
- perl5 (symlinked to /usr/local/bin)
- subversion
- git
You will also need to install the required Perl packages noted in the general build page since OS X does not include them by default. If you don't want to mix System and User modifications, you can use MacPorts/HomeBrew to install Perl and use this user-land version for these extra packages.
Local Environment Requirements:
- Make sure that /usr/local/bin is in your PATH.
- Set and export JAVA_HOME (export JAVA_HOME=$(/usr/libexec/java_home -v 1.7))
- Ensure that these env variables are also correct (and exported):
- ANT_HOME=/usr/local/share/java/apache-ant
- LIBRARY_PATH=/usr/local/lib
- C_INCLUDE_PATH=/usr/local/include
- CPLUS_INCLUDE_PATH=/usr/local/include
Configure and Build
Run this command in a terminal
./configure \ --enable-verbose \ --with-openldap \ --enable-category-b \ --enable-bundled-dictionaries \ --enable-wiki-publisher \ --without-junit \ --with-jdk-home="$JAVA_HOME" \ --with-ant-home="$ANT_HOME" \ --with-epm=/usr/local/bin/epm \ --with-dmake-path=/usr/local/bin/dmake \ --without-stlport \ --with-package-format="dmg" \ --disable-systray \ --with-alloc=internal \ --with-lang="${LANGS}" |
The LANGS env variable should contain the list of languages you wish to build for (e.g. "en-GB en-US es eu fi").
Continue with the standard, platform independent build instructions. Copies of the official build scripts (and their corresponding config.log outputs) can be found here.