##########################################################################
# Makefile by BigBob (bigbob at meloo dot com)                           #
# dynamics paths idea by Un-Thesis at 18:25 MST (-7 UTC) on 12 July 2003 #
# dynamics paths full implementation by BigBob                           #
##########################################################################

BIN_PREFIX   = /usr/local
SHARE_PREFIX = /usr/local
DOC_PREFIX   = /usr/local

########################################
# DON'T TOUCH ANYTHING BELOW THIS LINE #
########################################

VERSIONNUMBER = 1.6.5

ABIN_PREFIX	:= $(shell aStats --vdirs 2>/dev/null|cut -d "|" -f 2 2>/dev/null)
ASHARE_PREFIX	:= $(shell aStats --vdirs 2>/dev/null|cut -d "|" -f 3 2>/dev/null)
ADOC_PREFIX	:= $(shell aStats --vdirs 2>/dev/null|cut -d "|" -f 4 2>/dev/null)

AVERSIONNUMBER  := $(shell aStats --vdirs 2>/dev/null|cut -d "|" -f 1 2>/dev/null)

USERINST	:= $(shell set|grep EUID|cut -d "=" -f 2)

all: usage

upgrade: remove check-install

check-install:
	@( \
	clear; \
	if test "$(USERINST)" != "0"; then \
		echo; \
		echo "YOU MUST BE ROOT !!!"; \
		echo; \
		exit 0; \
	fi; \
	if test "$(AVERSIONNUMBER)" == "$(VERSIONNUMBER)"; then \
		echo; \
		echo "aStats $(VERSIONNUMBER) already installed !!!"; \
		echo; \
		echo "Nothing more to do ..."; \
		echo; \
		exit 0; \
	fi; \
	if test "`echo "$(ABIN_PREFIX)"|cut -b 1`" != "/"; then \
		echo; \
		echo "Cannot find any version of aStats >= 1.3.x"; \
		echo; \
		echo "Installing aStats $(VERSIONNUMBER) in :"; \
		echo; \
		echo "BIN_PREFIX 	= $(BIN_PREFIX)"; \
		echo "SHARE_PREFIX	= $(SHARE_PREFIX)"; \
		echo "DOC_PREFIX	= $(DOC_PREFIX)"; \
		echo; \
		echo "If you have installed an aStats version < 1.3.x in $(BIN_PREFIX), then this version was deleted !!!"; \
		echo "and you have to remove manually 'share' & 'doc' directories ..."; \
		echo; \
		mkdir -p "$(SHARE_PREFIX)/share/aStats-$(VERSIONNUMBER)"; \
		mkdir -p $(BIN_PREFIX)/bin; \
		mkdir -p "$(DOC_PREFIX)/doc/aStats-$(VERSIONNUMBER)"; \
		echo "{" > /tmp/aStats-Installation; \
		echo "s,#BIN_PREFIX#,$(BIN_PREFIX),g" >> /tmp/aStats-Installation; \
		echo "s,#SHARE_PREFIX#,$(SHARE_PREFIX),g" >> /tmp/aStats-Installation; \
		echo "s,#DOC_PREFIX#,$(DOC_PREFIX),g" >> /tmp/aStats-Installation; \
		echo "s/#VERSIONNUMBER#/$(VERSIONNUMBER)/g" >> /tmp/aStats-Installation; \
		echo "}" >> /tmp/aStats-Installation; \
		sed -f /tmp/aStats-Installation ./aStats > "./aStats-$(VERSIONNUMBER)"; \
		chmod 0755 "./aStats-$(VERSIONNUMBER)"; \
		rm $(BIN_PREFIX)/bin/aStats 2>/dev/null; \
		cp "aStats-$(VERSIONNUMBER)" $(BIN_PREFIX)/bin; \
		ln -sf "$(BIN_PREFIX)/bin/aStats-$(VERSIONNUMBER)" $(BIN_PREFIX)/bin/aStats; \
		chmod ugo-wx+r ./*.html; \
		chmod ugo-wx+r ./*.png; \
		cp tmp.html "$(SHARE_PREFIX)/share/aStats-$(VERSIONNUMBER)"; \
		cp *.png "$(SHARE_PREFIX)/share/aStats-$(VERSIONNUMBER)"; \
		cp CREDITS "$(DOC_PREFIX)/doc/aStats-$(VERSIONNUMBER)"; \
		cp Changelog.txt "$(DOC_PREFIX)/doc/aStats-$(VERSIONNUMBER)"; \
		cp README "$(DOC_PREFIX)/doc/aStats-$(VERSIONNUMBER)"; \
		cp INSTALL "$(DOC_PREFIX)/doc/aStats-$(VERSIONNUMBER)"; \
		cp LICENSE "$(DOC_PREFIX)/doc/aStats-$(VERSIONNUMBER)"; \
		rm /tmp/aStats-Installation ;\
		rm "./aStats-$(VERSIONNUMBER)"; \
	else \
		echo "Installing aStats $(VERSIONNUMBER) in :"; \
		echo; \
		echo "BIN_PREFIX 	= $(ABIN_PREFIX)"; \
		echo "SHARE_PREFIX	= $(ASHARE_PREFIX)"; \
		echo "DOC_PREFIX	= $(ADOC_PREFIX)"; \
		echo; \
		mkdir -p "$(ASHARE_PREFIX)/share/aStats-$(VERSIONNUMBER)"; \
		mkdir -p $(ABIN_PREFIX)/bin; \
		mkdir -p "$(ADOC_PREFIX)/doc/aStats-$(VERSIONNUMBER)"; \
		echo "{" > /tmp/aStats-Installation; \
		echo "s,#BIN_PREFIX#,$(ABIN_PREFIX),g" >> /tmp/aStats-Installation; \
		echo "s,#SHARE_PREFIX#,$(ASHARE_PREFIX),g" >> /tmp/aStats-Installation; \
		echo "s,#DOC_PREFIX#,$(ADOC_PREFIX),g" >> /tmp/aStats-Installation; \
		echo "s/#VERSIONNUMBER#/$(VERSIONNUMBER)/g" >> /tmp/aStats-Installation; \
		echo "}" >> /tmp/aStats-Installation; \
		sed -f /tmp/aStats-Installation ./aStats > "./aStats-$(VERSIONNUMBER)"; \
		chmod 0755 "./aStats-$(VERSIONNUMBER)"; \
		rm $(BIN_PREFIX)/bin/aStats 2>/dev/null; \
		cp "aStats-$(VERSIONNUMBER)" $(ABIN_PREFIX)/bin 2>/dev/null; \
		ln -sf "$(ABIN_PREFIX)/bin/aStats-$(VERSIONNUMBER)" $(ABIN_PREFIX)/bin/aStats 2>/dev/null; \
		chmod ugo-wx+r ./*.html; \
		chmod ugo-wx+r ./*.png; \
		cp tmp.html "$(ASHARE_PREFIX)/share/aStats-$(VERSIONNUMBER)"; \
		cp *.png "$(ASHARE_PREFIX)/share/aStats-$(VERSIONNUMBER)"; \
		cp CREDITS "$(ADOC_PREFIX)/doc/aStats-$(VERSIONNUMBER)"; \
		cp Changelog.txt "$(ADOC_PREFIX)/doc/aStats-$(VERSIONNUMBER)"; \
		cp README "$(ADOC_PREFIX)/doc/aStats-$(VERSIONNUMBER)"; \
		cp INSTALL "$(DOC_PREFIX)/doc/aStats-$(VERSIONNUMBER)"; \
		cp LICENSE "$(ADOC_PREFIX)/doc/aStats-$(VERSIONNUMBER)"; \
		rm /tmp/aStats-Installation ;\
		rm "./aStats-$(VERSIONNUMBER)"; \
		echo "Done ..."; \
	fi; \
	)

remove:
	@( \
	echo; \
	if test "`echo "$(ABIN_PREFIX)"|cut -b 1`" == "/" && test "$(AVERSIONNUMBER)" != "$(VERSIONNUMBER)"; then \
		echo "Removing aStats from this system..."; \
		rm -rf $(ASHARE_PREFIX)/share/aStats* 2>/dev/null; \
		rm -rf $(ADOC_PREFIX)/doc/aStats* 2>/dev/null; \
		rm $(ABIN_PREFIX)/bin/aStats* 2>/dev/null; \
		echo "Done ..."; \
	else \
		if test "`echo "$(ABIN_PREFIX)"|cut -b 1`" == "/" && test "$(AVERSIONNUMBER)" == "$(VERSIONNUMBER)"; then \
			clear; \
			exit 0; \
		else \
			clear; \
			exit 0; \
		fi; \
	fi; \
	)

usage:
	@( \
	clear; \
	if test "$(USERINST)" != "0"; then \
		echo; \
		echo "YOU MUST BE ROOT !!!"; \
		echo; \
		exit 0; \
	fi; \
	echo; \
	echo "Installation of aStats $(VERSIONNUMBER) usage :"; \
	echo; \
	echo "make upgrade		: upgrade aStats to $(VERSIONNUMBER)."; \
	echo; \
	echo "Simple no ??? :-)"; \
	echo; \
	echo "------------------------------------------------------------------------------------------"; \
	echo "CHECKING SYSTEM ..."; \
	echo "------------------------------------------------------------------------------------------"; \
	echo; \
	if test "$(AVERSIONNUMBER)" == "$(VERSIONNUMBER)"; then \
		echo; \
		echo "aStats $(VERSIONNUMBER) already installed !!!"; \
		echo; \
		echo "Nothing more to do ..."; \
		echo; \
		exit 0; \
	fi; \
	if test "$(AVERSIONNUMBER)" != "$(VERSIONNUMBER)" && test "`echo "$(ABIN_PREFIX)"|cut -b 1`" == "/"; then \
		echo "**** Old detected : $(AVERSIONNUMBER) / This one : $(VERSIONNUMBER) **** GOOD just type make upgrade !!!"; \
		echo; \
	else \
		echo "Unable to detect an old (< 1.3.x) version of aStats, if you know you have one, remove manually,"; \
		echo; \
		echo " default install go in :"; \
		echo; \
		echo "BIN_PREFIX 	= $(BIN_PREFIX)"; \
		echo "SHARE_PREFIX	= $(SHARE_PREFIX)"; \
		echo "DOC_PREFIX	= $(DOC_PREFIX)"; \
		echo; \
		echo "To install now $(VERSIONNUMBER) with defaults type make upgrade,"; \
		echo "or edit lines 7 to 8 in Makefile before installing ..."; \
	fi; \
	)
