VERSION = 0.7
PREFIX = /usr/local
MANPREFIX = $(PREFIX)/man
BIN = dedup
SRC = \
        $(BIN).c \
        arg.h \
        config.h \
        dedup.h \
        tree.h \
        cache.c \
        chunker.c \
        config.c \
        pack.c \
        types.c \
        unpack.c \
        utils.c \

OBJ = \
        $(BIN).o \
        cache.o \
        chunker.o \
        config.o \
        pack.o \
        types.o \
        unpack.o \
        utils.o \

DISTFILES = \
        $(SRC) \
        $(BIN).1 \
        LICENSE \
        Makefile \
        README \

CFLAGS = -g -Wall
CPPFLAGS = -I/usr/local/include -D_FILE_OFFSET_BITS=64
LDFLAGS = -L/usr/local/lib
LDLIBS = -lcrypto -llz4

all: $(BIN)

$(OBJ): arg.h config.h dedup.h tree.h

clean:
	rm -f $(OBJ) $(BIN) $(BIN)-$(VERSION).tar.gz

install: all
	mkdir -p $(DESTDIR)$(PREFIX)/bin
	cp -f $(BIN) $(DESTDIR)$(PREFIX)/bin
	mkdir -p $(DESTDIR)$(MANPREFIX)/man1
	cp -f $(BIN).1 $(DESTDIR)$(MANPREFIX)/man1

uninstall:
	rm -f $(DESTDIR)$(PREFIX)/bin/$(BIN)
	rm -f $(DESTDIR)$(MANPREFIX)/man1/$(BIN).1

dist:
	mkdir -p $(BIN)-$(VERSION)
	cp $(DISTFILES) $(BIN)-$(VERSION)
	tar -cf $(BIN)-$(VERSION).tar $(BIN)-$(VERSION)
	gzip $(BIN)-$(VERSION).tar
	rm -rf $(BIN)-$(VERSION)

.PHONY: all clean install uninstall dist

.SUFFIXES: .c .o

.c.o:
	$(CC) $(CPPFLAGS) $(CFLAGS) -c $<

$(BIN): $(OBJ)
	$(CC) -o $@ $(OBJ) $(LDFLAGS) $(LDLIBS)
