[anjuta] Initial German translation of the build tutorial



commit e2de7bc6ed8b37477ea03eb5a1c4470acdf0a2db
Author: Mario Blättermann <mario blaettermann gmail com>
Date:   Sun Apr 22 17:46:26 2018 +0200

    Initial German translation of the build tutorial

 manuals/anjuta-build-tutorial/Makefile.am |    2 +-
 manuals/anjuta-build-tutorial/de/de.po    | 2390 +++++++++++++++++++++++++++++
 2 files changed, 2391 insertions(+), 1 deletions(-)
---
diff --git a/manuals/anjuta-build-tutorial/Makefile.am b/manuals/anjuta-build-tutorial/Makefile.am
index f08a9fb..3838487 100644
--- a/manuals/anjuta-build-tutorial/Makefile.am
+++ b/manuals/anjuta-build-tutorial/Makefile.am
@@ -18,6 +18,6 @@ HELP_MEDIA = figures/autotools-process.png \
        figures/new-project-basic.png \
        figures/new-project-summary.png
 
-HELP_LINGUAS = cs es
+HELP_LINGUAS = cs de es
 
 -include $(top_srcdir)/git.mk
diff --git a/manuals/anjuta-build-tutorial/de/de.po b/manuals/anjuta-build-tutorial/de/de.po
new file mode 100644
index 0000000..55b908e
--- /dev/null
+++ b/manuals/anjuta-build-tutorial/de/de.po
@@ -0,0 +1,2390 @@
+# German translation for the Anjuta build tutorial.
+# Copyright (C) 2018 anjuta's COPYRIGHT HOLDER
+# This file is distributed under the same license as the anjuta package.
+# Mario Blättermann <mario blaettermann gmail com>, 2018.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: anjuta master\n"
+"POT-Creation-Date: 2018-03-24 09:56+0000\n"
+"PO-Revision-Date: 2018-04-22 17:33+0200\n"
+"Language-Team: German <gnome-de gnome org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: de\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Last-Translator: Mario Blättermann <mario blaettermann gmail com>\n"
+"X-Generator: Poedit 2.0.6\n"
+
+#. Put one translator per line, in the form NAME <EMAIL>, YEAR1, YEAR2
+msgctxt "_"
+msgid "translator-credits"
+msgstr ""
+
+#. (itstool) path: bookinfo/title
+#: C/index.docbook:11
+msgid "Anjuta build tutorial"
+msgstr ""
+
+#. (itstool) path: bookinfo/edition
+#: C/index.docbook:12
+msgid "v0.2"
+msgstr "v0.2"
+
+#. (itstool) path: bookinfo/copyright
+#: C/index.docbook:14
+msgid "<year>2004</year> <holder>Olivier Pinçon</holder>"
+msgstr "<year>2004</year> <holder>Olivier Pinçon</holder>"
+
+#. (itstool) path: bookinfo/copyright
+#: C/index.docbook:18
+msgid "<year>2008</year> <holder>Sébastien Granjoux</holder>"
+msgstr "<year>2008</year> <holder>Sébastien Granjoux</holder>"
+
+#. (itstool) path: legalnotice/para
+#: C/index.docbook:31
+msgid ""
+"Permission is granted to copy, distribute and/or modify this document under the terms of the <citetitle>GNU 
Free "
+"Documentation License</citetitle>, Version 1.1 or any later version published by the Free Software 
Foundation with "
+"no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. You may obtain a copy of the 
<citetitle>GNU "
+"Free Documentation License</citetitle> from the Free Software Foundation by visiting <ulink type=\"http\" 
url="
+"\"http://www.fsf.org\";>their Web site</ulink> or by writing to: Free Software Foundation, Inc., 51 Franklin 
"
+"Street, Fifth Floor, Boston, MA 02110-1301, USA."
+msgstr ""
+
+#. (itstool) path: legalnotice/para
+#: C/index.docbook:43
+msgid ""
+"Many of the names used by companies to distinguish their products and services are claimed as trademarks. 
Where "
+"those names appear in any GNOME documentation, and those trademarks are made aware to the members of the 
GNOME "
+"Documentation Project, the names have been printed in caps or initial caps."
+msgstr ""
+
+#. (itstool) path: bookinfo/releaseinfo
+#: C/index.docbook:53
+msgid "This is version 0.2 of Anjuta build tutorial"
+msgstr ""
+
+#. (itstool) path: chapter/title
+#: C/index.docbook:60
+msgid "Introduction"
+msgstr ""
+
+#. (itstool) path: chapter/para
+#: C/index.docbook:61
+msgid ""
+"If you come from the Windows world, when you first launched <application>Anjuta</application>, you can told 
"
+"yourself : \"Hey, that looks like MS Visual C++, as I know it pretty well, understanding 
<application>Anjuta</"
+"application> will be a piece of cake.\". <application>Anjuta</application> looks like 
<application>Microsoft "
+"Visual Studio</application> or <application>Borland's C++ Builder</application>. but it has some 
significative "
+"differences essentially in its build system."
+msgstr ""
+
+#. (itstool) path: chapter/para
+#: C/index.docbook:69
+msgid ""
+"If you are starting programming directly on GNU/Linux, you have probably already heard of the "
+"<application>Autotools</application>. They are a major and probably a bit intimidating part of the 
development "
+"environment."
+msgstr ""
+
+#. (itstool) path: chapter/para
+#: C/index.docbook:74
+msgid ""
+"The goal of <application>Anjuta</application> is to make it easier to use the already existing development 
tools. "
+"<application>Anjuta</application> main build system uses the standard Linux build system: 
<application>Autotools</"
+"application>. This tutorial is an updated version of the <application>Anjuta</application> advanced 
tutorial from "
+"Olivier Pinçon. It explains how the build system is working without <application>Anjuta</application> and 
how to "
+"use it within <application>Anjuta</application>. It assumes that you have only a basic understanding of C 
or C++ "
+"and have been written using <application>Anjuta 2.6 (September 2008)</application>."
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:90
+msgid ""
+"Fill a bug in <ulink url=\"http://bugzilla.gnome.org/enter_bug.cgi?product=anjuta\";> <application>Anjuta</"
+"application> bugzilla database</ulink>."
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:94
+msgid ""
+"Send a message to <application>Anjuta</application> developer mailing list 
<email>anjuta-devel@lists.sourceforge."
+"net</email>"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:98
+msgid ""
+"Join <application>Anjuta</application> IRC channel <ulink url=\"irc://irc.gnome.org/anjuta\">#anjuta on 
irc.gnome."
+"org</ulink>"
+msgstr ""
+
+#. (itstool) path: chapter/para
+#: C/index.docbook:85
+msgid ""
+"If you find errors, need more explanations or have any idea for improvements on this tutorial or "
+"<application>Anjuta</application> in general, you can: <_:itemizedlist-1/>"
+msgstr ""
+
+#. (itstool) path: chapter/title
+#: C/index.docbook:107
+msgid "Building a project"
+msgstr ""
+
+#. (itstool) path: chapter/para
+#: C/index.docbook:108
+msgid ""
+"This chapter explains how to build a program starting from the most basic tool: the compiler. This order is 
"
+"important to understand how is it working because each tool adds a new layer on top of the previous ones."
+msgstr ""
+
+#. (itstool) path: sect1/title
+#: C/index.docbook:114
+msgid "Using <application>GCC</application>"
+msgstr ""
+
+#. (itstool) path: sect1/para
+#: C/index.docbook:115
+msgid "Here is a typical command to generate an executable from C source files using 
<application>GCC</application>:"
+msgstr ""
+
+#. (itstool) path: sect1/screen
+#: C/index.docbook:119
+#, no-wrap
+msgid ""
+"\n"
+"<prompt>$</prompt><userinput>gcc -g -Wall -I/usr/include/libxml2/libxml -lxml2 main.c aux.c -o 
tut_prog</userinput>"
+msgstr ""
+
+#. (itstool) path: sect1/para
+#: C/index.docbook:121
+msgid ""
+"This command tells <application>GCC</application> to compile the source files main.c and aux.c, and produce 
a "
+"binary called 'tut_prog' (this stands for 'tutorial program'). The various switches have the following 
meaning :"
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:128
+msgid "<parameter>-g</parameter>"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:130
+msgid "tells <application>GCC</application> to include debug information into the binary."
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:134
+msgid "<parameter>-Wall</parameter>"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:136
+msgid "Warning all : print every warning. This switch is used by the C compiler only."
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:140
+msgid "<parameter>-Idir <replaceable>dir</replaceable></parameter>"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:142
+msgid ""
+"Look for included header files (like in #include &lt;myheader.h&gt;) in directory 
<replaceable>dir</replaceable>. "
+"This switch is used by the C preprocessor only."
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:148
+msgid "<parameter>-llib <replaceable>lib</replaceable></parameter>"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:150
+msgid "Link to library <replaceable>lib</replaceable>; here <application>libxml2</application>, used by the 
linker."
+msgstr ""
+
+#. (itstool) path: sect1/para
+#: C/index.docbook:155
+msgid ""
+"In fact, <application>GCC</application> does not do the compilation itself. It gets all arguments from the 
user "
+"and calls other programs passing them the needed arguments with some default one to do the four stages 
involved in "
+"the compilation."
+msgstr ""
+
+#. (itstool) path: figure/title
+#: C/index.docbook:162
+msgid "<application>GCC</application> compilation stage"
+msgstr ""
+
+#. (itstool) path: imageobject/imagedata
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/index.docbook:165
+msgctxt "_"
+msgid "external ref='figures/compilation-stages.png' md5='395d9386a3de8f8c479265c6c5c5421f'"
+msgstr ""
+
+#. (itstool) path: sect2/title
+#: C/index.docbook:170
+msgid "Preprocessor"
+msgstr ""
+
+#. (itstool) path: sect2/para
+#: C/index.docbook:171
+msgid ""
+"Each C source file goes through the preprocessor, named <application>cpp</application>. In this stage, all 
include "
+"files and macros are expanded to get preprocessed C source code. The resulting file .i is rarely generated 
but it "
+"could be interesting to see how complex macros are expanded. You can do this by calling <application>cpp</"
+"application> directly or using the <userinput>-E</userinput> switch of <application>GCC</application>. The 
later "
+"option is better as it allows to run the preprocessor with all default options."
+msgstr ""
+
+#. (itstool) path: sect2/title
+#: C/index.docbook:183
+msgid "Compiler"
+msgstr ""
+
+#. (itstool) path: sect2/para
+#: C/index.docbook:184
+msgid ""
+"In this stage each file is compiled into assembler code. The compiler depends on the language of the source 
file, "
+"C here. It is a complex program because there is not a one to one correspondence between C instructions and 
"
+"assembler instructions. By example, requesting the fastest or the smallest program will generate different "
+"sequences of assembler instructions. The assembler is the language of your computer, the most common one is 
called "
+"x86. The output is a, human readable, assembler source file ending with '.s'. Like the preprocessor output, 
the "
+"assembler code is not normally written on the hard disk. You can stop the compilation at this stage to look 
at it "
+"by running <application>GCC</application> with the <userinput>-S</userinput> switch."
+msgstr ""
+
+#. (itstool) path: sect2/title
+#: C/index.docbook:201
+msgid "Assembler"
+msgstr ""
+
+#. (itstool) path: sect2/para
+#: C/index.docbook:202
+msgid ""
+"In this stage each file is assembled: the assembler code is transformed to an object file with .o 
extension. It is "
+"much easier than the compilation as each assembler instruction corresponds to an unique code. The object 
file "
+"contains additional information for debugging or linking the program. The object file is a binary format, 
called "
+"ELF on recent Linux machine, you need to use special program to look in it like <application>objdump</"
+"application>. It is possible to write directly assembler code and assemble it using the assembler ,"
+"<application>as</application>, or <application>GCC</application> if your source file has a .s extension. 
These "
+"object files are commonly written on your hard disk because it depends only of theirs corresponding C 
source file "
+"(with all files included). If you modify only one source file, you need to regenerate only the 
corresponding "
+"object file. You can stop at this stage, without linking by using <userinput>-c</userinput> switch with "
+"<application>GCC</application>."
+msgstr ""
+
+#. (itstool) path: sect2/title
+#: C/index.docbook:221
+msgid "Linker"
+msgstr ""
+
+#. (itstool) path: sect2/para
+#: C/index.docbook:222
+msgid ""
+"This stage is used to combine all the object files and libraries into one executable file. The result is a 
binary "
+"file in a format close to the object file, on Linux it is even the same format."
+msgstr ""
+
+#. (itstool) path: sect1/title
+#: C/index.docbook:230
+msgid "Using <application>make</application>"
+msgstr ""
+
+#. (itstool) path: sect1/para
+#: C/index.docbook:231
+msgid ""
+"When a program is composed of lots of sources files, it is much faster to keep the object files and 
recompile each "
+"source files only when needed. This can be automated using <application>make</application>. It executes a 
program "
+"written in a makefile, normally named <filename>Makefile</filename>. A sample makefile for the previous 
tutorial "
+"program could be :"
+msgstr ""
+
+#. (itstool) path: example/title
+#: C/index.docbook:240
+msgid "A simple Makefile file"
+msgstr ""
+
+#. (itstool) path: example/programlisting
+#: C/index.docbook:241
+#, no-wrap
+msgid ""
+"\n"
+"CC=gcc \t# the C compiler is gcc\n"
+"CFLAGS=-g -Wall -I/usr/include/libxml2\n"
+"LIBS=-lxml2\t\t\t\t\t\n"
+"\t\t\t\t\n"
+"tut_prog: main.o aux.o   # what we need to have 'tut_prog'...\n"
+"\t$(CC) $(LIBS) main.o aux.o -o tut_prog # ...and how to get it from the ingredients.\n"
+"\t\t\t\t\t\n"
+"main.o: main.c\n"
+"\t$(CC) -c $(CFLAGS) main.c\n"
+"\t\t\t\t\t\n"
+"aux.o: aux.c\n"
+"\t$(CC) -c $(CFLAGS) aux.c"
+msgstr ""
+
+#. (itstool) path: sect1/para
+#: C/index.docbook:255
+msgid ""
+"Makefiles are a kind of program but instead of writing what should be done sequentially to get the result, 
you "
+"define some rules and <application>make</application> uses these rules in whatever order to achieve the 
result."
+msgstr ""
+
+#. (itstool) path: sect2/title
+#: C/index.docbook:262
+msgid "Variables"
+msgstr ""
+
+#. (itstool) path: sect2/para
+#: C/index.docbook:263
+msgid ""
+"Like in any programming language, you can define variables in a make file. All variables contains a string 
or a "
+"list of strings separated by whitespace. A variable is defined using the following syntax: 
<replaceable>name</"
+"replaceable>=<replaceable>value</replaceable>. You can get its value by writing 
$(<replaceable>name</replaceable>) "
+"or ${<replaceable>name</replaceable>}. In the sample above, three variables are defined CC, CFLAGS and 
LIBS."
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:280
+msgid "<envar>CC</envar>"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:281
+msgid "Program for compiling C programs, default 'cc'"
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:284
+msgid "<envar>CXX</envar>"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:285
+msgid "Program for compiling C++ programs, default 'g++'"
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:288
+msgid "<envar>CPP</envar>"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:289
+msgid "Program for running C preprocessor, default '$(CC) -E'"
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:292
+msgid "<envar>FC</envar>"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:293
+msgid "Program for running Fortran compiler, default 'f77'"
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:296
+msgid "<envar>RM</envar>"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:297
+msgid "Command to remove a file, default 'rm -f'"
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:300
+msgid "<envar>CFLAGS</envar>"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:301
+msgid "Extra flags for the C compiler"
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:304 C/index.docbook:312
+msgid "<envar>CXXFLAGS</envar>"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:305 C/index.docbook:309
+msgid "Extra flags for the C++ compiler"
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:308
+msgid "<envar>CPPFLAGS</envar>"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:313
+msgid "Extra flags for the C preprocessor"
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:316
+msgid "<envar>FFLAGS</envar>"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:317
+msgid "Extra flags for the Fortran compiler"
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:320
+msgid "<envar>LDFLAGS</envar>"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:321
+msgid "Extra flags for the linker"
+msgstr ""
+
+#. (itstool) path: sect2/para
+#: C/index.docbook:272
+msgid ""
+"Variables can be redefined when calling <application>make</application> in the command line or using values 
from "
+"environment. Moreover <application>make</application> includes some default rules using predefined 
variables. Here "
+"is a list of the most common ones: <_:variablelist-1/>"
+msgstr ""
+
+#. (itstool) path: sect2/title
+#: C/index.docbook:327
+msgid "Rules"
+msgstr ""
+
+#. (itstool) path: sect2/para
+#: C/index.docbook:328
+msgid "The basic syntax for make rules is:"
+msgstr ""
+
+#. (itstool) path: sect2/programlisting
+#: C/index.docbook:331
+#, no-wrap
+msgid ""
+"\n"
+"<replaceable>target</replaceable>: <replaceable>prerequisites</replaceable>\n"
+"\t<replaceable>commands</replaceable>\n"
+"\t<replaceable>...</replaceable>"
+msgstr ""
+
+#. (itstool) path: sect2/para
+#: C/index.docbook:335
+msgid ""
+"The <replaceable>target</replaceable> and the <replaceable>prerequisites</replaceable> are normally files 
but they "
+"could be actions. The rule is interpreted as in order to make the target or update it if it is older than 
its "
+"prerequisites, you need to make all prerequisites and then run all commands."
+msgstr ""
+
+#. (itstool) path: sect2/para
+#: C/index.docbook:343
+msgid ""
+"<application>make</application> starts with the first target of the makefile or the one given in the 
command line "
+"and looks for a rule. If this rules has no prerequisites, the associated commands are run and that's all. 
Else "
+"before running the commands, for each prerequisite, <application>make</application> looks for a rule having 
it as "
+"target and repeats the same process."
+msgstr ""
+
+#. (itstool) path: para/programlisting
+#: C/index.docbook:355
+#, no-wrap
+msgid ""
+"\n"
+"Search a rule with tut_prog as target\n"
+"Found with prerequisites main.o aux.o\n"
+"\tSearch a rule with main.o as target\n"
+"\tFound with prequisite main.c\n"
+"\t\tSearch a rule with main.c as target\n"
+"\t\tNot found (main.c is a source file)\n"
+"\tIf main.o does not exist or is older than main.c\n"
+"\t\tCompile main.c, do not link (-c switch)\n"
+"\tSearch a rule with aux.o as target\n"
+"\tFound with prequisite aux.c\n"
+"\t\tSearch a rule with aux.c as target\n"
+"\t\tNot found (aux.c is a source file)\n"
+"\tIf aux.o does not exist or is older than aux.c\n"
+"\t\tCompile aux.c, do not link (-c switch)\n"
+"If tut_prog is older than main.o or aux.o\n"
+"\tLink main.o, aux.o and libxml2"
+msgstr ""
+
+#. (itstool) path: sect2/para
+#: C/index.docbook:351
+msgid ""
+"In the sample above, if you run <userinput>make</userinput> or <userinput>make tut_prog</userinput>. "
+"<application>make</application> does the following: <_:programlisting-1/>"
+msgstr ""
+
+#. (itstool) path: sect2/para
+#: C/index.docbook:373
+msgid "Like for variables, several target names are commonly defined:"
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:378
+msgid "<parameter>all</parameter>"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:379
+msgid "Do everything"
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:382
+msgid "<parameter>check</parameter>"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:383
+msgid "Perform some self test after building the program"
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:386
+msgid "<parameter>clean</parameter>"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:387
+msgid "Delete all files created by <application>make</application>"
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:390
+msgid "<parameter>distclean</parameter>"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:391
+msgid "Delete more files than clean, could delete the Makefile itself"
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:394
+msgid "<parameter>dist</parameter>"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:395
+msgid "Create a distribution package, a compressed tarball by example"
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:398
+msgid "<parameter>install</parameter>"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:399
+msgid ""
+"Install target created by <application>make</application>, need to be run as root to install in system 
directories"
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:403
+msgid "<parameter>uninstall</parameter>"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:404
+msgid "Remove files installed by <application>make</application>"
+msgstr ""
+
+#. (itstool) path: note/para
+#: C/index.docbook:408
+msgid ""
+"Programs compiled from sources are installed by default in <filename class=\"directory\"> 
/usr/local</filename>. "
+"If you want to install (or uninstall) a program in such system directory, you normally need to log as root 
using "
+"<userinput>su</userinput> or <userinput>sudo</userinput> before running <userinput>make 
install</userinput>."
+msgstr ""
+
+#. (itstool) path: sect1/title
+#: C/index.docbook:417 C/index.docbook:706 C/index.docbook:1306
+msgid "Using <application>Autotools</application>"
+msgstr ""
+
+#. (itstool) path: sect1/para
+#: C/index.docbook:418
+msgid ""
+"If you want to build your program on another system, using <application>make</application> only could be 
quite "
+"difficult. The C compiler could be different. Some common C functions could be missing, have another name, "
+"declared in a different header and so on. This can be handled by enabling difference piece of code in your 
sources "
+"using preprocessor directive #if, #ifdef and others. But the user will have to define himself all these 
tuning "
+"which is not easy as there is a lots of systems with a lots of variations."
+msgstr ""
+
+#. (itstool) path: sect1/para
+#: C/index.docbook:427
+msgid ""
+"Free softwares are mainly distributed as sources. It is crucial to be able to recompile them on various 
system "
+"without much technical knowledge. <application>Autotools</application> is designed to solve this and you 
probably "
+"have already use it using the magic combination <userinput> \"./configure; make; make 
install\"</userinput>. You "
+"may have noticed that many files are involved in this build process; globally all that stuff seems very "
+"complicated. So what's happening when you compile such software ?"
+msgstr ""
+
+#. (itstool) path: sect2/title
+#: C/index.docbook:438
+msgid "Input files"
+msgstr ""
+
+#. (itstool) path: sect2/para
+#: C/index.docbook:439
+msgid ""
+"An <application>Autotools</application> project comes at least with a configure script, named 
<filename>configure</"
+"filename>, and a makefile template named <filename>Makefile.in</filename>. There is normally, one "
+"<filename>Makefile.in</filename> in each directory of the project. There are several other files used by an 
"
+"<application>Autotools</application> project but they are not stricly necessary or are generated 
automatically."
+msgstr ""
+
+#. (itstool) path: tip/para
+#: C/index.docbook:449
+msgid ""
+"If you look inside these files, you will see that they are quite complex. Do not worry, these files are 
generated "
+"by <application>Autotools</application> from other templates easier to write as explained in <xref linkend="
+"\"create-autotools\"/>. For the moment, we do not care, we consider these files exist as it is the case 
when you "
+"get a source package."
+msgstr ""
+
+#. (itstool) path: sect2/title
+#: C/index.docbook:457 C/index.docbook:559
+msgid "Configure"
+msgstr ""
+
+#. (itstool) path: sect2/para
+#: C/index.docbook:458
+msgid ""
+"In fact, you don't need <application>Autotools</application> to build an autotools package, "
+"<application>configure</application> is a shell script running on the most basic shell: 
<filename>sh</filename>. "
+"It probes your system checking each characteristic and writes makefiles from the templates."
+msgstr ""
+
+#. (itstool) path: important/para
+#: C/index.docbook:466
+msgid ""
+"In order to build a project using a library, you need more information about it, so additional files. For a 
"
+"library used in a C program, you need the corresponding header files. This has to be installed on your 
system and "
+"is typically found in a so called development package. By example for the library <application>libxml2</"
+"application>, there are two packages:"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:473
+msgid ""
+"<filename>libxml2</filename> necessary to run a program using it and installed automatically as a 
dependency of "
+"such program."
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:478
+msgid ""
+"<filename>libxml2-devel</filename> necessary to build a program using it. If you don't have it "
+"<application>configure</application> will display an error message."
+msgstr ""
+
+#. (itstool) path: figure/title
+#: C/index.docbook:485
+msgid "Configure process"
+msgstr ""
+
+#. (itstool) path: imageobject/imagedata
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/index.docbook:488
+msgctxt "_"
+msgid "external ref='figures/configure-process.png' md5='ab9bee38a1f4104bd289df6a9d74ffb7'"
+msgstr ""
+
+#. (itstool) path: sect2/para
+#: C/index.docbook:492
+msgid ""
+"<application>configure</application> creates all files in the directory where it is called. This directory 
is the "
+"<emphasis>build directory</emphasis>. If you run it from the source directory, using 
<userinput>./configure</"
+"userinput>, the build directory will be the same."
+msgstr ""
+
+#. (itstool) path: sect2/para
+#: C/index.docbook:498
+msgid ""
+"<application>configure</application> accepts several options in the command line. They are used to install 
the "
+"files in different directories, to disable some parts of the project in order to get a smaller executable 
or if "
+"you haven't one needed library or force a value for some <application>make</application> variable (see 
<xref "
+"linkend=\"build-make-vars\"/>). You can get a list of them by running <userinput>configure 
--help</userinput>. "
+"Here is a list of the most common ones:"
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:509
+msgid "<parameter>--help</parameter>"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:510
+msgid "List all available options"
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:513
+msgid "<parameter>--host <replaceable>host</replaceable></parameter>"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:514
+msgid "Compile to run on another system (cross compilation)"
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:517
+msgid "<parameter>--prefix <replaceable>dir</replaceable></parameter>"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:518
+msgid "Select the root directory for installing the project, default /usr/local"
+msgstr ""
+
+#. (itstool) path: note/para
+#: C/index.docbook:522
+msgid ""
+"<application>configure</application> generates a few additional files which are less important. 
<filename>config."
+"log</filename> is a log file useful when something goes wrong to get more details. 
<filename>config.status</"
+"filename> is another shell script, it can be run to restore the current configuration. <filename>config.h</"
+"filename> is a header file generated like <filename>Makefile</filename> from a template 
<filename>config.h.in</"
+"filename> if it exists."
+msgstr ""
+
+#. (itstool) path: sect2/title
+#: C/index.docbook:531
+msgid "<application>make</application>"
+msgstr ""
+
+#. (itstool) path: sect2/para
+#: C/index.docbook:532
+msgid ""
+"The makefiles generated by <application>configure</application> are quite complex but are standard 
makefiles. They "
+"define all standard targets needed by GNU standard."
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:539
+msgid "<userinput>make</userinput> or <userinput>make all</userinput> builds the program."
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:542
+msgid "<userinput>make install</userinput> installs the program."
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:545
+msgid ""
+"<userinput>make distclean</userinput> removes all files generated by <application>configure</application>, 
to let "
+"the project in the state it was when unpacking the distribution package."
+msgstr ""
+
+#. (itstool) path: sect1/title
+#: C/index.docbook:553 C/index.docbook:1055 C/index.docbook:1583
+msgid "Using <application>Anjuta</application>"
+msgstr ""
+
+#. (itstool) path: sect1/para
+#: C/index.docbook:554
+msgid ""
+"Now, we will see the <application>Anjuta</application> interface allowing you to run all these commands 
without "
+"using the command line."
+msgstr ""
+
+#. (itstool) path: sect2/para
+#: C/index.docbook:560
+msgid ""
+"As <application>Anjuta</application> is using <application>Autotools</application>, the first step is 
similar, you "
+"need to run configure. Select <menuchoice><guisubmenu>Build</guisubmenu> <guimenuitem>Configure 
Project...</"
+"guimenuitem></menuchoice>, to get the following dialog:"
+msgstr ""
+
+#. (itstool) path: figure/title
+#: C/index.docbook:568
+msgid "Configure dialog"
+msgstr ""
+
+#. (itstool) path: imageobject/imagedata
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/index.docbook:572
+msgctxt "_"
+msgid "external ref='figures/configure-dialog.png' md5='c8ca3d93f18c8b680edf018d0a90a254'"
+msgstr ""
+
+#. (itstool) path: sect2/para
+#: C/index.docbook:577
+msgid ""
+"The <guilabel>Regenerate project</guilabel> checkbox will not be described now as it is related to project "
+"creation (see in <xref linkend=\"create-autotools-generate\"/>)."
+msgstr ""
+
+#. (itstool) path: sect2/para
+#: C/index.docbook:581
+msgid ""
+"The <guilabel>Configuration</guilabel> field is an user name used to reference this particular 
configuration to "
+"switch between different ones later. For <application>Anjuta</application> each configuration corresponds 
to one "
+"build directory and a set of configure options. <application>Anjuta</application> already provides some 
default "
+"configurations that you can select here."
+msgstr ""
+
+#. (itstool) path: note/para
+#: C/index.docbook:588
+msgid ""
+"It is recommended to use the Debug configuration for debugging. It will compile your program with all "
+"optimizations disabled. When optimizations are enabled, some variables and functions are removed, you will 
not be "
+"able to see them with the debugger. Moreover some lines in your source code are re-ordered, so some steps 
will go "
+"backward."
+msgstr ""
+
+#. (itstool) path: sect2/para
+#: C/index.docbook:594
+msgid ""
+"The <guilabel>Build Directory</guilabel> field allow to select the directory used to build the project. It 
must be "
+"different for each configuration."
+msgstr ""
+
+#. (itstool) path: important/para
+#: C/index.docbook:599
+msgid ""
+"If you build the project in the source directory (leaving the <guilabel>Build Directory</guilabel> field 
empty), "
+"you cannot create a new configuration. It is a limitation of <application>Autotools</application>. You need 
to "
+"select <menuchoice><guisubmenu>Build</guisubmenu> <guimenuitem>Remove 
Configuration</guimenuitem></menuchoice> "
+"that will run <userinput>make distclean</userinput> in the source directory first."
+msgstr ""
+
+#. (itstool) path: sect2/para
+#: C/index.docbook:606
+msgid "The <guilabel>Configure Options</guilabel> field allow passing different options to the configure 
script."
+msgstr ""
+
+#. (itstool) path: sect2/para
+#: C/index.docbook:610
+msgid ""
+"Clicking on <guibutton>Execute</guibutton> will run the configure script. All the output will appears in 
the "
+"message view of <application>Anjuta</application>. If the script runs without error, it will enable all 
other "
+"entries in the <guisubmenu>Build</guisubmenu> menu."
+msgstr ""
+
+#. (itstool) path: sect2/title
+#: C/index.docbook:618
+msgid "Menu items"
+msgstr ""
+
+#. (itstool) path: sect2/para
+#: C/index.docbook:619
+msgid ""
+"The build operations in <application>Anjuta</application>, rely on <application>make</application> only 
like "
+"<application>Autotools</application>. It is working for non <application>Autotools</application> project 
too. The "
+"compile command is even working with only a C source file because <application>make</application> has some 
builtin "
+"rules to compile them. Here is the correspondence between the <application>Anjuta</application> menu item 
and "
+"<application>make</application> commands."
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:630
+msgid "<menuchoice><guisubmenu>Build</guisubmenu><guimenu>Compile</guimenu></menuchoice>"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:631
+msgid "make <replaceable>current_file</replaceable>"
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:634
+msgid "<menuchoice><guisubmenu>Build</guisubmenu><guimenu>Build</guimenu></menuchoice>"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:635
+msgid "cd <userinput>current_file_directory</userinput>; make"
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:638
+msgid "<menuchoice><guisubmenu>Build</guisubmenu><guimenu>Build Project</guimenu></menuchoice>"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:639
+msgid "cd <userinput>project_directory</userinput>; make"
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:642
+msgid "<menuchoice><guisubmenu>Build</guisubmenu><guimenu>Build Tarball</guimenu></menuchoice>"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:643
+msgid "cd <userinput>project_directory</userinput>; make dist"
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:646
+msgid "<menuchoice><guisubmenu>Build</guisubmenu><guimenu>Install</guimenu></menuchoice>"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:647
+msgid "cd <userinput>current_file_directory</userinput>; make install"
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:650
+msgid "<menuchoice><guisubmenu>Build</guisubmenu><guimenu>Install Project</guimenu></menuchoice>"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:651
+msgid "cd <userinput>project_directory</userinput>; make install"
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:654
+msgid "<menuchoice><guisubmenu>Build</guisubmenu><guimenu>Clean</guimenu></menuchoice>"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:655
+msgid "cd <userinput>current_file_directory</userinput>; make clean"
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:658
+msgid "<menuchoice><guisubmenu>Build</guisubmenu><guimenu>Clean Project</guimenu></menuchoice>"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:659
+msgid "cd <userinput>project_directory</userinput>; make clean"
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:662
+msgid "<menuchoice><guisubmenu>Build</guisubmenu><guimenu>Remove Configuration</guimenu></menuchoice>"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:663
+msgid "cd <userinput>project_directory</userinput>; make distclean"
+msgstr ""
+
+#. (itstool) path: sect2/para
+#: C/index.docbook:666
+msgid ""
+"The last menu entry not described above ,<menuchoice><guisubmenu>Build</guisubmenu> <guimenuitem>Select "
+"Configuration</guimenuitem></menuchoice>, allows you to switch easily between different configurations and 
so "
+"between different build directories."
+msgstr ""
+
+#. (itstool) path: sect2/title
+#: C/index.docbook:674
+msgid "Options"
+msgstr ""
+
+#. (itstool) path: sect2/para
+#: C/index.docbook:675
+msgid ""
+"A few common build options are available in the preferences page that you can get by selecting "
+"<menuchoice><guisubmenu>Edit</guisubmenu> <guimenuitem>Preferences</guimenuitem><guimenuitem>Build 
autotools</"
+"guimenuitem> </menuchoice>."
+msgstr ""
+
+#. (itstool) path: figure/title
+#: C/index.docbook:682
+msgid "Build preferences"
+msgstr ""
+
+#. (itstool) path: imageobject/imagedata
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/index.docbook:686
+msgctxt "_"
+msgid "external ref='figures/build_preferences.png' md5='684664b3114b36b3cc33d8b35f175e5d'"
+msgstr ""
+
+#. (itstool) path: chapter/title
+#: C/index.docbook:699
+msgid "Creating a project"
+msgstr ""
+
+#. (itstool) path: chapter/para
+#: C/index.docbook:700
+msgid ""
+"This chapter explains how to create a new project. Like the previous, it starts with 
<application>Autotools</"
+"application> before looking at <application>Anjuta</application>."
+msgstr ""
+
+#. (itstool) path: sect1/para
+#: C/index.docbook:707
+msgid ""
+"In the first chapter, we have not really used the <application>Autotools</application>. It is not need to 
compile "
+"a project from the sources. But all files in the build process are not written by hand but generated from "
+"templates using <application>Autotools</application>."
+msgstr ""
+
+#. (itstool) path: sect1/para
+#: C/index.docbook:712
+msgid ""
+"<application>Autotools</application> is composed of several tools: <filename>aclocal</filename>, "
+"<filename>autoconf</filename>, <filename>automake</filename> and other that we will not see here, belonging 
to two "
+"packages: <application>Automake</application> and <application>Autoconf</application>."
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:721
+msgid ""
+"<application>Autoconf</application> is used to generate the configure script, from a template named "
+"<filename>configure.ac</filename>. The configure script will check all characteristics of the host system 
and "
+"generate the makefiles from Makefile.in templates."
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:727
+msgid ""
+"<application>Automake</application> is used to generate complete Makefile.in templates, following GNU 
standards "
+"from very simple Makefile.am templates."
+msgstr ""
+
+#. (itstool) path: figure/title
+#: C/index.docbook:732
+msgid "<application>Autotools</application> process"
+msgstr ""
+
+#. (itstool) path: imageobject/imagedata
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/index.docbook:735
+msgctxt "_"
+msgid "external ref='figures/autotools-process.png' md5='6141be893d6036796e47dc50bbaba82b'"
+msgstr ""
+
+#. (itstool) path: sect1/para
+#: C/index.docbook:739
+msgid "Now let's see a minimal example to start grasping the relationships between the various files."
+msgstr ""
+
+#. (itstool) path: sect2/title
+#: C/index.docbook:744
+msgid "Write sources"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:747
+msgid "Create an empty directory called <filename>tut_prog</filename> and enter in it."
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:750
+msgid "In this new directory, create a new file named <filename>main.c</filename> containing:"
+msgstr ""
+
+#. (itstool) path: example/title
+#: C/index.docbook:755
+msgid "main.c:"
+msgstr ""
+
+#. (itstool) path: example/programlisting
+#: C/index.docbook:756
+#, no-wrap
+msgid ""
+"\n"
+"#include &lt;stdio.h&gt; \n"
+"\t\n"
+"int main()\n"
+"{\n"
+"\tprintf(\"Hello world!\\n\");\n"
+"\treturn 0;\n"
+"}"
+msgstr ""
+
+#. (itstool) path: sect2/title
+#: C/index.docbook:767
+msgid "Run <application>Autoconf</application>"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:770
+msgid "Write the following in a file named <filename>configure.ac</filename>:"
+msgstr ""
+
+#. (itstool) path: example/title
+#: C/index.docbook:774
+msgid "minimal configure.ac:"
+msgstr ""
+
+#. (itstool) path: example/programlisting
+#: C/index.docbook:775
+#, no-wrap
+msgid ""
+"\n"
+"AC_INIT([Tutorial Program], 1.0)\n"
+"AM_INIT_AUTOMAKE\n"
+"AC_PROG_CC\n"
+"AC_CONFIG_FILES(Makefile)\n"
+"AC_OUTPUT"
+msgstr ""
+
+#. (itstool) path: note/para
+#: C/index.docbook:783
+msgid ""
+"The configure template script could be named <filename>configure.in</filename>. It is the name used in 
older "
+"version (before 2001) of <application>Autoconf</application>. Nevertheless, it is recommended to use "
+"<filename>configure.ac</filename> because the <filename>.in</filename> extension is already used by files "
+"processed by <application>configure</application> and generated by <application>Automake</application>: "
+"<filename>Makefile.in</filename> and <application>autoheader</application>: 
<filename>config.h.in</filename>."
+msgstr ""
+
+#. (itstool) path: sect2/para
+#: C/index.docbook:792
+msgid ""
+"AC_INIT, AM_INIT_AUTOMAKE, etc... are <application>M4</application> macros. <application>M4</application> 
is a "
+"macro expanding software used by <application>Autotools</application>; we don't need to know about it. When 
"
+"<application>Autoconf</application> will process this configure.in, the macros will be expanded and we will 
get a "
+"fresh huge configure script."
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:801
+msgid "AC_INIT"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:803
+msgid "Is the first mandatory macro. We need to indicate the name of the project and its version."
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:810 C/index.docbook:1194
+msgid "AM_INIT_AUTOMAKE"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:812
+msgid ""
+"Initialize environment for <application>Automake</application>. It is needed in all projects using "
+"<application>Automake</application>."
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:819
+msgid "AC_PROG_CC"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:821
+msgid "Determine the C compiler to use."
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:827
+msgid "AC_CONFIG_FILES"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:829
+msgid ""
+"Create each file by copying the corresponding template file (with .in extension) and substituting the 
output "
+"variable values."
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:836 C/index.docbook:1218
+msgid "AC_OUTPUT"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:838
+msgid "Marks the end of the configure template."
+msgstr ""
+
+#. (itstool) path: note/para
+#: C/index.docbook:845
+msgid "The use of some macros has changed between different versions of <application>Autoconf</application>:"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:848
+msgid "The package name and version was defined as arguments of AM_INIT_AUTOMAKE instead of AC_INIT."
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:852
+msgid "AC_OUTPUT was getting the list of generated files instead of using the additional macro 
AC_CONFIG_FILES."
+msgstr ""
+
+#. (itstool) path: sect2/para
+#: C/index.docbook:857
+msgid ""
+"<application>Autoconf</application> only knows its own macros but read additional ones in a file named "
+"<filename>aclocal.m4</filename>. These macros are used to extend <application>Autoconf</application>, it 
includes "
+"<application>Automake</application> macro (starting with AM_) and other third party macros. For instance, 
if you "
+"develop a library called foo, you might want to write an AC_CHECK_FOR_FOO macro so that developers using 
your "
+"library can check for its presence using <application>Autoconf</application>."
+msgstr ""
+
+#. (itstool) path: sect2/para
+#: C/index.docbook:866
+msgid ""
+"<application>aclocal</application> scans <filename>configure.ac</filename> and create an 
<filename>aclocal.m4</"
+"filename> file which contains the macros mentioned in <filename>configure.ac</filename>. 
<application>aclocal</"
+"application> is part of the <application>Automake</application> package and search by default in "
+"<application>Automake</application> macros and in a system path typically 
<filename>/usr/share/aclocal</filename>."
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:876
+msgid ""
+"Launch <userinput>aclocal</userinput>. It will create a new file named <filename>aclocal.m4</filename> in 
the "
+"current directory."
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:880
+msgid "Launch <userinput>autoconf</userinput>. It will create the configure script 
<filename>configure</filename>."
+msgstr ""
+
+#. (itstool) path: tip/para
+#: C/index.docbook:885
+msgid ""
+"On my system, I actually get an extra directory called <filename>autom4te.cache</filename>. That is for "
+"<application>Autoconf</application> internal purposes. You do not need to care about it."
+msgstr ""
+
+#. (itstool) path: sect2/title
+#: C/index.docbook:891
+msgid "Run <application>Automake</application>"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:894
+msgid "Write the following in a file named <filename>Makefile.am</filename>:"
+msgstr ""
+
+#. (itstool) path: example/title
+#: C/index.docbook:898
+msgid "minimal Makefile.am:"
+msgstr ""
+
+#. (itstool) path: example/programlisting
+#: C/index.docbook:899
+#, no-wrap
+msgid ""
+"\n"
+"bin_PROGRAMS = tut_prog\t\t\t\n"
+"tut_prog_SOURCES = main.c"
+msgstr ""
+
+#. (itstool) path: sect2/para
+#: C/index.docbook:903
+msgid ""
+"In Makefile.am are the very essential data needed to build the project: the target program, called 
tut_prog, will "
+"be put in a $prefix/bin/ directory; to build it we need main.c. Note that we don't specify <emphasis>how</"
+"emphasis> that will be built: <application>Automake</application> will figure it out. We haven't even 
mentioned "
+"the compiler in this pre-makefile."
+msgstr ""
+
+#. (itstool) path: sect2/para
+#: C/index.docbook:910
+msgid ""
+"Makefile.am will be processed by <application>Automake</application>; the result will be a Makefile.in. 
This "
+"Makefile.in is close to being a real makefile, but it contains variable names which will be replaced when 
the "
+"configure script will run, resulting in a real makefile (called Makefile). For instance, 
<filename>configure</"
+"filename> will write in the final Makefile what compiler to use (it is the compiler it found using the 
AC_PROG_CC "
+"macro)."
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:921
+msgid ""
+"Run the command <userinput>automake --add-missing --foreign</userinput>. It will create a new file named "
+"<filename>Makefile.in</filename> as expected. Moreover, due to the switch 
<parameter>--add-missing</parameter> you "
+"get a few links to scripts necessary for building the project: <filename>depcomp</filename>, 
<filename>install.sh</"
+"filename> and <filename>missing</filename>. The other option <parameter>--foreign</parameter> tells to "
+"<application>Automake</application> that you don't want to follow GNU standard and you don't need mandatory 
"
+"documentation files: <filename>INSTALL</filename>, <filename>NEWS</filename>, <filename>README</filename>, "
+"<filename>AUTHORS</filename>, <filename>ChangeLog</filename> and <filename>COPYING</filename>. I have used 
it here "
+"to keep the number of created file to a minimum but else it is a good idea to provide these files, you can 
start "
+"with empty files."
+msgstr ""
+
+#. (itstool) path: sect2/title
+#: C/index.docbook:937
+msgid "Build project"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:940
+msgid ""
+"Run now the new configure script: <userinput>./configure</userinput>. You get the following output and it 
create "
+"the makefile for your program."
+msgstr ""
+
+#. (itstool) path: listitem/screen
+#: C/index.docbook:942
+#, no-wrap
+msgid ""
+"\n"
+"checking for a BSD-compatible install... /usr/bin/install -c\n"
+"checking whether build environment is sane... yes\n"
+"checking for a thread-safe mkdir -p... /bin/mkdir -p\n"
+"checking for gawk... gawk\n"
+"checking whether make sets $(MAKE)... yes\n"
+"checking for gcc... gcc\n"
+"checking for C compiler default output file name... a.out\n"
+"checking whether the C compiler works... yes\n"
+"checking whether we are cross compiling... no\n"
+"checking for suffix of executables... \n"
+"checking for suffix of object files... o\n"
+"checking whether we are using the GNU C compiler... yes\n"
+"checking whether gcc accepts -g... yes\n"
+"checking for gcc option to accept ISO C89... none needed\n"
+"checking for style of include used by make... GNU\n"
+"checking dependency style of gcc... gcc3\n"
+"configure: creating ./config.status\n"
+"config.status: creating Makefile\n"
+"config.status: executing depfiles commands"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:964
+msgid ""
+"Run now <userinput>make</userinput>, to build your program. You get the following output and a new tut_prog 
"
+"executable"
+msgstr ""
+
+#. (itstool) path: listitem/screen
+#: C/index.docbook:966
+#, no-wrap
+msgid ""
+"\n"
+"gcc -DPACKAGE_NAME=\\\"Tutorial\\ Program\\\" -DPACKAGE_TARNAME=\\\"tutorial-program\\\"   \\\n"
+"        -DPACKAGE_VERSION=\\\"1.0\\\" -DPACKAGE_STRING=\\\"Tutorial\\ Program\\ 1.0\\\"     \\\n"
+"        -DPACKAGE_BUGREPORT=\\\"\\\" -DPACKAGE=\\\"tutorial-program\\\" -DVERSION=\\\"1.0\\\" \\\n"
+"        -I.     -g -O2 -MT main.o -MD -MP -MF .deps/main.Tpo -c -o main.o main.c\n"
+"main.c: In function ‘main’:\n"
+"main.c:5: warning: return type of ‘main’ is not ‘int’\n"
+"mv -f .deps/main.Tpo .deps/main.Po\n"
+"gcc  -g -O2   -o tut_prog main.o"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:977
+msgid ""
+"Now, if you can write in <filename>/usr/local/bin</filename>, run <userinput>make install</userinput> to 
install "
+"your program. Else you need to log as root before or use <application>sudo</application> and run 
<userinput>sudo "
+"make install</userinput>. You should get."
+msgstr ""
+
+#. (itstool) path: listitem/screen
+#: C/index.docbook:982
+#, no-wrap
+msgid ""
+"\n"
+"make[1]: Entering directory `/home/seb/Projects/Tutorial'\n"
+"test -z \"/usr/local/bin\" || /bin/mkdir -p \"/usr/local/bin\"\n"
+"  /usr/bin/install -c 'tut_prog' '/usr/local/bin/tut_prog'\n"
+"make[1]: Nothing to be done for `install-data-am'.\n"
+"make[1]: Leaving directory `/home/seb/Projects/Tutorial'"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:988
+msgid "Then, if <filename>/user/local/bin</filename> is in your path, you can run your program from 
everywhere."
+msgstr ""
+
+#. (itstool) path: sect2/title
+#: C/index.docbook:996
+msgid "Clean project"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:999
+msgid ""
+"The program is installed, so you can clean the build directory running <userinput>make clean</userinput>. 
It "
+"removes all object files and the program but not the makefiles."
+msgstr ""
+
+#. (itstool) path: listitem/screen
+#: C/index.docbook:1002
+#, no-wrap
+msgid ""
+"\n"
+"test -z \"tut_prog\" || rm -f tut_prog\n"
+"rm -f *.o"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1005
+msgid "You can still run the program installed in <filename>/user/local/bin</filename>."
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1010
+msgid ""
+"To remove the installed program, run <userinput>make uninstall</userinput>. Like for the installation, you 
need to "
+"use have the writing right in the directory or use <application>su</application> or <application>sudo</"
+"application>."
+msgstr ""
+
+#. (itstool) path: listitem/screen
+#: C/index.docbook:1013
+#, no-wrap
+msgid ""
+"\n"
+"rm -f '/usr/local/bin/tut_prog'"
+msgstr ""
+
+#. (itstool) path: sect2/title
+#: C/index.docbook:1019
+msgid "Generate project"
+msgstr ""
+
+#. (itstool) path: sect2/para
+#: C/index.docbook:1020
+msgid ""
+"Running <userinput>aclocal</userinput>, <userinput>automake</userinput> and <userinput>autoconf</userinput> 
one by "
+"one is fine for a tutorial to understand exactly what's happen. But, for a real work, it's a bit tedious "
+"especially because there are other tools those could be needed like <userinput>autoheader</userinput>, "
+"<userinput>autopoint</userinput> or <userinput>libtoolize</userinput>. After creating the project, the 
makefiles "
+"generated by <application>configure</application> should take care of regenerating 
<filename>configure</filename> "
+"and all <filename>Makefile.in</filename>. Anyway, this lets a room for improvement and there are even two "
+"responses to this:"
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:1034
+msgid "autoreconf"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1036
+msgid ""
+"It is another tool part of the <application>Autoconf</application> package which is running all scripts in 
the "
+"right order. To start a new project, you can just run <userinput>autoreconf --install</userinput> and it 
will call "
+"all necessary commands."
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:1043
+msgid "autogen.sh"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1045
+msgid ""
+"It is a script not part of <application>Autotools</application>, that it doing the same thing. There is one 
named "
+"<filename>gnome-autogen.sh</filename> which comes with GNOME common development package but other project 
can "
+"write their own ones."
+msgstr ""
+
+#. (itstool) path: sect1/para
+#: C/index.docbook:1056
+msgid ""
+"Creating a project with <application>Anjuta</application> need just a few clicks but then we will take a 
look at "
+"the created files."
+msgstr ""
+
+#. (itstool) path: sect2/title
+#: C/index.docbook:1061
+msgid "Create a new project"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1064
+msgid ""
+"Click on <menuchoice><guisubmenu>File</guisubmenu><guisubmenu>New</guisubmenu> 
<guimenuitem>Project</guimenuitem></"
+"menuchoice>. The new project assistant appears."
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1069
+msgid "Click on <guibutton>Forward</guibutton>. The project selection page appears:"
+msgstr ""
+
+#. (itstool) path: figure/title
+#: C/index.docbook:1071
+msgid "Project selection page"
+msgstr ""
+
+#. (itstool) path: imageobject/imagedata
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/index.docbook:1075
+msgctxt "_"
+msgid "external ref='figures/new-project-select.png' md5='f79e2454e7ccaf52b1b1b06aa04a4956'"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1082
+msgid "Select <guilabel>Generic (minimal)</guilabel> project in the <guilabel>C</guilabel> page."
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1085 C/index.docbook:1121
+msgid "Click on <guibutton>Forward</guibutton>."
+msgstr ""
+
+#. (itstool) path: figure/title
+#: C/index.docbook:1087
+msgid "Project basic information page"
+msgstr ""
+
+#. (itstool) path: imageobject/imagedata
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/index.docbook:1091
+msgctxt "_"
+msgid "external ref='figures/new-project-basic.png' md5='3e120013f61bdc811c7d3ace04201e33'"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1096
+msgid ""
+"Change <guilabel>Project Name</guilabel> to <userinput>tutprog</userinput>, the project name should 
contains only "
+"alpha numeric characters or underscore. Fill the remaining field."
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1103
+msgid "Click on <guilabel>Forward</guilabel>."
+msgstr ""
+
+#. (itstool) path: figure/title
+#: C/index.docbook:1105
+msgid "Project options page"
+msgstr ""
+
+#. (itstool) path: imageobject/imagedata
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/index.docbook:1109
+msgctxt "_"
+msgid "external ref='figures/new-project-options.png' md5='4d386a284c3a40676f50c6dd6208bb1b'"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1114
+msgid ""
+"Click on <guilabel>Destination</guilabel> and create a new directory named tutprog for your new project. 
You need "
+"to avoid space in the directory name. Then, keep all other options to their default value to get a minimal 
project."
+msgstr ""
+
+#. (itstool) path: figure/title
+#: C/index.docbook:1123
+msgid "Project summary page"
+msgstr ""
+
+#. (itstool) path: imageobject/imagedata
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/index.docbook:1127
+msgctxt "_"
+msgid "external ref='figures/new-project-summary.png' md5='79bca5475883f9c43bf404df815eff58'"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1132
+msgid "This is the final page of the assistant, check that everything is right."
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1137
+msgid ""
+"Click on <guibutton>Forward</guibutton>. <application>Anjuta</application> will create all needed files and 
"
+"directories, in the message window, you will see the following:"
+msgstr ""
+
+#. (itstool) path: figure/title
+#: C/index.docbook:1141
+msgid "Project creation messages"
+msgstr ""
+
+#. (itstool) path: imageobject/imagedata
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/index.docbook:1145
+msgctxt "_"
+msgid "external ref='figures/new-project-message.png' md5='073f1d0fae8d7ed17a86f946077a6c18'"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1150
+msgid ""
+"Then, autogen.sh is called and run the configure script. Finally <application>Anjuta</application> open the 
new "
+"project. You can directly build the project, as the main source contains a few lines of C and configure has 
been "
+"run."
+msgstr ""
+
+#. (itstool) path: sect2/title
+#: C/index.docbook:1160
+msgid "Looking at configure.ac"
+msgstr ""
+
+#. (itstool) path: example/title
+#: C/index.docbook:1162
+msgid "<application>Anjuta</application> minimal configure.ac:"
+msgstr ""
+
+#. (itstool) path: example/programlisting
+#: C/index.docbook:1163
+#, no-wrap
+msgid ""
+"\n"
+"dnl Process this file with autoconf to produce a configure script.\n"
+"dnl Created by Anjuta application wizard.\n"
+"\n"
+"AC_INIT(tutprog, 0.1)\n"
+"\n"
+"AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION)\n"
+"AC_CONFIG_HEADERS([config.h])\n"
+"\n"
+"AC_PROG_CC\n"
+"\n"
+"AC_OUTPUT([\n"
+"Makefile\n"
+"])"
+msgstr ""
+
+#. (itstool) path: sect2/para
+#: C/index.docbook:1178
+msgid "It is still quite simple with a bit more macros. Let's look at all unknown ones:"
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:1184
+msgid "dnl"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1186
+msgid ""
+"It is not a macros, just the marker to start a comment in <application>M4</application>, the language used 
to "
+"write <filename>configure.ac</filename>. It is like '#' is scripts or '//' in C++."
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1196
+msgid ""
+"The AC_INIT macro uses the new form with package and version but AM_INIT_AUTOMAKE keeps the old one. It is 
not "
+"needed anymore."
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:1203
+msgid "AC_CONFIG_HEADERS"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1205
+msgid ""
+"This tells <application>Autoconf</application> to pass all defines in a file named 
<filename>config.h</filename> "
+"instead of using several -Dxxxx flags on the command line (see <xref linkend=\"create-autotools-build\"/>). 
It is "
+"easier when there are lots of them. A file named <filename>config.h.in</filename> is created automatically 
from "
+"the <filename>configure.ac</filename> using <application>autoheader</application>. Then 
<filename>config.h</"
+"filename> is created automatically like makefiles by <application>configure</application>. So it is 
painless for "
+"the developer."
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1220
+msgid "This is the old form of the AC_OUTPUT, where you specify all output files instead of using 
AC_CONFIG_FILES."
+msgstr ""
+
+#. (itstool) path: sect2/title
+#: C/index.docbook:1229
+msgid "Looking at Makefile.am"
+msgstr ""
+
+#. (itstool) path: example/title
+#: C/index.docbook:1231
+msgid "<application>Anjuta</application> minimal Makefile.am:"
+msgstr ""
+
+#. (itstool) path: example/programlisting
+#: C/index.docbook:1232
+#, no-wrap
+msgid ""
+"## Process this file with automake to produce Makefile.in\n"
+"## Created by Anjuta\n"
+"\n"
+"AM_CPPFLAGS = \\\n"
+"        -DPACKAGE_DATA_DIR=\\\"\"$(datadir)\"\\\"\n"
+"\n"
+"AM_CFLAGS =\\\n"
+"         -Wall\\\n"
+"         -g\n"
+"\n"
+"bin_PROGRAMS = tutprog\n"
+"\n"
+"tutprog_SOURCES = \\\n"
+"        main.c\n"
+"\n"
+"tutprog_LDFLAGS =\n"
+"\n"
+"tutprog_LDADD ="
+msgstr ""
+
+#. (itstool) path: sect2/para
+#: C/index.docbook:1251
+msgid "Not much things in the <filename>Makefile.am</filename> neither:"
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:1256
+msgid "AM_CPPFLAGS"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1258
+msgid ""
+"It is used to give additional flags to the C preprocessor. Here it defines an additional PACKAGE_DATA_DIR 
constant "
+"set by <application>configure</application>"
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:1266
+msgid "AM_CFLAGS"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1268
+msgid ""
+"It defines some additional flags for the C compiler: all warning and add debugging information that we have 
"
+"already seen at the beginning of this tutorial (see <xref linkend=\"build-gcc\"/>)"
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:1276
+msgid "tutprog_LDFLAGS"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1278
+msgid "It adds a places where you can put additional linker options for the tutprog program."
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:1285
+msgid "tutprog_LDADD"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1287
+msgid "It adds a places where you can put additional libraries for the tutprog program."
+msgstr ""
+
+#. (itstool) path: chapter/title
+#: C/index.docbook:1300
+msgid "Adding a library"
+msgstr ""
+
+#. (itstool) path: chapter/para
+#: C/index.docbook:1301
+msgid ""
+"This chapter explains how to add a new library to a project. It starts with 
<application>Autotools</application> "
+"before looking at <application>Anjuta</application>."
+msgstr ""
+
+#. (itstool) path: sect1/para
+#: C/index.docbook:1307
+msgid ""
+"Adding a new library in a autotools project could be more or less easy depending on how the library is 
packaged. "
+"To take an example, imagine that we want to read an xml file using <application>libxml2</application> (see 
its "
+"<ulink type=\"http\" url=\"www.xmlsoft.org\">homepage at www.xmlsoft.org</ulink>)"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1315
+msgid "Open the old tutorial project and replace <filename>main.c</filename> by the following."
+msgstr ""
+
+#. (itstool) path: example/title
+#: C/index.docbook:1318 C/index.docbook:1595
+msgid "main.c using <application>libxml2</application>:"
+msgstr ""
+
+#. (itstool) path: example/programlisting
+#: C/index.docbook:1319 C/index.docbook:1596
+#, no-wrap
+msgid ""
+"\n"
+"#include &lt;libxml/parser.h&gt;\t\t\t\n"
+"#include &lt;stdio.h&gt;\n"
+"\t\t\t\n"
+"int main()\n"
+"{\t\t\t\t\n"
+"\txmlDocPtr doc;                                                                                            
                      \n"
