Ora che abbiamo chiarito, nella scorsa puntata, questi concetti
vediamo un semplice Makefile:
Esempio 2-1. Un semplice makefile
# Semplice Makefile
# Sysa Test
#
@echo Compilazione in corso
sysa : main.o token.o mostra.o \
ins.o matrix.o
gcc -o sysa main.o token.o mostra.o \
ins.o matrix.o
@echo Compilazione dei sottoprogrammi
main.o : main.c header1.h
gcc -c main.c
token.o : token.c tokentype.h
gcc -c token.c
mostra.o : mostra.c header1.h
gcc -c mostra.c
ins.o : ins.c tokentype.h
gcc -c ins.c
matrix.o : matrix.c header1.h
gcc -c matrix.c
clean : rm sysa main.o token.o mostra.o ins.o \
matrix.o
install: cp sysa /usr/bin/sysa
A questo punto che avete editato il vostro Makefile, con il vostro
editor preferito per fare in modo che il make vi compili i differenti
file, in un unico, fate:
make
Se poi volete cancellare il tutto, fate make clean. Vediamo ora
di spiegare a modo, come funziona il makefile. La prima cosa che
si nota sono i commenti, che vengono posti dopo la #, il make ignora
tutto ciò che appare dopo la # fino alla fine della linea. La seconda
cosa sono i messaggi, che volete far apparire durante la compilazione,
per far ciò si usa il comando :
@echo "Stringa che voglio far apparire"
Ora vediamo di distinguere tra target, dipendenze, e spiegare le
diverse regole. Il file target principale, quello eseguibile dopo
il make sarà sysa, che a sua volta dipende da n file oggetto, che
vediamo subito dopo i due punti. Ciascuno di questi file oggetto,
vengono compilati precedentemente e sono quindi essi stessi target
e rispetto all'eseguibile sysa, dipendenze. Notate che la sequenza
backslash-ritorno a capo (\), che suddivide alcune linee lunghe,
é necessaria al fine della leggibilità del Makefile stesso.
Il comando, che compare sotto i due punti, gcc -c, é necessario
al make al fine di eseguire la chiamata al compilatore per ottenere
i relativi target-dipendenze.
Torna all'indice Generale del corso di Corso di C con Linux di Software Planet