<?xml version="1.0" encoding="utf-8" ?>
<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
  xmlns:admin="http://webns.net/mvcb/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns="http://purl.org/rss/1.0/">

<channel rdf:about="http://www.rhymux.info/">
  <title>rhymux</title>
  <description>site personnel de Thymus</description>
  <link>http://www.rhymux.info/</link>
  <dc:language>fr</dc:language>
  <dc:creator>Rapha&#235;l Dehousse</dc:creator>
  <dc:rights></dc:rights>
  <dc:date>2008-08-20T18:02:57+02:00</dc:date>
  <admin:generatorAgent rdf:resource="http://www.rhymux.info/" />
  <sy:updatePeriod>daily</sy:updatePeriod>
  <sy:updateFrequency>1</sy:updateFrequency>
  <sy:updateBase>2008-08-20T18:02:57+02:00</sy:updateBase>

  <items>
  <rdf:Seq>
			<rdf:li rdf:resource="http://www.rhymux.info/index.php/linux-and-tips/Conceptronic_Serial_ATA_&_IDE_Combo_Card_sous_Linux/" />
			<rdf:li rdf:resource="http://www.rhymux.info/index.php/software-and-prog/Boite_de_login_centree_verticalement_et_horizontalement_en_CSS/" />
			<rdf:li rdf:resource="http://www.rhymux.info/index.php/linux-and-tips/Resolution_1440x900_avec_un_ecran_Yusmart_198IP_sous_Linux/" />
			<rdf:li rdf:resource="http://www.rhymux.info/index.php/software-and-prog/Afficher_la_source_d'un_document/" />
			<rdf:li rdf:resource="http://www.rhymux.info/index.php/software-and-prog/Bash_:_comparaison_de_version_de_logiciel/" />
			<rdf:li rdf:resource="http://www.rhymux.info/index.php/linux-and-tips/Fluxbox_:_Menu_en_utf-8/" />
			<rdf:li rdf:resource="http://www.rhymux.info/index.php/linux-and-tips/Expect_:_Connexion_automatique_en_telnet/" />
			<rdf:li rdf:resource="http://www.rhymux.info/index.php/linux-and-tips/Debian_:_Faire_cohabiter_des_paquets_de_differentes_branches/" />
			<rdf:li rdf:resource="http://www.rhymux.info/index.php/software-and-prog/Faire_un_projet_avec_les_autotools_et_gettext/" />
			<rdf:li rdf:resource="http://www.rhymux.info/index.php/linux-and-tips/Fluxbox_:_maximisation_de_fenetre/" />
  </rdf:Seq>
  </items>
