#
# BEGIN COPYRIGHT BLOCK
# 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; version 2 of the License.
# 
# 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., 59 Temple
# Place, Suite 330, Boston, MA 02111-1307 USA.
# 
# In addition, as a special exception, Red Hat, Inc. gives You the additional
# right to link the code of this Program with code not covered under the GNU
# General Public License ("Non-GPL Code") and to distribute linked combinations
# including the two, subject to the limitations in this paragraph. Non-GPL Code
# permitted under this exception must only link to the code of this Program
# through those well defined interfaces identified in the file named EXCEPTION
# found in the source code files (the "Approved Interfaces"). The files of
# Non-GPL Code may instantiate templates or use macros or inline functions from
# the Approved Interfaces without causing the resulting work to be covered by
# the GNU General Public License. Only Red Hat, Inc. may make changes or
# additions to the list of Approved Interfaces. You must obey the GNU General
# Public License in all respects for all of the Program code and other code used
# in conjunction with the Program except the Non-GPL Code covered by this
# exception. If you modify this file, you may extend this exception to your
# version of the file, but you are not obligated to do so. If you do not wish to
# provide this exception without modification, you must delete this exception
# statement from your version and license this file solely under the GPL without
# exception. 
# 
# 
# Copyright (C) 2001 Sun Microsystems, Inc. Used by permission.
# Copyright (C) 2005 Red Hat, Inc.
# All rights reserved.
# END COPYRIGHT BLOCK
#
# Packaging nmake Makefile for Console.msi

PKGNAME=Console
BRAND_PKGNAME=389$(PKGNAME)
PKGDIR=.
WXSDIR=.

# could also use wget or curl
DOWNLOAD="c:\program files\support tools\bitsadmin" /wrap /transfer consolebuild /download /priority normal
SBC=http://filer/components
SBV=http://filer/components

UNZIP=cscript //nologo unzip.vbs

NSPRVER=4.7.3
NSSVER=3_12_2
LDAPJDKVER=4.18
LDAPJDKVERDIR=4.18/20070817.1
JSSVER=4_2_5
JSSVERDIR=JSS_$(JSSVER)_RTM/20090122.1
IDMVER=1.1
IDMVERDIR=$(IDMVER)/20090310.1
WIXVER=2.0.5805.0
PLAT=WINNT5.0_OPT.OBJ

# where to stage the package layout
PKGDIR=build.$(PLAT)
# where to find components to package
COMPDIR=$(PKGDIR)

# where to find nspr dlls
NSPRDIR=$(COMPDIR)\nspr
NSPRLIBDIR=$(NSPRDIR)\lib
# where to find nss dlls
NSSDIR=$(COMPDIR)\nss
NSSLIBDIR=$(NSSDIR)\lib
# where to find nss exes
NSSBINDIR=$(NSSDIR)\bin
# where to find jss jar and dll
JSSDIR=$(COMPDIR)\jss
# where to find the ldapjdk.jar
LDAPDIR=$(COMPDIR)\console
#LDAPDIR=$(COMPDIR)\ldapjdk-4.18
# where to find the idm-console-framework jars
IDMDIR=$(COMPDIR)\console
# where to find the 389-console jar and other files
CONSOLEDIR=.

WIXURL=$(SBC)/wix
WIXDIR=$(COMPDIR)\wix
CANDLE=$(WIXDIR)\candle.exe
LIGHT=$(WIXDIR)\light.exe

ALL : $(PKGDIR)\$(BRAND_PKGNAME).msi

$(PKGDIR) :
	mkdir $@
	mkdir $@\Bitmaps

$(NSPRDIR) $(NSSDIR) $(JSSDIR) $(LDAPDIR) $(IDMDIR) $(CONSOLEDIR) $(WIXDIR):
	mkdir $@

$(NSPRDIR)\mdbinary.jar : $(NSPRDIR)
	if not exist $@ $(DOWNLOAD) $(SBC)/nspr/v$(NSPRVER)/$(PLAT)/$(@F) %%CD%%\$@

$(NSPRLIBDIR)\libnspr4.dll : $(NSPRDIR)\mdbinary.jar
	$(UNZIP) $? $(?D)

$(NSSDIR)\mdbinary.jar : $(NSSDIR)
	if not exist $@ $(DOWNLOAD) $(SBC)/nss/NSS_$(NSSVER)_RTM/$(PLAT)/$(@F) %%CD%%\$@

$(NSSLIBDIR)\nss3.dll : $(NSSDIR)\mdbinary.jar
	$(UNZIP) $? $(?D)

$(JSSDIR)\jss4.dll : $(JSSDIR)
	if not exist $@ $(DOWNLOAD) $(SBV)/jss/$(JSSVERDIR)/$(PLAT)/lib/$(@F) %%CD%%\$@

