Avanti Indietro Indice

3. Usare make

Il Makefile è la chiave del processo di compilazione. Nella sua forma più semplice, un Makefile è uno script per la compilazione, o building, dei "binari", le parti eseguibili di un pacchetto. Il Makefile può anche fornire un mezzo per aggiornare un pacchetto software senza dover ricompilare ogni singolo file sorgente in esso, ma questa è un'altra storia (o un altro articolo).

Ad un certo punto, il Makefile lancia cc o gcc. Questo in realtà è un preprocessore, un compilatore C (o C++), ed un linker, invocati in quell'ordine. Questo processo converte il sorgente nei binari, i veri eseguibili.

L'invocazione di make di solito richiede solo di battere make. Ciò, generalmente, serve a compilare tutti i file eseguibili necessari per il pacchetto in questione. Tuttavia, make può svolgere anche altri compiti, come installare i file nelle loro directory appropriate (make install) e rimuovere i file oggetto stantii (make clean). L'esecuzione di make -n permette di vedere un'anteprima del processo di compilazione, poiché stampa tutti i comandi che sarebbero attivati da un make, ma senza in effetti eseguirli.

Solo i software più semplici usano un Makefile generico. Le installazioni più complesse richiedono un Makefile su misura secondo la posizione delle librerie, dei file include e delle risorse sulla vostra specifica macchina. Questo, in particolare, è il caso che si ha quando durante il processo di compilazione servono le librerie X11 per l'installazione. Imake e xmkmf adempiono questo compito.

Un Imakefile è, per citare la pagina di manuale, un "prototipo" di Makefile. L'utilità imake costruisce un Makefile adatto al vostro sistema dall'Imakefile. Nella maggior parte dei casi, tuttavia, preferirete eseguire xmkmf, uno script shell che invoca imake, un suo front end. Controllate il file README o INSTALL incluso nell'archivio per istruzioni specifiche (se, dopo aver estratto dall'archivio i file sorgenti, è presente un file Imake nella directory base, è un chiaro segno che dovrebbe essere eseguito xmkmf). Leggere le pagine di manuale di Imake e xmkmf per una più dettagliata analisi della procedura.

È bene essere consapevoli che xmkmf e make potrebbero dover essere invocati come root, specialmente nel fare un make install per spostare i binari sulle directory /usr/bin o /usr/local/bin. Usare make come utente normale, senza privilegi di root, porterà probabilmente a dei messaggi d'errore tipo write access denied (accesso in scrittura negato), perché manca il permesso per la scrittura nelle directory di sistema. Controllate anche che i binari creati abbiano i giusti permessi di esecuzione per voi ed ogni altro utente appropriato.

Quando viene invocato, xmkmf usa il file Imake per costruire il Makefile appropriato per il vostro sistema. Sarete soliti invocare xmkmf con l'argomento -a, per effettuare automaticamente make Makefiles, make includes e make depend. Ciò imposta le variabili e definisce le posizioni delle librerie per il compilatore ed il linker. A volte, non ci sarà il file Imake, ci sarà invece uno script INSTALL o configure, che dovrebbe essere invocato come ./configure per assicurarsi che venga chiamato il giusto script configure. Nella maggior parte dei casi, il file README incluso con la distribuzione spiegherà la procedura di installazione.

È di solito una buona idea guardare dentro il Makefile che xmkmf, o uno degli script di installazione, costruiscono. Il Makefile sarà di solito adatto per il vostro sistema, ma occasionalmente potrebbe essere necessario "ritoccarlo" o correggere manualmente degli errori.

Per installare i binari appena compilati nelle appropriate directory di sistema di solito basta eseguire, come root, make install. Solitamente, le directory per i binari del sistema sulle moderne distribuzioni Linux sono /usr/bin, /usr/X11R6/bin, e /usr/local/bin. La directory da preferire per i nuovi pacchetti è /usr/local/bin, poiché in tal modo si terranno separati i binari che non fanno parte della installazione Linux originale.

I pacchetti originariamente mirati per versioni commerciali di UNIX potrebbero provare ad installarsi in /opt o in un'altra directory sconosciuta. Ciò, naturalmente, causerà un errore di installazione se la directory in questione non esiste. Il modo più semplice per risolvere questo problema è quello di creare, come root, una directory /opt, lasciare che il pacchetto vi si installi, e poi aggiungere tale directory alla variabile d'ambiente PATH. Oppure, potete creare dei link simbolici alla directory /usr/local/bin.

La procedura di installazione generale sarà quindi:

Note:


Avanti Indietro Indice