make installfait ce que l' Makefileauteur veut qu'il fasse. En règle générale, il est trop tard pour modifier le répertoire d'installation, comme il est souvent connu auparavant , lors de la construction. Les fichiers d'aide et les fichiers de configuration peuvent donc être référencés avec les noms de chemin corrects.
De nombreux projets utilisent les outils automatiques GNU pour essayer d'améliorer leur portabilité entre les différences de matériel et de système d'exploitation. (Différentes variantes d'Unix utilisent des en-têtes légèrement différents pour les déclarations de fonctions légèrement en dehors du chemin habituel, à l'exception de la plupart des programmes nécessitant l'un ou l'autre de ceux déclarés dans des emplacements différents.)
Lorsqu'un projet utilise les outils automatiques, le mantra normal à installer est le suivant:
./configure
make
make install
Le ./configurevous permet généralement d'utiliser une option de ligne de commande comme --prefix /opt/apacheou quelque chose de similaire pour spécifier un chemin différent. /usr/local/est un défaut commun prefix. Il est beaucoup plus facile pour un logiciel construit localement de vivre au même endroit et un logiciel fourni par la distribution que de vivre dans les "répertoires principaux":, /usr/ /bin/etc. (Les emballeurs font très attention à ne jamais toucher les fichiers /usr/local/- ils savent que c'est exclusivement pour les administrateurs système.)
Quoi qu'il en soit, la ./configure --prefix /path/to/new/prefixfixeront une variable dans la Makefilequi est disponible lors de la compilation du programme, la modification des pages de manuel afin qu'ils pointent vers les emplacements pour les fichiers, la modification des fichiers de configuration, etc. Ainsi makeconstruira le logiciel spécifiquement pour l'emplacement d' installation que vous voulez et make installl'installera à cet endroit.
La plupart des programmes peuvent être exécutés même sans la dernière make installétape - ils ./program_nameseront souvent démarrés. C’est définitivement une affaire de projet - certaines, comme postfix, qmailetc., sont composées de nombreux éléments en mouvement et reposent sur leur collaboration. D'autres, comme lsou supourraient être assez autonomes pour s'exécuter correctement à partir du répertoire dans lequel ils ont été construits. (Ce n'est pas souvent utile - mais parfois très utile.)
Cependant, tous les projets n'utilisent pas les outils automatiques: ils sont énormes , compliqués et difficiles à maintenir. Les écritures manuscrites Makefilesont beaucoup plus simples à écrire, et je pense personnellement que le simple fait de distribuer une Makefilevariable simple avec des variables de configuration disponibles est beaucoup plus facile pour les développeurs et les utilisateurs. (Bien que le ./configure ; make ; make installmantra soit vraiment facile pour les utilisateurs quand cela fonctionne.)
               
              
make installétapes du point de vue des programmeurs.