docdemarrage

This commit is contained in:
2026-10-23 11:31:19 +02:00
parent ef6869a02e
commit 6e60f8680f
11 changed files with 505 additions and 0 deletions

View File

@@ -0,0 +1,40 @@
# Autotools — le lien Automake
Adresse du PDF : <https://www.gnu.org/software/automake/manual/html_node/index.html#SEC_Contents>
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.