Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Gbuild: Finishing the beast

Gbuild: Finishing the beast

Status update on the migration to the new build system
LibreOffice conference, Paris, October 2011

Bjoern Michaelsen

October 12, 2011
Tweet

More Decks by Bjoern Michaelsen

Other Decks in Programming

Transcript

  1. 3 gbuild -- Finishing the Beast Status Quo: Initial Goals

    Scalability Lean Dependencies No Custom Tooling Full Dependencies Ease of Use Code Quality Multiple Repository Support
  2. 6 gbuild -- Finishing the Beast Status Quo: Contributors David

    Tardon (138) Matúš Kukan (122 + 25 feature/gbuild) Bjoern Michaelsen (112) Mathias Bauer (102) Michael Stahl (66) Peter Foley (35) Phillip Lohmann (18) Hans-Joachim Lankenau (14) Norbert Thiebaud (11) Ocke Jansen, Caolán McNamara (9) Jens-Heiner Rechtien (7) Tor Lillquist (4) Carsten Driesner, Cédric Bosdonnat, Jan Holesovsky, Mikhail Voytenko (3) Kurt Zenker, Stephan Bergmann, Tobias Krause, Vladimir Glazounov (2) Daniel Rentz, Frank Schoenheit, Juergen Schmidt, Martin Hollmichel, Michael Meeks, Miklos Vajna, Radek Doulik, Rüdiger Timm (1)
  3. 7 gbuild -- Finishing the Beast Status Quo: Progress external

    done to be integrated to be removed connectivity, ucb, extensions rest
  4. 9 gbuild -- Finishing the Beast Hidden Gems I didn't

    discover curves; I only uncovered them. Mae West make help make gb_COLOR=T make showdeliverables
  5. 10 gbuild -- Finishing the Beast For Speedfreaks If programming

    languages were cars. C is a racing car that goes incredibly fast but breaks down every fifty miles. http://www.cs.caltech.edu/~mvanier/hacking/rants/cars.html make gb_CHECKOBJECTOWNER= make gb_FULLDEPS= make -j30 -l9
  6. 12 gbuild -- Finishing the Beast Kill set_soenv Insanity: doing

    the same thing over and over again and expecting different results. – Albert Einstein ./autogen.sh calls autoconf to generate ./configure, and calls it ./configure uses autotools to generate set_soenv and calls it ./set_soenv is a perl script that generates a shell script (toplevel) make calls bash and lets it parse the shell script before calling build.pl to start a build
  7. 13 gbuild -- Finishing the Beast Kill Multiple Repository Support

    When accessorising, always take off the last thing you put on. Coco Chanel Multiple Repository Support is unused. Thus it is subject to bitrot ... … and already broken.
  8. 14 gbuild -- Finishing the Beast Runnable Solver Simplicity is

    prerequisite for reliability. Edsger Dijkstra Make scp2 create output directly from workdir (or replace it from scratch) Make linkoo link directly to workdir only When replacing scp2, linkoo functionality should be part of the replacement
  9. 15 gbuild -- Finishing the Beast Minor Cleanups If only

    for the sake of elegance, I try to remain morally pure. Marcel Proust Kill multilayer support once Libreoffice 4 API is around Use either $(eval $(call ..)) or $(call …) consistently Remove header copying
  10. 16 gbuild -- Finishing the Beast Make gbuild the New

    Boss Meet the new boss Same as the old boss. The Who – Wont get fooled again Make gbuild the toplevel builder which triggers build.pl in the remaining modules Speedup Mostly implicit Dependencies Allows us to proceed with enabling advanced gbuild features
  11. 17 gbuild -- Finishing the Beast All text and image

    content in this document is licensed under the Creative Commons Attribution-Share Alike 3.0 License (unless otherwise specified). "LibreOffice" and "The Document Foundation" are registered trademarks. Their respective logos and icons are subject to international copyright laws. The use of these therefore is subject to the trademark policy. Thank you!