#
# The Initial Developer of the Original Code is International
# Business Machines Corporation. Portions created by IBM
# Corporation are Copyright (C) 2007 International Business
# Machines Corporation. All Rights Reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the Common Public License as published by
# IBM Corporation; either version 1 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
# Common Public License for more details.
#
# You should have received a copy of the Common Public License
# along with this program; if not, a copy can be viewed at
# http://www.opensource.org/licenses/cpl1.0.php.
#

# set project dir name
#PNAME=
PNAME=openpts_01X_core

NAME=OpenPlatformTrustServices
VERSION=0.1.2

INSTDIR=/opt/$(NAME)

RPMDIR=/usr/src/redhat

TMP=/home/$(USER)/sandbox
JARS = lib/openpts5.jar lib/openpts6.jar

ANT=ant
#ANT=/opt/apache-ant-1.7.0/bin/ant

# export JAVA_HOME=/opt/jdk1.6.0_03
# export PATH=/opt/jdk1.6.0_03/bin:$PATH

usage:
	@echo "-------------------------- Normal built"
	@echo " sudo make setup-jars  (option, get required jars)"
	@echo " make all"
	@echo " make install"
	@echo " make clean"
	@echo "------------------------------- for RPM"
	@echo " sudo make rpmbuild-ba"
	@echo " sudo make rpmbuild-ba-svn"
	@echo "-------------------- for manual install"
	@echo " make tgz"
	@echo "------------------------------ for demo"
	@echo " sudo install-jars"
	@echo "---------------------------------------"

############################
# Normal
############################

all: setup-jars
	make -C lib setup
	$(ANT) jar5
	$(ANT) jar6

jpp:
	make -C lib jpp

install-server: 
	@echo "Install properties for server"
	mkdir -p $(DESTDIR)$(INSTDIR)/database/ibatis/dao
	install database/ibatis/dao/* $(DESTDIR)$(INSTDIR)/database/ibatis/dao/
	install database/ibatis/*xml $(DESTDIR)$(INSTDIR)/database/ibatis/
	install database/ibatis/*sample $(DESTDIR)$(INSTDIR)/database/ibatis/
	mkdir -p $(DESTDIR)$(INSTDIR)/models
	install models/*.uml $(DESTDIR)$(INSTDIR)/models/

install-jars:
	install lib/commons-logging.jar   $(DESTDIR)$(INSTDIR)/lib
	install lib/ibatis.jar   $(DESTDIR)$(INSTDIR)/lib
	install lib/log4j.jar $(DESTDIR)$(INSTDIR)/lib
	install lib/postgresql-jdbc.jar $(DESTDIR)$(INSTDIR)/lib
	install lib/commons-codec.jar   $(DESTDIR)$(INSTDIR)/lib

install-jpp:
	@echo "Install SO for GCJ"
	mkdir -p $(DESTDIR)/usr/lib/gcj/OpenPlatformTrustServices/
	install lib/*.so $(DESTDIR)/usr/lib/gcj/OpenPlatformTrustServices/
	install lib/*.db $(DESTDIR)/usr/lib/gcj/OpenPlatformTrustServices/
	
install: install-server
	# Java
	mkdir -p $(DESTDIR)$(INSTDIR)/lib
	install $(JARS) $(DESTDIR)$(INSTDIR)/lib
	mkdir -p $(DESTDIR)$(INSTDIR)/bin
	install openpts   $(DESTDIR)$(INSTDIR)/bin

clean:
	ant clean
	make -C lib clean

setup-jars:
	make -C lib setup-jars

#########################################
# RPM
#########################################

rpmbuild-ba:
	rm -f  $(RPMDIR)/SOURCES/$(NAME)-$(VERSION).tar.gz 
	#cd ..; rm -fr $(NAME)-$(VERSION)
	#cd ..; cp -r $(PNAME) $(NAME)-$(VERSION)
	#cd ../$(NAME)-$(VERSION); make clean
	make clean
	cd ..; tar --exclude=.svn --exclude=bin --exclude=.project -zcvf $(RPMDIR)/SOURCES/$(NAME)-$(VERSION).tar.gz $(NAME)-$(VERSION)
	cd ..; rpmbuild -ba $(NAME)-$(VERSION)/dist/$(NAME).spec
	#rpm -ql --package $(RPMDIR)/RPMS/noarch/$(NAME)-$(VERSION)-1.noarch.rpm
	@echo "RPM file : $(RPMDIR)/RPMS/noarch/$(NAME)-$(VERSION)-1.noarch.rpm "
	@echo "SRPM file: $(RPMDIR)/SRPMS/$(NAME)-$(VERSION)-1.src.rpm "
	@echo "tgzfile  : $(RPMDIR)/SOURCES/$(NAME)-$(VERSION).tar.gz "

# for SVN
rpmbuild-ba-svn:
	rm -f  $(RPMDIR)/SOURCES/$(NAME)-$(VERSION).tar.gz 
	cd ..; rm -fr $(NAME)-$(VERSION)
	cd ..; cp -r $(PNAME) $(NAME)-$(VERSION)
	cd ../$(NAME)-$(VERSION); make clean
	cd ..; tar --exclude=.svn --exclude=bin --exclude=.project -zcvf $(RPMDIR)/SOURCES/$(NAME)-$(VERSION).tar.gz $(NAME)-$(VERSION)
	cd ..; rpmbuild -ba $(NAME)-$(VERSION)/dist/$(NAME).spec
	#rpm -ql --package $(RPMDIR)/RPMS/noarch/$(NAME)-$(VERSION)-1.noarch.rpm
	@echo "RPM file : $(RPMDIR)/RPMS/noarch/$(NAME)-$(VERSION)-1.noarch.rpm "
	@echo "SRPM file: $(RPMDIR)/SRPMS/$(NAME)-$(VERSION)-1.src.rpm "
	@echo "tgzfile  : $(RPMDIR)/SOURCES/$(NAME)-$(VERSION).tar.gz "


#########################################
# TGZ ball
#########################################

TGZ_DESTDIR=/tmp/openpts
WWW_DIR=/var/www/html/openpts
tgz:
	mkdir -p $(TGZ_DESTDIR)
	make -f Makefile install DESTDIR=$(TGZ_DESTDIR)
	cd $(TGZ_DESTDIR); tar cvfz $(PWD)/openpts-$(VERSION).tgz ./*
	tar tvfz openpts-$(VERSION).tgz
	rm -r $(TGZ_DESTDIR)
	/bin/cp -f openpts-$(VERSION).tgz $(WWW_DIR)

# EOF