$(JSSDIR)\jss4.jar :
	if not exist $@ $(DOWNLOAD) $(SBV)/jss/$(JSSVERDIR)/$(@F) %%CD%%\$@

$(LDAPDIR)\ldapjdk.jar : $(LDAPDIR)
	if not exist $@ $(DOWNLOAD) $(SBV)/ldapjdk/$(LDAPJDKVERDIR)/$(@F) %%CD%%\$@

$(IDMDIR)\idm-console-base.jar $(IDMDIR)\idm-console-mcc.jar $(IDMDIR)\idm-console-mcc_en.jar $(IDMDIR)\idm-console-nmclf.jar $(IDMDIR)\idm-console-nmclf_en.jar : $(IDMDIR)
	if not exist $@ $(DOWNLOAD) $(SBV)/idm-console-framework/$(IDMVERDIR)/$(@F) %%CD%%\$@

$(CONSOLEDIR)\389-console_en.jar : $(CONSOLEDIR)
	echo where is $@

$(WIXDIR)\wix-$(WIXVER).zip : $(WIXDIR)
	if not exist $@ $(DOWNLOAD) $(WIXURL)/$(@F) %%CD%%\$@

$(CANDLE) : $(WIXDIR)\wix-$(WIXVER).zip
	$(UNZIP) $? $(?D)

LAYOUT : $(PKGDIR) $(NSPRLIBDIR)\libnspr4.dll $(NSSLIBDIR)\nss3.dll $(JSSDIR)\jss4.dll $(JSSDIR)\jss4.jar $(LDAPDIR)\ldapjdk.jar $(IDMDIR)\idm-console-base.jar $(IDMDIR)\idm-console-mcc.jar $(IDMDIR)\idm-console-mcc_en.jar $(IDMDIR)\idm-console-nmclf.jar $(IDMDIR)\idm-console-nmclf_en.jar $(CONSOLEDIR)\389-console_en.jar
	copy /Y $(NSPRLIBDIR)\*.dll $(PKGDIR)
	copy /Y $(NSSLIBDIR)\*.dll $(PKGDIR)
	copy /Y $(NSSBINDIR)\certutil.exe $(PKGDIR)
	copy /Y $(NSSBINDIR)\pk12util.exe $(PKGDIR)
	copy /Y $(JSSDIR)\jss4.jar $(PKGDIR)
	copy /Y $(JSSDIR)\jss4.dll $(PKGDIR)
	copy /Y $(LDAPDIR)\ldapjdk.jar $(PKGDIR)
	copy /Y $(IDMDIR)\*.jar $(PKGDIR)
	copy /Y $(CONSOLEDIR)\*.jar $(PKGDIR)
# directory should already contain the bat file, icon, and bitmaps
	copy /Y *.bat $(PKGDIR)
	copy /Y *.ico $(PKGDIR)
	copy /Y Bitmaps\* $(PKGDIR)\Bitmaps\*
	copy /Y License.rtf $(PKGDIR)

$(PKGDIR)\$(BRAND_PKGNAME).msi : $(PKGDIR) LAYOUT $(CANDLE) $(PKGNAME).wxs
	$(CANDLE) -nologo -out $(PKGDIR)\$(PKGNAME).wixobj $(PKGNAME).wxs
	$(LIGHT) -nologo -out $@ -b $(PKGDIR) $(PKGDIR)\$(PKGNAME).wixobj $(WIXDIR)\wixui.wixlib -loc $(WIXDIR)\WixUI_en-us.wxl

clean:
	rmdir /S /Q $(PKGDIR)

help:
	@echo You must define the following paths:
	@echo BASEDIR - the directory containing all of the other components' directories
	@echo   e.g. nmake BASEDIR="c:\Documents and Settings\userid"
	@echo Use
	@echo   nmake BASEDIR=foo download
	@echo to download the components from the default filer
	@echo the download target will create $(PKGDIR) and place the files in there
	@echo You will have to download the branded console jar file manually
	@echo Or you may download them separately and specify individual directories:
	@echo NSPRLIBDIR - directory containing the NSPR dlls
	@echo NSSLIBDIR - directory containing the NSS dlls
	@echo NSSBINDIR - directory containing certutil.exe and pk12util.exe
	@echo JSSDIR - directory containing jss4.jar and jss4.dll
	@echo LDAPDIR - directory containing ldapjdk.jar
	@echo IDMDIR - directory containing the IDM Console Framework jar files
	@echo CONSOLEDIR - directory containing the 389 console jar file
	@echo WIXDIR - directory containing the WiX candle.exe, light.exe, and library files
	@echo Type 'nmake NSPRLIBDIR=... NSSLIBDIR=... etc.' to build the Console.msi package
