Build Environment Effort/Split Build
From Apache OpenOffice Wiki
		
		
		
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Requirements
- The split parts should be buildable in an acceptable time.
 - The split should group modules together that have something in common.
 - The boundaries between the groups should be along stable APIs where they exist code and non-code modules should be separated.
 - There should be no cross build dependencies between groups (module A in group 1 depends on module B in group 2 and module C in group 2 depends on module D in group 1).
 - There should be no cross runtime dependencies between groups (module A in group 1 depends on module B in group 2 and module C in group 2 depends on module D in group 1).
 
Proposal for a code architecture
Based on the investigations described here I have a first proposal for an architecture supporting a split build:
I made tests on two platforms (Ubuntu Jaunty, Windows with PCH). Here are some results for Linux (all data has been collect on my Toshiba Tecra M5 notebook with 2 GHz Core 2 Duo and 4 GB RAM):
| extern | 00:17:29 | 00:23:07 | 
| ure | 00:07:26 | 00:14:30 | 
| odk | 00:03:13 | 00:16:34 | 
| common | 00:19:05 | 00:25:45 | 
| content | 00:01:18 | 00:04:07 | 
| deployment | 00:01:23 | 00:03:43 | 
| gui | 00:11:04 | 00:15:33 | 
| framework | 00:25:51 | 00:27:55 | 
| binfilter | 00:17:37 | 00:28:51 | 
| toplevel | 00:10:43 | 00:14:46 | 
| base | 00:07:32 | 00:13:38 | 
| draw | 00:11:46 | 00:07:32 | 
| calc | 00:14:40 | 00:23:20 | 
| writer | 00:19:37 | 00:18:37 | 
| extensions | 00:01:20 | 00:03:20 | 
| packimages | 00:00:53 | 00:03:08 | 
| postprocess | 00:00:02 | 00:00:43 | 
| instset | 00:05:21 | 00:10:10 | 
| total | 02:56:20 | 04:15:19 | 
| “nothing to do” | 00:02:31 | 00:21:12 (00:06:24 without PCH) | 
Next steps
The huge "common" group could be split up. Here's a build dependency diagram of the modules in it:


