Table of Contents

Makefile

Reguli

Un Makefile este alcatuit dintr-un set de reguli, care in mod general au urmatoarea sintaxa:

 targets: prerequisites
     command
     command
     command

Instructiunile command sunt aliniate la un tab.
Acest lucru este foarte important!
Nu folositi space-uri!
Folositi tab!

Pentru utilizarea in cadrul temelor cursului de Programare Orientata pe Obiecte, noi o sa ne limitam la cele doua reguli: make build si make clean.

Make build

Regula make build este folosita pentru compilarea fisierelor .c folosite in proiectul curent si transpunerea acestora intr-un fisier executabil cu un nume predefinit.

Sa presupunem ca avem urmatoarea structura de fisiere:

Regula make build din cadrul fisierului Makefile va arata in felul urmator:

build: 
     gcc main.c algoritm.c -o Test

gcc este un compiler specific limbajului C.
Flag-ul -o urmat de token-ul Test duce la denumirea executabilului obtinut in urma compilarii conform token-ului.
main.c si algoritm.c sunt toate fisierele .c existente in proiect.

Pentru rularea ulterioare, se poate folosi in terminal comanda make build.
In urma acesteia, fisierele vor fi compilate si se va crea un executabil numit Test.

Make clean

Regula make clean este utilizata pentru “a face curat” dupa compilarea si executarea programului, pregatindu-l pentru rulari ulterioare.
Curatenia consta in stergerea fisierelor aditionale create in urma compilarii si executarii.
In cazul nostru, fisierul aditional creat este executabilul Test, pe care o sa-l stergem.

clean: 
     rm -f Test

Flag-ul -f este folosit pentru fortarea stergerii fisierului.

Pentru rularea ulterioare, se poate folosi in terminal comanda make clean.
In urma acesteia, fisierul Test va fi sters.

Exemplu Makefile

Exemplul contine regulile prezentate anterior:

  • make build
  • make clean

Fisierul trebuie sa aiba numele Makefile, fara extensie.
Exemplul este realizat exclusiv pentru rularea pe sistem de operare Linux.

Pentru rularea pe Windows, puteti inlocui comanda din regula make clean cu

del /f Test.exe