Il makefile è un foglio di codice che permette di compilare programmi in modo più veloce e controllato. Per programmi brevi che includono poche librerie esterne è quasi inutile, ma per programmi lunghi e complessi, con librerie incluse ed utilizzanti la piattaforma di calcolo ROOT è invece necessario creare un makefile. Il file che andiamo a creare deve chiamarsi makefile o Makefile, altrimenti non è riconosciuto come tale. La struttura è la seguente:

programma.o : programma.C
g++ -c programma.C

O, per programmi con librerie esterne:

programma: programma.o libreria.o
g++ -o programma programma.o libreria.o



Un altro tipo di makefile per i programmi che utilizzano ROOT:

CC = g++

INCS = `root-config --cflags`
LIBS = `root-config --libs`

programma:
$(CC) -o programma.x programma.C $(INCS) $(LIBS)


Tutti i tab e gli spazi sono fondamentali. Per compilare basterà aprire il terminale e digitare il comando 

make programma

automaticamente verrà generato il file eseguibile che andremo ad eseguire con il solito comando ./programma.x

Un altro tipico makefile:


LIBS:=`root-config --libs`
INCS:=`root-config --cflags`

%.o : %.cxx
g++ -Wall -c $< ${INCS}

programma: programma.o libreria1.o libreria2.o
g++ -Wall -o $@ $^ ${LIBS}

#clean:
# rm *.o *~


In questo caso nel programma erano linkate due librerie di funzioni, libreria1 e libreria2. Nel prossimo tutorial capiremo come creare e linkare librerie di funzioni all'interno di un programma.


Categories: