#
# Makefile for AddUser-NG installation.
# 

PREFIX=/usr
CONFIG_PREFIX=

# if package will not be specified, use adduser-ng
PACKAGE=adduser-ng

all: install

clean: clean_adduser

clean_adduser:
	perl -i -pe 's#$(CONFIG_PREFIX)/etc/adduser-ng/adduser-ng.conf#adduser-ng/adduser-ng.conf#' adduser
	rm -rf Docs/user_polish &> /dev/null
	rm -rf Docs/user_english &> /dev/null
	rm -rf Docs/developer_polish &> /dev/null

build_adduser:
	perl -i -pe 's#adduser-ng/adduser-ng.conf#$(CONFIG_PREFIX)/etc/adduser-ng/adduser-ng.conf#' adduser

install:
	$(MAKE) PACKAGE=adduser-ng install_adduser
	$(MAKE) PACKAGE=libadduser-pluginloader-perl install_pluginloader
	$(MAKE) PACKAGE=adduser-ui-cdk install_uicdk
	$(MAKE) PACKAGE=adduser-plugin-quota install_pluginquota
	$(MAKE) PACKAGE=adduser-plugins-eximconf install_plugineximconf
	$(MAKE) PACKAGE=adduser-plugins-eximconf4 install_plugineximconf4
	$(MAKE) PACKAGE=adduser-plugins-notifyjabber install_pluginnotifyjabber
	$(MAKE) PACKAGE=adduser-plugins-cvsaccess install_plugincvsaccess
	$(MAKE) PACKAGE=adduser-plugins-bkdinit install_pluginbkdinit

install_adduser: build_adduser
	#
	# adduser-ng package installation
	install -o root -g root -m 755 -d $(PREFIX)/sbin
	install -o root -g root -m 755 -d $(PREFIX)/share/adduser-ng/plugins
	install -o root -g root -m 755 -d $(CONFIG_PREFIX)/etc/adduser-ng
	install -o root -g root -m 755 -d $(PREFIX)/share/perl5/AddUser
	install -o root -g root -m 755 -d $(PREFIX)/share/perl5/AddUser/plugins
	install -o root -g root -m 755 -d $(PREFIX)/share/perl5/AddUser/UI
	install -o root -g root -m 755 -d $(PREFIX)/share/doc/$(PACKAGE)

	install -o root -g root -m 755 adduser $(PREFIX)/sbin/adduser-ng
	install -o root -g root -m 644 Docs/plugins/UserAdd.xml $(PREFIX)/share/adduser-ng/plugins/
	install -o root -g root -m 644 Docs/plugins/GroupAdd.xml $(PREFIX)/share/adduser-ng/plugins/
	install -o root -g root -m 644 Docs/plugins/PasswdUser.xml $(PREFIX)/share/adduser-ng/plugins/
	install -o root -g root -m 644 adduser-ng/adduser-ng.conf-dist $(CONFIG_PREFIX)/etc/adduser-ng/adduser-ng.conf
	# plugins
	install -o root -g root -m 644 lib/AddUser/StdLib.pm $(PREFIX)/share/perl5/AddUser/
	install -o root -g root -m 644 lib/AddUser/GroupConfig.pm $(PREFIX)/share/perl5/AddUser/
	install -o root -g root -m 644 lib/AddUser/plugins/UserAdd.pm $(PREFIX)/share/perl5/AddUser/plugins/
	install -o root -g root -m 644 lib/AddUser/plugins/GroupAdd.pm $(PREFIX)/share/perl5/AddUser/plugins/
	install -o root -g root -m 644 lib/AddUser/plugins/PasswdUser.pm $(PREFIX)/share/perl5/AddUser/plugins/
	# UI
	install -o root -g root -m 644 lib/AddUser/UI/batch.pm $(PREFIX)/share/perl5/AddUser/UI/
	install -o root -g root -m 644 lib/AddUser/UI/readline.pm $(PREFIX)/share/perl5/AddUser/UI/
	# documentation
	xalan -IN Docs/plugins/UserAdd.xml -XSL Docs/plugins-to-html.xsl -OUT $(PREFIX)/share/doc/$(PACKAGE)/UserAdd.html
	xalan -IN Docs/plugins/GroupAdd.xml -XSL Docs/plugins-to-html.xsl -OUT $(PREFIX)/share/doc/$(PACKAGE)/GroupAdd.html
	xalan -IN Docs/plugins/PasswdUser.xml -XSL Docs/plugins-to-html.xsl -OUT $(PREFIX)/share/doc/$(PACKAGE)/PasswdUser.html

generate_docs_user:
	scripts/generate_docs.sh all Docs/user_polish.xml Docs/
	scripts/generate_docs.sh all Docs/user_english.xml Docs/

generate_docs_devel:
	scripts/generate_docs.sh all Docs/developer_polish.xml Docs/

