| 1 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> |
| 2 | <html> |
| 3 | <head> |
| 4 | <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15"> |
| 5 | <meta name="Author" content="KaiRo - Robert Kaiser"> |
| 6 | <title>Das Mozilla-Build-System - Makefiles</title> |
| 7 | <link rel="stylesheet" type="text/css" href="slides.css"> |
| 8 | <script type="text/javascript" src="slides.js"></script> |
| 9 | <link rel="contents" href="index.html" title="Übersicht"> |
| 10 | <link rel="index" href="toc.html" title="Inhalt"> |
| 11 | <link rel="start" href="index.html" title="Beginn"> |
| 12 | <link rel="first" href="slide_introduction.html" title="Erste Seite"> |
| 13 | <link rel="previous" href="slide_buildapp.html" title="Vorige Seite"> |
| 14 | <link rel="next" href="slide_jarmaker.html" title="Nächste Seite"> |
| 15 | <link rel="last" href="slide_end.html" title="Letzte Seite"> |
| 16 | </head> |
| 17 | <body> |
| 18 | <div id="header"><div id="header-text">Das Mozilla-Build-System</div> |
| 19 | <img id="headerlogo" src="template/header-logo.png" alt=""> |
| 20 | </div> |
| 21 | <div id="slidenav"><div id="subheader-text">MAOW Berlin 2009</div> |
| 22 | <a href="toc.html" accesskey="h">Inhalt</a> || |
| 23 | <a href="index.html" accesskey="B">Beginn</a> || |
| 24 | <a href="slide_buildapp.html" accesskey="Z">< Zurück</a> | |
| 25 | <a href="slide_jarmaker.html" id="goNext" accesskey="W">Weiter ></a> |
| 26 | </div> |
| 27 | |
| 28 | <h1>Makefile-Regeln, der Kern der Sache</h1> |
| 29 | |
| 30 | <div class="simplebox"> |
| 31 | <ul> |
| 32 | <li>Makefiles enthalten die Regeln für den Bau jeglichen Codes (Makefile |
| 33 | im "objdir" wird aus Makefile.in in Quellcode-Verzeichnis erzeugt)</li> |
| 34 | <li><code>mozilla-central/extensions/testext/Makefile.in</code>: |
| 35 | <pre># [...Lizenz-Kopf...] |
| 36 | DEPTH=../.. |
| 37 | topsrcdir=@top_srcdir@ |
| 38 | srcdir=@srcdir@ |
| 39 | VPATH=@srcdir@ |
| 40 | |
| 41 | # Allgemeine Konfigurations-Variablen importieren |
| 42 | include $(DEPTH)/config/autoconf.mk |
| 43 | |
| 44 | # Build-System-interner Name des Moduls (der Erweiterung) |
| 45 | MODULE = testext |
| 46 | # Name des Verzeichnisses in xpi-stage/ (normalerweise gleich wie MODULE) |
| 47 | XPI_NAME = testext |
| 48 | # Einträge aus paralleler jar.mn kommen in Erweiterungs-eigenes chrome.manifest |
| 49 | USE_EXTENSION_MANIFEST = 1 |
| 50 | # Haupt-Makefile der Erweiterung mit dieser ID (wie in install.rdf angegeben) |
| 51 | INSTALL_EXTENSION_ID = testext@example.org |
| 52 | # Dateiname der fertigen XPI-Datei in xpi-stage |
| 53 | XPI_PKGNAME = testext-$(MOZ_APP_VERSION) |
| 54 | |
| 55 | # Dateien, die in das XPI-Paket kopiert werden sollen |
| 56 | DIST_FILES = install.rdf |
| 57 | |
| 58 | # Unterverzeichnisse, in denen weitere Makefiles enthalten sind |
| 59 | DIRS = locales subtest |
| 60 | |
| 61 | # zu installierende XPCOM-Komponenten |
| 62 | EXTRA_COMPONENTS = components/testext-service.js |
| 63 | |
| 64 | # rules.mk verwendet die Variablen und macht die eigentliche Arbeit |
| 65 | include $(topsrcdir)/config/rules.mk</pre> |
| 66 | </li> |
| 67 | <li><code>MODULE</code> und <code>XPI_NAME</code> sollten in jedem Makefile |
| 68 | der Erweiterung angegeben werden, damit Dateien im XPI landen</li> |
| 69 | </ul> |
| 70 | </div> |
| 71 | </div> |
| 72 | |
| 73 | </body> |
| 74 | </html> |