#---------------------------------------------------------------
# Project         : Network Appliance Administration Tool
# Module          : naat-frontend-www
# File            : Makefile
# Author          : Philippe Libat
# $Id: Makefile,v 1.13 2002/03/05 09:55:55 philippe Exp $
#---------------------------------------------------------------
# If no version is given, make the rpm in the local CVS tree 
# with version and release taken from VERSION and RELEASE files
# If version is given, export from the CVS tree

ifdef VERSION
	EXPORT_CVS=1
endif

ifndef VERSION
	VERSION := $(shell cat VERSION)
endif
ifndef RELEASE
	RELEASE := $(shell cat RELEASE)
endif

#VERSION=0.3
NAME = naat-frontend-www
DIST = $(NAME)-$(VERSION)
RPMBUILD = $(HOME)/RPM
XSLT = xsl/*.xsl
SCRIPT = *.sh
DOCS = examples/ doc/ spec/$(NAME).spec $(XSLT) $(SCRIPT) p*-po *builder VERSION RELEASE
ENGINE = engine/
INDEX = php/fw2/
FILES = modules/ npo/ compiler/ $(ENGINE) images/ $(INDEX) SOURCES/dot-htaccess jar/ modules-help/ SOURCES/monitoring.htaccess
DISTFILES = Makefile $(FILES) $(DOCS)


# Variables for NAAT
ROOT = "`pwd`"
#ROOT = "."
MODULES = modules
EXT_MODULES = ext_modules
MODULES_HELP = modules-help/en
DEST = naat
HTTPD_DEST = $(DESTDIR)/var/www-naat/html/
HTTPD_NAAT = $(HTTPD_DEST)/secure
#HTTPD_NAAT = $(HTTPD_DEST)/admin
NAATUSER = httpd-naat
NAATGROUP = admin
PO_DIR = npo
LANGS = fr de en
ONLINE_HELP = help

# if we use 'doc' or 'online_help' as a tag, make won't do anything when the directory exists
all: naatc all_modules index help_page

pre-trad:
	@echo "Prepare Translation";
	for i in $(LANGS); do echo "$${i}:";\
		./pre-po $(ROOT)/$(MODULES) $(ROOT)/$(PO_DIR)/$${i}; \
	done;

post-trad:
	@echo "Process Translation";
	@for i in $(LANGS); do echo "$${i}:";\
		./post-po $(ROOT)/$(MODULES) $(ROOT)/$(PO_DIR)/$${i}; \
	done;

naatc:
	@echo "Compiling  naatc";
	(cd compiler/c ; $(MAKE) )

all_modules: xml_modules

xml_modules:
	@if [ ! -e $(MODULES)/help-pages ]; then \
		ln -s ../$(MODULES_HELP) $(MODULES)/help-pages; \
	fi;
	@echo "Building  $(MODULES)"
	./naatbuilder $(ROOT)/$(MODULES) $(ROOT)/$(DEST)

Ext_modules:
	@echo "Building  $(EXT_MODULES)";
	( cd $(EXT_MODULES); make DESTDIR=$(ROOT)/$(DEST) )

index: 
	@echo "Building  global_index";
#	@echo 	./index_builder $(ROOT)/$(MODULES) $(ROOT)/$(DEST)/"NAVBAR" address "'engine.php'"
	./index_builder $(ROOT)/$(MODULES) $(ROOT)/$(DEST)/"NAVBAR" address "'engine.php'"

help_page:
	@echo "Building documentation"
	./doc_builder $(ROOT)/$(MODULES) $(ROOT)/$(ONLINE_HELP)

install_all: install_common

install_speed:
	@echo "Install all modules";
	mkdir -p $(HTTPD_DEST)
	- cp -Rf $(INDEX)/* $(HTTPD_DEST)

	mkdir -p $(HTTPD_NAAT)
	- cp -Rf $(ENGINE)/* $(HTTPD_NAAT)
	- cp -Rf $(DEST)/* $(HTTPD_NAAT)
	- cp -Rf images/ $(HTTPD_NAAT)
	mkdir -p  $(HTTPD_NAAT)/sessions
#	mkdir -p  $(HTTPD_NAAT)/genimages
	mkdir -p  $(HTTPD_NAAT)/modules/monitoring
	- cp -f SOURCES/monitoring.htaccess $(HTTPD_NAAT)/modules/monitoring/.htaccess
	chmod 600 $(HTTPD_NAAT)/modules/monitoring/.htaccess
# 	for help pages
	mkdir -p  $(HTTPD_NAAT)/help
	cp -Rf $(ONLINE_HELP)/* $(HTTPD_NAAT)/help
#       for embedded applications (applets)
	mkdir -p  $(HTTPD_NAAT)/jar
	- cp -Rf jar/*.jar $(HTTPD_NAAT)/jar
	- cp -Rf jar/*.class $(HTTPD_NAAT)/jar

install_common:
	@echo "Install all modules";
	mkdir -p $(HTTPD_DEST)
	cp -Rf $(INDEX)/* $(HTTPD_DEST)

	mkdir -p $(HTTPD_NAAT)
	cp -Rf $(ENGINE)/* $(HTTPD_NAAT)
	cp -Rf $(DEST)/* $(HTTPD_NAAT)
	cp -Rf images/ $(HTTPD_NAAT)
	mkdir -p  $(HTTPD_NAAT)/sessions
#	mkdir -p  $(HTTPD_NAAT)/genimages
	mkdir -p  $(HTTPD_NAAT)/modules/monitoring
	cp  SOURCES/monitoring.htaccess $(HTTPD_NAAT)/modules/monitoring/.htaccess
# 	for help pages
	mkdir -p  $(HTTPD_NAAT)/help
	cp -Rf $(ONLINE_HELP)/* $(HTTPD_NAAT)/help
#       for embedded applications (applets)
	mkdir -p  $(HTTPD_NAAT)/jar
	- cp -Rf jar/*.jar $(HTTPD_NAAT)/jar
	- cp -Rf jar/*.class $(HTTPD_NAAT)/jar


install: install_all
	@echo "checking permissions";
	chown -R $(NAATUSER).$(NAATGROUP) $(HTTPD_DEST)
	chmod -R 750 $(HTTPD_DEST)/*
	chmod 750 $(HTTPD_NAAT)/sessions
#	chmod 750 $(HTTPD_NAAT)/genimages
	chmod 750 $(HTTPD_NAAT)/modules/monitoring

clean:
	@echo "Cleaning  $(DEST)";
	(cd compiler/c ; $(MAKE) clean)
	rm -rf $(DEST)
	rm -f {naatc,all}
	rm -rf tmp/ xsl/tmp/ $(ONLINE_HELP) *.log
	rm -rf $(NAME)-$(VERSION) $(NAME)-$(VERSION).tar*
#	rm -rf $(HTTPD_NAAT)/*

dis:
	@echo "Building archive $(NAME)-$(VERSION)"
	rm -rf $(NAME)-$(VERSION) $(NAME)-$(VERSION).tar*
	$(MAKE) clean
	mkdir $(NAME)-$(VERSION)

	@if [ ! -z $(EXPORT_CVS) ]; then \
                tag=`echo $(VERSION)| sed y/./_/`; \
		echo "Archive from CVS version:  $$tag"; \
                cvs -Q export -d $(NAME)-$(VERSION) -r $$tag firewall2/frontend; \
	else echo "Archive from $(NAME)-$(VERSION)"; \
		tar --exclude=CVS --exclude=*~ --exclude=.cvs* --exclude=$(NAME)-$(VERSION) -cf - $(DISTFILES)| (cd $(NAME)-$(VERSION) ; tar xf -); \
	fi;

	tar cf $(NAME)-$(VERSION).tar $(NAME)-$(VERSION)
	bzip2 -9vf $(NAME)-$(VERSION).tar
	rm -rf $(NAME)-$(VERSION)

rpm: dis
	@echo "Building rpm $(NAME)-$(VERSION):";
	cp -f $(NAME)-$(VERSION).tar.bz2 $(RPMBUILD)/SOURCES;
	sed -e 's/_VERSION_/$(VERSION)/; s/_RELEASE_/$(RELEASE)/' spec/$(NAME).spec.proto > $(RPMBUILD)/SPECS/$(NAME).spec;
	@echo "Specfile updated with version and release numbers";
	rpm -ba --clean --rmsource $(RPMBUILD)/SPECS/$(NAME).spec;
	rm -f $(NAME)-$(VERSION).tar.bz2;

%.naat: naatc
	@echo directory:$(@D), file:$(@F)
	@echo "Building  $(MODULES)/$(@F)"
	./naatbuilder $(ROOT)/$(MODULES)/$(@F) $(ROOT)/$(DEST)
	mkdir -p  $(ONLINE_HELP)
	./doc_builder $(ROOT)/$(MODULES)/$(@F) $(ROOT)/$(ONLINE_HELP)
	echo "please make index and make install now!"