</channel>

	<item rdf:about="http://www.rhymux.info/index.php/linux-and-tips/Conceptronic_Serial_ATA_&_IDE_Combo_Card_sous_Linux/">
		<title>Conceptronic Serial ATA & IDE Combo Card sous Linux</title>
		<link>http://www.rhymux.info/index.php/linux-and-tips/Conceptronic_Serial_ATA_&_IDE_Combo_Card_sous_Linux/</link>
		<dc:date></dc:date>
		<dc:language>fr</dc:language>
		<dc:creator>Thymus</dc:creator>
		<dc:subject>Article</dc:subject>
		<description></description>
		<content:encoded><![CDATA[<p>J'ai acheté une nouvelle carte mère et j'ai du acheté une carte d'extension IDE pour pouvoir brancher mes disques durs IDE. Le petit nom de la carte est Conceptronic Serial ATA &amp; IDE Combo Card.<br />
Voici comment la faire fonctionner sous Linux</p>

<h2>lspci</h2>

<div class="bloc">
<blockquote><pre>01:08.0 RAID bus controller: VIA Technologies, Inc. VT6421 IDE RAID Controller (rev 50)</pre></blockquote>
</div>

<h2>La solution</h2>

<div class="bloc">
<p>Il faut le noyau 2.6.21.5 minimum pour le support de PATA qui permet de reconnaître les DD comme des sdXY. <br />
Attention, les lecteurs de CD/DVD ou autre graveur ne sont pas reconnus sur cette carte sous Linux. Peut-être qu'un nouveau noyau les supportera.</p>
<p>Ensuite, il faut choisir Device Drivers => Serial ATA et Parallel ATA drivers => AHCI + VIA SATA Support dans la configuration du noyau lorsque vous le compiler.</p>
</div>]]></content:encoded>
	</item>
	<item rdf:about="http://www.rhymux.info/index.php/software-and-prog/Boite_de_login_centree_verticalement_et_horizontalement_en_CSS/">
		<title>Boîte de login centrée verticalement et horizontalement en CSS</title>
		<link>http://www.rhymux.info/index.php/software-and-prog/Boite_de_login_centree_verticalement_et_horizontalement_en_CSS/</link>
		<dc:date></dc:date>
		<dc:language>fr</dc:language>
		<dc:creator>Thymus</dc:creator>
		<dc:subject>Article</dc:subject>
		<description></description>
		<content:encoded><![CDATA[<p>J'avais besoin d'une login box centrer verticalement et horizontalement sur ma page, avec un background comme on trouve sur lightbox, c'est chose faite :]</p>

<h2>Le code</h2>
<div class="bloc">
<p>Code HTML</p>
	<code><pre>&lt;div id="overlay"&gt;&lt;/div&gt;
&lt;div id="divlogin"&gt;
        &lt;div id="content_login"&gt;
                &lt;form id="formLogin" method="post" action=""&gt;
                        &lt;h3&gt;Authentication&lt;/h3&gt;
                        &lt;p&gt;
                                &lt;label for="user_login"&gt;Login:&lt;/label&gt;
                                &lt;input type="text" name="user_login" id="user_login" /&gt;
                        &lt;/p&gt;
                        &lt;p&gt;
                                &lt;label for="user_password"&gt;Password:&lt;/label&gt;
                                &lt;input type="password" name="user_password" id="user_password" /&gt;
                        &lt;/p&gt;
                        &lt;p&gt;
                                &lt;input type="submit" name="login" value="Login !" /&gt;
                                &lt;input type="button" value="Cancel" onclick="hideLogin();" /&gt;
                        &lt;/p&gt;
                &lt;/form&gt;
        &lt;/div&gt;
&lt;/div&gt;</pre></code>
<p>CSS principale</p>
	<code><pre>* { margin: 0; padding: 0; }

html, body { height: 100%; width: 100%; }

#overlay {
        position: absolute;
        z-index: 9;
        top: 0;
        right: 0;
        left: 0;
        bottom: 0;
        height: 100%;
        width: 100%;
        margin: 0;
        padding: 0;
        display: none;
        background: url('../img/overlay.png') !important;
        background: none;
}

#divlogin {
        position: absolute;
        z-index: 10;
        top: 0;
        right: 0;
        left: 0;
        bottom: 0;
        height: 100%;
        width: 100%;
        margin: 0;
        padding: 0;
        display: none;
}

#content_login {
        display: table-cell;
        vertical-align: middle;
        text-align: center;
        position: relative;
}


#formLogin {
        background: #EFEFEF;
        border: 1px solid #000;
        text-align: right;
        padding: 0em;
        margin: 0em auto;
        width: 20em;
}</pre></code>
<p>CSS Pour IE</p>
	<code><pre>&lt;!--[if gte IE 5]&gt;</pre></code>
	<code><pre>* html #overlay {
        filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="img/overlay.png", sizingMethod="scale");
}

#content_login {
        top: 50%;
        left: 0;
        height: 1px;
}

#content_login #formLogin {
        position: relative;
        top: -50%;
}
</pre></code>
	<code><pre>&lt;![endif]--&gt;</pre></code>
<p>JS pour l'afficher et la cacher</p>
	<code><pre>&lt;script type="text/javascript" language="javascript"&gt;
&lt;!--
        function showLogin() {
                if ( navigator.appVersion.indexOf("MSIE")!=-1 ) {
                        var_display = 'block';
                } else {
                        var_display = 'table';
                }
                $('overlay').style.display='block';
                $('divlogin').style.display=var_display;
                return false;
        }

        function hideLogin() {
                $('overlay').style.display='none';
                $('divlogin').style.display='none';
                return false;
        }
