###############################################################################
#
# to create a Plustek-Sane tarball - make -f MakeDist
#
###############################################################################
#
# set some tools
#
MD    = mkdir -p
RM    = rm -f
TAR   = tar
ECHO  = echo
CD	  = cd
MV	  = mv

#
# set some directories
#
HOME_DIR    = .
BACKEND_DIR = $(HOME_DIR)/backend
LIB_DIR     = $(HOME_DIR)/sanei
LIB_H_DIR   = $(HOME_DIR)/include/sane
DOC_DIR     = $(HOME_DIR)/doc
LANG_DIR    = $(HOME_DIR)/po
ABS_DIR		= plustek_driver
ABS_SRC		= $(ABS_DIR)/src
ABS_INC		= $(ABS_DIR)/h
PRJ_DIR     = $(HOME_DIR)/backend/$(ABS_DIR)
SRC_DIR     = $(PRJ_DIR)/src
INC_DIR     = $(PRJ_DIR)/h

#
# the archive base name
#
ARCHBCK := plustek
ARCHIVE := plustek-sane
ARCHMOD := plustek-module

#
# define the archive files
#
GNU_FILES := COPYING ChangeLog INSTALL INSTALL.GER FAQ README BUILD
GNU_FILES := $(GNU_FILES) TODO Makefile VERSION*
GNU_MOD   := $(addprefix $(ABS_DIR)/, $(GNU_FILES))
GNU_FILES := $(addprefix $(PRJ_DIR)/, $(GNU_FILES))

BACKEND_FILES := dll.conf plustek.conf
BACKEND_FILES := $(BACKEND_FILES) plustek.c plustek.h plustek-share.h
BACKEND_FILES := $(BACKEND_FILES) plustek-pp.c plustek-usb.h plustek-usb.c
BACKEND_FILES := $(BACKEND_FILES) plustek-devs.c plustek-usbhw.c plustek-usbio.c
BACKEND_FILES := $(BACKEND_FILES) plustek-usbmap.c plustek-usbscan.c plustek-usbcal.c
BACKEND_FILES := $(BACKEND_FILES) plustek-usbshading.c plustek-usbimg.c
BACKEND_FILES := $(addprefix $(BACKEND_DIR)/, $(BACKEND_FILES))

SANE_LIB_FILES := sanei_lm983x.c
SANE_LIB_FILES := $(addprefix $(LIB_DIR)/, $(SANE_LIB_FILES))

SANE_LIB_H_FILES := sanei_lm983x.h
SANE_LIB_H_FILES := $(addprefix $(LIB_H_DIR)/, $(SANE_LIB_H_FILES))

SANE_LIB := $(SANE_LIB_FILES) $(SANE_LIB_H_FILES)

SHARED_HEADER := $(HOME_DIR)/plustek-share.h

DOC_FILES  := sane-plustek.man descriptions/plustek.desc
DOC_FILES  := $(DOC_FILES) plustek/Plustek-USB-TODO.txt plustek/Plustek-USB.txt
DOC_FILES  := $(DOC_FILES) plustek/Plustek.changes plustek/Plustek-PARPORT.txt
DOC_FILES  := $(addprefix $(DOC_DIR)/, $(DOC_FILES))

PRJ_FILES  := MakeDist plustek.kdevprj plustek-backend.doxygen
PRJ_FILES  := $(addprefix $(HOME_DIR)/, $(PRJ_FILES))

ARCH_MOD   := $(ABS_SRC)/* $(ABS_INC)/* $(GNU_MOD) $(SHARED_HEADER)

BCK_DISTRO := $(PRJ_FILES) $(BACKEND_FILES) $(DOC_FILES) $(SANE_LIB)

ARCH_FILES := $(BCK_DISTRO) $(SRC_DIR)/*  $(INC_DIR)/* $(GNU_FILES)

#
# create the archive name
#
BUILD    = $(shell cat $(PRJ_DIR)/BUILD )
VERSION0 = $(shell cat $(PRJ_DIR)/VERSION0)
VERSION1 = $(shell cat $(PRJ_DIR)/VERSION1)

BACKEND_V = $(shell grep "define BACKEND_VERSION" $(BACKEND_DIR)/plustek.c | cut -b25-50 )

ARCHIVE_NAME    := $(ARCHIVE)-$(BACKEND_V).tar.gz
ARCHIVE_MNAME   := $(ARCHMOD)-$(VERSION1)_$(VERSION0)_$(BUILD).tar.gz
ARCHIVE_BACKEND := $(ARCHBCK)-$(BACKEND_V).tar.gz

#
# build the distribution
#
dist:
	@$(ECHO) "Current Backend Build is $(BACKEND_V)"
	@$(ECHO) "Current Driver Build is $(VERSION1).$(VERSION0)-$(BUILD)"
	@$(ECHO) "Creating "$(ARCHIVE_NAME)
	@$(ECHO) "Creating "$(ARCHIVE_BACKEND)
	@$(ECHO) "Creating "$(ARCHIVE_MNAME)

	@if [ -e $(ARCHIVE_BACKEND) ];                        \
		then echo "$(ARCHIVE_BACKEND) already exists!!!"; \
		exit -1;                                          \
	fi
	@if [ -e $(ARCHIVE_NAME) ];                        \
		then echo "$(ARCHIVE_NAME) already exists!!!"; \
		exit -1;                                       \
	fi
	@if [ -e $(ARCHIVE_MNAME) ];                        \
		then echo "$(ARCHIVE_MNAME) already exists!!!"; \
		exit -1;                                        \
	fi

	@$(TAR) -czf $(ARCHIVE_NAME) $(ARCH_FILES) --exclude=CVS
	@$(TAR) -czf $(ARCHIVE_BACKEND) $(BCK_DISTRO) --exclude=CVS
	@$(CD) $(BACKEND_DIR);$(TAR) -czf $(ARCHIVE_MNAME) $(ARCH_MOD) --exclude=CVS;$(CD) ..
	@$(MV) $(BACKEND_DIR)/$(ARCHIVE_MNAME) .

.PHONY : all clean dist
