# -- general, and important LOCAL_PROJECT = $(PROJECT) TARGET_HOST = cvs.jannet.de UPLOAD_DOCUMENT_ROOT = /usr/local/httpd/htdocs UPLOAD_VIRTUAL_SERVER_ROOT = www.jannet.de_443 TARGET_USER = root TARGET_GROUP = root TARGET_FILE_MODE = 755 TARGET_DIR_MODE = 755 DOWNLOAD_SERVER = https://www.jannet.de:443 URL_RELATIVE_PATH = $(CUSTOMER)/projects/$(LOCAL_PROJECT)/download SSI_DOWNLOAD_TMPL = $(MODDIR)/doctmpl/html/ssi/ssi_download.html.tmpl DOWNLOAD_REFERRER_DIRS = $(addprefix $(UPLOAD_DOCUMENT_ROOT)/, \ $(UPLOAD_VIRTUAL_SERVER_ROOT)/$(URL_RELATIVE_PATH) \ ) # -- general, and less important DISTDIR = $(TOPDIR)/dist TMPHTML=$(DISTDIR)/html DOWNLOAD_URLDIR=$(DOWNLOAD_SERVER)/$(URL_RELATIVE_PATH) TARGET_DIR = $(UPLOAD_DOCUMENT_ROOT)/$(UPLOAD_VIRTUAL_SERVER_ROOT)/$(URL_RELATIVE_PATH) SSI_PREFIX = $(TMPHTML)/ssi_download_ SSI_FILES = $(addsuffix .html,$(addprefix $(SSI_PREFIX),$(notdir $(PCKG_FILES)))) PCKG_FILES = $(addprefix $(PCKG_DIR)/,$(DIST_FILES)) $(TMPHTML): mkdir -p $(TMPHTML) test -d $(TMPHTML) && rm -rf $(TMPHTML)/* define generate_ssi STEM=$(notdir $@) ;\ DIR=$(dir $@) ;\ if [ -n "`echo $(PROJECT_DESCR) | grep '\win'`" ]; then \ PLATF=" for Windows" ;\ elif [ -n "`echo $(PROJECT_DESCR) | grep '\lx'`" ]; then \ PLATF=" for Linux" ;\ fi; \ if [ -n "`echo $(PROJECT_DESCR) | grep '\-src'`" ]; then \ DISTTYPE=", Source Distribution" ;\ elif [ -n "`echo $(PROJECT_DESCR) | grep '\-bin'`" ]; then \ DISTTYPE=", Binary Distribution" ;\ fi; \ EXPLANATION="$(PROJECT_DESCR)$$PLATF$$DISTTYPE";\ SIZE=`ls -l $< | awk '{print $$5}'`;\ FILENAME=`basename $<` ;\ cat $(SSI_DOWNLOAD_TMPL) | sed -e "\ s/_VERSION_/$(LOCAL_DIST_VERSION)/g;\ s/_PROJECT_/$(LOCAL_PROJECT)/g;\ s/_TARGET_STEM_//g;\ s/_FILENAME_/$$FILENAME/g;\ s/_DATE_/$(shell date +"%Y-%m-%d")/g;\ s/_EXPLANATION_/$$EXPLANATION/g;\ s%_URLDIR_%$(DOWNLOAD_URLDIR)%g;\ s/_SIZE_/$$SIZE/g;\ " > $@ endef # $(TMPHTML) $(SSI_DOWNLOAD_TMPL) $(SSI_PREFIX)%.html: $(PCKG_DIR)/% STEM=$(notdir $@) ;\ DIR=$(dir $@) ;\ mkdir -p $$DIR ;\ if [ -n "`echo $@ | grep 'win'`" ]; then \ PLATF=" for Windows" ;\ elif [ -n "`echo $@ | grep 'lx'`" ]; then \ PLATF=" for Linux" ;\ fi; \ if [ -n "`echo $@ | grep '\-src'`" ]; then \ DISTTYPE=", Source Distribution" ;\ elif [ -n "`echo $@ | grep '\-bin'`" ]; then \ DISTTYPE=", Binary Distribution" ;\ fi; \ EXPLANATION="$(PROJECT_DESCR)$$PLATF$$DISTTYPE";\ SIZE=`ls -l $< | awk '{print $$5}'`;\ FILENAME=$(notdir $<) ;\ cat $(SSI_DOWNLOAD_TMPL) | sed -e "\ s/_VERSION_/$(LOCAL_DIST_VERSION)/g;\ s/_PROJECT_/$(LOCAL_PROJECT)/g;\ s/_TARGET_STEM_//g;\ s/_FILENAME_/$$FILENAME/g;\ s/_DATE_/$(shell date +"%Y-%m-%d")/g;\ s/_EXPLANATION_/$$EXPLANATION/g;\ s%_URLDIR_%$(DOWNLOAD_URLDIR)%g;\ s/_SIZE_/$$SIZE/g;\ " > $@ #$(SSI_PREFIX)%.html: $(TMPHTML) $(SSI_DOWNLOAD_TMPL) # $(generate_ssi) # #$(SSI_PREFIX)%.html: %-lx-src.tar.gz $(TMPHTML) $(SSI_DOWNLOAD_TMPL) # $(generate_ssi) ssi_build.dist: make $(SSI_FILES) # -- install.dist install.dist: $(PCKG_FILES) ssi_build.dist @echo "-- installing distribution files to $(TARGET_HOST):$(TARGET_DIR) as user $(TARGET_USER)" ssh -l $(TARGET_USER) $(TARGET_HOST) -C "\ mkdir -p $(TARGET_DIR); chmod $(TARGET_DIR_MODE) $(TARGET_DIR)" /usr/bin/rsync -az -v --links -e /usr/bin/ssh $(PCKG_FILES) $(TARGET_USER)@$(TARGET_HOST):$(TARGET_DIR) ssh -l $(TARGET_USER) $(TARGET_HOST) -C "\ cd $(TARGET_DIR); find . -type d | xargs -r chmod $(TARGET_DIR_MODE); find . -type f | xargs -r chmod $(TARGET_FILE_MODE)" @echo "-- installing referrer include files to $(TARGET_HOST) as user $(TARGET_USER)" for DIR in $(DOWNLOAD_REFERRER_DIRS) ; do \ echo "to $$DIR" ;\ ssh -l $(TARGET_USER) $(TARGET_HOST) -C "\ mkdir -p $$DIR; chmod $(TARGET_DIR_MODE) $(TARGET_DIR)" ;\ /usr/bin/rsync -az -v --links -e /usr/bin/ssh $(TMPHTML)/ssi_download_*.html $(TARGET_USER)@$(TARGET_HOST):$$DIR ;\ ssh -l $(TARGET_USER) $(TARGET_HOST) -C "\ cd $$DIR; find . -type d | xargs -r chmod $(TARGET_DIR_MODE); find . -type f | xargs -r chmod $(TARGET_FILE_MODE)" ;\ done