#######################################################################
#
#  Copyright (C) 2006 Novell, Inc.
#
#  This program is free software; you can redistribute it and/or
#  modify it under the terms of the GNU General Public
#  License as published by the Free Software Foundation; either
#  version 2 of the License, or (at your option) any later version.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
#  General Public License for more details.
#
#  You should have received a copy of the GNU General Public
#  License along with this program; if not, write to the Free
#  Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
#
#######################################################################

SUBDIRS = src
DIST_SUBDIRS = src

EXTRA_DIST = authtoken.settings \
		identoken.settings \
		README \
		svc.settings \
		TODO \
		web.xml

ROOT = ../..

LIBDIR = $(ROOT)/$(LIB)

IDENT_ABSTRACTION_DIR = /usr/share/java/identity-abstraction
IDENT_ABSTRACTION_DEPENDANCIES_DIR = /usr/share/java/identity-abstraction/dependancies

JAVAROOT = .
JAVAC= javac

WEBAPP_NAME = CasaAuthTokenSvc
WEBAPP_EXT = war
MODULE_NAME = CasaAuthToken
MODULE_EXT = jar

JAVAFILES = src/com/novell/casa/authtoksvc/ProtoDefs.java \
	src/com/novell/casa/authtoksvc/AuthMechConfig.java \
	src/com/novell/casa/authtoksvc/SvcConfig.java \
	src/com/novell/casa/authtoksvc/IdenTokenConfig.java \
	src/com/novell/casa/authtoksvc/AuthTokenConfig.java \
	src/com/novell/casa/authtoksvc/EnabledSvcsConfig.java \
	src/com/novell/casa/authtoksvc/AuthMechanism.java \
	src/com/novell/casa/authtoksvc/Authenticate.java \
	src/com/novell/casa/authtoksvc/RpcMethod.java \
	src/com/novell/casa/authtoksvc/Rpc.java \
	src/com/novell/casa/authtoksvc/GetAuthPolicy.java \
	src/com/novell/casa/authtoksvc/Base64Coder.java \
	src/com/novell/casa/authtoksvc/AuthReqMsg.java \
	src/com/novell/casa/authtoksvc/AuthRespMsg.java \
	src/com/novell/casa/authtoksvc/IdentityToken.java \
	src/com/novell/casa/authtoksvc/CasaIdentityToken.java \
	src/com/novell/casa/authtoksvc/AuthToken.java \
	src/com/novell/casa/authtoksvc/GetAuthPolicyReqMsg.java \
	src/com/novell/casa/authtoksvc/GetAuthPolicyRespMsg.java \
	src/com/novell/casa/authtoksvc/GetAuthToken.java \
	src/com/novell/casa/authtoksvc/GetAuthTokReqMsg.java \
	src/com/novell/casa/authtoksvc/GetAuthTokRespMsg.java \
	src/com/novell/casa/authtoksvc/Krb5Authenticate.java \
	src/com/novell/casa/authtoksvc/PwdAuthenticate.java \
	src/com/novell/casa/authtoksvc/SessionToken.java

BUILDDIR = build

WEBAPP = $(WEBAPP_NAME).$(WEBAPP_EXT)

AUTHTOKEN_FILES = -C $(BUILDDIR)/webapp/WEB-INF/classes com

CLASSES = $(addprefix $(BUILDDIR)/, $(JAVAFILES:%.java=%.class))

LIBS = /usr/share/java/servletapi5.jar
CLASSPATH = $(IDENT_ABSTRACTION_DIR)/identity-abstraction.jar:$(LIBS)

CUR_DIR := $(shell pwd)

all: $(BUILDDIR)/$(WEBAPP) $(BUILDDIR)/$(MODULE_NAME).$(MODULE_EXT)

$(BUILDDIR)/%.class: %.java
	@echo [======== Compiling $@ ========]
	$(JAVAC) -sourcepath src -classpath $(CLASSPATH) -d $(BUILDDIR)/webapp/WEB-INF/classes $<

