CC = gcc
CFLAGS = -Wall -pedantic -g 
LDFLAGS = -l pthread

PROGRAMS = bug teste_bloq teste_lista teste_comp

all: $(PROGRAMS)

mutex_bug.o: mutex_bug.h mutex_bug.c
	$(CC) $(CFLAGS) -c mutex_bug.c

bug: mutex_bug.o bug.c
	$(CC) $(CFLAGS) $(LDFLAGS) mutex_bug.o bug.c -o bug

mutex_bloq.o: mutex_bloq.h mutex_bloq.c
	$(CC) $(CFLAGS) -c mutex_bloq.c

teste_bloq: mutex_bloq.o teste_bloq.c
	$(CC) $(CFLAGS) $(LDFLAGS) mutex_bloq.o teste_bloq.c -o teste_bloq

mutex_lista.o: mutex_lista.h mutex_lista.c
	$(CC) $(CFLAGS) -c mutex_lista.c

teste_lista: mutex_lista.o teste_lista.c
	$(CC) $(CFLAGS) $(LDFLAGS) mutex_lista.o teste_lista.c -o teste_lista

mutex_comp.o: mutex_comp.h mutex_comp.c
	$(CC) $(CFLAGS) -c mutex_comp.c

teste_comp: mutex_comp.o teste_comp.c
	$(CC) $(CFLAGS) $(LDFLAGS) mutex_comp.o teste_comp.c -o teste_comp

clean:
	rm -f *.o *~ *.aux *.log *.dvi $(PROGRAMS)