TARGETS = fserver cfg flush

FSERVER_OBJS := fserver.o rbtree.o log.o coherency.o account.o
CFG_OBJS := cfg.o log.o
FLUSH_OBJS := flush.o

#PROF = -pg

CC = gcc
KDIR ?= /home/zbr/aWork/git/linux-2.6/linux-2.6.pohmelfs/
CFLAGS = -W -Wall -g $(PROF) -I$(KDIR) -I$(KDIR)/include
LDFLAGS = $(PROF) -lpthread -lcrypto

ifdef DEBUG
CFLAGS += -DFSERVER_DEBUG
endif

ifdef NOTIFY
FSERVER_OBJS += notify.o
CFLAGS += -DNOTIFY -I$(NOTIFY)
LDFLAGS += -L$(NOTIFY) -lionotify
endif

all: $(TARGETS)

fserver: $(FSERVER_OBJS)
	$(CC) $(LDFLAGS) $^ -o $@

cfg: $(CFG_OBJS)
	$(CC) $(LDFLAGS) $^ -o $@

flush: $(FLUSH_OBJS)
	$(CC) $(LDFLAGS) $^ -o $@

clean:
	rm -f *.o $(TARGETS) *~

$(FSERVER_OBJS): rbtree.h fserver.h jhash.h coherency.h Makefile
log.o: log.c
fserver.o: fserver.c
rbtree.o: rbtree.c
inotify.o: inotify.c
coherency.o: coherency.c
notify.o: notify.c
account.o: account.c

$(CFG_OBJS): cfg.c

$(FLUSH_OBJS): flush.c