$(BUILDDIR)/$(WEBAPP): $(BUILDDIR) $(CLASSES)
	@echo [======== Creating Webapp $@ ========]
	cp web.xml $(BUILDDIR)/webapp/WEB-INF/web.xml
	cp svc.settings $(BUILDDIR)/webapp/WEB-INF/conf/svc.settings
	cp authtoken.settings $(BUILDDIR)/webapp/WEB-INF/conf/authtoken.settings
	cp identoken.settings $(BUILDDIR)/webapp/WEB-INF/conf/identoken.settings
	cp src/com/novell/casa/authtoksvc/Krb5_mechanism.settings $(BUILDDIR)/webapp/WEB-INF/conf/installed_auth_mechanisms/Krb5Authenticate/mechanism.settings
	cp src/com/novell/casa/authtoksvc/Pwd_mechanism.settings $(BUILDDIR)/webapp/WEB-INF/conf/installed_auth_mechanisms/PwdAuthenticate/mechanism.settings
	cp $(IDENT_ABSTRACTION_DIR)/*.jar $(BUILDDIR)/webapp/WEB-INF/lib/
	cp $(IDENT_ABSTRACTION_DEPENDANCIES_DIR)/*.jar $(BUILDDIR)/webapp/WEB-INF/lib/
	jar cvf $(BUILDDIR)/$(WEBAPP) -C $(BUILDDIR)/webapp .
	cp $(BUILDDIR)/$(WEBAPP) $(LIBDIR)/java/

$(BUILDDIR)/$(MODULE_NAME).$(MODULE_EXT): $(BUILDDIR) $(CLASSES)
	@echo [======== Jarring $@ ========]
	jar cvf $(BUILDDIR)/$(MODULE_NAME).$(MODULE_EXT) $(AUTHTOKEN_FILES)
	cp $(BUILDDIR)/$(MODULE_NAME).$(MODULE_EXT) $(LIBDIR)/java/

$(BUILDDIR):
	[ -d $(BUILDDIR) ] || mkdir -p $(BUILDDIR)
	[ -d $(BUILDDIR)/webapp ] || mkdir -p $(BUILDDIR)/webapp
	[ -d $(BUILDDIR)/webapp/WEB-INF ] || mkdir -p $(BUILDDIR)/webapp/WEB-INF
	[ -d $(BUILDDIR)/webapp/WEB-INF/classes ] || mkdir -p $(BUILDDIR)/webapp/WEB-INF/classes
	[ -d $(BUILDDIR)/webapp/WEB-INF/lib ] || mkdir -p $(BUILDDIR)/webapp/WEB-INF/lib
	[ -d $(BUILDDIR)/webapp/WEB-INF/conf ] || mkdir -p $(BUILDDIR)/webapp/WEB-INF/conf
	[ -d $(BUILDDIR)/webapp/WEB-INF/conf/enabled_services ] || mkdir -p $(BUILDDIR)/webapp/WEB-INF/conf/enabled_services
	[ -d $(BUILDDIR)/webapp/WEB-INF/conf/auth_mechanisms ] || mkdir -p $(BUILDDIR)/webapp/WEB-INF/conf/auth_mechanisms
	[ -d $(BUILDDIR)/webapp/WEB-INF/conf/installed_auth_mechanisms ] || mkdir -p $(BUILDDIR)/webapp/WEB-INF/conf/installed_auth_mechanisms
	[ -d $(BUILDDIR)/webapp/WEB-INF/conf/installed_auth_mechanisms/Krb5Authenticate ] || mkdir -p $(BUILDDIR)/webapp/WEB-INF/conf/installed_auth_mechanisms/Krb5Authenticate
	[ -d $(BUILDDIR)/webapp/WEB-INF/conf/installed_auth_mechanisms/PwdAuthenticate ] || mkdir -p $(BUILDDIR)/webapp/WEB-INF/conf/installed_auth_mechanisms/PwdAuthenticate
	[ -d $(LIBDIR) ] || mkdir -p $(LIBDIR)
	[ -d $(LIBDIR)/java ] || mkdir -p $(LIBDIR)/java

install-exec-local:

uninstall-local:

#installcheck-local: install

clean-local:
	if [ -d $(BUILDDIR) ]; then  rm -rf $(BUILDDIR); fi
	if [ -f $(LIBDIR)/java/$(MODULE_NAME).$(MODULE_EXT) ]; then  rm -f $(LIBDIR)/java/$(MODULE_NAME).$(MODULE_EXT); fi
	if [ -f $(LIBDIR)/java/$(WEBAPP) ]; then  rm -f $(LIBDIR)/java/$(WEBAPP); fi

distclean-local:

maintainer-clean-local:
	rm -f Makefile.in
	rm -f Makefile