prefix=@prefix@
exec_prefix=@exec_prefix@

WWW_CONF_PATH=@www_conf_path@
INSTALL=@INSTALL@
INSTALL_OPTS=@INSTALL_OPTS@
INSTALL_OPTS_WEB=@INSTALL_OPTS_WEB@

default:
	@echo "Icinga2Web make targets: "
	@printf "%b" " -install:\t\t\tInstall the application and overwrite configs\n"
	@printf "%b" " -update:\t\t\tInstall the application without touching the configs\n"
	@printf "%b" " -install-apache-config:\tInstall the apache configuration\n"

#
# Installs the whole application w\o httpd configurations
#
install: install-static-files install-runtime-dirs

update: install-application
#
# Removes files created by ./configure
#
clean:
	fi; \
	if [ -f ./Makefile ];then \
		rm ./Makefile; \
	fi; \
	if [ -f ./etc/apache/icinga2web.conf ];then \
		rm ./etc/apache/icinga2web.conf; \
	fi;

#
# Installs/copies all static files (executables, scripts, html, etc)
#
install-static-files: install-application copy-web-files-public copy-web-files-config copy-web-files-modules
	$(INSTALL) -m 644 $(INSTALL_OPTS) "./public/.htaccess"  $(DESTDIR)$(prefix)/public/.htaccess;

#
# Installs runtime directories like the application cache
#
install-runtime-dirs:
	$(INSTALL) -m 755 $(INSTALL_OPTS_WEB) -d $(DESTDIR)$(prefix)/application/cache

#
# Copies the tests into the installation directory
#
install-tests: copy-folder-tests

#
# Install configurations for apache2
#
install-apache-config:
	$(INSTALL) -m 644 $(INSTALL_OPTS) "./etc/apache/icinga2web.conf"  $(WWW_CONF_PATH)/icinga2web.conf;

#
# Installs the php files to the prefix
#
install-application: copy-web-files-application copy-web-files-library

#
# Rule for coying folders and containing files (arbitary types), hidden files are excluded
#
copy-folder-%:
	$(INSTALL) -m 755 $(INSTALL_OPTS) -d $(DESTDIR)$(prefix)/$*

	@dirs=`find ./$* -mindepth 1 -type d `;\
	for dir in $$dirs; do \
		$(INSTALL) -m 755 $(INSTALL_OPTS) -d $(DESTDIR)$(prefix)/"$$dir"; \
	done;

	@files=`find ./$* -mindepth 1 -type f \
		-and ! -name ".*"`; \
		for file in $$files; do \
			$(INSTALL) -m 644 $(INSTALL_OPTS) "$$file"  $(DESTDIR)$(prefix)/"$$file"; \
		done


#
# Rule for copying only php, *html, js and ini files. Hidden files are ignored
#
copy-web-files-%:
	$(INSTALL) -m 755 $(INSTALL_OPTS) -d $(DESTDIR)$(prefix)/$*

	@dirs=`find ./$* -mindepth 1 -type d `;\
	for dir in $$dirs; do \
		$(INSTALL) -m 755 $(INSTALL_OPTS) -d $(DESTDIR)$(prefix)/"$$dir"; \
	done;

	@files=`find ./$* -mindepth 1 -type f \
		-name "*.php" -or -name "*.ini" -or -name "*.*html" -or -name "*.js"  \
		-and ! -name ".*"`; \
		for file in $$files; do \
			$(INSTALL) -m 644 $(INSTALL_OPTS) "$$file"  $(DESTDIR)$(prefix)/"$$file"; \
		done


