SHELL=/bin/sh # Load in machine-specific environment settings from environment_config.make. # This include file MUST be created and MUST define the following variables: # # Used in Makefile # EPRINTS_ROOT: /path/to/eprints/installation # EPRINTS_USER: the user that owns the EPrints directory # EPRINTS_GROUP: the group that owns the EPrints directory # APACHE_STOP: the command to stop Apache # APACHE_START: the command to start Apache # APACHE_PID: the path to the Apache PID file # # Used in ARCHIVE.xml configuration file # EPRINTS_HOST: eprints host name # EPRINTS_PORT: appropriate HTTP port # EPRINTS_ADMIN_EMAIL: administrator email address (quote "@" with \) # EPRINTS_ARCHIVE_NAME: full archive name as it appears in web pages # # Used in apachevhost.conf # EPRINTS_ALLOWED_DOMAINS: domains that web registration is allowed from # include environment_config.make CONFIG_SUBS:=EPRINTS_HOST EPRINTS_PORT EPRINTS_ADMIN_EMAIL EPRINTS_ARCHIVE_NAME VHOST_SUBS:=EPRINTS_ALLOWED_DOMAINS ARCHIVE_NAME:=otago_eprints BINDIR:=$(EPRINTS_ROOT)/bin ARCHIVE_ROOT:=$(EPRINTS_ROOT)/archives/$(ARCHIVE_NAME) ARCHIVE_CONFIG:=$(EPRINTS_ROOT)/archives/$(ARCHIVE_NAME).xml GENERATED_FILES:=$(ARCHIVE_NAME).xml $(ARCHIVE_NAME)/cfg/apachevhost.conf .PHONY: deploy generate_apacheconf import_subjects generate_static \ generate_abstracts generate_views restart_apache index stats deploy: $(GENERATED_FILES) @announce "Copying files..." @sudo -u $(EPRINTS_USER) rsync --verbose --cvs-exclude --exclude=Makefile \ --exclude='*.make' --exclude='*_src.*' \ --recursive --times . $(EPRINTS_ROOT)/archives > .del-rsync-output @-grep $(ARCHIVE_NAME) .del-rsync-output @-grep --quiet "$(ARCHIVE_NAME)\\.xml" .del-rsync-output && $(MAKE) generate_apacheconf @-grep --quiet "$(ARCHIVE_NAME)/cfg/subjects" .del-rsync-output && $(MAKE) import_subjects @-grep --quiet "\\(otago_eprints/cfg/static/\\)\\|\\(\\.xml\\)" .del-rsync-output && $(MAKE) generate_static @-grep --quiet "\\(\\.pm\\)\\|\\(\\.xml\\)\|\($(ARCHIVE_NAME)/cfg/subjects\)" .del-rsync-output && $(MAKE) generate_views @-grep --quiet "\\($(ARCHIVE_NAME)/cfg/ArchiveRenderConfig.pm\\)\\|\\(\\.xml\\)" .del-rsync-output && $(MAKE) generate_abstracts @-grep --quiet "\\(\\.conf\\)\\|\\(\\.pm\\)\\|\\(\\.xml\\)" .del-rsync-output && $(MAKE) restart_apache @rm -f .del-rsync-output $(ARCHIVE_NAME).xml: $(ARCHIVE_NAME)_src.xml @announce "Creating $@" perl -p $(foreach SUB,$(CONFIG_SUBS),-e "s|##$(SUB)##|$($(SUB))|g;") $< > $@ @chmod 600 $@ $(ARCHIVE_NAME)/cfg/apachevhost.conf: $(ARCHIVE_NAME)/cfg/apachevhost_src.conf @announce "Creating $@" perl -p $(foreach SUB,$(VHOST_SUBS),-e "s|##$(SUB)##|$($(SUB))|g;") $< > $@ generate_apacheconf: @announce "generate_apacheconf" @sudo -u $(EPRINTS_USER) $(BINDIR)/$@ import_subjects generate_static generate_abstracts generate_views: @announce "$@ $(ARCHIVE_NAME)" @sudo -u $(EPRINTS_USER) $(BINDIR)/$@ $(ARCHIVE_NAME) restart_apache: @announce "Waiting for Apache to shut down..." @sudo $(APACHE_STOP) @sleep 10 @announce "Waiting for Apache to start up..." @sudo $(APACHE_STOP) @while [ ! -f $(APACHE_PID) ]; do echo > /dev/null; done index: @announce "Rebuilding indexes..." @sudo -u $(EPRINTS_USER) $(BINDIR)/indexer start --once --notdaemon stats: @announce "Generating statistics..." @php $(EPRINTS_ROOT)/ePrintsStats/scripts/eprints-usage.php # @sudo -u $(EPRINTS_USER) perl $(EPRINTS_ROOT)/ePrintsStats/scripts/add_country.pl debug: @echo "ARCHIVE_NAME = [$(ARCHIVE_NAME)]" @echo "EPRINTS = [$(EPRINTS)]" @echo "ARCHIVE_ROOT = [$(ARCHIVE_ROOT)]" @echo "ARCHIVE_CONFIG = [$(ARCHIVE_CONFIG)]"