+++ /dev/null
-surman-freedom-foto:
-http://www.flickr.com/photos/28959625@N04/3324030644/in/set-72157614734249362/
\ No newline at end of file
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
+ <meta name="Author" content="KaiRo - Robert Kaiser">
+ <title>Das Mozilla-Build-System - Anwendungs-Dateien</title>
+ <link rel="stylesheet" type="text/css" href="slides.css">
+ <script type="text/javascript" src="slides.js"></script>
+ <link rel="contents" href="index.html" title="Übersicht">
+ <link rel="index" href="toc.html" title="Inhalt">
+ <link rel="start" href="index.html" title="Beginn">
+ <link rel="first" href="slide_introduction.html" title="Erste Seite">
+ <link rel="previous" href="slide_jarmaker.html" title="Vorige Seite">
+ <link rel="next" href="slide_docs.html" title="Nächste Seite">
+ <link rel="last" href="slide_end.html" title="Letzte Seite">
+</head>
+<body>
+<div id="header"><div id="header-text">Das Mozilla-Build-System</div>
+ <img id="headerlogo" src="template/header-logo.png" alt="">
+</div>
+<div id="slidenav"><div id="subheader-text">MAOW Berlin 2009</div>
+ <a href="toc.html" accesskey="h">Inhalt</a> ||
+ <a href="index.html" accesskey="B">Beginn</a> ||
+ <a href="slide_jarmaker.html" accesskey="Z">< Zurück</a> |
+ <a href="slide_docs.html" id="goNext" accesskey="W">Weiter ></a>
+</div>
+
+<h1>Dateien, die eine Anwendung implementieren muss</h1>
+
+<div class="simplebox">
+<ul>
+ <li>Genaue Details dazu würden den Rahmen hier sprengen, gute Beispiele
+ liefern Fennec sowie die anderen Mozilla-Anwendungen</li>
+ <li>Alle Dateien sind in <code>mozilla-central/testapp/</code></li>
+ <li><code>Makefile.in</code> ist das Haupt-Makefile, üblicherweise mit
+ einem <code>app</code>-Unterverzeichnis als letztes Element in DIRS</li>
+ <li><code>build.mk</code> wird in das Haupt-Makefile des ganzen Build-Systems
+ eingebunden und setzt einige grundlegende Variablen wie <code>TIERS</code>
+ sowie Make-Ziele auf oberster Ebene des Systems</li>
+ <li><code>confvars.sh</code> gibt Variablen für das
+ <code>configure</code>-Skript an</li>
+ <li><code>makefiles.sh</code> enthält eine Liste von Makefiles, die von
+ <code>configure</code> frühzeitig generiert werden, was viel Zeit spart
+ (auch in <code>extensions/testext/</code> unterstützt)</li>
+ <li><code>app/Makefile.in</code> mit Befehlen zur Erstellung der
+ ausführbaren Anwendungsdatei und des Mac-dmg-Pakets, das alle Dateien
+ der Anwendung enthält (daher am Ende der Liste, alles nachher landet
+ nicht im dmg!)</li>
+</ul>
+</div>
+</div>
+
+</body>
+</html>
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
+ <meta name="Author" content="KaiRo - Robert Kaiser">
+ <title>Das Mozilla-Build-System - Anwendung bauen</title>
+ <link rel="stylesheet" type="text/css" href="slides.css">
+ <script type="text/javascript" src="slides.js"></script>
+ <link rel="contents" href="index.html" title="Übersicht">
+ <link rel="index" href="toc.html" title="Inhalt">
+ <link rel="start" href="index.html" title="Beginn">
+ <link rel="first" href="slide_introduction.html" title="Erste Seite">
+ <link rel="previous" href="slide_mozconfig.html" title="Vorige Seite">
+ <link rel="next" href="slide_makefiles.html" title="Nächste Seite">
+ <link rel="last" href="slide_end.html" title="Letzte Seite">
+</head>
+<body>
+<div id="header"><div id="header-text">Das Mozilla-Build-System</div>
+ <img id="headerlogo" src="template/header-logo.png" alt="">
+</div>
+<div id="slidenav"><div id="subheader-text">MAOW Berlin 2009</div>
+ <a href="toc.html" accesskey="h">Inhalt</a> ||
+ <a href="index.html" accesskey="B">Beginn</a> ||
+ <a href="slide_mozconfig.html" accesskey="Z">< Zurück</a> |
+ <a href="slide_makefiles.html" id="goNext" accesskey="W">Weiter ></a>
+</div>
+
+<h1>XULRunner-Anwendung mit Extra-Erweiterung bauen</h1>
+
+<div class="simplebox">
+<ul>
+ <li><code>mozconfig</code>:
+ <pre># mozconfig-testapp
+# objdir setzten, relativ zum Quellcode
+mk_add_options MOZ_OBJDIR=../objdir-testapp
+# zwei Projekte bauen: XULRunner und unser Anwendung
+mk_add_options MOZ_BUILD_PROJECTS="xulrunner testapp"
+ac_add_app_options xulrunner --enable-application=xulrunner
+ac_add_app_options testapp --enable-application=testapp
+ac_add_app_options testapp --with-libxul-sdk=../xulrunner/dist
+# Standard-Erweiterungen plus testext bauen
+ac_add_app_options testapp --enable-extensions=default,testext</pre>
+ </li>
+ <li>Unsere Anwendung liegt in <code>mozilla-central/testapp/</code></li>
+ <li>Unsere Erweiterung liegt in <code>mozilla-central/extensions/testext/</code></li>
+ <li>Befehle zum "Bauen":
+ <pre>cd mozilla-central
+MOZCONFIG=../mozconfig-testapp make -f client.mk build</pre>
+ </li>
+ <li>XULRunner findet sich in <code>objdir-testapp/xulrunner/dist/bin/</code>,
+ die ausführbare Anwendung findet sich in
+ <code>objdir-testapp/testapp/dist/bin/</code>, inklusive der
+ vorinstallierten Erweiterung</li>
+ <li><a href="http://hg.mozilla.org/mobile-browser">mobile-browser</a> (Fennec)
+ ist ein gutes Beispiel für eine XULRunner-Anwendung, die das
+ Build-System verwendet</li>
+</ul>
+</div>
+</div>
+
+</body>
+</html>
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
+ <meta name="Author" content="KaiRo - Robert Kaiser">
+ <title>Das Mozilla-Build-System - Dokumente</title>
+ <link rel="stylesheet" type="text/css" href="slides.css">
+ <script type="text/javascript" src="slides.js"></script>
+ <link rel="contents" href="index.html" title="Übersicht">
+ <link rel="index" href="toc.html" title="Inhalt">
+ <link rel="start" href="index.html" title="Beginn">
+ <link rel="first" href="slide_introduction.html" title="Erste Seite">
+ <link rel="previous" href="slide_appfiles.html" title="Vorige Seite">
+ <link rel="next" href="slide_end.html" title="Nächste Seite">
+ <link rel="last" href="slide_end.html" title="Letzte Seite">
+</head>
+<body>
+<div id="header"><div id="header-text">Das Mozilla-Build-System</div>
+ <img id="headerlogo" src="template/header-logo.png" alt="">
+</div>
+<div id="slidenav"><div id="subheader-text">MAOW Berlin 2009</div>
+ <a href="toc.html" accesskey="h">Inhalt</a> ||
+ <a href="index.html" accesskey="B">Beginn</a> ||
+ <a href="slide_appfiles.html" accesskey="Z">< Zurück</a> |
+ <a href="slide_end.html" id="goNext" accesskey="W">Weiter ></a>
+</div>
+
+<h1>Dokumente/Links zum Build-System</h1>
+
+<div class="simplebox">
+<ul>
+ <li>(Fast) alle hier aufgeführten Dokumente sind Englisch</li>
+ <li><a href="https://developer.mozilla.org/en/Build_Documentation">MDC:
+ Build_Documentation</a> - Übersicht und erste Anlaufstellen für
+ Build-Dokumentation</li>
+ <li>MDC: Wie das Build System in
+ <a href="https://developer.mozilla.org/en/How_Mozilla's_build_system_works">Mozilla</a>
+ und <a href="https://developer.mozilla.org/en/How_comm-central's_build_system_works">comm-central</a>
+ funktioniert - einige Spezialitäten unserer Systeme
+ <li><a href="https://developer.mozilla.org/en/Creating_Custom_Firefox_Extensions_with_the_Mozilla_Build_System">MDC:
+ Firefox-Erweiterungen mit dem Build-System</a> - an sich gut, aber etwas
+ veraltet (noch CVS, Firefox 1.5)</li>
+ <li><a href="https://developer.mozilla.org/en/Creating_XULRunner_Apps_with_the_Mozilla_Build_System">MDC:
+ XULRunner-Erweiterungen mit dem Build-System</a> - etwas neuer, aber auch
+ noch mit CVS, mehr Details zu Dingen auf meiner vorigen Folie</li>
+ <li><a href="http://zenit.senecac.on.ca/wiki/index.php/How_the_Build_Works">How
+ the Build Works</a> - noch etwas älterer Gastvortrag in der
+ Open-Source-Ausbildung am Seneca-Collage</li>
+ <li><a href="news://news.mozilla.org/mozilla.dev.builds">mozilla.dev.builds
+ auf news.mozilla.org</a> und
+ <a href="irc://irc.mozilla.org/developers">#developers auf irc.mozilla.org</a>
+ für Fragen</li>
+ <li>Auf Deutsch: <a href="http://jh.junetz.de/mozilla/mozbuild.php4">SeaMonkey
+ selbst gebaut</a> von Jens Hatlak</li>
+</ul>
+</div>
+</div>
+
+</body>
+</html>
<link rel="index" href="toc.html" title="Inhalt">
<link rel="start" href="index.html" title="Beginn">
<link rel="first" href="slide_introduction.html" title="Erste Seite">
- <link rel="previous" href="slide_introduction.html" title="Vorige Seite">
+ <link rel="previous" href="slide_docs.html" title="Vorige Seite">
<!-- link rel="next" href="slide_xxx.html" title="Nächste Seite" -->
<link rel="last" href="slide_end.html" title="Letzte Seite">
</head>
<div id="slidenav"><div id="subheader-text">MAOW Berlin 2009</div>
<a href="toc.html" accesskey="h">Inhalt</a> ||
<a href="index.html" accesskey="B">Beginn</a> ||
- <a href="slide_introduction.html" accesskey="Z">< Zurück</a> |
+ <a href="slide_docs.html" accesskey="Z">< Zurück</a> |
<span class="nolink">Weiter ></span>
</div>
-<h1>Offene Diskussion</h1>
+<h1>Demo & Offene Diskussion</h1>
<div class="captionedbox">
<p class="captionedbox-caption">Danke für Ihre Aufmerksamkeit!</p>
</div>
<div class="simplebox">
-Verbreiten Sie das Mozilla-Manifest!
-<br><span class="hilite"><a href="http://www.mozilla.org/about/manifesto">http://www.mozilla.org/about/manifesto</a></span>
+Zum Schluss:
+<br>Auch wenn es manchmal kompliziert scheint -
+<br><span style="font-size:larger">(: DON'T PANIC! :)</span>
</div>
</body>
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
+ <meta name="Author" content="KaiRo - Robert Kaiser">
+ <title>Das Mozilla-Build-System - Einsteig</title>
+ <link rel="stylesheet" type="text/css" href="slides.css">
+ <script type="text/javascript" src="slides.js"></script>
+ <link rel="contents" href="index.html" title="Übersicht">
+ <link rel="index" href="toc.html" title="Inhalt">
+ <link rel="start" href="index.html" title="Beginn">
+ <link rel="first" href="slide_introduction.html" title="Erste Seite">
+ <link rel="previous" href="slide_reasons.html" title="Vorige Seite">
+ <link rel="next" href="slide_mozconfig.html" title="Nächste Seite">
+ <link rel="last" href="slide_end.html" title="Letzte Seite">
+</head>
+<body>
+<div id="header"><div id="header-text">Das Mozilla-Build-System</div>
+ <img id="headerlogo" src="template/header-logo.png" alt="">
+</div>
+<div id="slidenav"><div id="subheader-text">MAOW Berlin 2009</div>
+ <a href="toc.html" accesskey="h">Inhalt</a> ||
+ <a href="index.html" accesskey="B">Beginn</a> ||
+ <a href="slide_reasons.html" accesskey="Z">< Zurück</a> |
+ <a href="slide_mozconfig.html" id="goNext" accesskey="W">Weiter ></a>
+</div>
+
+<h1>Einstieg ins Build-System</h1>
+
+<div class="simplebox">
+<ul>
+ <li>DOM-Inspector, Venkman und ChatZilla sind gute Beispiel-Erweiterungen
+ für die Build-System-Einbindung</li>
+ <li>Verschiedene <a href="https://developer.mozilla.org/en/Build_Documentation#Build_prerequisites">Werkzeuge</a>
+ werden vorausgesetzt: MozillaBuild und Windows SDK(s) auf Windows;
+ Xcode, Mercurial, libIDL, autoconf213 auf Mac OS X und
+ div. Entwicklerpakete, inkl. autoconf 2.13, Python, Mercurial, GNU make usw.
+ auf Linux</li>
+ <li>Ein Compiler (gcc bzw. unter Windows MSVC, auch in der Gratis-Version)
+ wird für C/C++-Code usw. benötigt, das Packen einer reinen
+ XUL/JS-Erweiterung funktioniert auch ohne</li>
+ <li>Ein <a href="https://developer.mozilla.org/en/Mozilla_Source_Code_%28Mercurial%29">Mozilla-Code-Baum</a>
+ ist notwendig (ca. 450 MB auf der Festplatte!):
+ <pre>hg pull http://hg.mozilla.org/mozilla-central</pre>
+ alternativ dazu ein
+ <a href="http://developer.mozilla.org/en/Comm-central_source_code_%28Mercurial%29">comm-central-Baum</a>
+ (SeaMonkey/Thunderbird/Sunbird, ca. 520 MB):
+ <pre>hg pull http://hg.mozilla.org/comm-central
+cd comm-central
+python client.py checkout</pre>
+ </li>
+ <li>Will man Mozilla-Anwendungen kompilieren, nochmal 230-300 MB pro Anwendung
+ (mit einem Code-Baum können mehrere Anwendungen kompiliert werden)</li>
+</ul>
+</div>
+</div>
+
+</body>
+</html>
<link rel="start" href="index.html" title="Beginn">
<link rel="first" href="slide_introduction.html" title="Erste Seite">
<link rel="previous" href="index.html" title="Vorige Seite">
- <link rel="next" href="slide_end.html" title="Nächste Seite">
+ <link rel="next" href="slide_thesystem.html" title="Nächste Seite">
<link rel="last" href="slide_end.html" title="Letzte Seite">
</head>
<body>
<a href="toc.html" accesskey="h">Inhalt</a> ||
<a href="index.html" accesskey="B">Beginn</a> ||
<a href="index.html" accesskey="Z">< Zurück</a> |
- <a href="slide_end.html" id="goNext" accesskey="W">Weiter ></a>
+ <a href="slide_thesystem.html" id="goNext" accesskey="W">Weiter ></a>
</div>
<h1>Vorstellung</h1>
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
+ <meta name="Author" content="KaiRo - Robert Kaiser">
+ <title>Das Mozilla-Build-System - JAR-Maker</title>
+ <link rel="stylesheet" type="text/css" href="slides.css">
+ <script type="text/javascript" src="slides.js"></script>
+ <link rel="contents" href="index.html" title="Übersicht">
+ <link rel="index" href="toc.html" title="Inhalt">
+ <link rel="start" href="index.html" title="Beginn">
+ <link rel="first" href="slide_introduction.html" title="Erste Seite">
+ <link rel="previous" href="slide_makefiles.html" title="Vorige Seite">
+ <link rel="next" href="slide_appfiles.html" title="Nächste Seite">
+ <link rel="last" href="slide_end.html" title="Letzte Seite">
+</head>
+<body>
+<div id="header"><div id="header-text">Das Mozilla-Build-System</div>
+ <img id="headerlogo" src="template/header-logo.png" alt="">
+</div>
+<div id="slidenav"><div id="subheader-text">MAOW Berlin 2009</div>
+ <a href="toc.html" accesskey="h">Inhalt</a> ||
+ <a href="index.html" accesskey="B">Beginn</a> ||
+ <a href="slide_makefiles.html" accesskey="Z">< Zurück</a> |
+ <a href="slide_appfiles.html" id="goNext" accesskey="W">Weiter ></a>
+</div>
+
+<h1>Der JAR-Maker und jar.mn-Dateien</h1>
+
+<div class="simplebox">
+<ul>
+ <li>Liegt parallel zu einem Makefile eine <code>jar.mn</code>-Datei
+ (<a href="https://developer.mozilla.org/En/JAR_Manifests">JAR-Manifest</a>)
+ vor, wird sie automatisch abgearbeitet</li>
+ <li><code>mozilla-central/extensions/testext/jar.mn</code>:
+ <pre>testext.jar:
+# Zeilen, die mit % beginnen, werden in chrome.manifest geschrieben
+# Weitere %-Zeichen darin werden durch URL zur .jar-Datei ersetzt
+% content testext %content/testext/ xpcnativewrappers=yes
+% overlay chrome://browser/content/browser.xul chrome://testext/content/testextOverlay.xul
+# Datei aus dem lokalen Verzeichnis an den angegeben Ort in der .jar schreiben
+ content/testext/testext.xul
+# Zeilen, die mit * beginnen, lassen Dateien durch einen <a href="https://developer.mozilla.org/en/Build/Text_Preprocessor">Text-Präprozessor</a> laufen
+* content/testext/testext.js
+# Datei aus einem Unterverzeichnis (oder mit anderm Namen) beziehen
+ content/testext/testextOverlay.xul (overlays/testextOverlay.xul)
+% skin testext classic/1.0 %skin/testext/
+ skin/testext/testext.css (skin/classic/testext.css)
+</pre>
+ </li>
+ <li>Der Text-Präprozessor kann an vielen Stellen im Build-System
+ eingesetzt werden, um Variablen in div. Dateien zu schleusen, beim Bauen auf
+ verschiedenen Plattformen verschiedenen Code zu aktivieren, usw.</li>
+ <li><code>locales</code> funktionieren genauso, aber ich hatte im Makefile auf
+ der letzten Folie ein Unterverzeichnis dafür angegeben</li>
+</ul>
+</div>
+</div>
+
+</body>
+</html>
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
+ <meta name="Author" content="KaiRo - Robert Kaiser">
+ <title>Das Mozilla-Build-System - Makefiles</title>
+ <link rel="stylesheet" type="text/css" href="slides.css">
+ <script type="text/javascript" src="slides.js"></script>
+ <link rel="contents" href="index.html" title="Übersicht">
+ <link rel="index" href="toc.html" title="Inhalt">
+ <link rel="start" href="index.html" title="Beginn">
+ <link rel="first" href="slide_introduction.html" title="Erste Seite">
+ <link rel="previous" href="slide_buildapp.html" title="Vorige Seite">
+ <link rel="next" href="slide_jarmaker.html" title="Nächste Seite">
+ <link rel="last" href="slide_end.html" title="Letzte Seite">
+</head>
+<body>
+<div id="header"><div id="header-text">Das Mozilla-Build-System</div>
+ <img id="headerlogo" src="template/header-logo.png" alt="">
+</div>
+<div id="slidenav"><div id="subheader-text">MAOW Berlin 2009</div>
+ <a href="toc.html" accesskey="h">Inhalt</a> ||
+ <a href="index.html" accesskey="B">Beginn</a> ||
+ <a href="slide_buildapp.html" accesskey="Z">< Zurück</a> |
+ <a href="slide_jarmaker.html" id="goNext" accesskey="W">Weiter ></a>
+</div>
+
+<h1>Makefile-Regeln, der Kern der Sache</h1>
+
+<div class="simplebox">
+<ul>
+ <li>Makefiles enthalten die Regeln für den Bau jeglichen Codes (Makefile
+ im "objdir" wird aus Makefile.in in Quellcode-Verzeichnis erzeugt)</li>
+ <li><code>mozilla-central/extensions/testext/Makefile.in</code>:
+ <pre># [...Lizenz-Kopf...]
+DEPTH=../..
+topsrcdir=@top_srcdir@
+srcdir=@srcdir@
+VPATH=@srcdir@
+
+# Allgemeine Konfigurations-Variablen importieren
+include $(DEPTH)/config/autoconf.mk
+
+# Build-System-interner Name des Moduls (der Erweiterung)
+MODULE = testext
+# Name des Verzeichnisses in xpi-stage/ (normalerweise gleich wie MODULE)
+XPI_NAME = testext
+# Einträge aus paralleler jar.mn kommen in Erweiterungs-eigenes chrome.manifest
+USE_EXTENSION_MANIFEST = 1
+# Haupt-Makefile der Erweiterung mit dieser ID (wie in install.rdf angegeben)
+INSTALL_EXTENSION_ID = testext@example.org
+# Dateiname der fertigen XPI-Datei in xpi-stage
+XPI_PKGNAME = testext-$(MOZ_APP_VERSION)
+
+# Dateien, die in das XPI-Paket kopiert werden sollen
+DIST_FILES = install.rdf
+
+# Unterverzeichnisse, in denen weitere Makefiles enthalten sind
+DIRS = locales subtest
+
+# zu installierende XPCOM-Komponenten
+EXTRA_COMPONENTS = components/testext-service.js
+
+# rules.mk verwendet die Variablen und macht die eigentliche Arbeit
+include $(topsrcdir)/config/rules.mk</pre>
+ </li>
+ <li><code>MODULE</code> und <code>XPI_NAME</code> sollten in jedem Makefile
+ der Erweiterung angegeben werden, damit Datieen im XPI landen</li>
+</ul>
+</div>
+</div>
+
+</body>
+</html>
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
+ <meta name="Author" content="KaiRo - Robert Kaiser">
+ <title>Das Mozilla-Build-System - mozconfig</title>
+ <link rel="stylesheet" type="text/css" href="slides.css">
+ <script type="text/javascript" src="slides.js"></script>
+ <link rel="contents" href="index.html" title="Übersicht">
+ <link rel="index" href="toc.html" title="Inhalt">
+ <link rel="start" href="index.html" title="Beginn">
+ <link rel="first" href="slide_introduction.html" title="Erste Seite">
+ <link rel="previous" href="slide_getstarted.html" title="Vorige Seite">
+ <link rel="next" href="slide_buildapp.html" title="Nächste Seite">
+ <link rel="last" href="slide_end.html" title="Letzte Seite">
+</head>
+<body>
+<div id="header"><div id="header-text">Das Mozilla-Build-System</div>
+ <img id="headerlogo" src="template/header-logo.png" alt="">
+</div>
+<div id="slidenav"><div id="subheader-text">MAOW Berlin 2009</div>
+ <a href="toc.html" accesskey="h">Inhalt</a> ||
+ <a href="index.html" accesskey="B">Beginn</a> ||
+ <a href="slide_getstarted.html" accesskey="Z">< Zurück</a> |
+ <a href="slide_buildapp.html" id="goNext" accesskey="W">Weiter ></a>
+</div>
+
+<h1>Die Einstellungen - mozconfig</h1>
+
+<div class="simplebox">
+<ul>
+ <li>Eine <code>mozconfig</code>-Datei enthält alle Einstellungen für
+ einen Build-System-Durchlauf:
+ <pre># mozconfig-testext
+# objdir setzten, relativ zum Quellcode
+mk_add_options MOZ_OBJDIR=../objdir-testext
+# nur testext-Erweiterung bauen
+ac_add_options --enable-application=extensions
+ac_add_options --enable-extensions=testext
+# Dieses Beispiel braucht keinen Compiler
+ac_add_options --disable-compile-environment</pre>
+ </li>
+ <li>Unsere Erweiterung liegt in <code>mozilla-central/extensions/testext/</code></li>
+ <li>Befehle zum "Bauen":
+ <pre>cd mozilla-central
+MOZCONFIG=../mozconfig-testext make -f client.mk configure
+cd ../objdir-testext
+make -C extensions</pre>
+ </li>
+ <li>Das fertige XPI-Paket findet sich in
+ <code>objdir-testext/dist/xpi-stage/</code> und eine "vorinstallierte"
+ Version in <code>objdir-testext/dist/bin/extensions</code></li>
+</ul>
+</div>
+</div>
+
+</body>
+</html>
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
+ <meta name="Author" content="KaiRo - Robert Kaiser">
+ <title>Das Mozilla-Build-System - Gründe;</title>
+ <link rel="stylesheet" type="text/css" href="slides.css">
+ <script type="text/javascript" src="slides.js"></script>
+ <link rel="contents" href="index.html" title="Übersicht">
+ <link rel="index" href="toc.html" title="Inhalt">
+ <link rel="start" href="index.html" title="Beginn">
+ <link rel="first" href="slide_introduction.html" title="Erste Seite">
+ <link rel="previous" href="slide_thesystem.html" title="Vorige Seite">
+ <link rel="next" href="slide_getstarted.html" title="Nächste Seite">
+ <link rel="last" href="slide_end.html" title="Letzte Seite">
+</head>
+<body>
+<div id="header"><div id="header-text">Das Mozilla-Build-System</div>
+ <img id="headerlogo" src="template/header-logo.png" alt="">
+</div>
+<div id="slidenav"><div id="subheader-text">MAOW Berlin 2009</div>
+ <a href="toc.html" accesskey="h">Inhalt</a> ||
+ <a href="index.html" accesskey="B">Beginn</a> ||
+ <a href="slide_thesystem.html" accesskey="Z">< Zurück</a> |
+ <a href="slide_getstarted.html" id="goNext" accesskey="W">Weiter ></a>
+</div>
+
+<h1>Erweiterungen/XULapps & Build-System</h1>
+
+<div class="captionedbox">
+<p class="captionedbox-caption">Warum das Build-System für Erweiterungen
+ oder XULRunner-Anwendungen verwenden?</p>
+<div class="captionedbox-content">
+<ul>
+ <li>Falls C++-Komponenten vorhanden sind oder benötigt werden (sollten
+ aber vermieden werden)</li>
+ <li>Erweiterungen können sich in selbstkompilierte Anwendung
+ vorinstallieren</li>
+ <li>XULRunner-Anwendungen können direkt ausführbare Dateien oder sogar
+ Installationsprogramme erstellen</li>
+ <li>Nutzen der gleichen Verfahren, die Mozilla-Anwendungen verwenden</li>
+ <li>Erlaubt Zugriff auf eine Menge von Funktionen/Skripten, die man nicht
+ selbst schreiben oder warten muss</li>
+ <li>Erlaubt einfachen Einbau der Erweiterungsfunktionalitäten in eine
+ komplette Mozilla-Anwendung, z.B. wenn man eine veränderte (und
+ umbenannte) Version von Firefox zusammenstellen will oder die Erweiterung
+ als Bestandteil in SeaMonkey eingebaut werden soll.</li>
+</ul>
+</div>
+</div>
+
+</body>
+</html>
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
+ <meta name="Author" content="KaiRo - Robert Kaiser">
+ <title>Das Mozilla-Build-System - Das System</title>
+ <link rel="stylesheet" type="text/css" href="slides.css">
+ <script type="text/javascript" src="slides.js"></script>
+ <link rel="contents" href="index.html" title="Übersicht">
+ <link rel="index" href="toc.html" title="Inhalt">
+ <link rel="start" href="index.html" title="Beginn">
+ <link rel="first" href="slide_introduction.html" title="Erste Seite">
+ <link rel="previous" href="slide_introduction.html" title="Vorige Seite">
+ <link rel="next" href="slide_reasons.html" title="Nächste Seite">
+ <link rel="last" href="slide_end.html" title="Letzte Seite">
+</head>
+<body>
+<div id="header"><div id="header-text">Das Mozilla-Build-System</div>
+ <img id="headerlogo" src="template/header-logo.png" alt="">
+</div>
+<div id="slidenav"><div id="subheader-text">MAOW Berlin 2009</div>
+ <a href="toc.html" accesskey="h">Inhalt</a> ||
+ <a href="index.html" accesskey="B">Beginn</a> ||
+ <a href="slide_introduction.html" accesskey="Z">< Zurück</a> |
+ <a href="slide_reasons.html" id="goNext" accesskey="W">Weiter ></a>
+</div>
+
+<h1>Das Build-System</h1>
+
+<div class="simplebox">
+<ul>
+ <li>"Baut" eine gesamte Mozilla-basierende Anwendung (Firefox, Thunderbird,
+ SeaMonkey, usw.) inklusive "eingebauter" Erweiterungen, wenn vorhanden</li>
+ <li>Gleiches System auf allen Plattformen, die Mozilla unterstützt (Windows,
+ MacOS X, Linux, OS/2, Solaris, ...)</li>
+ <li>Derzeit großteils auf GNU make aufgebaut, inkl. Unix-Shell-Kommandos,
+ etwas autoconf (2.13!), einige Perl- und Python-Skripte</li>
+ <li>Schlechte Dokumentation der Interna, eine Menge sehr komplexer Skripte und
+ alter Code, niemand versteht alle Teile</li>
+ <li>DON'T PANIC! - Man muss nicht alle Details verstehen, um es zu verwenden,
+ die Bedienung ist (meist) durchaus verständlich</li>
+ <li>Aktuelle Entwicklung: <a href="http://benjamin.smedbergs.us/pymake/">pymake</a>,
+ soll alles auf Python-Basis vereinheitlichen und vereinfachen</li>
+</ul>
+</div>
+
+</body>
+</html>
-surman-freedom-foto:
-http://www.flickr.com/photos/28959625@N04/3324030644/in/set-72157614734249362/
\ No newline at end of file
+https://developer.mozilla.org/en/Extensions_support_in_SeaMonkey_2
\ No newline at end of file