+"\tdoc = xmlParseFile (\"testfile.xml\");\n"
+"\n"
+"\tif (doc == NULL) {\n"
+"\t\tprintf (\"Document not parsed successfully. \\n\");\n"
+"\t\treturn -1;\n"
+"\t}\n"
+"\telse {\n"
+"\t\tprintf (\"Document parsed successfully.\\n\");\n"
+"\t\txmlFreeDoc(doc);\n"
+"\t\treturn 0;\n"
+"\t}\n"
+"}"
+msgstr ""
+
+#. (itstool) path: sect1/para
+#: C/index.docbook:1341
+msgid ""
+"Our goal is now to compile it and make it work correctly. For that purpose, we must tell <application>GCC</"
+"application> two things: where to find libxml/parser.h (that is to say, give <application>GCC</application> 
the "
+"right include path) and what library (i.e. shared object) it should link our project against. There are 
several "
+"ways to do that, I will start with the easiest."
+msgstr ""
+
+#. (itstool) path: sect2/title
+#: C/index.docbook:1349 C/index.docbook:1589
+msgid "With pkg-config"
+msgstr ""
+
+#. (itstool) path: sect2/para
+#: C/index.docbook:1350
+msgid ""
+"<application>pkg-config</application> is tools for developers providing a unified interface for querying 
installed "
+"libraries with their version and all options needed to compile and link it. It comes with an "
+"<application>Autoconf</application> macro named PKG_CHECK_MODULES allowing to check the existence of the 
library "
+"and set all necessary flags."
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1360 C/index.docbook:1495
+msgid "Add the following line in <filename>configure.ac</filename>."
+msgstr ""
+
+#. (itstool) path: listitem/programlisting
+#: C/index.docbook:1361
+#, no-wrap
+msgid "PKG_CHECK_MODULES(XML, libxml-2.0 &gt;= 2.4)"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1362
+msgid ""
+"This macro will check the existence of <application>libxml2</application> with a version higher or equal to 
2.4 "
+"and create 2 variable XML_CFLAGS and XML_LIBS containing respectively, the flags for the C compiler and the 
"
+"linker. <userinput>XML</userinput> is an user defined name. <userinput>libxml-2.0</userinput> is the name 
of the "
+"library. You can run <userinput>pkg-config --list-all</userinput> to get a list of all installed libraries."
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1372 C/index.docbook:1505 C/index.docbook:1532
+msgid "Add the following lines in <filename>Makefile.am</filename>."
+msgstr ""
+
+#. (itstool) path: listitem/programlisting
+#: C/index.docbook:1373
+#, no-wrap
+msgid ""
+"tut_prog_CPPFLAGS = $(XML_CFLAGS)\n"
+"tut_prog_LDFLAGS= $(XML_LIBS)"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1375
+msgid ""
+"This will use the options found by <application>configure</application> when the macro PKG_CHECK_MODULES is 
"
+"executed for compiling your program."
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1381
+msgid "That's all. You can run <userinput>make</userinput> again."
+msgstr ""
+
+#. (itstool) path: listitem/screen
+#: C/index.docbook:1382
+#, no-wrap
+msgid ""
+"\n"
+"cd . &amp;&amp; /bin/sh /home/seb2008.1/Projects/tutprog/missing --run aclocal-1.10 \n"
+"cd . &amp;&amp; /bin/sh /home/seb2008.1/Projects/tutprog/missing --run automake-1.10 --foreign \n"
+"cd . &amp;&amp; /bin/sh /home/seb2008.1/Projects/tutprog/missing --run autoconf\n"
+"/bin/sh ./config.status --recheck\n"
+"running CONFIG_SHELL=/bin/sh /bin/sh ./configure  --no-create --no-recursion\n"
+"checking for a BSD-compatible install... /usr/bin/install -c\n"
+"checking whether build environment is sane... yes\n"
+"checking for a thread-safe mkdir -p... /bin/mkdir -p\n"
+"checking for gawk... gawk\n"
+"checking whether make sets $(MAKE)... yes\n"
+"checking whether to enable maintainer-specific portions of Makefiles... yes\n"
+"checking for style of include used by make... GNU\n"
+"checking for gcc... gcc\n"
+"checking for C compiler default output file name... a.out\n"
+"checking whether the C compiler works... yes\n"
+"checking whether we are cross compiling... no\n"
+"checking for suffix of executables... \n"
+"checking for suffix of object files... o\n"
+"checking whether we are using the GNU C compiler... yes\n"
+"checking whether gcc accepts -g... yes\n"
+"checking for gcc option to accept ISO C89... none needed\n"
+"checking dependency style of gcc... gcc3\n"
+"checking for library containing strerror... none required\n"
+"checking for gcc... (cached) gcc\n"
+"checking whether we are using the GNU C compiler... (cached) yes\n"
+"checking whether gcc accepts -g... (cached) yes\n"
+"checking for gcc option to accept ISO C89... (cached) none needed\n"
+"checking dependency style of gcc... (cached) gcc3\n"
+"checking for gcc... (cached) gcc\n"
+"checking whether we are using the GNU C compiler... (cached) yes\n"
+"checking whether gcc accepts -g... (cached) yes\n"
+"checking for gcc option to accept ISO C89... (cached) none needed\n"
+"checking dependency style of gcc... (cached) gcc3\n"
+"checking how to run the C preprocessor... gcc -E\n"
+"checking for grep that handles long lines and -e... /bin/grep\n"
+"checking for egrep... /bin/grep -E\n"
+"checking for ANSI C header files... yes\n"
+"checking for pkg-config... /usr/bin/pkg-config\n"
+"checking pkg-config is at least version 0.9.0... yes\n"
+"checking for XML... yes\n"
+"configure: creating ./config.status\n"
+" /bin/sh ./config.status\n"
+"config.status: creating Makefile\n"
+"config.status: creating config.h\n"
+"config.status: config.h is unchanged\n"
+"config.status: executing depfiles commands\n"
+"cd . &amp;&amp; /bin/sh /home/seb2008.1/Projects/tutprog/missing --run autoheader\n"
+"rm -f stamp-h1\n"
+"touch config.h.in\n"
+"cd . &amp;&amp; /bin/sh ./config.status config.h\n"
+"config.status: creating config.h\n"
+"config.status: config.h is unchanged\n"
+"make  all-am\n"
+"make[1]: Entering directory `/home/seb/Projects/tutprog'\n"
+"gcc -DHAVE_CONFIG_H -I.  -DPACKAGE_DATA_DIR=\\\"\"/usr/local/share\"\\\" -I/usr/include/libxml2  \\\n"
+"        -Wall -g -g -O2 -MT main.o -MD -MP -MF .deps/main.Tpo -c -o main.o main.c\n"
+"mv -f .deps/main.Tpo .deps/main.Po\n"
+"gcc -Wall -g -g -O2   -o tutprog main.o -lxml2   \n"
+"make[1]: Leaving directory `/home/seb/Projects/tutprog'"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1442
+msgid ""
+"There is no need to rerun <application>Autoconf</application> or <application>Automake</application> 
because the "
+"Makefile generated by it already contains some rules to do it."
+msgstr ""
+
+#. (itstool) path: tip/para
+#: C/index.docbook:1450
+msgid ""
+"When installed, each library supporting pkg-config copy a small text file, with .pc extension, in a system "
+"directory; normally <filename>/usr/lib/pkgconfig</filename>. If you install a library from source it will 
be by "
+"default in <filename>/usr/local/lib/pkgconfig</filename>. You can ask <application>pkg-config</application> 
to "
+"search in this directory too, by defining the environment variable <userinput> 
PKG_CONFIG_PATH=/usr/local/lib/"
+"pkgconfig</userinput>."
+msgstr ""
+
+#. (itstool) path: sect2/title
+#: C/index.docbook:1460
+msgid "With an <application>Autoconf</application> macro"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1467
+msgid ""
+"Check if the library author shipped a <application>M4</application> macro, and use it if present. It is a 
text "
+"file named like the library with a .m4 extension often installed in 
<filename>/usr/share/aclocal</filename>."
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1472
+msgid ""
+"If your library is a basic one, it might be checked by the standard <application>Autoconf</application> 
macros "
+"(see the list <ulink type=\"http\" 
url=\"http://sources.redhat.com/autobook/autobook/autobook_283.html#SEC283\";> "
+"here</ulink>)."
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1478
+msgid ""
+"Perhaps the <application>M4</application> macro you need has already be programmed by someone else. Look at 
the "
+"contributions <ulink type=\"http\" url=\"http://www.gnu.org/software/ac-archive/\";>here</ulink>."
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1482
+msgid ""
+"If all that fail, go deeper in <application>M4</application>, make your own macro, and donate it to the 
library's "
+"author!"
+msgstr ""
+
+#. (itstool) path: sect2/para
+#: C/index.docbook:1461
+msgid ""
+"If the library does not support <application>pkg-config</application>: it does not appear in the list 
returned by "
+"<userinput>pkg-config --list-all</userinput>. You need a <application>Autoconf</application> macro: <_:"
+"itemizedlist-1/>"
+msgstr ""
+
+#. (itstool) path: sect2/para
+#: C/index.docbook:1487
+msgid ""
+"When, you have this macro, you can copy it in <filename>/usr/share/aclocal</filename>, so 
<application>aclocal</"
+"application> will find it. Then, you just need to look in the macro file to see how to use it. "
+"<application>libxml2</application> installs a macro named AM_PATH_XML2 which is in 
<filename>/usr/share/aclocal/"
+"libxml.m4</filename>."
+msgstr ""
+
+#. (itstool) path: listitem/programlisting
+#: C/index.docbook:1496
+#, no-wrap
+msgid "AM_PATH_XML2(2.4.0)"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1497
+msgid ""
+"This macro will check the existence of the library with a version higher or equal to 2.4 and create 2 
variable "
+"XML_CPPFLAGS and XML_LIBS containing respectively, the flags for the C compiler and the linker. You get 
these "
+"information from the comments in the macro file."
+msgstr ""
+
+#. (itstool) path: listitem/programlisting
+#: C/index.docbook:1506
+#, no-wrap
+msgid ""
+"tut_prog_CPPFLAGS = $(XML_CPPFLAGS)\n"
+"tut_prog_LDFLAGS= $(XML_LIBS)"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1508
+msgid ""
+"This will use the options found by configure for compiling your program. Note that the macro defined 
XML_CPPFLAGS "
+"instead of XML_CFLAGS with <application>pkg-config</application>. Using CPPFLAGS makes more sense, because 
these "
+"flags are used by the C preprocessor, most of the time only to setup the path of the include files."
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1516
+msgid ""
+"That's all. You can run <userinput>make</userinput> again. The generated <filename>Makefile</filename> is 
almost "
+"the same."
+msgstr ""
+
+#. (itstool) path: sect2/title
+#: C/index.docbook:1522
+msgid "With hardcoded library path"
+msgstr ""
+
+#. (itstool) path: sect2/para
+#: C/index.docbook:1523
+msgid ""
+"It is the approach one could naturally have: let's give <application>GCC</application> the stuff it needs "
+"directly ! On my system, <filename>libxml/parser.h</filename> is in <filename 
class=\"directory\">/usr/include/"
+"libxml2</filename>, and the shared object is 'libxml.so', located in <filename>/usr/lib</filename>. (I will 
assume "
+"it's all the same for you)."
+msgstr ""
+
+#. (itstool) path: listitem/programlisting
+#: C/index.docbook:1533
+#, no-wrap
+msgid ""
+"tut_prog_CPPFLAGS = -I /usr/include/libxml2\n"
+"tut_prog_LDFLAGS= -lxml2"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1535
+msgid ""
+"There is no need to change <filename>configure.ac</filename> because you don't check anything and just 
assume that "
+"all host system will have the right library in the same place than you."
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1542
+msgid "You can run <userinput>make</userinput> and it should work if you have the same system than me."
+msgstr ""
+
+#. (itstool) path: listitem/screen
+#: C/index.docbook:1544
+#, no-wrap
+msgid ""
+"\n"
+" cd . &amp;&amp; /bin/sh /home/seb2008.1/Projects/tutprog/missing --run automake-1.10 --foreign  Makefile\n"
+" cd . &amp;&amp; /bin/sh ./config.status Makefile depfiles\n"
+"config.status: creating Makefile\n"
+"config.status: executing depfiles commands\n"
+"make  all-am\n"
+"make[1]: Entering directory `/home/seb/Projects/tutprog'\n"
+"gcc -DHAVE_CONFIG_H -I.  -DPACKAGE_DATA_DIR=\\\"\"/usr/local/share\"\\\" -I /usr/include/libxml2  \\\n"
+"    -Wall -g -g -O2 -MT main.o -MD -MP -MF .deps/main.Tpo -c -o main.o main.c\n"
+"mv -f .deps/main.Tpo .deps/main.Po\n"
+"gcc -Wall -g -g -O2   -o tutprog main.o -lxml2 \n"
+"make[1]: Leaving directory `/home/seb/Projects/tutprog'"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1564
+msgid "It is not portable to various linuxes: perhaps on other distribution the include path is different."
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1568
+msgid ""
+"If the next versions of libxml have different paths, or different needed libraries, we will need to update 
the "
+"project."
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1572
+msgid "We don't test whether the system of the packager/user has the library."
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1576
+msgid "We cannot check the version of the <application>libxml2</application> we use."
+msgstr ""
+
+#. (itstool) path: sect2/para
+#: C/index.docbook:1558
+msgid ""
+"I have described this here to show that it is possible to do simple thing using <application>Autotools</"
+"application>. But this approach has several drawbacks: <_:itemizedlist-1/>"
+msgstr ""
+
+#. (itstool) path: sect1/para
+#: C/index.docbook:1584
+msgid ""
+"With <application>Anjuta</application> adding a library supporting <application>pkg-config</application> 
can be "
+"almost done without the keyboard."
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1592
+msgid ""
+"Open the file <filename>main.c</filename> of the <application>Anjuta</application> project created in the 
previous "
+"chapter. Replace it with the following text:"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1618
+msgid ""
+"Select <menuchoice><guisubmenu>Project</guisubmenu> 
<guimenuitem>Properties</guimenuitem><guilabel>Packages</"
+"guilabel></menuchoice>, to get the package properties dialog."
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1623
+msgid ""
+"Click on <guibutton>Add module</guibutton> button and Enter a name in the 
<guilabel>Module/Package</guilabel> "
+"column, \"XML\" by example."
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1627
+msgid ""
+"Click on <guibutton>Add Package</guibutton> button that should be enabled now. You get the a dialog where 
you can "
+"select the library that you want to use. This dialog list all libraries supporting 
<application>pkg-config</"
+"application>. Select <userinput>libxml-2.0</userinput>. Then click on <guibutton>Add</guibutton> button."
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1633
+msgid "The package properties dialog should look like the following:"
+msgstr ""
+
+#. (itstool) path: figure/title
+#: C/index.docbook:1637
+msgid "Project package properties dialog"
+msgstr ""
+
+#. (itstool) path: imageobject/imagedata
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/index.docbook:1641
+msgctxt "_"
+msgid "external ref='figures/library-add-pkgconfig.png' md5='3ccc834696358394b215e27994b0f25e'"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1646
+msgid ""
+"The module XML contains one library named libxml-2.0. You can define a minimum version required by clicking 
in the "
+"version column and writing <userinput>&gt;= 2.4</userinput>. All this operation add the necessary lines in 
the "
+"file <filename>configure.ac</filename>."
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1653
+msgid ""
+"Close the dialog and select <menuchoice><guisubmenu>Project</guisubmenu> 
<guimenuitem>Refresh</guimenuitem></"
+"menuchoice>. This should not be needed but is necessary with the current version of <application>Anjuta</"
+"application>. This bug has already been reported (#541694) and will be fixed soon"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1659
+msgid ""
+"In the project view, select the project target tutprog and click on right button to get a context menu and 
select "
+"Properties. You will get the target properties dialog."
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1663
+msgid ""
+"This dialog will list all modules available in your project, just check the XML module. This will modify 
the file "
+"<filename>Makefile.am</filename> to use the right library."
+msgstr ""
+
+#. (itstool) path: figure/title
+#: C/index.docbook:1669
+msgid "Target properties dialog"
+msgstr ""
+
+#. (itstool) path: imageobject/imagedata
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/index.docbook:1673
+msgctxt "_"
+msgid "external ref='figures/library-add-properties.png' md5='53095c1d9d784e3b71111b856ca3a97a'"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1680
+msgid ""
+"Click on <guibutton>Close</guibutton> and that's all. You can select 
<menuchoice><guisubmenu>Build</guisubmenu> "
+"<guimenuitem>Build</guimenuitem></menuchoice> to rebuild your project."
+msgstr ""
+
+#. (itstool) path: sect2/title
+#: C/index.docbook:1687
+msgid "Without pkg-config"
+msgstr ""
+
+#. (itstool) path: sect2/para
+#: C/index.docbook:1688
+msgid ""
+"<application>Anjuta</application> has no real support for library not using 
<application>pkg-config</application>. "
+"You need to edit the <filename>configure.ac</filename> directly to add all necessary macros. For passing 
flags to "
+"each target you can select the <guibutton>Advanced</guibutton> button in the target properties dialog."
+msgstr ""
+
+#. (itstool) path: chapter/title
+#: C/index.docbook:1701
+msgid "Resources"
+msgstr ""
+
+#. (itstool) path: chapter/para
+#: C/index.docbook:1702
+msgid ""
+"Here are some links to reference documents dealing with <application>Autotools</application> in general and 
"
+"<application>Autoconf</application> and <application>Automake</application> in particular."
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:1708
+msgid "English"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1713
+msgid ""
+"First, you can take a look at the <ulink type=\"http\" 
url=\"http://www.gnu.org/software/autoconf/manual/autoconf.";
+"html\"> Autoconf</ulink>, <ulink type=\"http\" 
url=\"http://www.gnu.org/software/automake/manual/automake.html\";> "
+"Automake</ulink>, <ulink type=\"http\" url=\"http://www.gnu.org/software/libtool/manual/libtool.html\";> 
Libtool</"
+"ulink>, <ulink type=\"http\" url=\"http://www.gnu.org/software/make/manual/make.html\";> make</ulink> and 
<ulink "
+"type=\"http\" url=\"http://www.gnu.org/software/m4/manual/m4.html\";> M4</ulink> manuals."
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1728
+msgid ""
+"The <ulink type=\"http\" url=\"http://sources.redhat.com/autobook/autobook/autobook_toc.html\";> 
Autobook</ulink> "
+"explains in details how the <application>Autotools</application> work."
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1733
+msgid ""
+"Amongst the various GNU development tools you are told about, <ulink type=\"http\" 
url=\"http://autotoolset.";
+"sourceforge.net/tutorial.html\"> here</ulink> are <application>Autoconf</application> and 
<application>Automake</"
+"application>."
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1739
+msgid ""
+"<ulink url=\"http://www.lrde.epita.fr/~adl/autotools.html\";>Here</ulink> and <ulink 
url=\"http://seul.org/docs/";
+"autotut/\">here</ulink> are two other tutorials about <application>Autotools</application>."
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:1747
+msgid "French"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1748
+msgid ""
+"<ulink type=\"http\" url=\"http://www.infres.enst.fr/~dax/polys/configure/slide1.html\";> Here</ulink> are 
some "
+"slides by a teacher from Ecole Nationale Supérieure des Télecoms about the 
<application>Autotools</application>."
+msgstr ""
+
+#. (itstool) path: varlistentry/term
+#: C/index.docbook:1754
+msgid "Japanese"
+msgstr ""
+
+#. (itstool) path: listitem/para
+#: C/index.docbook:1756
+msgid ""
+"<ulink type=\"http\" url=\"http://larse-gtk.hp.infoseek.co.jp/automake.html\";> A tutorial about "
+"<application>Autoconf</application> and <application>Automake</application> </ulink>."
+msgstr ""
+
+#. (itstool) path: tip/para
+#: C/index.docbook:1762
+msgid ""
+"This tutorial uses <application>Autoconf 2.61 (November 2006)</application> and <application>Automake 
1.10.1 "
+"(January 2008)</application>. Some of these documentations uses older versions. the syntaxes could have 
changed "
+"quite a bit. These old syntaxes usually still work and are used in old project. It is useful to know them 
but it "
+"is a bad idea to use them in a new project."
+msgstr ""



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]