# # MAKEFILE for NuFace # .PHONY: tests template.pot # User defined options # eg. "make install DESTDIR=/tmp" DESTDIR= # arguments for install # Programs SHELL=bash PHP=php PYTHON=python MSGFMT=msgfmt SVNVERSION=svnversion # System configuration PREFIX=$(DESTDIR)/usr SBINDIR=$(PREFIX)/sbin LOCALEDIR=$(PREFIX)/share/locale MAN_PREFIX=$(PREFIX)/share/man/man8 LOCK_DIR=$(DESTDIR)/var/lock EXEC_PREFIX=$(PREFIX)/sbin INITDIR=$(DESTDIR)/etc/init.d ETCDIR=$(DESTDIR)/etc/nuface # NuFace configuration (user data) DIR=$(shell pwd) NUFACEDIR=$(DESTDIR)/var/lib/nuface RULESDIR=$(NUFACEDIR)/dyn BACKUP_DIR=$(NUFACEDIR)/backups ACLDIR=$(NUFACEDIR)/acls LOCALRULESDIR=$(NUFACEDIR)/local_rules.d # PHP et Javascript directory WEBDIR=$(DESTDIR)/var/www/nuface # Python parameters PYTHON_VERSION=$(shell $(PYTHON) -c 'from sys import hexversion; print "%s.%s" % (hexversion >> 24, (hexversion >> 16) & 0xFF)') PYTHON_PACKAGES=$(PREFIX)/lib/python$(PYTHON_VERSION)/site-packages all: makedoc nupyf_build nulayer7_build checkdesc_build makedoc: $(MAKE) -C doc nupyf_build: @echo "Building python package" cd scripts; $(PYTHON) setup_nupyf.py build nulayer7_build: @echo "Building python package" cd scripts; $(PYTHON) setup_nulayer7.py build checkdesc_build: @echo "Building python package" cd scripts; $(PYTHON) setup_checkdesc.py build install: install_web install_nupyf install_man install_config install_initd @echo '' @echo "NuFace installation finished" update_version: $(SVNVERSION) &>/dev/null && sed 's/^\($$nuface_version\).*$$/\1 = "2.0 $(shell $(SVNVERSION))";/' -i include/version.php install_webconfig: install -d $(WWW) -m 0775 $(NUFACEDIR) install -d $(ROOT) -m 0755 $(BACKUP_DIR) install -d $(WWW) -m 0775 $(ACLDIR) install -d $(WWW) -m 0775 $(ACLDIR)/fixed/ install -d $(WWW) -m 0775 $(RULESDIR) install -d $(WWW) -m 0775 $(RULESDIR)/standard install -d $(WWW) -m 0775 $(RULESDIR)/nufw install $(ROOT) -m 0644 doc/empty.xml $(ACLDIR)/fixed/empty.xml install_config: install_webconfig install_localrules install -d $(ROOT) -m 0755 $(ETCDIR) if [ ! -e $(ETCDIR)/config.php ]; then \ echo -e "<?php\n# Add your own options from /var/www/nuface/include/default_config.php\n?>" > $(ETCDIR)/config.php; \ fi echo -e "<?php\ninclude (\"/etc/nuface/config.php\"); \n?>" > $(WEBDIR)/include/config.php test -e $(ETCDIR)/nupyf.conf || install $(WWW) -m 0640 scripts/nupyf.conf $(ETCDIR)/nupyf.conf install_localrules: install -d $(ROOT) -m 0775 $(LOCALRULESDIR) install $(ROOT) -m 0644 doc/local_rules.rst $(LOCALRULESDIR)/README install_initd: @echo "Install init.d/init-firewall script" install -d $(ROOT) -m 0755 $(INITDIR) install -d $(ROOT) -m 0755 $(LOCK_DIR) install $(ROOT) -m 0755 scripts/init-firewall $(INITDIR)/init-firewall install_nupyf: uninstall_nupyf @echo "Installing python package" rm -rf scripts/build install -d $(ROOT) -m 0755 $(EXEC_PREFIX) cd scripts; $(PYTHON) setup_nupyf.py install --prefix $(PREFIX) --install-scripts=$(EXEC_PREFIX) cd scripts; $(PYTHON) setup_nulayer7.py install --prefix $(PREFIX) --install-scripts=$(EXEC_PREFIX) cd scripts; $(PYTHON) setup_checkdesc.py install --prefix $(PREFIX) --install-scripts=$(EXEC_PREFIX) install $(ROOT) -m 0755 scripts/scripts/nuperiod $(EXEC_PREFIX)/nuperiod install $(ROOT) -m 0755 scripts/sync_firewalls.sh $(EXEC_PREFIX)/sync_firewalls.sh install_man: install -d $(ROOT) -m 0755 $(MAN_PREFIX) install $(ROOT) -m 0644 doc/*.8 $(MAN_PREFIX) install_mo: install -d $(ROOT) -m 0755 $(LOCALEDIR)/fr/LC_MESSAGES $(MSGFMT) fr.po -o $(LOCALEDIR)/fr/LC_MESSAGES/nuface.mo install_web: install_mo install -d $(ROOT) -m 0755 $(WEBDIR) install -d $(ROOT) -m 0755 $(WEBDIR)/doc/nuface/en install -d $(ROOT) -m 0755 $(WEBDIR)/doc/nuface/fr install -d $(ROOT) -m 0755 $(WEBDIR)/js/toolman install -d $(ROOT) -m 0755 $(WEBDIR)/js/yahoo install -d $(ROOT) -m 0755 $(WEBDIR)/images install -d $(ROOT) -m 0755 $(WEBDIR)/include install -d $(ROOT) -m 0755 $(WEBDIR)/include/pear install -d $(ROOT) -m 0755 $(WEBDIR)/include/pear/Net install $(ROOT) -m 0644 *.php $(WEBDIR) install $(ROOT) -m 0644 doc/nuface/en/* $(WEBDIR)/doc/nuface/en/ install $(ROOT) -m 0644 doc/nuface/fr/* $(WEBDIR)/doc/nuface/fr/ install $(ROOT) -m 0644 include/*.php $(WEBDIR)/include install $(ROOT) -m 0644 include/l7-protos $(WEBDIR)/include install $(ROOT) -m 0644 include/pear/Net/IPv4.php $(WEBDIR)/include/pear/Net install $(ROOT) -m 0644 *.css $(WEBDIR) install $(ROOT) -m 0644 images/*.png $(WEBDIR)/images install $(ROOT) -m 0644 images/*.jpg $(WEBDIR)/images install $(ROOT) -m 0644 images/*.gif $(WEBDIR)/images install $(ROOT) -m 0644 js/*.js $(WEBDIR)/js install $(ROOT) -m 0644 js/toolman/*.js $(WEBDIR)/js/toolman cp -r js/yahoo/* $(WEBDIR)/js/yahoo/ # installation for developpers developer installdev: symlink_python symlink_initd symlink_acl install_mo @echo '' @echo "NuFace *developer* installation finished" symlink_python: uninstall_nupyf ln -sn $(DIR)/scripts/nulayer7 $(PYTHON_PACKAGES)/nulayer7 ln -sn $(DIR)/scripts/nupyf $(PYTHON_PACKAGES)/nupyf ln -sn $(DIR)/scripts/checkdesc $(PYTHON_PACKAGES)/checkdesc ln -sn $(DIR)/scripts/scripts/checkdesc $(SBINDIR)/checkdesc ln -sn $(DIR)/scripts/scripts/gendesc $(SBINDIR)/gendesc ln -sn $(DIR)/scripts/scripts/nulayer7 $(SBINDIR)/nulayer7 ln -sn $(DIR)/scripts/scripts/nuperiod $(SBINDIR)/nuperiod ln -sn $(DIR)/scripts/scripts/nupyf $(SBINDIR)/nupyf symlink_initd: uninstall_initd ln -sn $(DIR)/scripts/init-firewall $(INITDIR)/init-firewall symlink_acl: install -d $(WWW) -m 0775 $(NUFACEDIR) ln -snf $(DIR)/doc/empty.xml $(ACLDIR)/fixed/empty.xml tests: PYTHONPATH=scripts $(PYTHON) ./tests/test_gen_desc.py PYTHONPATH=scripts $(PYTHON) scripts/checkdesc/relation.py PYTHONPATH=scripts $(PYTHON) scripts/checkdesc/tools.py PYTHONPATH=scripts $(PYTHON) scripts/checkdesc/unicity.py PYTHONPATH=scripts $(PYTHON) ./tests/run_test.py PYTHONPATH=scripts $(PYTHON) ./tests/test_period.py PYTHONPATH=scripts $(PYTHON) ./tests/test_nulayer7.py (cd tests; $(PHP) test_all.php) template.pot: @echo "Generate $@" @xgettext -o $@ -L php $(shell find -type f -name "*.php") update_po: template.pot @echo "Update fr.po" @msgmerge -q -U fr.po template.pot uninstall_nupyf: rm -rf $(PYTHON_PACKAGES)/nupyf $(PYTHON_PACKAGES)/nupyf-*.egg-info rm -rf $(PYTHON_PACKAGES)/nulayer7 $(PYTHON_PACKAGES)/nulayer7-*.egg-info rm -rf $(PYTHON_PACKAGES)/checkdesc $(PYTHON_PACKAGES)/checkdesc-*.egg-info rm -f $(EXEC_PREFIX)/checkdesc rm -f $(EXEC_PREFIX)/gendesc rm -f $(EXEC_PREFIX)/nulayer7 rm -f $(EXEC_PREFIX)/nuperiod rm -f $(EXEC_PREFIX)/nupyf uninstall_initd: rm -f $(INITDIR)/init-firewall uninstall: uninstall_nupyf uninstall_initd rm -f $(EXEC_PREFIX)/sync_firewalls.sh rm -f $(MAN_PREFIX)/nupyf.8 rm -f $(MAN_PREFIX)/nulayer7.8 rm -f $(MAN_PREFIX)/checkdesc.8 rm -rf $(WEBDIR) clean: cd scripts; $(PYTHON) setup_nupyf.py clean cd scripts; $(PYTHON) setup_nulayer7.py clean cd scripts; $(PYTHON) setup_checkdesc.py clean rm -rf scripts/build $(MAKE) -C doc clean