1 # German translation for anjuta.
2 # Copyright (C) 2018 anjuta's COPYRIGHT HOLDER
3 # This file is distributed under the same license as the anjuta package.
4 # Mario Blättermann <mario.blaettermann@gmail.com>, 2018.
8 "Project-Id-Version: anjuta master\n"
9 "POT-Creation-Date: 2018-03-24 09:56+0000\n"
10 "PO-Revision-Date: 2018-03-24 11:45+0100\n"
11 "Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\n"
12 "Language-Team: German <gnome-de@gnome.org>\n"
15 "Content-Type: text/plain; charset=UTF-8\n"
16 "Content-Transfer-Encoding: 8bit\n"
17 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
18 "X-Generator: Poedit 2.0.6\n"
20 #. Put one translator per line, in the form NAME <EMAIL>, YEAR1, YEAR2
22 msgid "translator-credits"
23 msgstr "Mario Blättermann <mario.blaettermann@gmail.com>, 2018"
25 #. (itstool) path: bookinfo/title
27 msgid "Anjuta build tutorial"
28 msgstr "Anjuta Erstellungs-Tutorial"
30 #. (itstool) path: bookinfo/edition
35 #. (itstool) path: bookinfo/copyright
37 msgid "<year>2004</year> <holder>Olivier Pinçon</holder>"
38 msgstr "<year>2004</year> <holder>Olivier Pinçon</holder>"
40 #. (itstool) path: bookinfo/copyright
42 msgid "<year>2008</year> <holder>Sébastien Granjoux</holder>"
43 msgstr "<year>2008</year> <holder>Sébastien Granjoux</holder>"
45 #. (itstool) path: legalnotice/para
48 "Permission is granted to copy, distribute and/or modify this document under "
49 "the terms of the <citetitle>GNU Free Documentation License</citetitle>, "
50 "Version 1.1 or any later version published by the Free Software Foundation "
51 "with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. "
52 "You may obtain a copy of the <citetitle>GNU Free Documentation License</"
53 "citetitle> from the Free Software Foundation by visiting <ulink type=\"http"
54 "\" url=\"http://www.fsf.org\">their Web site</ulink> or by writing to: Free "
55 "Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA "
58 "Das vorliegende Dokument kann gemäß den Bedingungen der <citetitle>GNU Free "
59 "Documentation License (GFDL)</citetitle>, Version 1.1 oder jeder späteren, "
60 "von der Free Software Foundation veröffentlichten Version ohne "
61 "unveränderbare Abschnitte sowie ohne Texte auf dem vorderen und hinteren "
62 "Buchdeckel kopiert, verteilt und/oder modifiziert werden. Eine Kopie der "
63 "<citetitle>GNU Free Documentation License</citetitle> der Free Software "
64 "Forundation finden Sie auf <ulink type=\"http\" url=\"http://www.fsf.org"
65 "\">deren Webseite</ulink> oder schreiben Sie an: Free Software Foundation, "
66 "Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA."
68 #. (itstool) path: legalnotice/para
71 "Many of the names used by companies to distinguish their products and "
72 "services are claimed as trademarks. Where those names appear in any GNOME "
73 "documentation, and those trademarks are made aware to the members of the "
74 "GNOME Documentation Project, the names have been printed in caps or initial "
77 "Bei vielen der von Firmen zur Unterscheidung ihrer Produkte und "
78 "Dienstleistungen verwendeten Namen handelt es sich um Marken. An den "
79 "Stellen, an denen derartige Namen in einer GNOME-Dokumentation vorkommen und "
80 "wenn die Mitglieder des GNOME-Dokumentationsprojekts über diese Marken "
81 "informiert wurden, sind die Namen in Großbuchstaben oder mit großen "
82 "Anfangsbuchstaben geschrieben."
84 #. (itstool) path: bookinfo/releaseinfo
86 msgid "This is version 0.2 of Anjuta build tutorial"
87 msgstr "Dies ist Version 0.2 des Anjuta Erstellungs-Tutorials"
89 #. (itstool) path: chapter/title
94 #. (itstool) path: chapter/para
97 "If you come from the Windows world, when you first launched "
98 "<application>Anjuta</application>, you can told yourself : \"Hey, that looks "
99 "like MS Visual C++, as I know it pretty well, understanding "
100 "<application>Anjuta</application> will be a piece of cake.\". "
101 "<application>Anjuta</application> looks like <application>Microsoft Visual "
102 "Studio</application> or <application>Borland's C++ Builder</application>. "
103 "but it has some significative differences essentially in its build system."
105 "Falls Sie aus der Windows-Welt kommen und <application>Anjuta</application> "
106 "zum ersten Mal starten, werden Sie sagen: »He, das sieht aus wie MS Visual C+"
107 "+, das ich sehr gut kenne, also wird die Einarbeitung in "
108 "<application>Anjuta</application> eine Kleinigkeit.« <application>Anjuta</"
109 "application> sieht aus wie <application>Microsoft Visual Studio</"
110 "application> oder <application>Borland's C++ Builder</application>, aber es "
111 "gibt einige signifikante Unterschiede im Erstellungssystem."
113 #. (itstool) path: chapter/para
114 #: C/index.docbook:69
116 "If you are starting programming directly on GNU/Linux, you have probably "
117 "already heard of the <application>Autotools</application>. They are a major "
118 "and probably a bit intimidating part of the development environment."
120 "Wenn Sie direkt unter GNU/Linux mit dem Programmieren beginnen, haben Sie "
121 "wahrscheinlich schon von den <application>Autotools</application> gehört. "
122 "Diese sind ein grundlegender und wohl auch ein wenig einschüchternder Teil "
123 "der Entwicklungsumgebung."
125 #. (itstool) path: chapter/para
126 #: C/index.docbook:74
128 "The goal of <application>Anjuta</application> is to make it easier to use "
129 "the already existing development tools. <application>Anjuta</application> "
130 "main build system uses the standard Linux build system: "
131 "<application>Autotools</application>. This tutorial is an updated version of "
132 "the <application>Anjuta</application> advanced tutorial from Olivier Pinçon. "
133 "It explains how the build system is working without <application>Anjuta</"
134 "application> and how to use it within <application>Anjuta</application>. It "
135 "assumes that you have only a basic understanding of C or C++ and have been "
136 "written using <application>Anjuta 2.6 (September 2008)</application>."
138 "Das Ziel von <application>Anjuta</application> ist es, die Verwendung der "
139 "vorhandenen Entwicklungswerkzeuge zu vereinfachen. <application>Anjutas</"
140 "application> Haupt-Erstellungssystem nutzt das Standard-Erstellungssystem "
141 "für Linux, die <application>Autotools</application>. Dieses Tutorial ist "
142 "eine aktualisierte Version des erweiterten <application>Anjuta</application>-"
143 "Handbuchs von Olivier Pinçon. Es erklärt, wie das Erstellungssystem ohne "
144 "<application>Anjuta</application> funktioniert und wie es innerhalb von "
145 "<application>Anjuta</application> verwendet werden kann. Es setzt Ihrerseits "
146 "ein Grundverständnis von C oder C++ voraus. Das Handbuch wurde für "
147 "<application>Anjuta 2.6 (September 2008)</application> geschrieben."
149 #. (itstool) path: listitem/para
150 #: C/index.docbook:90
152 "Fill a bug in <ulink url=\"http://bugzilla.gnome.org/enter_bug.cgi?"
153 "product=anjuta\"> <application>Anjuta</application> bugzilla database</"
156 "Einen Fehlerbericht in der <ulink url=\"http://bugzilla.gnome.org/enter_bug."
157 "cgi?product=anjuta\"> <application>Anjuta</application>-Bugzilla-Datenbank</"
160 #. (itstool) path: listitem/para
161 #: C/index.docbook:94
163 "Send a message to <application>Anjuta</application> developer mailing list "
164 "<email>anjuta-devel@lists.sourceforge.net</email>"
166 "Eine Nachricht an die Mailingliste der <application>Anjuta</application>-"
167 "Entwickler senden: <email>anjuta-devel@lists.sourceforge.net</email>"
169 #. (itstool) path: listitem/para
170 #: C/index.docbook:98
172 "Join <application>Anjuta</application> IRC channel <ulink url=\"irc://irc."
173 "gnome.org/anjuta\">#anjuta on irc.gnome.org</ulink>"
175 "Den IRC-Kanal von <application>Anjuta</application> nutzen: <ulink url="
176 "\"irc://irc.gnome.org/anjuta\">#anjuta on irc.gnome.org</ulink>"
178 #. (itstool) path: chapter/para
179 #: C/index.docbook:85
181 "If you find errors, need more explanations or have any idea for improvements "
182 "on this tutorial or <application>Anjuta</application> in general, you can: "
183 "<_:itemizedlist-1/>"
185 "Wenn Sie Fehler finden, weitere Erläuterungen benötigen oder "
186 "Verbesserungsvorschläge zu diesem Tutorial oder zu <application>Anjuta</"
187 "application> im Allgemeinen haben, können Sie: <_:itemizedlist-1/>"
189 #. (itstool) path: chapter/title
190 #: C/index.docbook:107
191 msgid "Building a project"
192 msgstr "Erstellung eines Projekts"
194 #. (itstool) path: chapter/para
195 #: C/index.docbook:108
197 "This chapter explains how to build a program starting from the most basic "
198 "tool: the compiler. This order is important to understand how is it working "
199 "because each tool adds a new layer on top of the previous ones."
201 "Dieses Kapitel erklärt, wie ein Programm mit dem grundlegendsten Werkzeug "
202 "erstellt wird, dem Compiler. Diese Reihenfolge ist wichtig, um zu verstehen, "
203 "wie es funktioniert, da jedes Werkzeug die vorherigen um eine neue Ebene "
206 #. (itstool) path: sect1/title
207 #: C/index.docbook:114
208 msgid "Using <application>GCC</application>"
209 msgstr "<application>GCC</application> verwenden"
211 #. (itstool) path: sect1/para
212 #: C/index.docbook:115
214 "Here is a typical command to generate an executable from C source files "
215 "using <application>GCC</application>:"
217 "Hier ist ein typischer Befehl zum Erstellen einer ausführbaren Datei aus C-"
218 "Quelldateien mittels <application>GCC</application>:"
220 #. (itstool) path: sect1/screen
221 #: C/index.docbook:119
225 "<prompt>$</prompt><userinput>gcc -g -Wall -I/usr/include/libxml2/libxml -lxml2 main.c aux.c -o tut_prog</userinput>"
228 "<prompt>$</prompt><userinput>gcc -g -Wall -I/usr/include/libxml2/libxml -lxml2 main.c aux.c -o tut_prog</userinput>"
230 #. (itstool) path: sect1/para
231 #: C/index.docbook:121
233 "This command tells <application>GCC</application> to compile the source "
234 "files main.c and aux.c, and produce a binary called 'tut_prog' (this stands "
235 "for 'tutorial program'). The various switches have the following meaning :"
237 "Dieser Befehl weist <application>GCC</application> an, die Quelldateien main."
238 "c und aux.c zu kompilieren und eine Binärdatei namens »tut_prog« zu "
239 "erstellen (dies steht für »Tutorial-Programm«). Die verschiedenen Schalter "
240 "haben die folgende Bedeutung:"
242 #. (itstool) path: varlistentry/term
243 #: C/index.docbook:128
244 msgid "<parameter>-g</parameter>"
245 msgstr "<parameter>-g</parameter>"
247 #. (itstool) path: listitem/para
248 #: C/index.docbook:130
250 "tells <application>GCC</application> to include debug information into the "
253 "weist <application>GCC</application> an, Fehlerdiagnoseinformationen in die "
254 "Binärdatei einzubeziehen."
256 #. (itstool) path: varlistentry/term
257 #: C/index.docbook:134
258 msgid "<parameter>-Wall</parameter>"
259 msgstr "<parameter>-Wall</parameter>"
261 #. (itstool) path: listitem/para
262 #: C/index.docbook:136
264 "Warning all : print every warning. This switch is used by the C compiler "
267 "Warning all : gibt alle Warnungen aus. Dieser Schalter wird nur vom C-"
268 "Compiler verwendet."
270 #. (itstool) path: varlistentry/term
271 #: C/index.docbook:140
272 msgid "<parameter>-Idir <replaceable>dir</replaceable></parameter>"
273 msgstr "<parameter>-Idir <replaceable>Ordner</replaceable></parameter>"
275 #. (itstool) path: listitem/para
276 #: C/index.docbook:142
278 "Look for included header files (like in #include <myheader.h>) in "
279 "directory <replaceable>dir</replaceable>. This switch is used by the C "
282 "Schaut nach einzubeziehenden Header-Dateien (wie in #include <myheader."
283 "h>) im Ordner <replaceable>Ordner</replaceable>. Dieser Schalter wird nur "
284 "vom C-Präprozessor verwendet."
286 #. (itstool) path: varlistentry/term
287 #: C/index.docbook:148
288 msgid "<parameter>-llib <replaceable>lib</replaceable></parameter>"
289 msgstr "<parameter>-llib <replaceable>Bibliothek</replaceable></parameter>"
291 #. (itstool) path: listitem/para
292 #: C/index.docbook:150
294 "Link to library <replaceable>lib</replaceable>; here <application>libxml2</"
295 "application>, used by the linker."
297 "Link zur <replaceable>Bibliothek</replaceable>; hier <application>libxml2</"
298 "application>, vom Linker verwendet."
300 #. (itstool) path: sect1/para
301 #: C/index.docbook:155
303 "In fact, <application>GCC</application> does not do the compilation itself. "
304 "It gets all arguments from the user and calls other programs passing them "
305 "the needed arguments with some default one to do the four stages involved in "
308 "Tatsächlich führt <application>GCC</application> die Kompilierung nicht "
309 "selbst aus. Es wertet alle Argumente des Benutzers aus und ruft andere "
310 "Programme auf und übergibt an diese die erforderlichen Argumente zusammen "
311 "mit diversen Voreinstellungen, um die vier Stufen der Kompilierung zu "
314 #. (itstool) path: figure/title
315 #: C/index.docbook:162
316 msgid "<application>GCC</application> compilation stage"
317 msgstr "Kompilierungsstufe von <application>GCC</application>"
319 #. (itstool) path: imageobject/imagedata
320 #. This is a reference to an external file such as an image or video. When
321 #. the file changes, the md5 hash will change to let you know you need to
322 #. update your localized copy. The msgstr is not used at all. Set it to
323 #. whatever you like once you have updated your copy of the file.
324 #: C/index.docbook:165
327 "external ref='figures/compilation-stages.png' "
328 "md5='395d9386a3de8f8c479265c6c5c5421f'"
331 #. (itstool) path: sect2/title
332 #: C/index.docbook:170
334 msgstr "Präprozessor"
336 #. (itstool) path: sect2/para
337 #: C/index.docbook:171
339 "Each C source file goes through the preprocessor, named <application>cpp</"
340 "application>. In this stage, all include files and macros are expanded to "
341 "get preprocessed C source code. The resulting file .i is rarely generated "
342 "but it could be interesting to see how complex macros are expanded. You can "
343 "do this by calling <application>cpp</application> directly or using the "
344 "<userinput>-E</userinput> switch of <application>GCC</application>. The "
345 "later option is better as it allows to run the preprocessor with all default "
348 "Jede C-Quelldatei durchläuft den C-Präprozessor namens <application>cpp</"
349 "application>. In dieser Stufe werden alle Include-Dateien und Makros "
350 "expandiert, um den vorverarbeiteten C-Quellcode zu erhalten. Die "
351 "resultierende Datei mit der Endung *.i wird selten erzeigt, aber könnte "
352 "interessant sein, um zu sehen, wie komplexe Makros expandiert werden. Sie "
353 "können dies mit einem direkten Aufruf von <application>cpp</application> "
354 "erreichen, indem Sie <application>GCC</application> mit dem Schalter "
355 "<userinput>-E</userinput> aufrufen. Die letztere Option ist besser, da sie "
356 "erlaubt, den Präprozessor ohne jegliche Standardoption laufen zu lassen."
358 #. (itstool) path: sect2/title
359 #: C/index.docbook:183
363 #. (itstool) path: sect2/para
364 #: C/index.docbook:184
366 "In this stage each file is compiled into assembler code. The compiler "
367 "depends on the language of the source file, C here. It is a complex program "
368 "because there is not a one to one correspondence between C instructions and "
369 "assembler instructions. By example, requesting the fastest or the smallest "
370 "program will generate different sequences of assembler instructions. The "
371 "assembler is the language of your computer, the most common one is called "
372 "x86. The output is a, human readable, assembler source file ending with '."
373 "s'. Like the preprocessor output, the assembler code is not normally written "
374 "on the hard disk. You can stop the compilation at this stage to look at it "
375 "by running <application>GCC</application> with the <userinput>-S</userinput> "
379 #. (itstool) path: sect2/title
380 #: C/index.docbook:201
384 #. (itstool) path: sect2/para
385 #: C/index.docbook:202
387 "In this stage each file is assembled: the assembler code is transformed to "
388 "an object file with .o extension. It is much easier than the compilation as "
389 "each assembler instruction corresponds to an unique code. The object file "
390 "contains additional information for debugging or linking the program. The "
391 "object file is a binary format, called ELF on recent Linux machine, you need "
392 "to use special program to look in it like <application>objdump</"
393 "application>. It is possible to write directly assembler code and assemble "
394 "it using the assembler ,<application>as</application>, or <application>GCC</"
395 "application> if your source file has a .s extension. These object files are "
396 "commonly written on your hard disk because it depends only of theirs "
397 "corresponding C source file (with all files included). If you modify only "
398 "one source file, you need to regenerate only the corresponding object file. "
399 "You can stop at this stage, without linking by using <userinput>-c</"
400 "userinput> switch with <application>GCC</application>."
403 #. (itstool) path: sect2/title
404 #: C/index.docbook:221
408 #. (itstool) path: sect2/para
409 #: C/index.docbook:222
411 "This stage is used to combine all the object files and libraries into one "
412 "executable file. The result is a binary file in a format close to the object "
413 "file, on Linux it is even the same format."
415 "In dieser Stufe werden alle Objektdateien und Bibliotheken in einer "
416 "ausführbaren Datei vereint. Das Ergebnis ist eine Binärdatei in einem der "
417 "Objektdatei nahestehenden Format, auf Linux-Systemen ist es sogar das "
420 #. (itstool) path: sect1/title
421 #: C/index.docbook:230
422 msgid "Using <application>make</application>"
423 msgstr "Verwendung von <application>make</application>"
425 #. (itstool) path: sect1/para
426 #: C/index.docbook:231
428 "When a program is composed of lots of sources files, it is much faster to "
429 "keep the object files and recompile each source files only when needed. This "
430 "can be automated using <application>make</application>. It executes a "
431 "program written in a makefile, normally named <filename>Makefile</filename>. "
432 "A sample makefile for the previous tutorial program could be :"
435 #. (itstool) path: example/title
436 #: C/index.docbook:240
437 msgid "A simple Makefile file"
438 msgstr "Eine simple Makefile-Datei"
440 #. (itstool) path: example/programlisting
441 #: C/index.docbook:241
445 "CC=gcc \t# the C compiler is gcc\n"
446 "CFLAGS=-g -Wall -I/usr/include/libxml2\n"
447 "LIBS=-lxml2\t\t\t\t\t\n"
449 "tut_prog: main.o aux.o # what we need to have 'tut_prog'...\n"
450 "\t$(CC) $(LIBS) main.o aux.o -o tut_prog # ...and how to get it from the ingredients.\n"
453 "\t$(CC) -c $(CFLAGS) main.c\n"
456 "\t$(CC) -c $(CFLAGS) aux.c"
459 "CC=gcc \t# the C compiler is gcc\n"
460 "CFLAGS=-g -Wall -I/usr/include/libxml2\n"
461 "LIBS=-lxml2\t\t\t\t\t\n"
463 "tut_prog: main.o aux.o # what we need to have 'tut_prog'...\n"
464 "\t$(CC) $(LIBS) main.o aux.o -o tut_prog # ...and how to get it from the ingredients.\n"
467 "\t$(CC) -c $(CFLAGS) main.c\n"
470 "\t$(CC) -c $(CFLAGS) aux.c"
472 #. (itstool) path: sect1/para
473 #: C/index.docbook:255
475 "Makefiles are a kind of program but instead of writing what should be done "
476 "sequentially to get the result, you define some rules and <application>make</"
477 "application> uses these rules in whatever order to achieve the result."
480 #. (itstool) path: sect2/title
481 #: C/index.docbook:262
485 #. (itstool) path: sect2/para
486 #: C/index.docbook:263
488 "Like in any programming language, you can define variables in a make file. "
489 "All variables contains a string or a list of strings separated by "
490 "whitespace. A variable is defined using the following syntax: "
491 "<replaceable>name</replaceable>=<replaceable>value</replaceable>. You can "
492 "get its value by writing $(<replaceable>name</replaceable>) or "
493 "${<replaceable>name</replaceable>}. In the sample above, three variables are "
494 "defined CC, CFLAGS and LIBS."
497 #. (itstool) path: varlistentry/term
498 #: C/index.docbook:280
499 msgid "<envar>CC</envar>"
500 msgstr "<envar>CC</envar>"
502 #. (itstool) path: listitem/para
503 #: C/index.docbook:281
504 msgid "Program for compiling C programs, default 'cc'"
505 msgstr "Programm zum Kompilieren von C-Programmen, Vorgabe »cc«"
507 #. (itstool) path: varlistentry/term
508 #: C/index.docbook:284
509 msgid "<envar>CXX</envar>"
510 msgstr "<envar>CXX</envar>"
512 #. (itstool) path: listitem/para
513 #: C/index.docbook:285
514 msgid "Program for compiling C++ programs, default 'g++'"
515 msgstr "Programm zum Kompilieren von C++-Programmen, Vorgabe »g++«"
517 #. (itstool) path: varlistentry/term
518 #: C/index.docbook:288
519 msgid "<envar>CPP</envar>"
520 msgstr "<envar>CPP</envar>"
522 #. (itstool) path: listitem/para
523 #: C/index.docbook:289
524 msgid "Program for running C preprocessor, default '$(CC) -E'"
525 msgstr "Programm zum Ausführen des C-Präprozessors, Vorgabe »$(CC) -E«"
527 #. (itstool) path: varlistentry/term
528 #: C/index.docbook:292
529 msgid "<envar>FC</envar>"
530 msgstr "<envar>FC</envar>"
532 #. (itstool) path: listitem/para
533 #: C/index.docbook:293
534 msgid "Program for running Fortran compiler, default 'f77'"
535 msgstr "Programm zum Ausführen des Fortran-Compilers, Vorgabe »f77«"
537 #. (itstool) path: varlistentry/term
538 #: C/index.docbook:296
539 msgid "<envar>RM</envar>"
540 msgstr "<envar>RM</envar>"
542 #. (itstool) path: listitem/para
543 #: C/index.docbook:297
544 msgid "Command to remove a file, default 'rm -f'"
545 msgstr "Befehl zum Entfernen einer Datei, Vorgabe »rm -f«"
547 #. (itstool) path: varlistentry/term
548 #: C/index.docbook:300
549 msgid "<envar>CFLAGS</envar>"
550 msgstr "<envar>CFLAGS</envar>"
552 #. (itstool) path: listitem/para
553 #: C/index.docbook:301
554 msgid "Extra flags for the C compiler"
555 msgstr "Zusätzliche Flags für den C-Compiler"
557 #. (itstool) path: varlistentry/term
558 #: C/index.docbook:304 C/index.docbook:312
559 msgid "<envar>CXXFLAGS</envar>"
560 msgstr "<envar>CXXFLAGS</envar>"
562 #. (itstool) path: listitem/para
563 #: C/index.docbook:305 C/index.docbook:309
564 msgid "Extra flags for the C++ compiler"
565 msgstr "Zusätzliche Flags für den C++-Compiler"
567 #. (itstool) path: varlistentry/term
568 #: C/index.docbook:308
569 msgid "<envar>CPPFLAGS</envar>"
570 msgstr "<envar>CPPFLAGS</envar>"
572 #. (itstool) path: listitem/para
573 #: C/index.docbook:313
574 msgid "Extra flags for the C preprocessor"
575 msgstr "Zusätzliche Flags für den C-Präprozessor"
577 #. (itstool) path: varlistentry/term
578 #: C/index.docbook:316
579 msgid "<envar>FFLAGS</envar>"
580 msgstr "<envar>FFLAGS</envar>"
582 #. (itstool) path: listitem/para
583 #: C/index.docbook:317
584 msgid "Extra flags for the Fortran compiler"
585 msgstr "Zusätzliche Flags für den Fortran-Compiler"
587 #. (itstool) path: varlistentry/term
588 #: C/index.docbook:320
589 msgid "<envar>LDFLAGS</envar>"
590 msgstr "<envar>LDFLAGS</envar>"
592 #. (itstool) path: listitem/para
593 #: C/index.docbook:321
594 msgid "Extra flags for the linker"
595 msgstr "Zusätzliche Flags für den Linker"
597 #. (itstool) path: sect2/para
598 #: C/index.docbook:272
600 "Variables can be redefined when calling <application>make</application> in "
601 "the command line or using values from environment. Moreover "
602 "<application>make</application> includes some default rules using predefined "
603 "variables. Here is a list of the most common ones: <_:variablelist-1/>"
606 #. (itstool) path: sect2/title
607 #: C/index.docbook:327
611 #. (itstool) path: sect2/para
612 #: C/index.docbook:328
613 msgid "The basic syntax for make rules is:"
614 msgstr "Dies ist die grundlegende Syntax von Make-Regeln:"
616 #. (itstool) path: sect2/programlisting
617 #: C/index.docbook:331
621 "<replaceable>target</replaceable>: <replaceable>prerequisites</replaceable>\n"
622 "\t<replaceable>commands</replaceable>\n"
623 "\t<replaceable>...</replaceable>"
626 "<replaceable>Ziel</replaceable>: <replaceable>Voraussetzungen</replaceable>\n"
627 "\t<replaceable>Befehle</replaceable>\n"
628 "\t<replaceable>...</replaceable>"
630 #. (itstool) path: sect2/para
631 #: C/index.docbook:335
633 "The <replaceable>target</replaceable> and the <replaceable>prerequisites</"
634 "replaceable> are normally files but they could be actions. The rule is "
635 "interpreted as in order to make the target or update it if it is older than "
636 "its prerequisites, you need to make all prerequisites and then run all "
640 #. (itstool) path: sect2/para
641 #: C/index.docbook:343
643 "<application>make</application> starts with the first target of the makefile "
644 "or the one given in the command line and looks for a rule. If this rules has "
645 "no prerequisites, the associated commands are run and that's all. Else "
646 "before running the commands, for each prerequisite, <application>make</"
647 "application> looks for a rule having it as target and repeats the same "
651 #. (itstool) path: para/programlisting
652 #: C/index.docbook:355
656 "Search a rule with tut_prog as target\n"
657 "Found with prerequisites main.o aux.o\n"
658 "\tSearch a rule with main.o as target\n"
659 "\tFound with prequisite main.c\n"
660 "\t\tSearch a rule with main.c as target\n"
661 "\t\tNot found (main.c is a source file)\n"
662 "\tIf main.o does not exist or is older than main.c\n"
663 "\t\tCompile main.c, do not link (-c switch)\n"
664 "\tSearch a rule with aux.o as target\n"
665 "\tFound with prequisite aux.c\n"
666 "\t\tSearch a rule with aux.c as target\n"
667 "\t\tNot found (aux.c is a source file)\n"
668 "\tIf aux.o does not exist or is older than aux.c\n"
669 "\t\tCompile aux.c, do not link (-c switch)\n"
670 "If tut_prog is older than main.o or aux.o\n"
671 "\tLink main.o, aux.o and libxml2"
674 #. (itstool) path: sect2/para
675 #: C/index.docbook:351
677 "In the sample above, if you run <userinput>make</userinput> or "
678 "<userinput>make tut_prog</userinput>. <application>make</application> does "
679 "the following: <_:programlisting-1/>"
682 #. (itstool) path: sect2/para
683 #: C/index.docbook:373
684 msgid "Like for variables, several target names are commonly defined:"
685 msgstr "Wie bei Variablen sind verschiedene Zielnamen bereits definiert:"
687 #. (itstool) path: varlistentry/term
688 #: C/index.docbook:378
689 msgid "<parameter>all</parameter>"
690 msgstr "<parameter>all</parameter>"
692 #. (itstool) path: listitem/para
693 #: C/index.docbook:379
694 msgid "Do everything"
695 msgstr "Alles ausführen"
697 #. (itstool) path: varlistentry/term
698 #: C/index.docbook:382
699 msgid "<parameter>check</parameter>"
700 msgstr "<parameter>check</parameter>"
702 #. (itstool) path: listitem/para
703 #: C/index.docbook:383
704 msgid "Perform some self test after building the program"
705 msgstr "Einige Selbsttests nach dem Erstellen des Programms ausführen"
707 #. (itstool) path: varlistentry/term
708 #: C/index.docbook:386
709 msgid "<parameter>clean</parameter>"
710 msgstr "<parameter>clean</parameter>"
712 #. (itstool) path: listitem/para
713 #: C/index.docbook:387
714 msgid "Delete all files created by <application>make</application>"
715 msgstr "Alle von <application>make</application> erstellten Dateien löschen"
717 #. (itstool) path: varlistentry/term
718 #: C/index.docbook:390
719 msgid "<parameter>distclean</parameter>"
720 msgstr "<parameter>distclean</parameter>"
722 #. (itstool) path: listitem/para
723 #: C/index.docbook:391
724 msgid "Delete more files than clean, could delete the Makefile itself"
726 "Noch mehr Dateien löschen als mit <parameter>clean</parameter>, wobei auch "
727 "die Makefile-Datei selbst gelöscht werden kann"
729 #. (itstool) path: varlistentry/term
730 #: C/index.docbook:394
731 msgid "<parameter>dist</parameter>"
732 msgstr "<parameter>dist</parameter>"
734 #. (itstool) path: listitem/para
735 #: C/index.docbook:395
736 msgid "Create a distribution package, a compressed tarball by example"
738 "Ein Distributionspaket erstellen, zum Beispiel einen komprimierten Tarball"
740 #. (itstool) path: varlistentry/term
741 #: C/index.docbook:398
742 msgid "<parameter>install</parameter>"
743 msgstr "<parameter>install</parameter>"
745 #. (itstool) path: listitem/para
746 #: C/index.docbook:399
748 "Install target created by <application>make</application>, need to be run as "
749 "root to install in system directories"
751 "Das von <application>make</application> erstellte Ziel installieren, muss "
752 "als Root ausgeführt werden, um in Systemordnern installieren zu können"
754 #. (itstool) path: varlistentry/term
755 #: C/index.docbook:403
756 msgid "<parameter>uninstall</parameter>"
757 msgstr "<parameter>uninstall</parameter>"
759 #. (itstool) path: listitem/para
760 #: C/index.docbook:404
761 msgid "Remove files installed by <application>make</application>"
762 msgstr "Die von <application>make</application> installierten Dateien löschen"
764 #. (itstool) path: note/para
765 #: C/index.docbook:408
767 "Programs compiled from sources are installed by default in <filename class="
768 "\"directory\"> /usr/local</filename>. If you want to install (or uninstall) "
769 "a program in such system directory, you normally need to log as root using "
770 "<userinput>su</userinput> or <userinput>sudo</userinput> before running "
771 "<userinput>make install</userinput>."
774 #. (itstool) path: sect1/title
775 #: C/index.docbook:417 C/index.docbook:706 C/index.docbook:1306
776 msgid "Using <application>Autotools</application>"
777 msgstr "Verwendung der <application>Autotools</application>"
779 #. (itstool) path: sect1/para
780 #: C/index.docbook:418
782 "If you want to build your program on another system, using "
783 "<application>make</application> only could be quite difficult. The C "
784 "compiler could be different. Some common C functions could be missing, have "
785 "another name, declared in a different header and so on. This can be handled "
786 "by enabling difference piece of code in your sources using preprocessor "
787 "directive #if, #ifdef and others. But the user will have to define himself "
788 "all these tuning which is not easy as there is a lots of systems with a lots "
792 #. (itstool) path: sect1/para
793 #: C/index.docbook:427
795 "Free softwares are mainly distributed as sources. It is crucial to be able "
796 "to recompile them on various system without much technical knowledge. "
797 "<application>Autotools</application> is designed to solve this and you "
798 "probably have already use it using the magic combination <userinput> \"./"
799 "configure; make; make install\"</userinput>. You may have noticed that many "
800 "files are involved in this build process; globally all that stuff seems very "
801 "complicated. So what's happening when you compile such software ?"
804 #. (itstool) path: sect2/title
805 #: C/index.docbook:438
807 msgstr "Eingabedateien"
809 #. (itstool) path: sect2/para
810 #: C/index.docbook:439
812 "An <application>Autotools</application> project comes at least with a "
813 "configure script, named <filename>configure</filename>, and a makefile "
814 "template named <filename>Makefile.in</filename>. There is normally, one "
815 "<filename>Makefile.in</filename> in each directory of the project. There are "
816 "several other files used by an <application>Autotools</application> project "
817 "but they are not stricly necessary or are generated automatically."
820 #. (itstool) path: tip/para
821 #: C/index.docbook:449
823 "If you look inside these files, you will see that they are quite complex. Do "
824 "not worry, these files are generated by <application>Autotools</application> "
825 "from other templates easier to write as explained in <xref linkend=\"create-"
826 "autotools\"/>. For the moment, we do not care, we consider these files exist "
827 "as it is the case when you get a source package."
830 #. (itstool) path: sect2/title
831 #: C/index.docbook:457 C/index.docbook:559
835 #. (itstool) path: sect2/para
836 #: C/index.docbook:458
838 "In fact, you don't need <application>Autotools</application> to build an "
839 "autotools package, <application>configure</application> is a shell script "
840 "running on the most basic shell: <filename>sh</filename>. It probes your "
841 "system checking each characteristic and writes makefiles from the templates."
844 #. (itstool) path: important/para
845 #: C/index.docbook:466
847 "In order to build a project using a library, you need more information about "
848 "it, so additional files. For a library used in a C program, you need the "
849 "corresponding header files. This has to be installed on your system and is "
850 "typically found in a so called development package. By example for the "
851 "library <application>libxml2</application>, there are two packages:"
854 #. (itstool) path: listitem/para
855 #: C/index.docbook:473
857 "<filename>libxml2</filename> necessary to run a program using it and "
858 "installed automatically as a dependency of such program."
861 #. (itstool) path: listitem/para
862 #: C/index.docbook:478
864 "<filename>libxml2-devel</filename> necessary to build a program using it. If "
865 "you don't have it <application>configure</application> will display an error "
869 #. (itstool) path: figure/title
870 #: C/index.docbook:485
871 msgid "Configure process"
872 msgstr "Konfigurationsprozess"
874 #. (itstool) path: imageobject/imagedata
875 #. This is a reference to an external file such as an image or video. When
876 #. the file changes, the md5 hash will change to let you know you need to
877 #. update your localized copy. The msgstr is not used at all. Set it to
878 #. whatever you like once you have updated your copy of the file.
879 #: C/index.docbook:488
882 "external ref='figures/configure-process.png' "
883 "md5='ab9bee38a1f4104bd289df6a9d74ffb7'"
886 #. (itstool) path: sect2/para
887 #: C/index.docbook:492
889 "<application>configure</application> creates all files in the directory "
890 "where it is called. This directory is the <emphasis>build directory</"
891 "emphasis>. If you run it from the source directory, using <userinput>./"
892 "configure</userinput>, the build directory will be the same."
895 #. (itstool) path: sect2/para
896 #: C/index.docbook:498
898 "<application>configure</application> accepts several options in the command "
899 "line. They are used to install the files in different directories, to "
900 "disable some parts of the project in order to get a smaller executable or if "
901 "you haven't one needed library or force a value for some <application>make</"
902 "application> variable (see <xref linkend=\"build-make-vars\"/>). You can get "
903 "a list of them by running <userinput>configure --help</userinput>. Here is a "
904 "list of the most common ones:"
907 #. (itstool) path: varlistentry/term
908 #: C/index.docbook:509
909 msgid "<parameter>--help</parameter>"
910 msgstr "<parameter>--help</parameter>"
912 #. (itstool) path: listitem/para
913 #: C/index.docbook:510
914 msgid "List all available options"
915 msgstr "Alle verfügbaren Optionen auflisten"
917 #. (itstool) path: varlistentry/term
918 #: C/index.docbook:513
919 msgid "<parameter>--host <replaceable>host</replaceable></parameter>"
920 msgstr "<parameter>--host <replaceable>Rechner</replaceable></parameter>"
922 #. (itstool) path: listitem/para
923 #: C/index.docbook:514
924 msgid "Compile to run on another system (cross compilation)"
927 #. (itstool) path: varlistentry/term
928 #: C/index.docbook:517
929 msgid "<parameter>--prefix <replaceable>dir</replaceable></parameter>"
930 msgstr "<parameter>--prefix <replaceable>Ordner</replaceable></parameter>"
932 #. (itstool) path: listitem/para
933 #: C/index.docbook:518
935 "Select the root directory for installing the project, default /usr/local"
937 "Den Wurzelordner für die Installation des Projekts wählen, Voreinstellung "
940 #. (itstool) path: note/para
941 #: C/index.docbook:522
943 "<application>configure</application> generates a few additional files which "
944 "are less important. <filename>config.log</filename> is a log file useful "
945 "when something goes wrong to get more details. <filename>config.status</"
946 "filename> is another shell script, it can be run to restore the current "
947 "configuration. <filename>config.h</filename> is a header file generated like "
948 "<filename>Makefile</filename> from a template <filename>config.h.in</"
949 "filename> if it exists."
952 #. (itstool) path: sect2/title
953 #: C/index.docbook:531
954 msgid "<application>make</application>"
955 msgstr "<application>make</application>"
957 #. (itstool) path: sect2/para
958 #: C/index.docbook:532
960 "The makefiles generated by <application>configure</application> are quite "
961 "complex but are standard makefiles. They define all standard targets needed "
965 #. (itstool) path: listitem/para
966 #: C/index.docbook:539
968 "<userinput>make</userinput> or <userinput>make all</userinput> builds the "
971 "<userinput>make</userinput> oder <userinput>make all</userinput> erstellt "
974 #. (itstool) path: listitem/para
975 #: C/index.docbook:542
976 msgid "<userinput>make install</userinput> installs the program."
977 msgstr "<userinput>make install</userinput> installiert das Programm."
979 #. (itstool) path: listitem/para
980 #: C/index.docbook:545
982 "<userinput>make distclean</userinput> removes all files generated by "
983 "<application>configure</application>, to let the project in the state it was "
984 "when unpacking the distribution package."
987 #. (itstool) path: sect1/title
988 #: C/index.docbook:553 C/index.docbook:1055 C/index.docbook:1583
989 msgid "Using <application>Anjuta</application>"
990 msgstr "Verwendung von <application>Anjuta</application>"
992 #. (itstool) path: sect1/para
993 #: C/index.docbook:554
995 "Now, we will see the <application>Anjuta</application> interface allowing "
996 "you to run all these commands without using the command line."
999 #. (itstool) path: sect2/para
1000 #: C/index.docbook:560
1002 "As <application>Anjuta</application> is using <application>Autotools</"
1003 "application>, the first step is similar, you need to run configure. Select "
1004 "<menuchoice><guisubmenu>Build</guisubmenu> <guimenuitem>Configure Project..."
1005 "</guimenuitem></menuchoice>, to get the following dialog:"
1008 #. (itstool) path: figure/title
1009 #: C/index.docbook:568
1010 msgid "Configure dialog"
1013 #. (itstool) path: imageobject/imagedata
1014 #. This is a reference to an external file such as an image or video. When
1015 #. the file changes, the md5 hash will change to let you know you need to
1016 #. update your localized copy. The msgstr is not used at all. Set it to
1017 #. whatever you like once you have updated your copy of the file.
1018 #: C/index.docbook:572
1021 "external ref='figures/configure-dialog.png' "
1022 "md5='c8ca3d93f18c8b680edf018d0a90a254'"
1025 #. (itstool) path: sect2/para
1026 #: C/index.docbook:577
1028 "The <guilabel>Regenerate project</guilabel> checkbox will not be described "
1029 "now as it is related to project creation (see in <xref linkend=\"create-"
1030 "autotools-generate\"/>)."
1033 #. (itstool) path: sect2/para
1034 #: C/index.docbook:581
1036 "The <guilabel>Configuration</guilabel> field is an user name used to "
1037 "reference this particular configuration to switch between different ones "
1038 "later. For <application>Anjuta</application> each configuration corresponds "
1039 "to one build directory and a set of configure options. <application>Anjuta</"
1040 "application> already provides some default configurations that you can "
1044 #. (itstool) path: note/para
1045 #: C/index.docbook:588
1047 "It is recommended to use the Debug configuration for debugging. It will "
1048 "compile your program with all optimizations disabled. When optimizations are "
1049 "enabled, some variables and functions are removed, you will not be able to "
1050 "see them with the debugger. Moreover some lines in your source code are re-"
1051 "ordered, so some steps will go backward."
1054 #. (itstool) path: sect2/para
1055 #: C/index.docbook:594
1057 "The <guilabel>Build Directory</guilabel> field allow to select the directory "
1058 "used to build the project. It must be different for each configuration."
1061 #. (itstool) path: important/para
1062 #: C/index.docbook:599
1064 "If you build the project in the source directory (leaving the "
1065 "<guilabel>Build Directory</guilabel> field empty), you cannot create a new "
1066 "configuration. It is a limitation of <application>Autotools</application>. "
1067 "You need to select <menuchoice><guisubmenu>Build</guisubmenu> "
1068 "<guimenuitem>Remove Configuration</guimenuitem></menuchoice> that will run "
1069 "<userinput>make distclean</userinput> in the source directory first."
1072 #. (itstool) path: sect2/para
1073 #: C/index.docbook:606
1075 "The <guilabel>Configure Options</guilabel> field allow passing different "
1076 "options to the configure script."
1079 #. (itstool) path: sect2/para
1080 #: C/index.docbook:610
1082 "Clicking on <guibutton>Execute</guibutton> will run the configure script. "
1083 "All the output will appears in the message view of <application>Anjuta</"
1084 "application>. If the script runs without error, it will enable all other "
1085 "entries in the <guisubmenu>Build</guisubmenu> menu."
1088 #. (itstool) path: sect2/title
1089 #: C/index.docbook:618
1091 msgstr "Menüeinträge"
1093 #. (itstool) path: sect2/para
1094 #: C/index.docbook:619
1096 "The build operations in <application>Anjuta</application>, rely on "
1097 "<application>make</application> only like <application>Autotools</"
1098 "application>. It is working for non <application>Autotools</application> "
1099 "project too. The compile command is even working with only a C source file "
1100 "because <application>make</application> has some builtin rules to compile "
1101 "them. Here is the correspondence between the <application>Anjuta</"
1102 "application> menu item and <application>make</application> commands."
1105 #. (itstool) path: varlistentry/term
1106 #: C/index.docbook:630
1108 "<menuchoice><guisubmenu>Build</guisubmenu><guimenu>Compile</guimenu></"
1112 #. (itstool) path: listitem/para
1113 #: C/index.docbook:631
1114 msgid "make <replaceable>current_file</replaceable>"
1117 #. (itstool) path: varlistentry/term
1118 #: C/index.docbook:634
1120 "<menuchoice><guisubmenu>Build</guisubmenu><guimenu>Build</guimenu></"
1124 #. (itstool) path: listitem/para
1125 #: C/index.docbook:635
1126 msgid "cd <userinput>current_file_directory</userinput>; make"
1129 #. (itstool) path: varlistentry/term
1130 #: C/index.docbook:638
1132 "<menuchoice><guisubmenu>Build</guisubmenu><guimenu>Build Project</guimenu></"
1136 #. (itstool) path: listitem/para
1137 #: C/index.docbook:639
1138 msgid "cd <userinput>project_directory</userinput>; make"
1141 #. (itstool) path: varlistentry/term
1142 #: C/index.docbook:642
1144 "<menuchoice><guisubmenu>Build</guisubmenu><guimenu>Build Tarball</guimenu></"
1148 #. (itstool) path: listitem/para
1149 #: C/index.docbook:643
1150 msgid "cd <userinput>project_directory</userinput>; make dist"
1153 #. (itstool) path: varlistentry/term
1154 #: C/index.docbook:646
1156 "<menuchoice><guisubmenu>Build</guisubmenu><guimenu>Install</guimenu></"
1160 #. (itstool) path: listitem/para
1161 #: C/index.docbook:647
1162 msgid "cd <userinput>current_file_directory</userinput>; make install"
1165 #. (itstool) path: varlistentry/term
1166 #: C/index.docbook:650
1168 "<menuchoice><guisubmenu>Build</guisubmenu><guimenu>Install Project</"
1169 "guimenu></menuchoice>"
1172 #. (itstool) path: listitem/para
1173 #: C/index.docbook:651
1174 msgid "cd <userinput>project_directory</userinput>; make install"
1177 #. (itstool) path: varlistentry/term
1178 #: C/index.docbook:654
1180 "<menuchoice><guisubmenu>Build</guisubmenu><guimenu>Clean</guimenu></"
1184 #. (itstool) path: listitem/para
1185 #: C/index.docbook:655
1186 msgid "cd <userinput>current_file_directory</userinput>; make clean"
1189 #. (itstool) path: varlistentry/term
1190 #: C/index.docbook:658
1192 "<menuchoice><guisubmenu>Build</guisubmenu><guimenu>Clean Project</guimenu></"
1196 #. (itstool) path: listitem/para
1197 #: C/index.docbook:659
1198 msgid "cd <userinput>project_directory</userinput>; make clean"
1201 #. (itstool) path: varlistentry/term
1202 #: C/index.docbook:662
1204 "<menuchoice><guisubmenu>Build</guisubmenu><guimenu>Remove Configuration</"
1205 "guimenu></menuchoice>"
1208 #. (itstool) path: listitem/para
1209 #: C/index.docbook:663
1210 msgid "cd <userinput>project_directory</userinput>; make distclean"
1213 #. (itstool) path: sect2/para
1214 #: C/index.docbook:666
1216 "The last menu entry not described above ,<menuchoice><guisubmenu>Build</"
1217 "guisubmenu> <guimenuitem>Select Configuration</guimenuitem></menuchoice>, "
1218 "allows you to switch easily between different configurations and so between "
1219 "different build directories."
1222 #. (itstool) path: sect2/title
1223 #: C/index.docbook:674
1227 #. (itstool) path: sect2/para
1228 #: C/index.docbook:675
1230 "A few common build options are available in the preferences page that you "
1231 "can get by selecting <menuchoice><guisubmenu>Edit</guisubmenu> "
1232 "<guimenuitem>Preferences</guimenuitem><guimenuitem>Build autotools</"
1233 "guimenuitem> </menuchoice>."
1236 #. (itstool) path: figure/title
1237 #: C/index.docbook:682
1238 msgid "Build preferences"
1241 #. (itstool) path: imageobject/imagedata
1242 #. This is a reference to an external file such as an image or video. When
1243 #. the file changes, the md5 hash will change to let you know you need to
1244 #. update your localized copy. The msgstr is not used at all. Set it to
1245 #. whatever you like once you have updated your copy of the file.
1246 #: C/index.docbook:686
1249 "external ref='figures/build_preferences.png' "
1250 "md5='684664b3114b36b3cc33d8b35f175e5d'"
1253 #. (itstool) path: chapter/title
1254 #: C/index.docbook:699
1255 msgid "Creating a project"
1258 #. (itstool) path: chapter/para
1259 #: C/index.docbook:700
1261 "This chapter explains how to create a new project. Like the previous, it "
1262 "starts with <application>Autotools</application> before looking at "
1263 "<application>Anjuta</application>."
1266 #. (itstool) path: sect1/para
1267 #: C/index.docbook:707
1269 "In the first chapter, we have not really used the <application>Autotools</"
1270 "application>. It is not need to compile a project from the sources. But all "
1271 "files in the build process are not written by hand but generated from "
1272 "templates using <application>Autotools</application>."
1275 #. (itstool) path: sect1/para
1276 #: C/index.docbook:712
1278 "<application>Autotools</application> is composed of several tools: "
1279 "<filename>aclocal</filename>, <filename>autoconf</filename>, "
1280 "<filename>automake</filename> and other that we will not see here, belonging "
1281 "to two packages: <application>Automake</application> and "
1282 "<application>Autoconf</application>."
1285 #. (itstool) path: listitem/para
1286 #: C/index.docbook:721
1288 "<application>Autoconf</application> is used to generate the configure "
1289 "script, from a template named <filename>configure.ac</filename>. The "
1290 "configure script will check all characteristics of the host system and "
1291 "generate the makefiles from Makefile.in templates."
1294 #. (itstool) path: listitem/para
1295 #: C/index.docbook:727
1297 "<application>Automake</application> is used to generate complete Makefile.in "
1298 "templates, following GNU standards from very simple Makefile.am templates."
1301 #. (itstool) path: figure/title
1302 #: C/index.docbook:732
1303 msgid "<application>Autotools</application> process"
1306 #. (itstool) path: imageobject/imagedata
1307 #. This is a reference to an external file such as an image or video. When
1308 #. the file changes, the md5 hash will change to let you know you need to
1309 #. update your localized copy. The msgstr is not used at all. Set it to
1310 #. whatever you like once you have updated your copy of the file.
1311 #: C/index.docbook:735
1314 "external ref='figures/autotools-process.png' "
1315 "md5='6141be893d6036796e47dc50bbaba82b'"
1318 #. (itstool) path: sect1/para
1319 #: C/index.docbook:739
1321 "Now let's see a minimal example to start grasping the relationships between "
1322 "the various files."
1325 #. (itstool) path: sect2/title
1326 #: C/index.docbook:744
1327 msgid "Write sources"
1330 #. (itstool) path: listitem/para
1331 #: C/index.docbook:747
1333 "Create an empty directory called <filename>tut_prog</filename> and enter in "
1337 #. (itstool) path: listitem/para
1338 #: C/index.docbook:750
1340 "In this new directory, create a new file named <filename>main.c</filename> "
1344 #. (itstool) path: example/title
1345 #: C/index.docbook:755
1349 #. (itstool) path: example/programlisting
1350 #: C/index.docbook:756
1354 "#include <stdio.h> \n"
1358 "\tprintf(\"Hello world!\\n\");\n"
1363 "#include <stdio.h> \n"
1367 "\tprintf(\"Hello world!\\n\");\n"
1371 #. (itstool) path: sect2/title
1372 #: C/index.docbook:767
1373 msgid "Run <application>Autoconf</application>"
1376 #. (itstool) path: listitem/para
1377 #: C/index.docbook:770
1378 msgid "Write the following in a file named <filename>configure.ac</filename>:"
1381 #. (itstool) path: example/title
1382 #: C/index.docbook:774
1383 msgid "minimal configure.ac:"
1386 #. (itstool) path: example/programlisting
1387 #: C/index.docbook:775
1391 "AC_INIT([Tutorial Program], 1.0)\n"
1392 "AM_INIT_AUTOMAKE\n"
1394 "AC_CONFIG_FILES(Makefile)\n"
1398 "AC_INIT([Tutorial Program], 1.0)\n"
1399 "AM_INIT_AUTOMAKE\n"
1401 "AC_CONFIG_FILES(Makefile)\n"
1404 #. (itstool) path: note/para
1405 #: C/index.docbook:783
1407 "The configure template script could be named <filename>configure.in</"
1408 "filename>. It is the name used in older version (before 2001) of "
1409 "<application>Autoconf</application>. Nevertheless, it is recommended to use "
1410 "<filename>configure.ac</filename> because the <filename>.in</filename> "
1411 "extension is already used by files processed by <application>configure</"
1412 "application> and generated by <application>Automake</application>: "
1413 "<filename>Makefile.in</filename> and <application>autoheader</application>: "
1414 "<filename>config.h.in</filename>."
1417 #. (itstool) path: sect2/para
1418 #: C/index.docbook:792
1420 "AC_INIT, AM_INIT_AUTOMAKE, etc... are <application>M4</application> macros. "
1421 "<application>M4</application> is a macro expanding software used by "
1422 "<application>Autotools</application>; we don't need to know about it. When "
1423 "<application>Autoconf</application> will process this configure.in, the "
1424 "macros will be expanded and we will get a fresh huge configure script."
1427 #. (itstool) path: varlistentry/term
1428 #: C/index.docbook:801
1432 #. (itstool) path: listitem/para
1433 #: C/index.docbook:803
1435 "Is the first mandatory macro. We need to indicate the name of the project "
1439 #. (itstool) path: varlistentry/term
1440 #: C/index.docbook:810 C/index.docbook:1194
1441 msgid "AM_INIT_AUTOMAKE"
1442 msgstr "AM_INIT_AUTOMAKE"
1444 #. (itstool) path: listitem/para
1445 #: C/index.docbook:812
1447 "Initialize environment for <application>Automake</application>. It is needed "
1448 "in all projects using <application>Automake</application>."
1451 #. (itstool) path: varlistentry/term
1452 #: C/index.docbook:819
1456 #. (itstool) path: listitem/para
1457 #: C/index.docbook:821
1458 msgid "Determine the C compiler to use."
1461 #. (itstool) path: varlistentry/term
1462 #: C/index.docbook:827
1463 msgid "AC_CONFIG_FILES"
1464 msgstr "AC_CONFIG_FILES"
1466 #. (itstool) path: listitem/para
1467 #: C/index.docbook:829
1469 "Create each file by copying the corresponding template file (with .in "
1470 "extension) and substituting the output variable values."
1473 #. (itstool) path: varlistentry/term
1474 #: C/index.docbook:836 C/index.docbook:1218
1478 #. (itstool) path: listitem/para
1479 #: C/index.docbook:838
1480 msgid "Marks the end of the configure template."
1483 #. (itstool) path: note/para
1484 #: C/index.docbook:845
1486 "The use of some macros has changed between different versions of "
1487 "<application>Autoconf</application>:"
1490 #. (itstool) path: listitem/para
1491 #: C/index.docbook:848
1493 "The package name and version was defined as arguments of AM_INIT_AUTOMAKE "
1494 "instead of AC_INIT."
1497 #. (itstool) path: listitem/para
1498 #: C/index.docbook:852
1500 "AC_OUTPUT was getting the list of generated files instead of using the "
1501 "additional macro AC_CONFIG_FILES."
1504 #. (itstool) path: sect2/para
1505 #: C/index.docbook:857
1507 "<application>Autoconf</application> only knows its own macros but read "
1508 "additional ones in a file named <filename>aclocal.m4</filename>. These "
1509 "macros are used to extend <application>Autoconf</application>, it includes "
1510 "<application>Automake</application> macro (starting with AM_) and other "
1511 "third party macros. For instance, if you develop a library called foo, you "
1512 "might want to write an AC_CHECK_FOR_FOO macro so that developers using your "
1513 "library can check for its presence using <application>Autoconf</application>."
1516 #. (itstool) path: sect2/para
1517 #: C/index.docbook:866
1519 "<application>aclocal</application> scans <filename>configure.ac</filename> "
1520 "and create an <filename>aclocal.m4</filename> file which contains the macros "
1521 "mentioned in <filename>configure.ac</filename>. <application>aclocal</"
1522 "application> is part of the <application>Automake</application> package and "
1523 "search by default in <application>Automake</application> macros and in a "
1524 "system path typically <filename>/usr/share/aclocal</filename>."
1527 #. (itstool) path: listitem/para
1528 #: C/index.docbook:876
1530 "Launch <userinput>aclocal</userinput>. It will create a new file named "
1531 "<filename>aclocal.m4</filename> in the current directory."
1534 #. (itstool) path: listitem/para
1535 #: C/index.docbook:880
1537 "Launch <userinput>autoconf</userinput>. It will create the configure script "
1538 "<filename>configure</filename>."
1541 #. (itstool) path: tip/para
1542 #: C/index.docbook:885
1544 "On my system, I actually get an extra directory called <filename>autom4te."
1545 "cache</filename>. That is for <application>Autoconf</application> internal "
1546 "purposes. You do not need to care about it."
1549 #. (itstool) path: sect2/title
1550 #: C/index.docbook:891
1551 msgid "Run <application>Automake</application>"
1554 #. (itstool) path: listitem/para
1555 #: C/index.docbook:894
1556 msgid "Write the following in a file named <filename>Makefile.am</filename>:"
1559 #. (itstool) path: example/title
1560 #: C/index.docbook:898
1561 msgid "minimal Makefile.am:"
1564 #. (itstool) path: example/programlisting
1565 #: C/index.docbook:899
1569 "bin_PROGRAMS = tut_prog\t\t\t\n"
1570 "tut_prog_SOURCES = main.c"
1573 "bin_PROGRAMS = tut_prog\t\t\t\n"
1574 "tut_prog_SOURCES = main.c"
1576 #. (itstool) path: sect2/para
1577 #: C/index.docbook:903
1579 "In Makefile.am are the very essential data needed to build the project: the "
1580 "target program, called tut_prog, will be put in a $prefix/bin/ directory; to "
1581 "build it we need main.c. Note that we don't specify <emphasis>how</emphasis> "
1582 "that will be built: <application>Automake</application> will figure it out. "
1583 "We haven't even mentioned the compiler in this pre-makefile."
1586 #. (itstool) path: sect2/para
1587 #: C/index.docbook:910
1589 "Makefile.am will be processed by <application>Automake</application>; the "
1590 "result will be a Makefile.in. This Makefile.in is close to being a real "
1591 "makefile, but it contains variable names which will be replaced when the "
1592 "configure script will run, resulting in a real makefile (called Makefile). "
1593 "For instance, <filename>configure</filename> will write in the final "
1594 "Makefile what compiler to use (it is the compiler it found using the "
1595 "AC_PROG_CC macro)."
1598 #. (itstool) path: listitem/para
1599 #: C/index.docbook:921
1601 "Run the command <userinput>automake --add-missing --foreign</userinput>. It "
1602 "will create a new file named <filename>Makefile.in</filename> as expected. "
1603 "Moreover, due to the switch <parameter>--add-missing</parameter> you get a "
1604 "few links to scripts necessary for building the project: <filename>depcomp</"
1605 "filename>, <filename>install.sh</filename> and <filename>missing</filename>. "
1606 "The other option <parameter>--foreign</parameter> tells to "
1607 "<application>Automake</application> that you don't want to follow GNU "
1608 "standard and you don't need mandatory documentation files: "
1609 "<filename>INSTALL</filename>, <filename>NEWS</filename>, <filename>README</"
1610 "filename>, <filename>AUTHORS</filename>, <filename>ChangeLog</filename> and "
1611 "<filename>COPYING</filename>. I have used it here to keep the number of "
1612 "created file to a minimum but else it is a good idea to provide these files, "
1613 "you can start with empty files."
1616 #. (itstool) path: sect2/title
1617 #: C/index.docbook:937
1618 msgid "Build project"
1621 #. (itstool) path: listitem/para
1622 #: C/index.docbook:940
1624 "Run now the new configure script: <userinput>./configure</userinput>. You "
1625 "get the following output and it create the makefile for your program."
1628 #. (itstool) path: listitem/screen
1629 #: C/index.docbook:942
1633 "checking for a BSD-compatible install... /usr/bin/install -c\n"
1634 "checking whether build environment is sane... yes\n"
1635 "checking for a thread-safe mkdir -p... /bin/mkdir -p\n"
1636 "checking for gawk... gawk\n"
1637 "checking whether make sets $(MAKE)... yes\n"
1638 "checking for gcc... gcc\n"
1639 "checking for C compiler default output file name... a.out\n"
1640 "checking whether the C compiler works... yes\n"
1641 "checking whether we are cross compiling... no\n"
1642 "checking for suffix of executables... \n"
1643 "checking for suffix of object files... o\n"
1644 "checking whether we are using the GNU C compiler... yes\n"
1645 "checking whether gcc accepts -g... yes\n"
1646 "checking for gcc option to accept ISO C89... none needed\n"
1647 "checking for style of include used by make... GNU\n"
1648 "checking dependency style of gcc... gcc3\n"
1649 "configure: creating ./config.status\n"
1650 "config.status: creating Makefile\n"
1651 "config.status: executing depfiles commands"
1654 #. (itstool) path: listitem/para
1655 #: C/index.docbook:964
1657 "Run now <userinput>make</userinput>, to build your program. You get the "
1658 "following output and a new tut_prog executable"
1661 #. (itstool) path: listitem/screen
1662 #: C/index.docbook:966
1666 "gcc -DPACKAGE_NAME=\\\"Tutorial\\ Program\\\" -DPACKAGE_TARNAME=\\\"tutorial-program\\\" \\\n"
1667 " -DPACKAGE_VERSION=\\\"1.0\\\" -DPACKAGE_STRING=\\\"Tutorial\\ Program\\ 1.0\\\" \\\n"
1668 " -DPACKAGE_BUGREPORT=\\\"\\\" -DPACKAGE=\\\"tutorial-program\\\" -DVERSION=\\\"1.0\\\" \\\n"
1669 " -I. -g -O2 -MT main.o -MD -MP -MF .deps/main.Tpo -c -o main.o main.c\n"
1670 "main.c: In function ‘main’:\n"
1671 "main.c:5: warning: return type of ‘main’ is not ‘int’\n"
1672 "mv -f .deps/main.Tpo .deps/main.Po\n"
1673 "gcc -g -O2 -o tut_prog main.o"
1676 "gcc -DPACKAGE_NAME=\\\"Tutorial\\ Program\\\" -DPACKAGE_TARNAME=\\\"tutorial-program\\\" \\\n"
1677 " -DPACKAGE_VERSION=\\\"1.0\\\" -DPACKAGE_STRING=\\\"Tutorial\\ Program\\ 1.0\\\" \\\n"
1678 " -DPACKAGE_BUGREPORT=\\\"\\\" -DPACKAGE=\\\"tutorial-program\\\" -DVERSION=\\\"1.0\\\" \\\n"
1679 " -I. -g -O2 -MT main.o -MD -MP -MF .deps/main.Tpo -c -o main.o main.c\n"
1680 "main.c: In function ‘main’:\n"
1681 "main.c:5: warning: return type of ‘main’ is not ‘int’\n"
1682 "mv -f .deps/main.Tpo .deps/main.Po\n"
1683 "gcc -g -O2 -o tut_prog main.o"
1685 #. (itstool) path: listitem/para
1686 #: C/index.docbook:977
1688 "Now, if you can write in <filename>/usr/local/bin</filename>, run "
1689 "<userinput>make install</userinput> to install your program. Else you need "
1690 "to log as root before or use <application>sudo</application> and run "
1691 "<userinput>sudo make install</userinput>. You should get."
1694 #. (itstool) path: listitem/screen
1695 #: C/index.docbook:982
1699 "make[1]: Entering directory `/home/seb/Projects/Tutorial'\n"
1700 "test -z \"/usr/local/bin\" || /bin/mkdir -p \"/usr/local/bin\"\n"
1701 " /usr/bin/install -c 'tut_prog' '/usr/local/bin/tut_prog'\n"
1702 "make[1]: Nothing to be done for `install-data-am'.\n"
1703 "make[1]: Leaving directory `/home/seb/Projects/Tutorial'"
1706 #. (itstool) path: listitem/para
1707 #: C/index.docbook:988
1709 "Then, if <filename>/user/local/bin</filename> is in your path, you can run "
1710 "your program from everywhere."
1713 #. (itstool) path: sect2/title
1714 #: C/index.docbook:996
1715 msgid "Clean project"
1718 #. (itstool) path: listitem/para
1719 #: C/index.docbook:999
1721 "The program is installed, so you can clean the build directory running "
1722 "<userinput>make clean</userinput>. It removes all object files and the "
1723 "program but not the makefiles."
1726 #. (itstool) path: listitem/screen
1727 #: C/index.docbook:1002
1731 "test -z \"tut_prog\" || rm -f tut_prog\n"
1735 "test -z \"tut_prog\" || rm -f tut_prog\n"
1738 #. (itstool) path: listitem/para
1739 #: C/index.docbook:1005
1741 "You can still run the program installed in <filename>/user/local/bin</"
1745 #. (itstool) path: listitem/para
1746 #: C/index.docbook:1010
1748 "To remove the installed program, run <userinput>make uninstall</userinput>. "
1749 "Like for the installation, you need to use have the writing right in the "
1750 "directory or use <application>su</application> or <application>sudo</"
1754 #. (itstool) path: listitem/screen
1755 #: C/index.docbook:1013
1759 "rm -f '/usr/local/bin/tut_prog'"
1762 "rm -f '/usr/local/bin/tut_prog'"
1764 #. (itstool) path: sect2/title
1765 #: C/index.docbook:1019
1766 msgid "Generate project"
1769 #. (itstool) path: sect2/para
1770 #: C/index.docbook:1020
1772 "Running <userinput>aclocal</userinput>, <userinput>automake</userinput> and "
1773 "<userinput>autoconf</userinput> one by one is fine for a tutorial to "
1774 "understand exactly what's happen. But, for a real work, it's a bit tedious "
1775 "especially because there are other tools those could be needed like "
1776 "<userinput>autoheader</userinput>, <userinput>autopoint</userinput> or "
1777 "<userinput>libtoolize</userinput>. After creating the project, the makefiles "
1778 "generated by <application>configure</application> should take care of "
1779 "regenerating <filename>configure</filename> and all <filename>Makefile.in</"
1780 "filename>. Anyway, this lets a room for improvement and there are even two "
1781 "responses to this:"
1784 #. (itstool) path: varlistentry/term
1785 #: C/index.docbook:1034
1789 #. (itstool) path: listitem/para
1790 #: C/index.docbook:1036
1792 "It is another tool part of the <application>Autoconf</application> package "
1793 "which is running all scripts in the right order. To start a new project, you "
1794 "can just run <userinput>autoreconf --install</userinput> and it will call "
1795 "all necessary commands."
1798 #. (itstool) path: varlistentry/term
1799 #: C/index.docbook:1043
1803 #. (itstool) path: listitem/para
1804 #: C/index.docbook:1045
1806 "It is a script not part of <application>Autotools</application>, that it "
1807 "doing the same thing. There is one named <filename>gnome-autogen.sh</"
1808 "filename> which comes with GNOME common development package but other "
1809 "project can write their own ones."
1812 #. (itstool) path: sect1/para
1813 #: C/index.docbook:1056
1815 "Creating a project with <application>Anjuta</application> need just a few "
1816 "clicks but then we will take a look at the created files."
1819 #. (itstool) path: sect2/title
1820 #: C/index.docbook:1061
1821 msgid "Create a new project"
1824 #. (itstool) path: listitem/para
1825 #: C/index.docbook:1064
1827 "Click on <menuchoice><guisubmenu>File</guisubmenu><guisubmenu>New</"
1828 "guisubmenu> <guimenuitem>Project</guimenuitem></menuchoice>. The new project "
1829 "assistant appears."
1832 #. (itstool) path: listitem/para
1833 #: C/index.docbook:1069
1835 "Click on <guibutton>Forward</guibutton>. The project selection page appears:"
1838 #. (itstool) path: figure/title
1839 #: C/index.docbook:1071
1840 msgid "Project selection page"
1843 #. (itstool) path: imageobject/imagedata
1844 #. This is a reference to an external file such as an image or video. When
1845 #. the file changes, the md5 hash will change to let you know you need to
1846 #. update your localized copy. The msgstr is not used at all. Set it to
1847 #. whatever you like once you have updated your copy of the file.
1848 #: C/index.docbook:1075
1851 "external ref='figures/new-project-select.png' "
1852 "md5='f79e2454e7ccaf52b1b1b06aa04a4956'"
1855 #. (itstool) path: listitem/para
1856 #: C/index.docbook:1082
1858 "Select <guilabel>Generic (minimal)</guilabel> project in the <guilabel>C</"
1862 #. (itstool) path: listitem/para
1863 #: C/index.docbook:1085 C/index.docbook:1121
1864 msgid "Click on <guibutton>Forward</guibutton>."
1867 #. (itstool) path: figure/title
1868 #: C/index.docbook:1087
1869 msgid "Project basic information page"
1872 #. (itstool) path: imageobject/imagedata
1873 #. This is a reference to an external file such as an image or video. When
1874 #. the file changes, the md5 hash will change to let you know you need to
1875 #. update your localized copy. The msgstr is not used at all. Set it to
1876 #. whatever you like once you have updated your copy of the file.
1877 #: C/index.docbook:1091
1880 "external ref='figures/new-project-basic.png' "
1881 "md5='3e120013f61bdc811c7d3ace04201e33'"
1884 #. (itstool) path: listitem/para
1885 #: C/index.docbook:1096
1887 "Change <guilabel>Project Name</guilabel> to <userinput>tutprog</userinput>, "
1888 "the project name should contains only alpha numeric characters or "
1889 "underscore. Fill the remaining field."
1892 #. (itstool) path: listitem/para
1893 #: C/index.docbook:1103
1894 msgid "Click on <guilabel>Forward</guilabel>."
1897 #. (itstool) path: figure/title
1898 #: C/index.docbook:1105
1899 msgid "Project options page"
1902 #. (itstool) path: imageobject/imagedata
1903 #. This is a reference to an external file such as an image or video. When
1904 #. the file changes, the md5 hash will change to let you know you need to
1905 #. update your localized copy. The msgstr is not used at all. Set it to
1906 #. whatever you like once you have updated your copy of the file.
1907 #: C/index.docbook:1109
1910 "external ref='figures/new-project-options.png' "
1911 "md5='4d386a284c3a40676f50c6dd6208bb1b'"
1914 #. (itstool) path: listitem/para
1915 #: C/index.docbook:1114
1917 "Click on <guilabel>Destination</guilabel> and create a new directory named "
1918 "tutprog for your new project. You need to avoid space in the directory name. "
1919 "Then, keep all other options to their default value to get a minimal project."
1922 #. (itstool) path: figure/title
1923 #: C/index.docbook:1123
1924 msgid "Project summary page"
1927 #. (itstool) path: imageobject/imagedata
1928 #. This is a reference to an external file such as an image or video. When
1929 #. the file changes, the md5 hash will change to let you know you need to
1930 #. update your localized copy. The msgstr is not used at all. Set it to
1931 #. whatever you like once you have updated your copy of the file.
1932 #: C/index.docbook:1127
1935 "external ref='figures/new-project-summary.png' "
1936 "md5='79bca5475883f9c43bf404df815eff58'"
1939 #. (itstool) path: listitem/para
1940 #: C/index.docbook:1132
1942 "This is the final page of the assistant, check that everything is right."
1945 #. (itstool) path: listitem/para
1946 #: C/index.docbook:1137
1948 "Click on <guibutton>Forward</guibutton>. <application>Anjuta</application> "
1949 "will create all needed files and directories, in the message window, you "
1950 "will see the following:"
1953 #. (itstool) path: figure/title
1954 #: C/index.docbook:1141
1955 msgid "Project creation messages"
1958 #. (itstool) path: imageobject/imagedata
1959 #. This is a reference to an external file such as an image or video. When
1960 #. the file changes, the md5 hash will change to let you know you need to
1961 #. update your localized copy. The msgstr is not used at all. Set it to
1962 #. whatever you like once you have updated your copy of the file.
1963 #: C/index.docbook:1145
1966 "external ref='figures/new-project-message.png' "
1967 "md5='073f1d0fae8d7ed17a86f946077a6c18'"
1970 #. (itstool) path: listitem/para
1971 #: C/index.docbook:1150
1973 "Then, autogen.sh is called and run the configure script. Finally "
1974 "<application>Anjuta</application> open the new project. You can directly "
1975 "build the project, as the main source contains a few lines of C and "
1976 "configure has been run."
1979 #. (itstool) path: sect2/title
1980 #: C/index.docbook:1160
1981 msgid "Looking at configure.ac"
1984 #. (itstool) path: example/title
1985 #: C/index.docbook:1162
1986 msgid "<application>Anjuta</application> minimal configure.ac:"
1989 #. (itstool) path: example/programlisting
1990 #: C/index.docbook:1163
1994 "dnl Process this file with autoconf to produce a configure script.\n"
1995 "dnl Created by Anjuta application wizard.\n"
1997 "AC_INIT(tutprog, 0.1)\n"
1999 "AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION)\n"
2000 "AC_CONFIG_HEADERS([config.h])\n"
2009 #. (itstool) path: sect2/para
2010 #: C/index.docbook:1178
2012 "It is still quite simple with a bit more macros. Let's look at all unknown "
2016 #. (itstool) path: varlistentry/term
2017 #: C/index.docbook:1184
2021 #. (itstool) path: listitem/para
2022 #: C/index.docbook:1186
2024 "It is not a macros, just the marker to start a comment in <application>M4</"
2025 "application>, the language used to write <filename>configure.ac</filename>. "
2026 "It is like '#' is scripts or '//' in C++."
2029 #. (itstool) path: listitem/para
2030 #: C/index.docbook:1196
2032 "The AC_INIT macro uses the new form with package and version but "
2033 "AM_INIT_AUTOMAKE keeps the old one. It is not needed anymore."
2036 #. (itstool) path: varlistentry/term
2037 #: C/index.docbook:1203
2038 msgid "AC_CONFIG_HEADERS"
2039 msgstr "AC_CONFIG_HEADERS"
2041 #. (itstool) path: listitem/para
2042 #: C/index.docbook:1205
2044 "This tells <application>Autoconf</application> to pass all defines in a file "
2045 "named <filename>config.h</filename> instead of using several -Dxxxx flags on "
2046 "the command line (see <xref linkend=\"create-autotools-build\"/>). It is "
2047 "easier when there are lots of them. A file named <filename>config.h.in</"
2048 "filename> is created automatically from the <filename>configure.ac</"
2049 "filename> using <application>autoheader</application>. Then <filename>config."
2050 "h</filename> is created automatically like makefiles by "
2051 "<application>configure</application>. So it is painless for the developer."
2054 #. (itstool) path: listitem/para
2055 #: C/index.docbook:1220
2057 "This is the old form of the AC_OUTPUT, where you specify all output files "
2058 "instead of using AC_CONFIG_FILES."
2061 #. (itstool) path: sect2/title
2062 #: C/index.docbook:1229
2063 msgid "Looking at Makefile.am"
2064 msgstr "Ein Blick auf Makefile.am"
2066 #. (itstool) path: example/title
2067 #: C/index.docbook:1231
2068 msgid "<application>Anjuta</application> minimal Makefile.am:"
2069 msgstr "<application>Anjuta</application>s minimales Makefile.am:"
2071 #. (itstool) path: example/programlisting
2072 #: C/index.docbook:1232
2075 "## Process this file with automake to produce Makefile.in\n"
2076 "## Created by Anjuta\n"
2078 "AM_CPPFLAGS = \\\n"
2079 " -DPACKAGE_DATA_DIR=\\\"\"$(datadir)\"\\\"\n"
2085 "bin_PROGRAMS = tutprog\n"
2087 "tutprog_SOURCES = \\\n"
2090 "tutprog_LDFLAGS =\n"
2094 "## Process this file with automake to produce Makefile.in\n"
2095 "## Created by Anjuta\n"
2097 "AM_CPPFLAGS = \\\n"
2098 " -DPACKAGE_DATA_DIR=\\\"\"$(datadir)\"\\\"\n"
2104 "bin_PROGRAMS = tutprog\n"
2106 "tutprog_SOURCES = \\\n"
2109 "tutprog_LDFLAGS =\n"
2113 #. (itstool) path: sect2/para
2114 #: C/index.docbook:1251
2115 msgid "Not much things in the <filename>Makefile.am</filename> neither:"
2118 #. (itstool) path: varlistentry/term
2119 #: C/index.docbook:1256
2121 msgstr "AM_CPPFLAGS"
2123 #. (itstool) path: listitem/para
2124 #: C/index.docbook:1258
2126 "It is used to give additional flags to the C preprocessor. Here it defines "
2127 "an additional PACKAGE_DATA_DIR constant set by <application>configure</"
2131 #. (itstool) path: varlistentry/term
2132 #: C/index.docbook:1266
2136 #. (itstool) path: listitem/para
2137 #: C/index.docbook:1268
2139 "It defines some additional flags for the C compiler: all warning and add "
2140 "debugging information that we have already seen at the beginning of this "
2141 "tutorial (see <xref linkend=\"build-gcc\"/>)"
2144 #. (itstool) path: varlistentry/term
2145 #: C/index.docbook:1276
2146 msgid "tutprog_LDFLAGS"
2147 msgstr "tutprog_LDFLAGS"
2149 #. (itstool) path: listitem/para
2150 #: C/index.docbook:1278
2152 "It adds a places where you can put additional linker options for the tutprog "
2156 #. (itstool) path: varlistentry/term
2157 #: C/index.docbook:1285
2158 msgid "tutprog_LDADD"
2159 msgstr "tutprog_LDADD"
2161 #. (itstool) path: listitem/para
2162 #: C/index.docbook:1287
2164 "It adds a places where you can put additional libraries for the tutprog "
2168 #. (itstool) path: chapter/title
2169 #: C/index.docbook:1300
2170 msgid "Adding a library"
2171 msgstr "Hinzufügen einer Bibliothek"
2173 #. (itstool) path: chapter/para
2174 #: C/index.docbook:1301
2176 "This chapter explains how to add a new library to a project. It starts with "
2177 "<application>Autotools</application> before looking at <application>Anjuta</"
2181 #. (itstool) path: sect1/para
2182 #: C/index.docbook:1307
2184 "Adding a new library in a autotools project could be more or less easy "
2185 "depending on how the library is packaged. To take an example, imagine that "
2186 "we want to read an xml file using <application>libxml2</application> (see "
2187 "its <ulink type=\"http\" url=\"www.xmlsoft.org\">homepage at www.xmlsoft."
2191 #. (itstool) path: listitem/para
2192 #: C/index.docbook:1315
2194 "Open the old tutorial project and replace <filename>main.c</filename> by the "
2198 #. (itstool) path: example/title
2199 #: C/index.docbook:1318 C/index.docbook:1595
2200 msgid "main.c using <application>libxml2</application>:"
2201 msgstr "main.c mit <application>libxml2</application>:"
2203 #. (itstool) path: example/programlisting
2204 #: C/index.docbook:1319 C/index.docbook:1596
2208 "#include <libxml/parser.h>\t\t\t\n"
2209 "#include <stdio.h>\n"
2213 "\txmlDocPtr doc; \n"
2214 "\tdoc = xmlParseFile (\"testfile.xml\");\n"
2216 "\tif (doc == NULL) {\n"
2217 "\t\tprintf (\"Document not parsed successfully. \\n\");\n"
2221 "\t\tprintf (\"Document parsed successfully.\\n\");\n"
2222 "\t\txmlFreeDoc(doc);\n"
2228 "#include <libxml/parser.h>\t\t\t\n"
2229 "#include <stdio.h>\n"
2233 "\txmlDocPtr doc; \n"
2234 "\tdoc = xmlParseFile (\"testfile.xml\");\n"
2236 "\tif (doc == NULL) {\n"
2237 "\t\tprintf (\"Document not parsed successfully. \\n\");\n"
2241 "\t\tprintf (\"Document parsed successfully.\\n\");\n"
2242 "\t\txmlFreeDoc(doc);\n"
2247 #. (itstool) path: sect1/para
2248 #: C/index.docbook:1341
2250 "Our goal is now to compile it and make it work correctly. For that purpose, "
2251 "we must tell <application>GCC</application> two things: where to find libxml/"
2252 "parser.h (that is to say, give <application>GCC</application> the right "
2253 "include path) and what library (i.e. shared object) it should link our "
2254 "project against. There are several ways to do that, I will start with the "
2258 #. (itstool) path: sect2/title
2259 #: C/index.docbook:1349 C/index.docbook:1589
2260 msgid "With pkg-config"
2261 msgstr "Mit pkg-config"
2263 #. (itstool) path: sect2/para
2264 #: C/index.docbook:1350
2266 "<application>pkg-config</application> is tools for developers providing a "
2267 "unified interface for querying installed libraries with their version and "
2268 "all options needed to compile and link it. It comes with an "
2269 "<application>Autoconf</application> macro named PKG_CHECK_MODULES allowing "
2270 "to check the existence of the library and set all necessary flags."
2273 #. (itstool) path: listitem/para
2274 #: C/index.docbook:1360 C/index.docbook:1495
2275 msgid "Add the following line in <filename>configure.ac</filename>."
2278 #. (itstool) path: listitem/programlisting
2279 #: C/index.docbook:1361
2281 msgid "PKG_CHECK_MODULES(XML, libxml-2.0 >= 2.4)"
2282 msgstr "PKG_CHECK_MODULES(XML, libxml-2.0 >= 2.4)"
2284 #. (itstool) path: listitem/para
2285 #: C/index.docbook:1362
2287 "This macro will check the existence of <application>libxml2</application> "
2288 "with a version higher or equal to 2.4 and create 2 variable XML_CFLAGS and "
2289 "XML_LIBS containing respectively, the flags for the C compiler and the "
2290 "linker. <userinput>XML</userinput> is an user defined name. "
2291 "<userinput>libxml-2.0</userinput> is the name of the library. You can run "
2292 "<userinput>pkg-config --list-all</userinput> to get a list of all installed "
2296 #. (itstool) path: listitem/para
2297 #: C/index.docbook:1372 C/index.docbook:1505 C/index.docbook:1532
2298 msgid "Add the following lines in <filename>Makefile.am</filename>."
2301 #. (itstool) path: listitem/programlisting
2302 #: C/index.docbook:1373
2305 "tut_prog_CPPFLAGS = $(XML_CFLAGS)\n"
2306 "tut_prog_LDFLAGS= $(XML_LIBS)"
2308 "tut_prog_CPPFLAGS = $(XML_CFLAGS)\n"
2309 "tut_prog_LDFLAGS= $(XML_LIBS)"
2311 #. (itstool) path: listitem/para
2312 #: C/index.docbook:1375
2314 "This will use the options found by <application>configure</application> when "
2315 "the macro PKG_CHECK_MODULES is executed for compiling your program."
2318 #. (itstool) path: listitem/para
2319 #: C/index.docbook:1381
2320 msgid "That's all. You can run <userinput>make</userinput> again."
2323 #. (itstool) path: listitem/screen
2324 #: C/index.docbook:1382
2328 "cd . && /bin/sh /home/seb2008.1/Projects/tutprog/missing --run aclocal-1.10 \n"
2329 "cd . && /bin/sh /home/seb2008.1/Projects/tutprog/missing --run automake-1.10 --foreign \n"
2330 "cd . && /bin/sh /home/seb2008.1/Projects/tutprog/missing --run autoconf\n"
2331 "/bin/sh ./config.status --recheck\n"
2332 "running CONFIG_SHELL=/bin/sh /bin/sh ./configure --no-create --no-recursion\n"
2333 "checking for a BSD-compatible install... /usr/bin/install -c\n"
2334 "checking whether build environment is sane... yes\n"
2335 "checking for a thread-safe mkdir -p... /bin/mkdir -p\n"
2336 "checking for gawk... gawk\n"
2337 "checking whether make sets $(MAKE)... yes\n"
2338 "checking whether to enable maintainer-specific portions of Makefiles... yes\n"
2339 "checking for style of include used by make... GNU\n"
2340 "checking for gcc... gcc\n"
2341 "checking for C compiler default output file name... a.out\n"
2342 "checking whether the C compiler works... yes\n"
2343 "checking whether we are cross compiling... no\n"
2344 "checking for suffix of executables... \n"
2345 "checking for suffix of object files... o\n"
2346 "checking whether we are using the GNU C compiler... yes\n"
2347 "checking whether gcc accepts -g... yes\n"
2348 "checking for gcc option to accept ISO C89... none needed\n"
2349 "checking dependency style of gcc... gcc3\n"
2350 "checking for library containing strerror... none required\n"
2351 "checking for gcc... (cached) gcc\n"
2352 "checking whether we are using the GNU C compiler... (cached) yes\n"
2353 "checking whether gcc accepts -g... (cached) yes\n"
2354 "checking for gcc option to accept ISO C89... (cached) none needed\n"
2355 "checking dependency style of gcc... (cached) gcc3\n"
2356 "checking for gcc... (cached) gcc\n"
2357 "checking whether we are using the GNU C compiler... (cached) yes\n"
2358 "checking whether gcc accepts -g... (cached) yes\n"
2359 "checking for gcc option to accept ISO C89... (cached) none needed\n"
2360 "checking dependency style of gcc... (cached) gcc3\n"
2361 "checking how to run the C preprocessor... gcc -E\n"
2362 "checking for grep that handles long lines and -e... /bin/grep\n"
2363 "checking for egrep... /bin/grep -E\n"
2364 "checking for ANSI C header files... yes\n"
2365 "checking for pkg-config... /usr/bin/pkg-config\n"
2366 "checking pkg-config is at least version 0.9.0... yes\n"
2367 "checking for XML... yes\n"
2368 "configure: creating ./config.status\n"
2369 " /bin/sh ./config.status\n"
2370 "config.status: creating Makefile\n"
2371 "config.status: creating config.h\n"
2372 "config.status: config.h is unchanged\n"
2373 "config.status: executing depfiles commands\n"
2374 "cd . && /bin/sh /home/seb2008.1/Projects/tutprog/missing --run autoheader\n"
2376 "touch config.h.in\n"
2377 "cd . && /bin/sh ./config.status config.h\n"
2378 "config.status: creating config.h\n"
2379 "config.status: config.h is unchanged\n"
2381 "make[1]: Entering directory `/home/seb/Projects/tutprog'\n"
2382 "gcc -DHAVE_CONFIG_H -I. -DPACKAGE_DATA_DIR=\\\"\"/usr/local/share\"\\\" -I/usr/include/libxml2 \\\n"
2383 " -Wall -g -g -O2 -MT main.o -MD -MP -MF .deps/main.Tpo -c -o main.o main.c\n"
2384 "mv -f .deps/main.Tpo .deps/main.Po\n"
2385 "gcc -Wall -g -g -O2 -o tutprog main.o -lxml2 \n"
2386 "make[1]: Leaving directory `/home/seb/Projects/tutprog'"
2389 "cd . && /bin/sh /home/seb2008.1/Projects/tutprog/missing --run aclocal-1.10 \n"
2390 "cd . && /bin/sh /home/seb2008.1/Projects/tutprog/missing --run automake-1.10 --foreign \n"
2391 "cd . && /bin/sh /home/seb2008.1/Projects/tutprog/missing --run autoconf\n"
2392 "/bin/sh ./config.status --recheck\n"
2393 "running CONFIG_SHELL=/bin/sh /bin/sh ./configure --no-create --no-recursion\n"
2394 "checking for a BSD-compatible install... /usr/bin/install -c\n"
2395 "checking whether build environment is sane... yes\n"
2396 "checking for a thread-safe mkdir -p... /bin/mkdir -p\n"
2397 "checking for gawk... gawk\n"
2398 "checking whether make sets $(MAKE)... yes\n"
2399 "checking whether to enable maintainer-specific portions of Makefiles... yes\n"
2400 "checking for style of include used by make... GNU\n"
2401 "checking for gcc... gcc\n"
2402 "checking for C compiler default output file name... a.out\n"
2403 "checking whether the C compiler works... yes\n"
2404 "checking whether we are cross compiling... no\n"
2405 "checking for suffix of executables... \n"
2406 "checking for suffix of object files... o\n"
2407 "checking whether we are using the GNU C compiler... yes\n"
2408 "checking whether gcc accepts -g... yes\n"
2409 "checking for gcc option to accept ISO C89... none needed\n"
2410 "checking dependency style of gcc... gcc3\n"
2411 "checking for library containing strerror... none required\n"
2412 "checking for gcc... (cached) gcc\n"
2413 "checking whether we are using the GNU C compiler... (cached) yes\n"
2414 "checking whether gcc accepts -g... (cached) yes\n"
2415 "checking for gcc option to accept ISO C89... (cached) none needed\n"
2416 "checking dependency style of gcc... (cached) gcc3\n"
2417 "checking for gcc... (cached) gcc\n"
2418 "checking whether we are using the GNU C compiler... (cached) yes\n"
2419 "checking whether gcc accepts -g... (cached) yes\n"
2420 "checking for gcc option to accept ISO C89... (cached) none needed\n"
2421 "checking dependency style of gcc... (cached) gcc3\n"
2422 "checking how to run the C preprocessor... gcc -E\n"
2423 "checking for grep that handles long lines and -e... /bin/grep\n"
2424 "checking for egrep... /bin/grep -E\n"
2425 "checking for ANSI C header files... yes\n"
2426 "checking for pkg-config... /usr/bin/pkg-config\n"
2427 "checking pkg-config is at least version 0.9.0... yes\n"
2428 "checking for XML... yes\n"
2429 "configure: creating ./config.status\n"
2430 " /bin/sh ./config.status\n"
2431 "config.status: creating Makefile\n"
2432 "config.status: creating config.h\n"
2433 "config.status: config.h is unchanged\n"
2434 "config.status: executing depfiles commands\n"
2435 "cd . && /bin/sh /home/seb2008.1/Projects/tutprog/missing --run autoheader\n"
2437 "touch config.h.in\n"
2438 "cd . && /bin/sh ./config.status config.h\n"
2439 "config.status: creating config.h\n"
2440 "config.status: config.h is unchanged\n"
2442 "make[1]: Entering directory `/home/seb/Projects/tutprog'\n"
2443 "gcc -DHAVE_CONFIG_H -I. -DPACKAGE_DATA_DIR=\\\"\"/usr/local/share\"\\\" -I/usr/include/libxml2 \\\n"
2444 " -Wall -g -g -O2 -MT main.o -MD -MP -MF .deps/main.Tpo -c -o main.o main.c\n"
2445 "mv -f .deps/main.Tpo .deps/main.Po\n"
2446 "gcc -Wall -g -g -O2 -o tutprog main.o -lxml2 \n"
2447 "make[1]: Leaving directory `/home/seb/Projects/tutprog'"
2449 #. (itstool) path: listitem/para
2450 #: C/index.docbook:1442
2452 "There is no need to rerun <application>Autoconf</application> or "
2453 "<application>Automake</application> because the Makefile generated by it "
2454 "already contains some rules to do it."
2457 #. (itstool) path: tip/para
2458 #: C/index.docbook:1450
2460 "When installed, each library supporting pkg-config copy a small text file, "
2461 "with .pc extension, in a system directory; normally <filename>/usr/lib/"
2462 "pkgconfig</filename>. If you install a library from source it will be by "
2463 "default in <filename>/usr/local/lib/pkgconfig</filename>. You can ask "
2464 "<application>pkg-config</application> to search in this directory too, by "
2465 "defining the environment variable <userinput> PKG_CONFIG_PATH=/usr/local/lib/"
2466 "pkgconfig</userinput>."
2469 #. (itstool) path: sect2/title
2470 #: C/index.docbook:1460
2471 msgid "With an <application>Autoconf</application> macro"
2472 msgstr "Mit einem <application>Autoconf</application>-Makro"
2474 #. (itstool) path: listitem/para
2475 #: C/index.docbook:1467
2477 "Check if the library author shipped a <application>M4</application> macro, "
2478 "and use it if present. It is a text file named like the library with a .m4 "
2479 "extension often installed in <filename>/usr/share/aclocal</filename>."
2482 #. (itstool) path: listitem/para
2483 #: C/index.docbook:1472
2485 "If your library is a basic one, it might be checked by the standard "
2486 "<application>Autoconf</application> macros (see the list <ulink type=\"http"
2487 "\" url=\"http://sources.redhat.com/autobook/autobook/autobook_283."
2488 "html#SEC283\"> here</ulink>)."
2491 #. (itstool) path: listitem/para
2492 #: C/index.docbook:1478
2494 "Perhaps the <application>M4</application> macro you need has already be "
2495 "programmed by someone else. Look at the contributions <ulink type=\"http\" "
2496 "url=\"http://www.gnu.org/software/ac-archive/\">here</ulink>."
2499 #. (itstool) path: listitem/para
2500 #: C/index.docbook:1482
2502 "If all that fail, go deeper in <application>M4</application>, make your own "
2503 "macro, and donate it to the library's author!"
2506 #. (itstool) path: sect2/para
2507 #: C/index.docbook:1461
2509 "If the library does not support <application>pkg-config</application>: it "
2510 "does not appear in the list returned by <userinput>pkg-config --list-all</"
2511 "userinput>. You need a <application>Autoconf</application> macro: <_:"
2515 #. (itstool) path: sect2/para
2516 #: C/index.docbook:1487
2518 "When, you have this macro, you can copy it in <filename>/usr/share/aclocal</"
2519 "filename>, so <application>aclocal</application> will find it. Then, you "
2520 "just need to look in the macro file to see how to use it. "
2521 "<application>libxml2</application> installs a macro named AM_PATH_XML2 which "
2522 "is in <filename>/usr/share/aclocal/libxml.m4</filename>."
2525 #. (itstool) path: listitem/programlisting
2526 #: C/index.docbook:1496
2528 msgid "AM_PATH_XML2(2.4.0)"
2529 msgstr "AM_PATH_XML2(2.4.0)"
2531 #. (itstool) path: listitem/para
2532 #: C/index.docbook:1497
2534 "This macro will check the existence of the library with a version higher or "
2535 "equal to 2.4 and create 2 variable XML_CPPFLAGS and XML_LIBS containing "
2536 "respectively, the flags for the C compiler and the linker. You get these "
2537 "information from the comments in the macro file."
2540 #. (itstool) path: listitem/programlisting
2541 #: C/index.docbook:1506
2544 "tut_prog_CPPFLAGS = $(XML_CPPFLAGS)\n"
2545 "tut_prog_LDFLAGS= $(XML_LIBS)"
2547 "tut_prog_CPPFLAGS = $(XML_CPPFLAGS)\n"
2548 "tut_prog_LDFLAGS= $(XML_LIBS)"
2550 #. (itstool) path: listitem/para
2551 #: C/index.docbook:1508
2553 "This will use the options found by configure for compiling your program. "
2554 "Note that the macro defined XML_CPPFLAGS instead of XML_CFLAGS with "
2555 "<application>pkg-config</application>. Using CPPFLAGS makes more sense, "
2556 "because these flags are used by the C preprocessor, most of the time only to "
2557 "setup the path of the include files."
2560 #. (itstool) path: listitem/para
2561 #: C/index.docbook:1516
2563 "That's all. You can run <userinput>make</userinput> again. The generated "
2564 "<filename>Makefile</filename> is almost the same."
2567 #. (itstool) path: sect2/title
2568 #: C/index.docbook:1522
2569 msgid "With hardcoded library path"
2572 #. (itstool) path: sect2/para
2573 #: C/index.docbook:1523
2575 "It is the approach one could naturally have: let's give <application>GCC</"
2576 "application> the stuff it needs directly ! On my system, <filename>libxml/"
2577 "parser.h</filename> is in <filename class=\"directory\">/usr/include/"
2578 "libxml2</filename>, and the shared object is 'libxml.so', located in "
2579 "<filename>/usr/lib</filename>. (I will assume it's all the same for you)."
2582 #. (itstool) path: listitem/programlisting
2583 #: C/index.docbook:1533
2586 "tut_prog_CPPFLAGS = -I /usr/include/libxml2\n"
2587 "tut_prog_LDFLAGS= -lxml2"
2589 "tut_prog_CPPFLAGS = -I /usr/include/libxml2\n"
2590 "tut_prog_LDFLAGS= -lxml2"
2592 #. (itstool) path: listitem/para
2593 #: C/index.docbook:1535
2595 "There is no need to change <filename>configure.ac</filename> because you "
2596 "don't check anything and just assume that all host system will have the "
2597 "right library in the same place than you."
2600 #. (itstool) path: listitem/para
2601 #: C/index.docbook:1542
2603 "You can run <userinput>make</userinput> and it should work if you have the "
2604 "same system than me."
2607 #. (itstool) path: listitem/screen
2608 #: C/index.docbook:1544
2612 " cd . && /bin/sh /home/seb2008.1/Projects/tutprog/missing --run automake-1.10 --foreign Makefile\n"
2613 " cd . && /bin/sh ./config.status Makefile depfiles\n"
2614 "config.status: creating Makefile\n"
2615 "config.status: executing depfiles commands\n"
2617 "make[1]: Entering directory `/home/seb/Projects/tutprog'\n"
2618 "gcc -DHAVE_CONFIG_H -I. -DPACKAGE_DATA_DIR=\\\"\"/usr/local/share\"\\\" -I /usr/include/libxml2 \\\n"
2619 " -Wall -g -g -O2 -MT main.o -MD -MP -MF .deps/main.Tpo -c -o main.o main.c\n"
2620 "mv -f .deps/main.Tpo .deps/main.Po\n"
2621 "gcc -Wall -g -g -O2 -o tutprog main.o -lxml2 \n"
2622 "make[1]: Leaving directory `/home/seb/Projects/tutprog'"
2625 " cd . && /bin/sh /home/seb2008.1/Projects/tutprog/missing --run automake-1.10 --foreign Makefile\n"
2626 " cd . && /bin/sh ./config.status Makefile depfiles\n"
2627 "config.status: creating Makefile\n"
2628 "config.status: executing depfiles commands\n"
2630 "make[1]: Entering directory `/home/seb/Projects/tutprog'\n"
2631 "gcc -DHAVE_CONFIG_H -I. -DPACKAGE_DATA_DIR=\\\"\"/usr/local/share\"\\\" -I /usr/include/libxml2 \\\n"
2632 " -Wall -g -g -O2 -MT main.o -MD -MP -MF .deps/main.Tpo -c -o main.o main.c\n"
2633 "mv -f .deps/main.Tpo .deps/main.Po\n"
2634 "gcc -Wall -g -g -O2 -o tutprog main.o -lxml2 \n"
2635 "make[1]: Leaving directory `/home/seb/Projects/tutprog'"
2637 #. (itstool) path: listitem/para
2638 #: C/index.docbook:1564
2640 "It is not portable to various linuxes: perhaps on other distribution the "
2641 "include path is different."
2644 #. (itstool) path: listitem/para
2645 #: C/index.docbook:1568
2647 "If the next versions of libxml have different paths, or different needed "
2648 "libraries, we will need to update the project."
2651 #. (itstool) path: listitem/para
2652 #: C/index.docbook:1572
2653 msgid "We don't test whether the system of the packager/user has the library."
2656 #. (itstool) path: listitem/para
2657 #: C/index.docbook:1576
2659 "We cannot check the version of the <application>libxml2</application> we use."
2662 #. (itstool) path: sect2/para
2663 #: C/index.docbook:1558
2665 "I have described this here to show that it is possible to do simple thing "
2666 "using <application>Autotools</application>. But this approach has several "
2667 "drawbacks: <_:itemizedlist-1/>"
2670 #. (itstool) path: sect1/para
2671 #: C/index.docbook:1584
2673 "With <application>Anjuta</application> adding a library supporting "
2674 "<application>pkg-config</application> can be almost done without the "
2678 #. (itstool) path: listitem/para
2679 #: C/index.docbook:1592
2681 "Open the file <filename>main.c</filename> of the <application>Anjuta</"
2682 "application> project created in the previous chapter. Replace it with the "
2686 #. (itstool) path: listitem/para
2687 #: C/index.docbook:1618
2689 "Select <menuchoice><guisubmenu>Project</guisubmenu> <guimenuitem>Properties</"
2690 "guimenuitem><guilabel>Packages</guilabel></menuchoice>, to get the package "
2691 "properties dialog."
2694 #. (itstool) path: listitem/para
2695 #: C/index.docbook:1623
2697 "Click on <guibutton>Add module</guibutton> button and Enter a name in the "
2698 "<guilabel>Module/Package</guilabel> column, \"XML\" by example."
2701 #. (itstool) path: listitem/para
2702 #: C/index.docbook:1627
2704 "Click on <guibutton>Add Package</guibutton> button that should be enabled "
2705 "now. You get the a dialog where you can select the library that you want to "
2706 "use. This dialog list all libraries supporting <application>pkg-config</"
2707 "application>. Select <userinput>libxml-2.0</userinput>. Then click on "
2708 "<guibutton>Add</guibutton> button."
2711 #. (itstool) path: listitem/para
2712 #: C/index.docbook:1633
2713 msgid "The package properties dialog should look like the following:"
2716 #. (itstool) path: figure/title
2717 #: C/index.docbook:1637
2718 msgid "Project package properties dialog"
2721 #. (itstool) path: imageobject/imagedata
2722 #. This is a reference to an external file such as an image or video. When
2723 #. the file changes, the md5 hash will change to let you know you need to
2724 #. update your localized copy. The msgstr is not used at all. Set it to
2725 #. whatever you like once you have updated your copy of the file.
2726 #: C/index.docbook:1641
2729 "external ref='figures/library-add-pkgconfig.png' "
2730 "md5='3ccc834696358394b215e27994b0f25e'"
2733 #. (itstool) path: listitem/para
2734 #: C/index.docbook:1646
2736 "The module XML contains one library named libxml-2.0. You can define a "
2737 "minimum version required by clicking in the version column and writing "
2738 "<userinput>>= 2.4</userinput>. All this operation add the necessary lines "
2739 "in the file <filename>configure.ac</filename>."
2742 #. (itstool) path: listitem/para
2743 #: C/index.docbook:1653
2745 "Close the dialog and select <menuchoice><guisubmenu>Project</guisubmenu> "
2746 "<guimenuitem>Refresh</guimenuitem></menuchoice>. This should not be needed "
2747 "but is necessary with the current version of <application>Anjuta</"
2748 "application>. This bug has already been reported (#541694) and will be fixed "
2752 #. (itstool) path: listitem/para
2753 #: C/index.docbook:1659
2755 "In the project view, select the project target tutprog and click on right "
2756 "button to get a context menu and select Properties. You will get the target "
2757 "properties dialog."
2760 #. (itstool) path: listitem/para
2761 #: C/index.docbook:1663
2763 "This dialog will list all modules available in your project, just check the "
2764 "XML module. This will modify the file <filename>Makefile.am</filename> to "
2765 "use the right library."
2768 #. (itstool) path: figure/title
2769 #: C/index.docbook:1669
2770 msgid "Target properties dialog"
2773 #. (itstool) path: imageobject/imagedata
2774 #. This is a reference to an external file such as an image or video. When
2775 #. the file changes, the md5 hash will change to let you know you need to
2776 #. update your localized copy. The msgstr is not used at all. Set it to
2777 #. whatever you like once you have updated your copy of the file.
2778 #: C/index.docbook:1673
2781 "external ref='figures/library-add-properties.png' "
2782 "md5='53095c1d9d784e3b71111b856ca3a97a'"
2785 #. (itstool) path: listitem/para
2786 #: C/index.docbook:1680
2788 "Click on <guibutton>Close</guibutton> and that's all. You can select "
2789 "<menuchoice><guisubmenu>Build</guisubmenu> <guimenuitem>Build</guimenuitem></"
2790 "menuchoice> to rebuild your project."
2793 #. (itstool) path: sect2/title
2794 #: C/index.docbook:1687
2795 msgid "Without pkg-config"
2796 msgstr "Ohne pkg-config"
2798 #. (itstool) path: sect2/para
2799 #: C/index.docbook:1688
2801 "<application>Anjuta</application> has no real support for library not using "
2802 "<application>pkg-config</application>. You need to edit the "
2803 "<filename>configure.ac</filename> directly to add all necessary macros. For "
2804 "passing flags to each target you can select the <guibutton>Advanced</"
2805 "guibutton> button in the target properties dialog."
2808 #. (itstool) path: chapter/title
2809 #: C/index.docbook:1701
2813 #. (itstool) path: chapter/para
2814 #: C/index.docbook:1702
2816 "Here are some links to reference documents dealing with "
2817 "<application>Autotools</application> in general and <application>Autoconf</"
2818 "application> and <application>Automake</application> in particular."
2820 "Hier finden Sie einige Links zu Referenzdokumenten, die sich mit den "
2821 "<application>Autotools</application> im Allgemeinen sowie mit "
2822 "<application>Autoconf</application> und <application>Automake</application> "
2823 "im Besonderen befassen."
2825 #. (itstool) path: varlistentry/term
2826 #: C/index.docbook:1708
2830 #. (itstool) path: listitem/para
2831 #: C/index.docbook:1713
2833 "First, you can take a look at the <ulink type=\"http\" url=\"http://www.gnu."
2834 "org/software/autoconf/manual/autoconf.html\"> Autoconf</ulink>, <ulink type="
2835 "\"http\" url=\"http://www.gnu.org/software/automake/manual/automake.html\"> "
2836 "Automake</ulink>, <ulink type=\"http\" url=\"http://www.gnu.org/software/"
2837 "libtool/manual/libtool.html\"> Libtool</ulink>, <ulink type=\"http\" url="
2838 "\"http://www.gnu.org/software/make/manual/make.html\"> make</ulink> and "
2839 "<ulink type=\"http\" url=\"http://www.gnu.org/software/m4/manual/m4.html\"> "
2840 "M4</ulink> manuals."
2842 "Zunächst können Sie sich die Handbücher von <ulink type=\"http\" url="
2843 "\"http://www.gnu.org/software/autoconf/manual/autoconf.html\"> Autoconf</"
2844 "ulink>, <ulink type=\"http\" url=\"http://www.gnu.org/software/automake/"
2845 "manual/automake.html\"> Automake</ulink>, <ulink type=\"http\" url=\"http://"
2846 "www.gnu.org/software/libtool/manual/libtool.html\"> Libtool</ulink>, <ulink "
2847 "type=\"http\" url=\"http://www.gnu.org/software/make/manual/make.html\"> "
2848 "make</ulink> und <ulink type=\"http\" url=\"http://www.gnu.org/software/m4/"
2849 "manual/m4.html\"> M4</ulink> anschauen."
2851 #. (itstool) path: listitem/para
2852 #: C/index.docbook:1728
2854 "The <ulink type=\"http\" url=\"http://sources.redhat.com/autobook/autobook/"
2855 "autobook_toc.html\"> Autobook</ulink> explains in details how the "
2856 "<application>Autotools</application> work."
2858 "Das <ulink type=\"http\" url=\"http://sources.redhat.com/autobook/autobook/"
2859 "autobook_toc.html\"> Autobook</ulink> exklärt detailliert, wie die "
2860 "<application>Autotools</application> funktionieren."
2862 #. (itstool) path: listitem/para
2863 #: C/index.docbook:1733
2865 "Amongst the various GNU development tools you are told about, <ulink type="
2866 "\"http\" url=\"http://autotoolset.sourceforge.net/tutorial.html\"> here</"
2867 "ulink> are <application>Autoconf</application> and <application>Automake</"
2871 #. (itstool) path: listitem/para
2872 #: C/index.docbook:1739
2874 "<ulink url=\"http://www.lrde.epita.fr/~adl/autotools.html\">Here</ulink> and "
2875 "<ulink url=\"http://seul.org/docs/autotut/\">here</ulink> are two other "
2876 "tutorials about <application>Autotools</application>."
2878 "<ulink url=\"http://www.lrde.epita.fr/~adl/autotools.html\">Hier</ulink> und "
2879 "<ulink url=\"http://seul.org/docs/autotut/\">hier</ulink> sind zwei weitere "
2880 "Tutorials zu den <application>Autotools</application>."
2882 #. (itstool) path: varlistentry/term
2883 #: C/index.docbook:1747
2885 msgstr "Französisch"
2887 #. (itstool) path: listitem/para
2888 #: C/index.docbook:1748
2890 "<ulink type=\"http\" url=\"http://www.infres.enst.fr/~dax/polys/configure/"
2891 "slide1.html\"> Here</ulink> are some slides by a teacher from Ecole "
2892 "Nationale Supérieure des Télecoms about the <application>Autotools</"
2895 "<ulink type=\"http\" url=\"http://www.infres.enst.fr/~dax/polys/configure/"
2896 "slide1.html\"> Hier</ulink> finden Sie einige Präsentationsfolien eines "
2897 "Lehrers der Ecole Nationale Supérieure des Télecoms über die "
2898 "<application>Autotools</application>."
2900 #. (itstool) path: varlistentry/term
2901 #: C/index.docbook:1754
2905 #. (itstool) path: listitem/para
2906 #: C/index.docbook:1756
2908 "<ulink type=\"http\" url=\"http://larse-gtk.hp.infoseek.co.jp/automake.html"
2909 "\"> A tutorial about <application>Autoconf</application> and "
2910 "<application>Automake</application> </ulink>."
2912 "<ulink type=\"http\" url=\"http://larse-gtk.hp.infoseek.co.jp/automake.html"
2913 "\"> Ein Tutorial zu <application>Autoconf</application> und "
2914 "<application>Automake</application> </ulink>."
2916 #. (itstool) path: tip/para
2917 #: C/index.docbook:1762
2919 "This tutorial uses <application>Autoconf 2.61 (November 2006)</application> "
2920 "and <application>Automake 1.10.1 (January 2008)</application>. Some of these "
2921 "documentations uses older versions. the syntaxes could have changed quite a "
2922 "bit. These old syntaxes usually still work and are used in old project. It "
2923 "is useful to know them but it is a bad idea to use them in a new project."