# BEGIN COPYRIGHT BLOCK
# Copyright (C) 2001 Sun Microsystems, Inc.  Used by permission.
# Copyright (C) 2005 Red Hat, Inc.
# All rights reserved.
#
# 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., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
#

# END COPYRIGHT BLOCK
#
# Makefile to Create packages for UNIX-based specific product
#
# By Whom		Date		History			
# Phong Vo
#

BUILD_ROOT=$(shell cd ..;pwd)
override BUILD_MODULE=SETUP_BASE

include $(BUILD_ROOT)/nsconfig.mk
include $(BUILD_ROOT)/components.mk

# Destination directories for package
RELTOP=$(BUILD_SHIP)/$(PLATFORM_DEST)
PKGTOP=$(PLATFORM_PACKAGE_DIR)

BASEDIR=$(PKGTOP)/base
COREDIR=$(PKGTOP)/svrcore

JAVA_DIR=java

BASE_CLIENT=  client
BASE_SETUP =  setup

CORE_MAIN =  svrcore

BASE_UNZIPPED_DIR=$(BASEDIR)/unzipped
CORE_UNZIPPED_DIR=$(COREDIR)/unzipped

CLIENT_DIR=$(BASE_UNZIPPED_DIR)/$(BASE_CLIENT)
BASE_BIN_DIR=$(BASE_UNZIPPED_DIR)/$(BASE_CLIENT)/bin/base

CORE_DIR=$(CORE_UNZIPPED_DIR)

INSTALLER_BIN=$(PKGTOP)/installer/bin

#jss.so lib path
JSSSDK_PATH=$(JSS_LIBPATH)


CONSOLE_HELP=$(CLIENT_DIR)/manual

CHMOD=chmod
CPIO=cpio -pdum$(VERBOSE)
MV=mv
MKDIR=mkdir -p
ifeq ($(BUILD_DEBUG), optimize)
STRIP=strip
else
STRIP=true
endif

#ZIPF = zip -0rq

LWCP = cp      # cp -r behave different on HP

ifeq ($(ARCH), AIX)
export PATH:=/tools/ns-arch/rs6000_ibm_aix3.2.5/bin:/usr/local/aix32/bin:/usr/bin/X11:$(PATH)
export GTAR=/share/builds/f/gtar/bin/aix-gtar
endif
ifeq ($(ARCH), HPUX)
export PATH:=/usr/local/hpux/bin:/usr/bin/X11:$(PATH)
export GTAR=/share/builds/f/gtar/bin/hpux-gtar
LWCP = /usr/local/bin/cp
endif
#ifeq ($(ARCH), Linux)
#export PATH:=/bin:/usr/bin:/usr/sbin:/usr/X11R6/bin:$(PATH)
#endif
ifeq ($(ARCH), OSF1)
export PATH:=/usr/local/dec/bin:/usr/bin/X11:$(PATH)
export GTAR=/share/builds/f/gtar/bin/osf1-gtar
endif
ifeq ($(ARCH), SOLARIS)
export PATH:=/usr/ccs/bin:/usr/openwin/bin:$(PATH)
export GTAR=/share/builds/f/gtar/bin/solaris-gtar
NO_JAVA=0
endif
ifeq ($(ARCH), SOLARISx86)
export OPENWINHOME:=/usr/openwin
export PATH:=/usr/ccs/bin:/usr/openwin/bin:$(PATH)
endif


ifeq ($(ARCH), SOLARISx86)
TAR=/bin/tar
else 
TAR=tar
endif

all:   $(LIBNSPR) $(LIBSECURITY) $(LIBLDAP) pkguxClient

pkguxCore: 

	rm -rf $(CORE_DIR)
	rm -f  $(COREDIR)/ns$(CORE_MAIN).zip
	rm -f  $(COREDIR)/$(CORE_MAIN).inf

	-$(MKDIR) $(CORE_DIR)

# Copy uninstall program
	cp $(INSTALLER_BIN)/uninstall $(CORE_DIR)

# Copy license
	cp LICENSE.TXT $(CORE_DIR)

ifneq ($(ARCH), WINNT)
	-find $(CORE_DIR) -type f -exec chmod go-w {} \;
endif
	cd $(CORE_DIR) ; \
	   $(IZIP) $(COREDIR)/ns$(CORE_MAIN).zip * ;

ifdef INTERNAL_BUILD
  ifeq ($(ARCH), Linux)
	$(PERL) fixPI.pl SETUP_BASE ../include/version.h ../$(NSPLATFORM_DIR)/buildnum.dat $(BUILD_SECURITY) svrcore.inf $(COREDIR)/svrcore.inf
  else
	$(COMPONENTS_DIR)/perl5/$(ARCH)-perl5/perl fixPI.pl SETUP_BASE ../include/version.h ../$(NSPLATFORM_DIR)/buildnum.dat $(BUILD_SECURITY) svrcore.inf $(COREDIR)/svrcore.inf
  endif
