#
#
#

CC = gcc

all: sem critical critical-sem pipe signal signal2 signal3 signal-usr \
	signal-alarm signal-child file-copy.c mem-copy.c pointer.c

signal-alarm: signal-alarm.c
	$(CC) -o signal-alarm signal-alarm.c

signal-child: signal-child.c
	$(CC) -o signal-child signal-child.c

signal-usr: signal-usr.c
	$(CC) -o signal-usr signal-usr.c

signal3: signal3.c
	$(CC) -o signal3 signal3.c

signal2: signal2.c
	$(CC) -o signal2 signal2.c

signal: signal.c
	$(CC) -o signal signal.c

pipe: pipe.c
	$(CC) -o pipe pipe.c

critical: critical.c shm.o
	$(CC) -o critical critical.c shm.o

critical-sem: critical-sem.c shm.o
	$(CC) -o critical-sem critical-sem.c shm.o

file-copy: file-copy.c
	$(CC) file-copy.c -o file-copy

mem-copy: mem-copy.c
	$(CC) mem-copy.c -o mem-copy

pointer: pointer.c
	$(CC) pointer.c -o pointer

sem: sem.c shm.o
	$(CC) -o sem sem.c shm.o

shm.o: shm.h shm.c
	$(CC) -c shm.c

clean:
	/bin/rm -f sem shm.o critical critical-sem signal pipe core *~ \
		file-copy mem-copy signal2 signal-3 signal-alarm \
		signal-child
