VERSION = 0.5
PREFIX = /usr/local
MANPREFIX = $(PREFIX)/man
BIN = dedup
SRC = $(BIN).c cache.c chunker.c hash.c pack.c unpack.c utils.c
OBJ = $(BIN).o cache.o chunker.o hash.o pack.o unpack.o utils.o
DISTFILES = \
        $(SRC) \
        LICENSE \
        Makefile \
        README \
        arg.h \
        config.h \
        $(BIN).1 \
        dedup.h \
        tree.h \

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)
