make installfa qualunque cosa l' Makefileautore voglia che faccia. In genere, a questo punto, è troppo tardi per cambiare la directory di installazione, come è spesso noto in precedenza , durante la compilazione, quindi è possibile fare riferimento ai file della guida e ai file di configurazione con i nomi percorso corretti.
Molti progetti usano GNU Autotools per cercare di migliorare la loro portabilità tra differenze hardware e di sistema operativo. (Diverse varianti di Unix utilizzano intestazioni leggermente diverse per le dichiarazioni di funzioni che sono leggermente fuori dal normale percorso, tranne per il fatto che la maggior parte dei programmi necessita di uno o l'altro di quelli dichiarati in posizioni diverse.)
Quando un progetto utilizza gli Autotools, il mantra normale per installarlo è:
./configure
make
make install
In ./configuregenere consente di utilizzare un'opzione della riga di comando simile --prefix /opt/apacheo qualcosa di simile per specificare un percorso diverso. /usr/local/è un valore predefinito comune prefix. È molto più facile per il software costruito localmente vivere in un posto e il software fornito dalla distribuzione può vivere nelle "directory principali":, /usr/ /bin/e così via. (I packager sono molto attenti a non toccare mai i file /usr/local/: sanno che è riservato esclusivamente agli amministratori di sistema.)
Ad ogni modo, ./configure --prefix /path/to/new/prefixverrà impostata una variabile in quella Makefileche è disponibile durante la compilazione del programma, modificando le pagine del manuale in modo che puntino alle posizioni corrette per i file, modificando i file di configurazione, ecc. Quindi makecostruirà il software specificamente per la posizione di installazione desiderata e make installlo installerà in quella posizione.
La maggior parte dei programmi può essere eseguita anche senza il make installpassaggio finale : ./program_namespesso li avvierà. Questa è sicuramente una cosa per progetto - alcuni, come postfix, qmailecc., Sono costituiti da molti pezzi mobili diversi e si affidano a tutti loro che lavorano insieme. Altri, come lso supotrebbero essere abbastanza autosufficienti da eseguire correttamente dalla directory in cui sono stati incorporati. (Questo non è spesso utile - ma a volte molto utile.)
Tuttavia, non tutti i progetti utilizzano gli Autotools: sono enormi , complicati e miserabili da mantenere. Gli scritti a mano Makefilesono molto più semplici da scrivere, e personalmente penso che distribuire un semplice Makefilecon variabili di configurazione disponibili sia molto più semplice per sviluppatori e utenti. (Anche se il ./configure ; make ; make installmantra è davvero facile per gli utenti quando funziona.)
make installpassaggi dal punto di vista dei programmatori.