// --&gt;
&lt;/script&gt;</pre></code>
</div>]]></content:encoded>
	</item>
	<item rdf:about="http://www.rhymux.info/index.php/linux-and-tips/Resolution_1440x900_avec_un_ecran_Yusmart_198IP_sous_Linux/">
		<title>Résolution 1440x900 avec un écran Yusmart 198IP sous Linux</title>
		<link>http://www.rhymux.info/index.php/linux-and-tips/Resolution_1440x900_avec_un_ecran_Yusmart_198IP_sous_Linux/</link>
		<dc:date></dc:date>
		<dc:language>fr</dc:language>
		<dc:creator>Thymus</dc:creator>
		<dc:subject>Article</dc:subject>
		<description></description>
		<content:encoded><![CDATA[<p>Pour avoir la résolution 1440x900 avec mon écran Yusmart 198IP sous Linux, j'ai utilisé les modelines. Cependant, il faut calculer ces Modelines. Voici la donc la procédure :</p>
<h2>Modeline</h2>

<div class="bloc">
<p>J'ai trouvé le programme <a href="http://gtf.sourceforge.net/">GTF</a> qui permet de trouver la Modeline ainsi que le HSync nécessaire juste en fournissant la résolution voulue :</p>
<code><pre>gtf 1440 900 75</pre></code>
<p>Normalement, vous avez déjà ce petit programme inclus dans votre distribution Linux (which gtf). Cependant, si vous ne l'avez pas, vous pouvez le télécharger et le compiler très facilement.</p>
<p>Ce programme se base sur Generalized Timing Formula (GTF(TM)) Standard Version: 1.0, Revision: 1.0</p>
</div>
<h2>Exemple de configuration</h2>

<div class="bloc">
<p>Exemple de configuration qui fonctionne avec ma carte NVIDIA avec la pilote nv :</p>
<code><pre>Section "Monitor"
    Identifier  "Screen"
    HorizSync   71.05
    VertRefresh 50-75
    Option      "DPMS"
    Modeline "1440x900_75.00"  136.49  1440 1536 1688 1936  900 901 904 940  -HSync +Vsync
EndSection
Section "Screen"
    Identifier  "Screen 1"
    Device      "NVIDIA GeForce 2 MX/MX400"
    Monitor     "Screen"
    DefaultDepth 24
    Subsection "Display"
        Depth       8
        Modes       "1280x1024" "1024x768" "800x600" "640x480"
        ViewPort    0 0
    EndSubsection
    Subsection "Display"
        Depth       16
        Modes       "1280x1024" "1024x768" "800x600" "640x480"
        ViewPort    0 0
    EndSubsection
    Subsection "Display"
        Depth       24
        Modes       "1440x900_75.00" "1280x1024" "1024x768" "800x600" "640x480"
        ViewPort    0 0
    EndSubsection
EndSection
</pre></code>
</div>]]></content:encoded>
	</item>
	<item rdf:about="http://www.rhymux.info/index.php/software-and-prog/Afficher_la_source_d'un_document/">
		<title>Afficher la source d'un document</title>
		<link>http://www.rhymux.info/index.php/software-and-prog/Afficher_la_source_d'un_document/</link>
		<dc:date></dc:date>
		<dc:language>fr</dc:language>
		<dc:creator>Thymus</dc:creator>
		<dc:subject>Article</dc:subject>
		<description></description>
		<content:encoded><![CDATA[<p>Voici un javascript qui permet d'afficher la source d'un document HTML apres avoir fait des modifications Javascript (DOM).</p>

<h2>Le javascript</h2>
<div class="bloc">
	<code><pre>javascript:x=document.body.innerHTML.replace(/&lt;/g,'&amp;lt;').replace(/\n/g,'&lt;br&gt;');%20document.body.innerHTML%20=%20x;</pre></code>
</div>]]></content:encoded>
	</item>
	<item rdf:about="http://www.rhymux.info/index.php/software-and-prog/Bash_:_comparaison_de_version_de_logiciel/">
		<title>Bash : comparaison de version de logiciel</title>
		<link>http://www.rhymux.info/index.php/software-and-prog/Bash_:_comparaison_de_version_de_logiciel/</link>
		<dc:date></dc:date>
		<dc:language>fr</dc:language>
		<dc:creator>Thymus</dc:creator>
		<dc:subject>Article</dc:subject>
		<description></description>
		<content:encoded><![CDATA[<p>Voici un script que j'ai écrit avec l'aide du <a href="http://forum.2037.biz/sujet-regle-bash-extraction-et-comparaison-de-version-5521.html">forum 2037</a>.<br />Ce script permet de comparer des versions de programmes. Je me suis servit de bc ( calculs ), awk et sed ( text editor ).</p>

<h2>Le script</h2>
<div class="bloc">
	<code><pre>#!/bin/sh

ver=$(echo fluxbox 1.0rc1 | awk '{ print $2 }')
rel=$(echo $ver | awk -F rc '{ print $2 }')
ver=$(echo $ver | sed -e 's/\.//g' | awk -F rc '{ print $1 }' | sed -e 's/\(^.\{1\}\)\(.*\)/\1.\2/' )

if [ $rel ]; then
        rel=$(echo "scale=5; 1/($rel*10000)" | bc)
        final=$(echo "scale=5; $ver-$rel" | bc)
else
        final=$ver
fi

echo "Version : $ver"
echo "Rel : $rel"
echo "Final : $final"

if [ `echo "0.99995 &lt;= $final" | bc` -ne "0" ]
then
        echo Ok
else
        echo Trop vieux
fi</pre></code></div>

<h2>Explications</h2>
<div class="bloc">
	<p>Je récupère la version, suivit de la release en cherchant avec awk un "rc".<br />Ensuite, puisque 1.0 est plus grand que 1.0rc1, il faut que 1.0rc1 se change en un nombre inférieur à 1. Mais 1.0rc2 est plus grand que 1.0rc1. Si je ne faisais que soustraire une fraction de la release, ca n'allait pas fonctionner : 1-0,0001 > 1-0,0002.<br />Et le seul moyen de changer ça était de multiplier la release par un nombre et de diviser 1 par le résultat.</p>
	<p>Une fois que j'ai eu isoler les 2 parties de la version, il ne me restait plus qu'à comparer avec bc.</p>
</div>

<h2>Liens</h2>
<div class="bloc">
	<p><a href="http://forum.2037.biz/sujet-regle-bash-extraction-et-comparaison-de-version-5521.html">Le sujet sur le forum 2037</a></p>
</div>]]></content:encoded>
	</item>
	<item rdf:about="http://www.rhymux.info/index.php/linux-and-tips/Fluxbox_:_Menu_en_utf-8/">
		<title>Fluxbox : Menu en utf-8</title>
		<link>http://www.rhymux.info/index.php/linux-and-tips/Fluxbox_:_Menu_en_utf-8/</link>
		<dc:date></dc:date>
		<dc:language>fr</dc:language>
		<dc:creator>Thymus</dc:creator>
		<dc:subject>Article</dc:subject>
		<description></description>
		<content:encoded><![CDATA[<p>Enregistrer le menu de Fluxbox en utf-8, c'est possible mnt !</p>
<div class="bloc">
	<p>Avec la version 1.0rc2 ( ou la révision >= 4480 du code svn ) arrive les tags encoding et endencoding.</p>
	<p>Ils s'utilisent très simplement :</p>
	<code><pre>[encoding] () {UTF-8}
...
[endencoding]</pre></code>
	<p>Entre ces tags, vous mettez votre menu enregistré en utf-8. Si vous voulez rester en ISO8859-1, rien ne vous en empêche, remplacer UTF-8 par ISO8859-1.</p>
</div>]]></content:encoded>
	</item>
	<item rdf:about="http://www.rhymux.info/index.php/linux-and-tips/Expect_:_Connexion_automatique_en_telnet/">
		<title>Expect : Connexion automatique en telnet</title>
		<link>http://www.rhymux.info/index.php/linux-and-tips/Expect_:_Connexion_automatique_en_telnet/</link>
		<dc:date></dc:date>
		<dc:language>fr</dc:language>
		<dc:creator>Thymus</dc:creator>
		<dc:subject>Article</dc:subject>
		<description></description>
		<content:encoded><![CDATA[<p>Dans cette astuce, je vais vous mettre un script expect pour vous connecter automatiquement en telnet par exemple.</p>

<h2>Le script</h2>
<div class="bloc">
	<code><pre>#!/usr/bin/expect -f

spawn telnet 192.168.1.1
expect "login:"
send "user\r"
expect "Password:"
send "mdp\r"
interact
</pre></code>
</div>

<h2>Explications</h2>
<div class="bloc">
	<p>Ce script demande très peu d'explications :<br />
spawn exécute la commande.<br />
expect veut dire : s'attend à, donc le programme s'attend à ce que la commande affiche "login:". Lorsque "login:" sera afficé, on leur enverra ( send ) "user\r" ( le \r émule la touche <kbd>ENTER</kbd> ). On fait pareil avec le mot de passe.<br />
La commande interact permet de récupérer la main ds bash pour faire ce qu'on a à faire.</p>
</div>]]></content:encoded>
	</item>
	<item rdf:about="http://www.rhymux.info/index.php/linux-and-tips/Debian_:_Faire_cohabiter_des_paquets_de_differentes_branches/">
		<title>Debian : Faire cohabiter des paquets de différentes branches</title>
		<link>http://www.rhymux.info/index.php/linux-and-tips/Debian_:_Faire_cohabiter_des_paquets_de_differentes_branches/</link>
		<dc:date></dc:date>
		<dc:language>fr</dc:language>
		<dc:creator>Thymus</dc:creator>
		<dc:subject>Article</dc:subject>
		<description></description>
		<content:encoded><![CDATA[<h2>Introduction</h2>
<div class="bloc">
	<p>Vous voulez rester en stable mais vous avez besoin de paquets de la branche testing ? Pas de problème. Voici la marche à suivre.</p>
</div>

<h2>Configuration d'apt</h2>
<div class="bloc">
	<p>Ajouter les lignes pour la branche testing dans votre source.list</p>
	<code><pre>deb http://ftp.belnet.be/debian/ testing main contrib
deb-src http://ftp.belnet.be/debian/ testing main contrib</pre></code>
	<p>Nous allons mnt configurer apt pour qu'il garde la branche stable par défaut. Autrement, lors du prochain apt-get upgrade, le système passerait en testing.<br />Pour cela, ajoutons cette ligne dans /etc/apt/apt.conf</p>
	<code><pre>APT::Default-Release "stable";</pre></code>
</div>

<h2>Installer un paquet de la branche testing</h2>
<div class="bloc">
	<p>Faites votre apt-get update habituel.<br />apt-get dispose d'une option pour définir la branche depuis laquelle vous voulez installer un paquet : "-t"<br />Exemple : apt-get -t testing install bcm43xx-modules-2.6.15-1-k7</p>
</div>

<h2>Conclusion</h2>
<div class="bloc">
	<p>Lors de l'installation d'un paquet d'une autre branche, il se peut que vous deviez mettre à jour d'autres paquets de cette branche.<br />Cette astuce fonctionne bien evidement pour installer des paquets unstable depuis une autre branche.</p>
</div>

<h2>Liens</h2>
<div class="bloc">
	<p><a href="http://www.sawadka.org/article.php3?id_article=134">Comment installer des paquets dune autre branche.</a></p>
</div>]]></content:encoded>
	</item>
	<item rdf:about="http://www.rhymux.info/index.php/software-and-prog/Faire_un_projet_avec_les_autotools_et_gettext/">
		<title>Faire un projet avec les autotools et gettext</title>
		<link>http://www.rhymux.info/index.php/software-and-prog/Faire_un_projet_avec_les_autotools_et_gettext/</link>
		<dc:date></dc:date>
		<dc:language>fr</dc:language>
		<dc:creator>Thymus</dc:creator>
		<dc:subject>Article</dc:subject>
		<description></description>
		<content:encoded><![CDATA[<h2>I. Introduction</h2>
<div class="bloc">
	<p>Les autotools sont des outils qui permettent une installation plus portable d'un projet.<br />
	Ils configureront tous les paramètres nécessaires pour votre projet selon l'environnement dans lequel celui-ci va être installé.</p>
	<p>Gettext est utilisé pour l'internationalisation et la localisation. Il permettra à votre programme de supporter plusieurs langues.</p>
	<p>A partir d'exemples, je vais tâcher de vous expliquer comment ces outils fonctionnent.</p>
</div>

<h2>II. Préparation</h2>
<div class="bloc">
	<p>Nous avons besoin de :</p>
	<ul>
		<li>Un dossier include</li>
		<li>Un dossier src</li>
		<li>Un dossier po</li>
		<li>Un fichier configure.in</li>
		<li>Un fichier Makefile.am</li>
		<li>Un fichier src/Makefile.am</li>
	</ul>
	<p>Le dossier include contiendra toutes les entêtes nécessaires au programmes, ainsi, dans le dossier src, nous n'avons plus que nos fichiers sources.
Le dossier po n'est là que parce que nous utiliserons gettext. Il nous faut aussi ce <a href="/dl/docs/slice_i18n.h">slice_i18n.h</a> que nous copierons dans le dossier include pour utiliser gettext plus facilement.</p>
</div>

<h2>III. Un premier programme</h2>
<div class="bloc">
	<pre><code>#ifdef HAVE_CONFIG_H
#include &lt;config.hpp&gt;
#endif /* HAVE_CONFIG_H */

#include &lt;iostream&gt;

#ifdef ENABLE_NLS
#include &lt;slice_i18n.h&gt;
#endif /* ENABLE_NLS */

int main(int argc, char *argv[]) {
#ifdef ENABLE_NLS
        setlocale(LC_ALL, "");
        bindtextdomain(PACKAGE, PACKAGE_LOCALE_DIR);
        bind_textdomain_codeset(PACKAGE, "UTF-8");
        textdomain(PACKAGE);
#endif
        cout &lt;&lt; _("Hello world") &lt;&lt; endl;
        
        return EXIT_SUCCESS;
}</code></pre>
	<p>Explications :<br />
	- Le programme autoconf va générer un fichier config ( .h ou .hpp par exemple ). Celui-ci va contenir des constantes interessantes ( ENABLE_NLS par exemple ) qui nous permettront de définir au compilateur ce qui doit ou non être compilé.<br />
	- Les fonctions setlocale, bindtextdomain, bind_textdomain_codeset, textdomain permettent de connaître la langue de l'utilisateur, de se "connecter" aux fichier de langue associé, et de définir le charset avec lequel le fichier de langue est écrit ( ici UTF-8 ).</p>
</div>

<h2>IV. Création des fichiers de traduction</h2>
<div class="bloc">
	<p>Dans une console, à la racine de votre projet, tappez xgettext -a -o po/fr.po src/main.cc<br />
	Cette commande vous crée un fichier fr.po qui contient toutes les chaînes de caractères entourées de _() présentes dans votre fichier. Pour information, _() est une macro vers gettext().<br />
	Dans le fichier .po, vous trouverez msgid et msgstr. Ces variables sont respectivement le texte a traduire et le texte traduit.</p>
<pre><code>msgid "Hello world"
msgstr "Bonjour le monde"</code></pre>
	<p>N'oubliez pas de complèter la description du fichier.<br />
	Finalement, pour automatiser l'affaire, nous allons créer un fichier po/POTFILES.in qui contiendra la liste des fichiers qui contiennent des chaînes à traduire :</p>
<pre><code># List of source files containing translatable strings.

src/main.cc</code></pre>
</div>

<h2>V. Le fichier configure.in</h2>
<div class="bloc">
	<p>Je ne peux pas définir ici toutes les options du fichier configure.in, ce serait trop long. Je vous invite à aller lire la <a href="http://www.gnu.org/software/autoconf/manual/index.html">documentation d'autoconf</a> sur le site officiel.</p>
	<p>Pour nous faciliter la tâche, lançons autoscan.<br />
	Il nous génère un fichier très interessant : configure.scan<br />
	Renommons le en configure.in<br />
	Le contenu est heureusement assez explicite et nous fournit une bonne base.</p>
	<p>Malheureusement, le fichier n'est pas complet. Un peu près tout ce dont vous avez besoin se trouve dans la <a href="http://www.gnu.org/software/autoconf/manual/index.html">documentation d'autoconf</a>.<br />
L'option AC_OUTPUT permet de définir les fichiers qui doivent être créer grâce au ./configure :</p>
<pre><code>AC_OUTPUT( [
        Makefile
        src/Makefile
] )</code></pre>
	<p>Pour gettext, nous devons ajouter ceci :</p>
	<pre><code>ALL_LINGUAS="fr"
AM_GNU_GETTEXT

dnl Set PACKAGE_LOCALE_DIR in config.h.
if test "x${prefix}" = "xNONE"; then
        PACKAGE_LOCALE_DIR="${ac_default_prefix}/${DATADIRNAME}/locale"
else
        PACKAGE_LOCALE_DIR="${prefix}/${DATADIRNAME}/locale"
fi

AC_DEFINE_UNQUOTED(PACKAGE_LOCALE_DIR, "$PACKAGE_LOCALE_DIR",
        [The directory in which locale data will be stored])</code></pre>
</div>

<h2>VI. Le fichier Makefile.am</h2>
<div class="bloc">
	<p>Le premier fichier Makefile.am n'est pas très complexe...<br />
	Il ne fait qu'indiquer où sont les autres Makefile.am à construire et peut ajouter qq options.<br />
SUBDIRS = po src</p>
	<p>Le fichier src/Makefile.am est un peu plus complet :<br />
	Mais encore une fois, rien d'affolant :</p>
	<pre><code>bin_PROGRAMS = progtest
progtest_SOURCES = main.cc
INCLUDES = -I$(top_srcdir)/include
LDADD = # au cas où vous voudriez ajouter des librairies tel que -lm etc... pour la librairie math etc...
CLEANFILES = *~
DISTCLEANFILES = .deps/*.P</code></pre>

	<p>Il faut aussi faire un include/Makefile.am<br />
	Mais pq me demanderez-vous ? Tout simplement pour y renseigner les headers de notre programme pour que le make les prenne pour faire les archives ( make dist, make dist-bz2 etc... )</p>
	<pre><code>EXTRA_DIST = header1.h header2.h</code></pre>
</div>

<h2>VII. Construction</h2>
<div class="bloc">
	<p>Un ls -R à la racine de mon projet me donne :</p>
	<pre><code>$ ls -R
.:
configure.in include Makefile.am po src

./include:
slice_i18n.h

./po:
fr.po POTFILES.in

./src:
main.cc Makefile.am</code></pre>
	<p>Pour gettext : on commence avec gettextize -f --intl<br />
	Suivez les instructions. Remarquez que cette commande à modifier qq fichiers. Les backups sont renommés avec un ~ à la fin du nom.</p>
	<p>On continue avec la commande aclocal -I m4.<br />
	Il se peut que cette commande vous affiche des warnings. La plupart du tps, ceux-ci sont inoffensifs, ils dépendent prfs de la version de vos logiciels.</p>
	<p>autoheader va nous créer le fichier config.h.in<br />
	Ce fichier permettra de créer le fichier config.h correspondant.</p>
	<p>autoconf</p>
	<p>automake --add-missing va vous dire qu'il vous manque des fichiers.<br />
	Tappez la commande : touch NEWS README AUTHORS<br />
	Recommencez automake --add-missing</p>
</div>

<h2>Liens</h2>
<div class="bloc">
	<p><a href="http://www.infres.enst.fr/~dax/polys/configure/slide1.html">Slides sur les autotools</a></p>
</div>]]></content:encoded>
	</item>
	<item rdf:about="http://www.rhymux.info/index.php/linux-and-tips/Fluxbox_:_maximisation_de_fenetre/">
		<title>Fluxbox : maximisation de fenêtre</title>
		<link>http://www.rhymux.info/index.php/linux-and-tips/Fluxbox_:_maximisation_de_fenetre/</link>
		<dc:date></dc:date>
		<dc:language>fr</dc:language>
		<dc:creator>Thymus</dc:creator>
		<dc:subject>Article</dc:subject>
		<description></description>
		<content:encoded><![CDATA[<p>Vos fenêtres ne se maximise pas tout à fait dans Fluxbox, il reste qq pixels à droite... Voici la solution :</p>
<div class="bloc">
	<p>Dans le menu -> configuration -> configuration -> Slit -> Maximize over</p>
	<p>Et voilà, c'est réglé !</p>
</div>]]></content:encoded>
	</item>

</rdf:RDF>