CC = gcc G = -g SRC = fork.c pipe.c shmem.c shm-posix-consumer.c shm-posix-producer.c test-process.c pipe-self.c pipe-self-v2.c EXE = fork pipe shmem consumer producer test-process pipe-self pipe-self-v2 all: $(EXE) fork: fork.o $(CC) -o fork fork.o fork.o: fork.c $(CC) $G -c fork.c pipe: pipe.o $(CC) -o pipe pipe.o pipe.o: pipe.c $(CC) $G -c pipe.c consumer: shm-posix-consumer.o $(CC) -o consumer shm-posix-consumer.o -lrt shm-posix-consumer.o: shm-posix-consumer.c $(CC) $G -c shm-posix-consumer.c producer: shm-posix-producer.o $(CC) -o producer shm-posix-producer.o -lrt shm-posix-producer.o: shm-posix-producer.c $(CC) $G -c shm-posix-producer.c test-process: test-process.o $(CC) -o test-process test-process.o test-process.o: test-process.c $(CC) $G -c test-process.c pipe-self: pipe-self.o $(CC) -o pipe-self pipe-self.o pipe-self.o: pipe-self.c $(CC) $G -c pipe-self.c pipe-self-v2: pipe-self-v2.o $(CC) -o pipe-self-v2 pipe-self-v2.o pipe-self-v2.o: pipe-self-v2.c $(CC) $G -c pipe-self-v2.c clean: /bin/rm -f *.o *~ realclean: /bin/rm -f *.o *~ $(EXE)