COMPILER = gcc
CFLAGS = -Wall -pedantic -pthread
COBJS = semaphore.o putNget.o prtastr.o 
CEXES = criticalSection criticalsection2 philosophers philosophers2 prodscons semaphoreTest

all: ${CEXES}

criticalSection: criticalSection.c 
	${COMPILER} ${CFLAGS} criticalSection.c -o criticalSection

criticalsection2: criticalsection2.c
	${COMPILER} ${CFLAGS} criticalsection2.c -o criticalsection2

philosophers: philosophers.c
	${COMPILER} ${CFLAGS} philosophers.c -o philosophers

philosophers2_pc: philosophers2_pc.c
	${COMPILER} ${CFLAGS} philosophers2.c -o philosophers2

prodscons: prodscons.c ${COBJS}
	${COMPILER} ${CFLAGS} prodscons.c ${COBJS} -o prodscons

semaphoreTest: semaphoreTest.c ${COBJS}
	${COMPILER} ${CFLAGS} semaphoreTest.c ${COBJS} -o semaphoreTest

%.o: %.c %.h  makefile
	${COMPILER} ${CFLAGS} $< -c

clean:
	rm -f *.o *~ ${CEXES}