Build Environment Effort/New Build System Requirements

From Apache OpenOffice Wiki
< Build Environment Effort
Revision as of 10:51, 1 February 2010 by B michaelsen (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Edit.png

Build Environment Effort

Quick Navigation

About this template


Introduction

This page lists the requirements for a new build system for OpenOffice.org. In addition, it discusses how easy or hard these aims are archiveable with different alternatives.

Build Configuration

  • Current build system (autoconf): Autoconf is a huge old mess, but it has lean deps (POSIX sh) as long as there are no needs to change the configuration. A huge part of the configuration is custom code and not standard autoconf macros.
  • GNU make: GNU make does not provide a configuration tool itself.
  • cmake: CMake provides tools to check the configuration of the build system, but since OOo uses only a few standard checks, a lot of code would need to be rewritten.

Lean dependencies

To ensure a long life and maximum portability (even to platforms that might not even be available yet) for the new build system it should depend on as little as possible.

  • Current build system (build.pl and dmake): The current build system has fat dependencies. It depends on Perl and dmake (which has to be maintained by OOo development). In addition a wide range of tools are being used: zip, awk, GNU coreutils, GNU findutils, ant (please add more ...)
  • GNU make: GNU make is lean in its direct dependencies -- it is part of the GNU toolchain and thus available on all platforms where gcc is available.
  • cmake: CMake aims to be highly portable, but it is not usually available on the default install of many platforms. Also it does not build itself, but requires another native build system to be available on the platform (GNU make on unix).

Debugging

  • Current build system (build.pl and dmake): The current build system is not easy to debug because its code is old and the used tools are too adding needless complexity (Perl, dmake).
  • GNU make: The new implementation is very clean. It should be a lot easier to debug and use for common developers.
  • cmake: CMake generates native build system files. Bugs in the generated makefiles might be a lot harder to track down to their source.


"Native" Builds on Windows

Personal tools