Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > dca483b59ba61f3fa092de932ddd570e > files > 84

nuface-2.0.14-2mdv2009.1.i586.rpm

#
# 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