VERSION=0.6.10
CFLAGS=-O2 -Wall -Wextra -g -flto
LDFLAGS=-O2 -Wall -g -flto
LIBS=-lm -lrt -lpthread

prefix = /usr
exec_prefix = ${prefix}
bindir = ${exec_prefix}/bin
man1dir = ${exec_prefix}/share/man/man1

OUTPUTS=hist bogoseek maxiops bogodisk bogodisk.1.gz bogoseek.1.gz maxiops.1.gz hist.1.gz

all: $(OUTPUTS)

hist: hist.o
	$(CC) $(CFLAGS) $(LDFLAGS) $^ -o $@ $(LIBS)

maxiops: maxiops.o util.o
	$(CC) $(CFLAGS) $(LDFLAGS) $^ -o $@ $(LIBS) -laio

bogoseek: bogoseek.o util.o
	$(CC) $(CFLAGS) $(LDFLAGS) $^ -o $@ $(LIBS)

bogodisk: bogodisk.o util.o
	$(CC) $(CFLAGS) $(LDFLAGS) $^ -o $@ $(LIBS)

bogodisk.c: bogodisk.h util.h

bogodisk.h: ver.h

bogoseek.c: bogodisk.h util.h

maxiops.c: bogodisk.h util.h

util.c: util.h

ver.h: Makefile
	echo '#define PACKAGE_VERSION		"$(VERSION)"' > ver.h

distclean: clean

clean:;
	rm -rf $(OUTPUTS) *.o

%.1.gz: %.1
	gzip -9 < $< > $@

install: all
	mkdir -p $(DESTDIR)$(bindir)
	mkdir -p $(DESTDIR)$(man1dir)
	install bogoseek $(DESTDIR)$(bindir)
	install hist $(DESTDIR)$(bindir)
	install maxiops $(DESTDIR)$(bindir)
	install bogodisk $(DESTDIR)$(bindir)
	install bogodisk.1.gz $(DESTDIR)$(man1dir)
	install bogoseek.1.gz $(DESTDIR)$(man1dir)
	install maxiops.1.gz $(DESTDIR)$(man1dir)
	install hist.1.gz $(DESTDIR)$(man1dir)

dist:
	@if test "`git describe`" != "$(VERSION)" ; then \
		echo 'Update VERSION in the Makefile/ver.h before running "make dist".' ; \
		exit 1 ; \
	fi
	git archive --format=tar --prefix=bogoseek-$(VERSION)/ HEAD^{tree} | gzip -9 > bogoseek-$(VERSION).tar.gz
