VERSION=0.2.1
NAME=latex_make

PREFIX=$(HOME)
BINDIR=$(PREFIX)/bin
DATADIR=$(PREFIX)/share
PROJECT_DATA_DIR=$(DATADIR)/$(NAME)

PROGS=latex_make set_makefile
DATA_FILES=latex_make.mak

FILES_LIST=\
  $(shell cvs log -R 2>/dev/null |sed -e 's|.*/LatexMake/||' -e 's/,v$$//')

SUB_DIR=$(NAME)-$(VERSION)
ARCHIVE=$(NAME)-$(VERSION).tar.gz
TARGET_HOST=aluf
REMOTE_DIR=public_html/latex_make
TARGET_DIR=$(TARGET_HOST):$(REMOTE_DIR)


RM=rm -f
CP=cp
MKDIR=mkdir
TAR=tar
SCP=scp
SSH=ssh
DIRNAME=dirname
PERL=perl

# a target to print the value of some variable:
test-print:
	@echo $(FILES_LIST)

# pack: crate a tar archive from the CVS
pack: $(ARCHIVE)

install:
	$(MKDIR) -p $(PROJECT_DATA_DIR)
	for file in $(DATA_FILES); do     \
	  $(CP) $$file $(PROJECT_DATA_DIR); \
	done
	$(MKDIR) -p $(BINDIR)
	for file in $(PROGS); do  \
	  $(CP) $$file $(BINDIR); \
	done
	$(PERL) -i -p -e \
	  's|\@LATEX_MAKE_MAKEFILE\@|$(PROJECT_DATA_DIR)/latex_make.mak|g' \
	  $(BINDIR)/latex_make

$(ARCHIVE): $(FILES_LIST)
	$(RM) -r $(SUB_DIR)
	$(MKDIR) $(SUB_DIR)
	for file in $(FILES_LIST); do         \
	  dir=`$(DIRNAME) $${file}`;          \
	  mkdir -p $(SUB_DIR)/$${dir};        \
	  $(CP) $${file} $(SUB_DIR)/$${file}; \
	done
	$(TAR) -cvzf $(ARCHIVE) $(SUB_DIR)
	
# publish: copy the current version to a remote server
# Does not attempt to handle cleaning of the previous version
publish: $(ARCHIVE)
	$(SCP) $(ARCHIVE) $(TARGET_DIR)
	$(SSH) $(TARGET_HOST) 'cd $(REMOTE_DIR); gzip -d <$(ARCHIVE)|tar xvf -'
