# Autotools — le lien Automake Adresse du PDF : Le mot du sujet est `Autotools`. Le lien ouvre le manuel GNU Automake, un des outils de la famille, pas les quatre à la fois. Le manuel est sous licence GNU. On ne le recopie pas. ## La famille, dans l’ordre où elle sert Presque chaque paquet de la liste se construit ainsi : ```text ./configure make make install ``` Derrière ces trois lignes, quatre outils. Le sujet les liste tous. | Outil | Rôle | |-------|------| | M4 | Langage de macros. Autoconf est écrit dedans. Sans M4, Autoconf ne tourne pas | | Autoconf | Lit `configure.ac` et produit le script `configure`. Ce script teste la machine : compilateur, en-têtes, bibliothèques | | Automake | Lit `Makefile.am` et produit `Makefile.in`. `configure` transforme `Makefile.in` en `Makefile` adapté à cette machine | | Libtool | Enveloppe la création de bibliothèques partagées (`.so`). Les règles diffèrent entre systèmes. Libtool masque ces différences | | Pkg-config (Pkgconf dans le LFS de 2025) | Pas un autotool, mais le voisin. Un paquet demande « où est installée la bibliothèque X ? » et obtient les flags de compilation | `make` exécute le `Makefile`. Ce n’est pas un autotool. C’est l’outil qui lance le compilateur selon les règles produites au-dessus. ## Pourquoi l’ordre de LFS place ces paquets tard On peut compiler Binutils, GCC et Glibc sans avoir encore Automake : leurs archives contiennent déjà un `configure` généré par les auteurs. Automake et Autoconf servent le jour où l’on modifie un `Makefile.am`, ou quand un paquet plus haut dans le livre régénère ses scripts. Le livre les installe quand même, parce qu’un système où l’on construit des logiciels en a besoin. Le sujet les met dans la liste pour la même raison. ## Ce qu’il suffit de reconnaître dans un chapitre LFS - `./configure --prefix=/usr` : installer sous `/usr`, pas sous `/usr/local`. LFS fixe le préfixe pour coller au FHS. - `--enable-...` et `--disable-...` : options du script produit par Autoconf. Chaque chapitre du livre dit lesquelles passer. On ne les invente pas. - `make` puis `make check` quand le livre le demande. Check, DejaGNU, Expect et Tcl existent pour ces tests. Un test qui échoue se lit. On ne « corrige » pas le paquet pour faire passer un test sans comprendre l’échec. - `make install` : copie le résultat dans la hiérarchie. Avant le `chroot`, le livre dirige souvent l’installation vers `$LFS/usr` pour ne pas écraser l’hôte. Le manuel Automake décrit le langage des `Makefile.am` (variables `bin_PROGRAMS`, `AM_CFLAGS`, etc.). On en a besoin le jour où un paquet ne fournit pas de `configure` prêt, ou pour lire un `Makefile.am` cassé. Pour suivre le livre chapitre par chapitre, les trois commandes ci-dessus suffisent, avec les options écrites dans le chapitre.