install_docs_user:
	install -o root -g root -m 755 -d $(PREFIX)/share/doc/$(PACKAGE)/polish/
	install -o root -g root -m 644 Docs/user_polish/* $(PREFIX)/share/doc/$(PACKAGE)/polish/
	install -o root -g root -m 755 -d $(PREFIX)/share/doc/$(PACKAGE)/english/
	install -o root -g root -m 644 Docs/user_english/* $(PREFIX)/share/doc/$(PACKAGE)/english/

install_docs_devel:
	install -o root -g root -m 755 -d $(PREFIX)/share/doc/$(PACKAGE)/polish/
	install -o root -g root -m 644 Docs/developer_polish/* $(PREFIX)/share/doc/$(PACKAGE)/polish/

install_pluginloader:
	#
	# libadduser-pluginloader
	install -o root -g root -m 755 -d $(PREFIX)/share/perl5/AddUser
	install -o root -g root -m 644 lib/AddUser/PluginLoader.pm $(PREFIX)/share/perl5/AddUser/

install_uicdk:
	#
	# adduser-ui-cdk
	install -o root -g root -m 755 -d $(PREFIX)/share/perl5/AddUser/UI
	install -o root -g root -m 644 lib/AddUser/UI/cdk.pm $(PREFIX)/share/perl5/AddUser/UI/

install_pluginquota:
	#
	# adduser-plugin-quota
	install -o root -g root -m 755 -d $(PREFIX)/share/adduser-ng/plugins
	install -o root -g root -m 755 -d $(PREFIX)/share/perl5/AddUser/plugins
	install -o root -g root -m 755 -d $(PREFIX)/share/doc/$(PACKAGE)

	install -o root -g root -m 644 Docs/plugins/Quota.xml $(PREFIX)/share/adduser-ng/plugins/
	install -o root -g root -m 644 lib/AddUser/plugins/Quota.pm $(PREFIX)/share/perl5/AddUser/plugins/
	xalan -IN Docs/plugins/Quota.xml -XSL Docs/plugins-to-html.xsl -OUT $(PREFIX)/share/doc/$(PACKAGE)/Quota.html

install_pluginnotifyjabber:
	#
	# adduser-plugin-notifyjabber
	install -o root -g root -m 755 -d $(PREFIX)/share/adduser-ng/plugins
	install -o root -g root -m 755 -d $(PREFIX)/share/perl5/AddUser/plugins
	install -o root -g root -m 755 -d $(PREFIX)/share/doc/$(PACKAGE)

	install -o root -g root -m 644 Docs/plugins/NotifyJabber.xml $(PREFIX)/share/adduser-ng/plugins/
	install -o root -g root -m 644 lib/AddUser/plugins/NotifyJabber.pm $(PREFIX)/share/perl5/AddUser/plugins/
	xalan -IN Docs/plugins/NotifyJabber.xml -XSL Docs/plugins-to-html.xsl -OUT $(PREFIX)/share/doc/$(PACKAGE)/NotifyJabber.html

install_plugincvsaccess:
	#
	# adduser-plugin-cvsaccess
	install -o root -g root -m 755 -d $(PREFIX)/share/adduser-ng/plugins
	install -o root -g root -m 755 -d $(PREFIX)/share/perl5/AddUser/plugins
	install -o root -g root -m 755 -d $(PREFIX)/share/doc/$(PACKAGE)

	install -o root -g root -m 644 Docs/plugins/CVSAccess.xml $(PREFIX)/share/adduser-ng/plugins/
	install -o root -g root -m 644 lib/AddUser/plugins/CVSAccess.pm $(PREFIX)/share/perl5/AddUser/plugins/
	xalan -IN Docs/plugins/CVSAccess.xml -XSL Docs/plugins-to-html.xsl -OUT $(PREFIX)/share/doc/$(PACKAGE)/CVSAccess.html

install_pluginbkdinit:
	#
	# adduser-plugin-bkdinit
	install -o root -g root -m 755 -d $(PREFIX)/share/adduser-ng/plugins
	install -o root -g root -m 755 -d $(PREFIX)/share/perl5/AddUser/plugins
	install -o root -g root -m 755 -d $(PREFIX)/share/doc/$(PACKAGE)

	install -o root -g root -m 644 Docs/plugins/BKDInit.xml $(PREFIX)/share/adduser-ng/plugins/
	install -o root -g root -m 644 lib/AddUser/plugins/BKDInit.pm $(PREFIX)/share/perl5/AddUser/plugins/
	xalan -IN Docs/plugins/BKDInit.xml -XSL Docs/plugins-to-html.xsl -OUT $(PREFIX)/share/doc/$(PACKAGE)/BKDInit.html

install_plugineximconf:
	#
	# adduser-plugin-eximconf
	install -o root -g root -m 755 -d $(PREFIX)/share/adduser-ng/plugins
	install -o root -g root -m 755 -d $(PREFIX)/share/perl5/AddUser/plugins
	install -o root -g root -m 755 -d $(PREFIX)/share/doc/$(PACKAGE)

	install -o root -g root -m 644 Docs/plugins/EximConf.xml $(PREFIX)/share/adduser-ng/plugins/
	install -o root -g root -m 644 lib/AddUser/plugins/EximConf.pm $(PREFIX)/share/perl5/AddUser/plugins/
	xalan -IN Docs/plugins/EximConf.xml -XSL Docs/plugins-to-html.xsl -OUT $(PREFIX)/share/doc/$(PACKAGE)/EximConf.html

install_plugineximconf4:
	#
	# adduser-plugin-eximconf4
	install -o root -g root -m 755 -d $(PREFIX)/share/adduser-ng/plugins
	install -o root -g root -m 755 -d $(PREFIX)/share/perl5/AddUser/plugins
	install -o root -g root -m 755 -d $(PREFIX)/share/doc/$(PACKAGE)

	install -o root -g root -m 644 Docs/plugins/EximConf4.xml $(PREFIX)/share/adduser-ng/plugins/
	install -o root -g root -m 644 lib/AddUser/plugins/EximConf4.pm $(PREFIX)/share/perl5/AddUser/plugins/
	xalan -IN Docs/plugins/EximConf4.xml -XSL Docs/plugins-to-html.xsl -OUT $(PREFIX)/share/doc/$(PACKAGE)/EximConf.html

install_all_plugins: install_pluginloader install_uicdk install_pluginquota install_plugineximconf install_plugineximconf4 install_pluginnotifyjabber install_plugincvsaccess install_pluginbkdinit

.PHONY: install install_adduser install_pluginloader install_uicdk install_pluginquota install_plugineximconf install_plugineximconf4 install_pluginnotifyjabber install_plugincvsaccess install_pluginbkdinit