else
	$(PERL) fixPI.pl SETUP_BASE ../include/version.h ../$(NSPLATFORM_DIR)/buildnum.dat $(BUILD_SECURITY) svrcore.inf $(COREDIR)/svrcore.inf
endif

pkgSBC:
ifneq ($(ARCH), WINNT)
	cd $(PKGTOP); find . -type f -exec chmod go-w {} \;
endif
ifdef BUILD_SHIP
	-mkdir -p $(RELTOP)
	-rm $(RELTOP)/base.ex
	echo "base/unzipped" > $(RELTOP)/base.ex
	echo "svrcore/unzipped" >> $(RELTOP)/base.ex
	cd $(PKGTOP); $(TAR) cvfX $(RELTOP)/base.tar $(RELTOP)/base.ex base
	-rm $(RELTOP)/base.tar.gz $(RELTOP)/base.ex
	cd $(RELTOP); gzip -f base.tar
endif

pkguxClient:

	rm -rf $(CLIENT_DIR)
	rm -f $(BASEDIR)/ns$(BASE_CLIENT).zip

ifndef NOJAVA
	-$(MKDIR) $(CLIENT_DIR)/$(JAVA_DIR)
	-$(MKDIR) $(CONSOLE_HELP)
	-$(CHMOD) 0777 $(CLIENT_DIR)/$(JAVA_DIR)

#copy console help
ifdef ONLINEHELP_SOURCE_DIR
	@cd $(ONLINEHELP_SOURCE_DIR)/console/html ; \
	for dir in * ; do \
		if [ $$dir != "CVS" ] ; then \
			mkdir -p $(CONSOLE_HELP)/$$dir/console ; \
			cd $$dir ; \
			find * -name CVS -prune -o -print | $(CPIO) $(CONSOLE_HELP)/$$dir/console ; \
			cd .. ; \
		fi ; \
	done
else
	(cd $(CONSOLE_HELP); $(UNZIP) -o $(ADMDOC_PATH)/$(ADMDOC_CONSOLEONLINEHELP))
endif

# Copy Java LDAP SDK
	cp -p $(LDAPJDK_DIR)/$(LDAPJDK) $(CLIENT_DIR)/$(JAVA_DIR)

# Copy JSS jar
	cp -p $(JSS_JAR_DIR)/$(JSS_JAR_NAME) $(CLIENT_DIR)/$(JAVA_DIR)/$(JSSSDK)

# Copy Management Console
	(cd $(CONSOLE_JAR_DIR); \
	   cp -p -R * $(CLIENT_DIR)/$(JAVA_DIR))
	   rm -f $(CLIENT_DIR)/$(JAVA_DIR)/startconsole
	   rm -f $(CLIENT_DIR)/$(JAVA_DIR)/ant*
	   rm -f $(CLIENT_DIR)/$(JAVA_DIR)/xpclass.jar

# Copy startconsole
	(cd $(CONSOLE_BASE_DIR); cp -p startconsole $(CLIENT_DIR)/)

# Copy JSS lib
	-$(MKDIR) $(CLIENT_DIR)/lib
ifeq ($(ARCH), HPUX)
    ifeq ($(HPUX_ARCH), ia64)
	cp -p $(JSSSDK_PATH)/libjss3.so  $(CLIENT_DIR)/lib
    else
	cp -p $(JSSSDK_PATH)/libjss3.sl  $(CLIENT_DIR)/lib
    endif
else
	cp -p $(JSSSDK_PATH)/libjss3.so  $(CLIENT_DIR)/lib
endif

# Cleanup before making distributable zip
#
	-find $(BASEDIR) -type d -name CVS -prune -exec rm -rf {} \;
# OSF1 java has .java_wrapper that needs to be packaged, don't clean up
#	-find $(BASEDIR) -type f \( -name '*.o' -o -name '.*' \) -exec rm {} \;

ifneq ($(ARCH), WINNT)
	-find $(BASEDIR) -type f -exec chmod go-w {} \;
endif
	cd $(CLIENT_DIR) ; \
	   $(IZIP) $(BASEDIR)/ns$(BASE_CLIENT).zip * ;

else # NOJAVA
	-$(MKDIR) $(BASEDIR)
	touch $(BASEDIR)/ns$(BASE_CLIENT).zip
endif # NOJAVA

ifdef INTERNAL_BUILD
  ifeq ($(ARCH), Linux)
	$(PERL) fixPI.pl SETUP_BASE ../include/version.h ../$(NSPLATFORM_DIR)/buildnum.dat $(BUILD_SECURITY) base.inf $(BASEDIR)/base.inf
  else
	$(COMPONENTS_DIR)/perl5/$(ARCH)-perl5/perl fixPI.pl SETUP_BASE ../include/version.h ../$(NSPLATFORM_DIR)/buildnum.dat $(BUILD_SECURITY) base.inf $(BASEDIR)/base.inf
  endif
else
	$(PERL) fixPI.pl SETUP_BASE ../include/version.h ../$(NSPLATFORM_DIR)/buildnum.dat $(BUILD_SECURITY) base.inf $(BASEDIR)/base.inf
endif
