Home ApplicazioneProtocolli Rete Socket Client-Server Makefile Segnali Web LaTeX Bibliografia
Makefile

MAKEFILE


1.1 NASCITA DEI MAKEFILE

Come tutti i programmatori sanno, creare un programma eseguibile da più file sorgenti consiste nel compilare separatamente i file sorgenti uno ad uno e poi unirli nel file eseguibile finale. Quando i file sorgente sono molti, la compilazione potrebbe diventare noiosa e snervante.
Per questo andiamo semplicemente a creare:
- un file contenente il compilatore da usare;
- il modo per usarlo;
- quali file compilare;
- il file eseguibile (programma o libreria che esso sia) e altre cose sempre utili (come la directory dove si possono trovare le librerie necessarie ed i file di include).
Tutto questo è il contenuto del file Makefile.

1.2 IL COMANDO MAKE

Il comando make permette di sviluppare programmi di notevoli dimensioni mantenendo traccia di quali porzioni dell’intero programma hanno subito modifiche.
Solo tali parti però verranno compilate.
In seguito viene proposto l'esempio del comando make utilizzato nell'esercizio per la compilazione delle varie parti del server.

      PROGS=error my_io my_signal str_srv_tris str_cli_tris tris_client tris_server
      CC = gcc
      CCN = gcc -std=c99

      all:$(PROGS)

      error:  error.c
        ${CC} -c error.c 

      my_io : my_io.c
        ${CC} -c my_io.c

      my_signal: my_signal.c
        ${CC} -c my_signal.c

      str_srv_tris: str_srv_tris.c
        ${CC} -c str_srv_tris.c

      str_cli_tris: str_cli_tris.c
        ${CC} -c str_cli_tris.c

      tris_client:tris_client.o str_cli_tris.o my_io.o error.o 
        ${CC} -o $@ $^

      tris_server:tris_server.o str_srv_tris.o my_signal.o my_io.o error.o 
        ${CC} -o $@ $^

1.3 ALTRI COMANDI

È stato creato per cancellare tutti i file inutili.


    clean:
        rm -f *.o
        rm -f *.*~
        rm -f *~

Nel caso successivo, il comando “make shish”, è stato creato per cancellare dei file binari. Con questo comando, andiamo a cancellare direttamente i file scritti (“rm somma_client” e “rm somma_server”) successivamente al comando “make clean”, senza doverli selezionare uno ad uno.

    
    shish:
        rm -f *.o
        rm -f *.*~
        rm -f *~
        rm tris_client
        rm tris_server


Gruppi
Applicazione
- Alessandro Angelone
- Mattia Vinante
- Patrick Coviello
- Daniel Amadori
Documentazione
- Daniele Balzamà
- Matteo Forti
- Lorenzo Monorchio
- Giovanni Pani
- Dyllan Ruales
- Nicole De Min
- Usama Chaudhry
Sviluppo Web
- Mateo Myftaraj
- Fabio Travagli
- Nicola Imperiale
- Andrea Pigozzo
LaTeX
- Michele Candioli
- Patrick Coviello
- Michael Barba
- Marco Filippi
Traduzione
- Samuele Aldi
- Emil Kob
- Luca Viola
- Stanislav Nacu
Project Leader
- Simone Tagliapietra

Coordinatori
- Prof. Iaccarino
- Prof. Minichiello