check_defined = \
    $(foreach 1,$1,$(__check_defined))
__check_defined = \
    $(if $(value $1),, \
      $(error Undefined $1$(if $(value 2), ($(strip $2)))))


OSRAW=$(shell lsb_release -si)
OS=$(shell echo $(OSRAW) | tr A-Z a-z)
ARCH=$(shell uname -m | sed 's/x86_//;s/i[3-6]86/32/')
OSVERRAW=$(shell lsb_release -sr)

ifeq ($(ARCH),64)
        REPOARCH=amd64
endif

ifeq ($(ARCH),32)
        REPOARCH=i386
endif

#ifeq ($(OS),ubuntu)
#  OSVER=$(shell echo $(OSVERRAW) | sed 's/\.//g')
#else
#  OSVER=$(OSVERRAW)
#endif

OSVER=$(OSVERRAW)

all: showvars getbinaries
#	$(call check_defined, SOURCES_VERSION)
#	tar xvf squid-$(SOURCES_VERSION)-$(ARCH)-bin.tar.xz
	echo "ALL FINISHED"

showvars:
	echo "SHOWVARS"
	@echo $(OSRAW)
	@echo $(OS)
	@echo $(ARCH)
	@echo $(OSVERRAW)
	@echo $(OSVER)

getbinaries: showvars
	$(call check_defined, SOURCES_VERSION)
	wget http://moodle.ngtech.co.il/redwood/redwood-$(SOURCES_VERSION).tar.xz \
		-O redwood-$(SOURCES_VERSION).tar.xz
	echo "FINISHED getbinaries"

install:
	$(call check_defined, SOURCES_VERSION)
	$(call check_defined, DESTDIR)
	mkdir -p $(DESTDIR)
	tar xvf redwood-$(SOURCES_VERSION).tar.xz -C $(DESTDIR)/
	mkdir -p $(DESTDIR)/usr/sbin/
ifeq ($(ARCH),64)
	cp $(DESTDIR)/bin/redwood_linux_amd64 $(DESTDIR)/usr/sbin/redwood
endif

ifeq ($(ARCH),32)
	cp $(DESTDIR)/bin/redwood_linux_386 $(DESTDIR)/usr/sbin/redwood
endif
	rm -rf $(DESTDIR)/bin
	tar xvf redwood-conf-init.tar.xz -C $(DESTDIR)/ 
	chown -R root:root  $(DESTDIR)/ 
	
# The next are only if the data was extracted into the current directory.
#	rsync -av usr -C $(DESTDIR)/
#	rsync -av etc -C $(DESTDIR)/
#	rsync -av var -C $(DESTDIR)/

clean:	
	$(call check_defined, DESTDIR)
	$(call check_defined, SOURCES_VERSION)
	rm $(DESTDIR)/usr/ -rf
	rm $(DESTDIR)/var/ -rf
	rm $(DESTDIR)/etc/ -rf
	rm redwood-$(SOURCES_VERSION).tar.xz -rf
	echo "clean"

distclean:
	rm -rf ./debian/redwood/
	$(MAKE) clean
	echo "distclean"

builddeb:
	$(call check_defined, SOURCES_VERSION)
	cd debian && bash arch.sh reset && bash redwood-version.sh reset 
	cd debian && bash arch.sh && bash redwood-version.sh
	dpkg-buildpackage -us -uc
	cd debian && bash arch.sh reset && bash redwood-version.sh reset
	$(MAKE) distclean
