all: client client-flock client-lockf client-fcntl

client: client.o db_lib.o err.o
	cc -Wall -o client client.o db_lib.o err.o

client-flock: client.o db_lib-lock.o err.o
	cc -Wall -o client-flock client.o db_lib-lock.o err.o

client-lockf: client.o db_lib-posix.o err.o mylock-lockf.o
	cc -Wall -o client-lockf client.o db_lib-posix.o mylock-lockf.o err.o

client-fcntl: client.o db_lib-posix.o err.o mylock-fcntl.o
	cc -Wall -o client-fcntl client.o db_lib-posix.o mylock-fcntl.o err.o

client.o: client.c db_lib.h db.h
	cc -Wall -c client.c

db_lib.o: db_lib-lock.c db_lib.h db.h
	cc -Wall -o db_lib.o -c db_lib-lock.c

db_lib-lock.o: db_lib-lock.c db_lib.h db.h
	cc -Wall -DFLOCK -c db_lib-lock.c 

db_lib-posix.o: db_lib-lock.c db_lib.h db.h mylock.h
	cc -Wall -DLOCKF -c db_lib-lock.c -o db_lib-posix.o

mylock-lockf.o: mylock-lockf.c mylock.h
	cc -Wall -c mylock-lockf.c

mylock-fcntl.o: mylock-fcntl.c mylock.h
	cc -Wall -c mylock-fcntl.c

err.o: err.c err.h
	cc -Wall -c err.c

clean:
	rm -f *.o client client-flock client-lockf client-fcntl
