DESTDIR=
PREFIX=/usr
INSTALLWATCH=installwatch-0.6.3
DIST=bpkg Makefile README COPYING $(INSTALLWATCH).tgz
OS=$(shell ./bpkg --detect-os)

.PHONY: $(OS)-build $(OS)-install

all: $(OS)-build

install:
	@if ! ./bpkg --install-with='make install-raw' --package=bpkg-`./bpkg --version`; then \
		echo; \
		echo "BPKG failed to self-package. You can manually install with"; \
		echo; \
		echo "  make install-raw"; \
		echo; \
		echo "Or rectify the problem and run 'make install' again."; \
		echo; \
		exit 1; \
	fi

install-raw: all $(OS)-install
	mkdir -p $(DESTDIR)$(PREFIX)/bin
	install -m755 bpkg $(DESTDIR)$(PREFIX)/bin
	@cat README

$(INSTALLWATCH): $(INSTALLWATCH).tgz
	rm -rf $(INSTALLWATCH)
	gzip -dc $(INSTALLWATCH).tgz | tar xf -

dist:
	@version=`./bpkg --version`; \
		rm -rf bpkg-$$version; \
		mkdir bpkg-$$version; \
		cp $(DIST) bpkg-$$version; \
		tar cfz bpkg-$$version.tar.gz bpkg-$$version; \
		rm -rf bpkg-$$version

clean:
	rm -rf $(INSTALLWATCH)

unknown-build:
	@echo "FATAL: Unknown operating system/distribution. Need detection and"
	@echo "       backend code in bpkg."
	@exit 1

arch-install:
	@echo 
	@echo "Run 'pacman -S installwatch' to install installwatch."
	@echo

gentoo-build: $(INSTALLWATCH)
	$(MAKE) -C $(INSTALLWATCH) PREFIX=/usr

gentoo-install:
	$(MAKE) -C $(INSTALLWATCH) PREFIX=$(PREFIX) BINDIR=$(DESTDIR)$(PREFIX)/bin LIBDIR=$(DESTDIR)$(PREFIX)/lib install

slackware-build:
	@if ! ls /var/log/packages/checkinstall* > /dev/null 2>&1; then \
		$(MAKE) $(INSTALLWATCH); \
		$(MAKE) -C $(INSTALLWATCH) PREFIX=/usr; \
		echo; \
		echo "Installwatch has been compiled and will be installed, however Slackware includes"; \
		echo "'checkinstall' which bundles installwatch. You can install this package instead,"; \
		echo "if so desired."; \
		echo; \
	fi

slackware-install:
	@ls /var/log/packages/checkinstall* > /dev/null 2>&1 || $(MAKE) -C $(INSTALLWATCH) PREFIX=$(PREFIX) BINDIR=$(DESTDIR)$(PREFIX)/bin LIBDIR=$(DESTDIR)$(PREFIX)/lib install
