Browse Source

add ability to build from open source components

Rich Megginson 21 years ago
parent
commit
64408bd7f2
10 changed files with 1125 additions and 766 deletions
  1. 29 4
      Makefile
  2. 82 0
      buildpaths.mk
  3. 155 728
      components.mk
  4. 90 0
      internal_buildpaths.mk
  5. 703 0
      internal_comp_deps.mk
  6. 7 3
      ldap/Makefile
  7. 36 27
      ldap/admin/src/Makefile
  8. 10 4
      ldap/cm/Makefile
  9. 2 0
      ldap/servers/Makefile
  10. 11 0
      nsconfig.mk

+ 29 - 4
Makefile

@@ -21,7 +21,6 @@ COMPONENT_DEPS := 1
 
 include nsdefs.mk
 include nsconfig.mk
-include ns_usedb.mk
 
 # first (default) rule: build and create a DS package
 all:	buildAndPkgDirectory
@@ -35,6 +34,20 @@ help:
 	@echo "   gmake pkgDirectory"
 	@echo "   gmake pkgDirectoryl10n"
 	@echo "   gmake pkgDirectoryPseudoL10n"
+	@echo "   gmake with no arguments will do buildAndPkgDirectory, which "
+	@echo "         is usually what you want to do"
+	@echo ""
+	@echo "   The following are optional build flags which build or pull in"
+	@echo "   optional components which are only available internally for"
+	@echo "   now.  In the future these components may be made available"
+	@echo "   externally or in an open source version."
+	@echo "   USE_ADMINSERVER=1 - bundle the Admin Server (required to run Console/webapps)"
+	@echo "   USE_CONSOLE=1     - bundle the Administration Console (requires Java)"
+	@echo "   USE_DSMLGW=1      - build/bundle the DSMLv2 Gateway (requires Java)"
+	@echo "   USE_ORGCHART=1    - build/bundle the Org Chart webapp"
+	@echo "   USE_DSGW=1        - build/bundle the Phonebook/DS Gateway webapp"
+	@echo "   USE_JAVATOOLS=1   - build/bundle the Java command line tools"
+	@echo "   USE_SETUPSDK=1    - build/bundle programs that use Setup SDK"
 
 ###### Implementation notes:
 #
@@ -84,9 +97,13 @@ help:
 #
 ###### End of implementation notes.
 
-components: $(ADMINUTIL_DEP) $(NSPR_DEP) $(ARLIB_DEP) $(DBM_DEP) $(SECURITY_DEP) $(SVRCORE_DEP) \
+ifeq ($(INTERNAL_BUILD), 1)
+  COMPONENT_DEPENDENCIES = $(ADMINUTIL_DEP) $(NSPR_DEP) $(ARLIB_DEP) $(DBM_DEP) $(SECURITY_DEP) $(SVRCORE_DEP) \
 	$(ICU_DEP) $(SETUPSDK_DEP) $(LDAPSDK_DEP) $(DB_LIB_DEP) $(SASL_DEP) $(PEER_DEP) \
 	$(AXIS_DEP) $(DSMLJAR_DEP)
+endif
+
+components: $(COMPONENT_DEPENDENCIES)
 	-@echo "The components are up to date"
 
 ifeq ($(BUILD_JAVA_CODE),1)
@@ -202,14 +219,20 @@ cleanDirectory:
 buildDirectoryConsole: consoleComponents java_platform_check
 ifeq ($(BUILD_JAVA_CODE),1)
 #	cd ldap/admin/src/java/com/netscape/admin/dirserv; $(MAKE) $(MFLAGS) package
-	cd ldap/admin/src/java/com/netscape/xmltools; $(MAKE) $(MFLAGS) package
+    ifeq ($(USE_JAVATOOLS), 1)
+		cd ldap/admin/src/java/com/netscape/xmltools; $(MAKE) $(MFLAGS) package
+    endif
 endif
 
 buildDirectoryClients: $(ANT_DEP) java_platform_check
 ifeq ($(BUILD_JAVA_CODE),1)
-	cd ldap/clients; $(MAKE) _dsmlgw
+    ifeq ($(USE_DSMLGW), 1)
+		cd ldap/clients; $(MAKE) _dsmlgw
+    endif
 endif
+ifeq ($(USE_DSGW), 1)
 	cd ldap/clients; $(MAKE) _dsgw
+endif
 
 $(OBJDIR):
 	if test ! -d $(OBJDIR); then mkdir -p $(OBJDIR); fi;
@@ -248,7 +271,9 @@ Longduration:
 
 setupDirectory:
 	cd ldap/cm; $(MAKE) $(MFLAGS) releaseDirectory;
+ifeq ($(USE_SETUPSDK), 1)
 	cd ldap/cm; $(MAKE) $(MFLAGS) packageDirectory;
+endif
 
 pkgDirectoryJars:
 	cd ldap/cm; $(MAKE) $(MFLAGS) packageJars 

+ 82 - 0
buildpaths.mk

@@ -0,0 +1,82 @@
+#
+# BEGIN COPYRIGHT BLOCK
+# Copyright (C) 2005 Red Hat, Inc.
+# All rights reserved.
+# END COPYRIGHT BLOCK
+#
+# This file is where you tell the build process where to find the
+# various components used during the build process.
+
+# You can either use components built locally from source or
+# pre-built components.  The reason for the different macros
+# for SOURCE and BUILD is that the locations for the libs, includes,
+# etc. are usually different for packages built from source vs.
+# pre-built packages.  As an example, when building NSPR from
+# source, the includes are in mozilla/dist/$(OBJDIR_NAME)/include
+# where OBJDIR_NAME includes the OS, arch, compiler, thread model, etc.
+# When using the pre-built NSPR from Mozilla FTP, the include files
+# are just in nsprdir/include.  This is why we have to make the
+# distinction between a SOURCE component and a BUILD (pre-built)
+# component.  See components.mk for the gory details.
+
+# For each component, specify the source root OR the pre-built
+# component directory.  If both a SOURCE_ROOT and a BUILD_DIR are
+# defined for a component, the SOURCE_ROOT will be used - don't do
+# this, it's confusing.
+
+# For the Mozilla components, if using source for all of them,
+# you can just define MOZILLA_SOURCE_ROOT - the build will
+# assume all of them have been built in that same directory
+# (as per the recommended build instructions)
+
+# For all components, the recommended way is to put each
+# component in a subdirectory of the parent directory of
+# BUILD_ROOT, both with pre-built and source components
+
+MOZILLA_SOURCE_ROOT = $(BUILD_ROOT)/../mozilla
+ifdef MOZILLA_SOURCE_ROOT
+  # some of the mozilla components are put in a platform/buildtype specific
+  # subdir of mozilla/dist, and their naming convention is different than
+  # ours - we need to map ours to theirs
+  ifneq (,$(findstring RHEL3,$(NSOBJDIR_NAME)))
+    MOZ_OBJDIR_NAME = $(subst _gcc3_,_glibc_PTH_,$(subst RHEL3,Linux2.4,$(NSOBJDIR_NAME)))
+  else
+  ifneq (,$(findstring RHEL4,$(NSOBJDIR_NAME)))
+    MOZ_OBJDIR_NAME = $(subst _gcc3_,_glibc_PTH_,$(subst RHEL4,Linux2.6,$(NSOBJDIR_NAME)))
+  else
+    MOZ_OBJDIR_NAME = $(NSOBJDIR_NAME)
+  endif
+  endif
+endif
+
+NSPR_SOURCE_ROOT = $(MOZILLA_SOURCE_ROOT)
+#NSPR_BUILD_DIR = $(BUILD_ROOT)/../nspr-4.4.1
+# NSPR also needs a build dir with a full, absolute path for some reason
+#NSPR_ABS_BUILD_DIR = $(shell cd $(NSPR_BUILD_DIR) && pwd)
+
+DBM_SOURCE_ROOT = $(MOZILLA_SOURCE_ROOT)
+#DBM_BUILD_DIR = $(BUILD_ROOT)/../nss-3.9.3
+
+SECURITY_SOURCE_ROOT = $(MOZILLA_SOURCE_ROOT)
+#SECURITY_BUILD_DIR = $(BUILD_ROOT)/../nss-3.9.3
+
+SVRCORE_SOURCE_ROOT = $(MOZILLA_SOURCE_ROOT)
+#SVRCORE_BUILD_DIR = $(BUILD_ROOT)/../svrcore-4.0
+
+LDAPSDK_SOURCE_ROOT = $(MOZILLA_SOURCE_ROOT)
+#LDAP_ROOT = $(BUILD_ROOT)/../ldapsdk-5.15
+
+SASL_SOURCE_ROOT = $(BUILD_ROOT)/../cyrus-sasl-2.1.20
+#SASL_BUILD_DIR = $(BUILD_ROOT)/../sasl
+
+ICU_SOURCE_ROOT = $(BUILD_ROOT)/../icu
+#ICU_BUILD_DIR = $(BUILD_ROOT)/../icu-2.4
+
+DB_SOURCE_ROOT = $(BUILD_ROOT)/../db-4.2.52.NC
+# DB_MAJOR_MINOR is the root name for the db shared library
+# source builds use db-4.2 - lib is prepended later
+DB_MAJOR_MINOR := db-4.2
+# internal builds rename this to be db42
+#DB_MAJOR_MINOR := db42
+#component_name:=$(DB_MAJOR_MINOR)
+#db_path_config:=$(BUILD_ROOT)/../$(component_name)

+ 155 - 728
components.mk

@@ -78,10 +78,12 @@ PACKAGE_UNDER_JAVA =
 # nls locale files are in libnls31/locale, but for packaging they need to
 # go into lib/nls, not just lib; the destination should be a directory name;
 # separate the src from the dest with a single space
+PACKAGE_SRC_DEST =
+
+# these defs are useful for doing pattern search/replace
 COMMA := ,
 NULLSTRING :=
 SPACE := $(NULLSTRING) # the space is between the ) and the #
-PACKAGE_SRC_DEST =
 
 ifeq ($(ARCH), WINNT)
 EXE_SUFFIX = .exe
@@ -89,90 +91,11 @@ else # unix - windows has no lib name prefix, except for nspr
 LIB_PREFIX = lib
 endif
 
-# work around vsftpd -L problem
-ifeq ($(COMPONENT_PULL_METHOD), FTP)
-ifdef USING_VSFTPD
-VSFTPD_HACK=1
-endif
-endif
-
-# ADMINUTIL library #######################################
-ADMINUTIL_VERSION=$(ADMINUTIL_RELDATE)$(SEC_SUFFIX)
-ADMINUTIL_BASE=$(ADMINUTIL_VERSDIR)/${ADMINUTIL_VERSION}
-ADMSDKOBJDIR = $(FULL_RTL_OBJDIR)
-ADMINUTIL_IMPORT=$(COMPONENTS_DIR)/${ADMINUTIL_BASE}/$(NSOBJDIR_NAME)
-# this is the base directory under which the component's files will be found
-# during the build process
-ADMINUTIL_BUILD_DIR=$(NSCP_DISTDIR_FULL_RTL)/adminutil
-ADMINUTIL_LIBPATH=$(ADMINUTIL_BUILD_DIR)/lib
-ADMINUTIL_INCPATH=$(ADMINUTIL_BUILD_DIR)/include
-
-PACKAGE_SRC_DEST += $(ADMINUTIL_LIBPATH)/property bin/slapd/lib
-LIBS_TO_PKG += $(wildcard $(ADMINUTIL_LIBPATH)/*.$(DLL_SUFFIX))
-LIBS_TO_PKG_CLIENTS += $(wildcard $(ADMINUTIL_LIBPATH)/*.$(DLL_SUFFIX))
-
-#
-# Libadminutil
-#
-ADMINUTIL_DEP = $(ADMINUTIL_LIBPATH)/libadminutil$(ADMINUTIL_VER).$(LIB_SUFFIX)
-ifeq ($(ARCH), WINNT)
-ADMINUTIL_LINK = /LIBPATH:$(ADMINUTIL_LIBPATH) libadminutil$(ADMINUTIL_VER).$(LIB_SUFFIX)
-ADMINUTIL_S_LINK = /LIBPATH:$(ADMINUTIL_LIBPATH) libadminutil_s$(ADMINUTIL_VER).$(LIB_SUFFIX)
-LIBADMINUTILDLL_NAMES = $(ADMINUTIL_LIBPATH)/libadminutil$(ADMINUTIL_VER).$(DLL_SUFFIX)
+ifeq ($(INTERNAL_BUILD), 1)
+include $(BUILD_ROOT)/internal_buildpaths.mk
 else
-ADMINUTIL_LINK=-L$(ADMINUTIL_LIBPATH) -ladminutil$(ADMINUTIL_VER)
+include $(BUILD_ROOT)/buildpaths.mk
 endif
-ADMINUTIL_INCLUDE=-I$(ADMINUTIL_INCPATH) \
-	-I$(ADMINUTIL_INCPATH)/libadminutil \
-	-I$(ADMINUTIL_INCPATH)/libadmsslutil
-
-ifndef ADMINUTIL_PULL_METHOD
-ADMINUTIL_PULL_METHOD = $(COMPONENT_PULL_METHOD)
-endif
-
-$(ADMINUTIL_DEP): ${NSCP_DISTDIR_FULL_RTL}
-ifdef COMPONENT_DEPS
-	$(FTP_PULL) -method $(ADMINUTIL_PULL_METHOD) \
-		-objdir $(ADMINUTIL_BUILD_DIR) \
-		-componentdir $(ADMINUTIL_IMPORT) \
-		-files include,lib
-endif
-	-@if [ ! -f $@ ] ; \
-	then echo "Error: could not get component adminutil file $@" ; \
-	fi
-###########################################################
-# Peer
-
-PEER_BUILD_DIR = $(NSCP_DISTDIR)/peer
-ifeq ($(ARCH), WINNT)
-# PEER_RELEASE = $(COMPONENTS_DIR)/peer/$(PEER_RELDATE)
-# PEER_FILES = include
-else
-PEER_RELEASE = $(COMPONENTS_DIR)/peer/$(PEER_RELDATE)/$(NSOBJDIR_NAME)
-PEER_FILES = obj
-PEER_DEP = $(PEER_OBJPATH)/ns-ldapagt
-endif
-# PEER_MGMTPATH = $(PEER_BUILD_DIR)/dev
-# PEER_INCDIR = $(PEER_BUILD_DIR)/include
-# PEER_BINPATH = $(PEER_BUILD_DIR)/dev
-PEER_OBJPATH = $(PEER_BUILD_DIR)/obj
-# PEER_INCLUDE = -I$(PEER_INCDIR)
-
-ifndef PEER_PULL_METHOD
-PEER_PULL_METHOD = $(COMPONENT_PULL_METHOD)
-endif
-
-$(PEER_DEP): $(NSCP_DISTDIR)
-ifdef COMPONENT_DEPS
-	$(FTP_PULL) -method $(PEER_PULL_METHOD) \
-		-objdir $(PEER_BUILD_DIR) -componentdir $(PEER_RELEASE) \
-		-files $(PEER_FILES)
-	-@if [ ! -f $@ ] ; \
-	then echo "Error: could not get component PEER file $@" ; \
-	fi
-endif
-
-###########################################################
 
 # NSPR20 Library
 NSPR_LIBNAMES = plc4 plds4
@@ -185,19 +108,25 @@ LIBS_TO_PKG += $(addsuffix .$(DLL_SUFFIX),$(addprefix $(NSPR_LIBPATH)/lib,ultras
   endif
 endif
 NSPR_LIBNAMES += nspr4
-NSPR_BUILD_DIR = $(NSCP_DISTDIR_FULL_RTL)/nspr
-NSPR_ABS_BUILD_DIR = $(NSCP_ABS_DISTDIR_FULL_RTL)/nspr
-NSPR_LIBPATH = $(NSPR_BUILD_DIR)/lib
-NSPR_INCLUDE = -I$(NSPR_BUILD_DIR)/include
-NSPR_IMPORT = $(COMPONENTS_DIR)/nspr20/$(NSPR_RELDATE)/$(FULL_RTL_OBJDIR)
+ifdef NSPR_SOURCE_ROOT
+  NSPR_LIBPATH = $(NSPR_SOURCE_ROOT)/dist/$(MOZ_OBJDIR_NAME)/lib
+  NSPR_INCDIR = $(NSPR_SOURCE_ROOT)/dist/$(MOZ_OBJDIR_NAME)/include
+else
+  NSPR_LIBPATH = $(NSPR_BUILD_DIR)/lib
+  NSPR_INCDIR = $(NSPR_BUILD_DIR)/include
+endif
+NSPR_INCLUDE = -I$(NSPR_INCDIR)
 NSPR_LIBS_TO_PKG = $(addsuffix .$(DLL_SUFFIX),$(addprefix $(NSPR_LIBPATH)/lib,$(NSPR_LIBNAMES)))
 
 LIBS_TO_PKG += $(NSPR_LIBS_TO_PKG)
 LIBS_TO_PKG_SHARED += $(NSPR_LIBS_TO_PKG) # needed for cmd line tools
-PACKAGE_SETUP_LIBS += $(NSPR_LIBS_TO_PKG)
-LIBS_TO_PKG_CLIENTS += $(NSPR_LIBS_TO_PKG) # for dsgw
+ifeq ($(USE_SETUPSDK), 1)
+  PACKAGE_SETUP_LIBS += $(NSPR_LIBS_TO_PKG)
+endif
+ifeq ($(USE_DSGW), 1)
+  LIBS_TO_PKG_CLIENTS += $(NSPR_LIBS_TO_PKG) # for dsgw
+endif
 
-NSPR_DEP = $(NSPR_LIBPATH)/libnspr4.$(LIB_SUFFIX)
 ifeq ($(ARCH), WINNT)
   NSPRDLL_NAME = $(addprefix lib, $(NSPR_LIBNAMES))
   NSPROBJNAME = $(addsuffix .lib, $(NSPRDLL_NAME))
@@ -211,27 +140,15 @@ else
   NSPRLINK = -L$(NSPR_LIBPATH) $(addprefix -l, $(NSPR_LIBNAMES))
 endif
 
-ifndef NSPR_PULL_METHOD
-NSPR_PULL_METHOD = $(COMPONENT_PULL_METHOD)
-endif
-
-$(NSPR_DEP): $(NSCP_DISTDIR_FULL_RTL)
-ifdef COMPONENT_DEPS
-	$(FTP_PULL) -method $(NSPR_PULL_METHOD) \
-		-objdir $(NSPR_BUILD_DIR) -componentdir $(NSPR_IMPORT) \
-		-files lib,include
-endif
-	-@if [ ! -f $@ ] ; \
-	then echo "Error: could not get component NSPR file $@" ; \
-	fi
-
 ### DBM #############################
 
-DBM_BUILD_DIR = $(NSCP_DISTDIR_FULL_RTL)/dbm
-DBM_LIBPATH = $(DBM_BUILD_DIR)/lib
-DBM_INCDIR = $(DBM_BUILD_DIR)/include
-DBM_DEP = $(DBM_LIBPATH)/libdbm.$(LIB_SUFFIX)
-DBM_IMPORT = $(COMPONENTS_DIR)/dbm/$(DBM_RELDATE)/$(NSOBJDIR_NAME)
+ifdef DBM_SOURCE_ROOT
+  DBM_LIBPATH = $(DBM_SOURCE_ROOT)/dist/$(MOZ_OBJDIR_NAME)/lib
+  DBM_INCDIR = $(DBM_SOURCE_ROOT)/dist/public/dbm
+else
+  DBM_LIBPATH = $(DBM_BUILD_DIR)/lib
+  DBM_INCDIR = $(DBM_BUILD_DIR)/include
+endif
 DBM_INCLUDE = -I$(DBM_INCDIR)
 DBM_LIBNAMES = dbm
 
@@ -239,39 +156,25 @@ ifeq ($(ARCH), WINNT)
   DBMOBJNAME = $(addsuffix .lib, $(DBM_LIBNAMES))
   LIBDBM = $(addprefix $(DBM_LIBPATH)/, $(DBMOBJNAME))
   DBMLINK = /LIBPATH:$(DBM_LIBPATH) $(DBMOBJNAME)
-  DBM_DEP = $(DBM_LIBPATH)/dbm.$(LIB_SUFFIX)
 else
   DBM_SOLIBS = $(addsuffix .$(DLL_SUFFIX),  $(addprefix $(LIB_PREFIX), $(DBM_LIBNAMES)))
   DBMROBJNAME = $(addsuffix .a, $(addprefix $(LIB_PREFIX), $(DBM_LIBNAMES)))
   LIBDBM = $(addprefix $(DBM_LIBPATH)/, $(DBMROBJNAME))
   DBMLINK = -L$(DBM_LIBPATH) $(addprefix -l, $(DBM_LIBNAMES))
-  DBM_DEP = $(DBM_LIBPATH)/libdbm.$(LIB_SUFFIX)
 endif
 
-ifndef DBM_PULL_METHOD
-DBM_PULL_METHOD = $(COMPONENT_PULL_METHOD)
-endif
-
-$(DBM_DEP): $(NSCP_DISTDIR_FULL_RTL)
-ifdef COMPONENT_DEPS
-	$(FTP_PULL) -method $(DBM_PULL_METHOD) \
-		-objdir $(DBM_BUILD_DIR) -componentdir $(DBM_IMPORT)/.. \
-		-files xpheader.jar -unzip $(DBM_INCDIR)
-	$(FTP_PULL) -method $(DBM_PULL_METHOD) \
-		-objdir $(DBM_BUILD_DIR) -componentdir $(DBM_IMPORT) \
-		-files mdbinary.jar -unzip $(DBM_BUILD_DIR)
-endif
-	-@if [ ! -f $@ ] ; \
-	then echo "Error: could not get component DBM file $@" ; \
-	fi
-
 ### DBM END #############################
 
 ### SECURITY #############################
-SECURITY_BUILD_DIR = $(NSCP_DISTDIR_FULL_RTL)/nss
-SECURITY_LIBPATH = $(SECURITY_BUILD_DIR)/lib
-SECURITY_BINPATH = $(SECURITY_BUILD_DIR)/bin
-SECURITY_INCDIR = $(SECURITY_BUILD_DIR)/include
+ifdef SECURITY_SOURCE_ROOT
+  SECURITY_LIBPATH = $(SECURITY_SOURCE_ROOT)/dist/$(MOZ_OBJDIR_NAME)/lib
+  SECURITY_BINPATH = $(SECURITY_SOURCE_ROOT)/dist/$(MOZ_OBJDIR_NAME)/bin
+  SECURITY_INCDIR = $(SECURITY_SOURCE_ROOT)/dist/public/nss
+else
+  SECURITY_LIBPATH = $(SECURITY_BUILD_DIR)/lib
+  SECURITY_BINPATH = $(SECURITY_BUILD_DIR)/bin
+  SECURITY_INCDIR = $(SECURITY_BUILD_DIR)/include
+endif
 SECURITY_INCLUDE = -I$(SECURITY_INCDIR)
 # add crlutil and ocspclnt when we support CRL and OCSP cert checking in DS
 ifeq ($(SECURITY_RELDATE), NSS_3_7_9_RTM)
@@ -280,7 +183,6 @@ else
 SECURITY_BINNAMES = certutil derdump pp pk12util ssltap modutil shlibsign
 endif
 SECURITY_LIBNAMES = ssl3 nss3 softokn3
-SECURITY_IMPORT = $(COMPONENTS_DIR)/nss/$(SECURITY_RELDATE)/$(FULL_RTL_OBJDIR)
 
 SECURITY_LIBNAMES.pkg = $(SECURITY_LIBNAMES)
 SECURITY_LIBNAMES.pkg += smime3
@@ -309,19 +211,21 @@ SECURITY_LIBS_TO_PKG += $(addsuffix .chk,$(addprefix $(SECURITY_LIBPATH)/$(LIB_P
 endif
 LIBS_TO_PKG += $(SECURITY_LIBS_TO_PKG)
 LIBS_TO_PKG_SHARED += $(SECURITY_LIBS_TO_PKG) # for cmd line tools
-PACKAGE_SETUP_LIBS += $(SECURITY_LIBS_TO_PKG)
-LIBS_TO_PKG_CLIENTS += $(SECURITY_LIBS_TO_PKG) # for dsgw
+ifeq ($(USE_SETUPSDK), 1)
+  PACKAGE_SETUP_LIBS += $(SECURITY_LIBS_TO_PKG)
+endif
+ifeq ($(USE_DSGW), 1)
+  LIBS_TO_PKG_CLIENTS += $(SECURITY_LIBS_TO_PKG) # for dsgw
+endif
 
 ifeq ($(ARCH), WINNT)
   SECURITYOBJNAME = $(addsuffix .$(LIB_SUFFIX), $(SECURITY_LIBNAMES))
   LIBSECURITY = $(addprefix $(SECURITY_LIBPATH)/, $(SECURITYOBJNAME))
   SECURITYLINK = /LIBPATH:$(SECURITY_LIBPATH) $(SECURITYOBJNAME)
-  SECURITY_DEP = $(SECURITY_LIBPATH)/ssl3.$(DLL_SUFFIX)
 else
   SECURITYOBJNAME = $(addsuffix .$(DLL_SUFFIX), $(addprefix $(LIB_PREFIX), $(SECURITY_LIBNAMES)))
   LIBSECURITY = $(addprefix $(SECURITY_LIBPATH)/, $(SECURITYOBJNAME))
   SECURITYLINK = -L$(SECURITY_LIBPATH) $(addprefix -l, $(SECURITY_LIBNAMES))
-  SECURITY_DEP = $(SECURITY_LIBPATH)/libssl3.$(DLL_SUFFIX)
 endif
 
 # we need to package the root cert file in the alias directory
@@ -330,187 +234,71 @@ PACKAGE_SRC_DEST += $(SECURITY_LIBPATH)/$(LIB_PREFIX)nssckbi.$(DLL_SUFFIX) alias
 # need to package the sec tools in shared/bin
 BINS_TO_PKG_SHARED += $(SECURITY_TOOLS_FULLPATH)
 
-#ifeq ($(ARCH), OSF1)
-#OSF1SECURITYHACKOBJ = $(OBJDIR)/osf1securityhack.o
-
-#$(OSF1SECURITYHACKOBJ): $(BUILD_ROOT)/osf1securityhack.c
-#	$(CC) -c $(CFLAGS) $(MCC_INCLUDE) $< -o $@
-
-#  SECURITYLINK += $(OSF1SECURITYHACKOBJ)
-#endif
-
-ifdef VSFTPD_HACK
-SECURITY_FILES=lib,bin/$(subst $(SPACE),$(COMMA)bin/,$(SECURITY_TOOLS))
-else
-SECURITY_FILES=lib,include,bin/$(subst $(SPACE),$(COMMA)bin/,$(SECURITY_TOOLS))
-endif
-
-ifndef SECURITY_PULL_METHOD
-SECURITY_PULL_METHOD = $(COMPONENT_PULL_METHOD)
-endif
-
-$(SECURITY_DEP): $(NSCP_DISTDIR_FULL_RTL) $(OSF1SECURITYHACKOBJ)
-ifdef COMPONENT_DEPS
-	mkdir -p $(SECURITY_BINPATH)
-	$(FTP_PULL) -method $(SECURITY_PULL_METHOD) \
-		-objdir $(SECURITY_BUILD_DIR) -componentdir $(SECURITY_IMPORT) \
-		-files $(SECURITY_FILES)
-ifdef VSFTPD_HACK
-# work around vsftpd -L problem
-	$(FTP_PULL) -method $(SECURITY_PULL_METHOD) \
-		-objdir $(SECURITY_BUILD_DIR) -componentdir $(COMPONENTS_DIR)/nss/$(SECURITY_RELDATE) \
-		-files include
-endif
-endif
-	-@if [ ! -f $@ ] ; \
-	then echo "Error: could not get component NSS file $@" ; \
-	fi
-
 ### SECURITY END #############################
 
 ### SVRCORE #############################
-SVRCORE_BUILD_DIR = $(NSCP_DISTDIR)/svrcore
-SVRCORE_LIBPATH = $(SVRCORE_BUILD_DIR)/lib
-SVRCORE_INCDIR = $(SVRCORE_BUILD_DIR)/include
+ifdef SVRCORE_SOURCE_ROOT
+  SVRCORE_LIBPATH = $(SVRCORE_SOURCE_ROOT)/dist/$(MOZ_OBJDIR_NAME)/lib
+  SVRCORE_INCDIR = $(SVRCORE_SOURCE_ROOT)/dist/public/svrcore
+else
+  SVRCORE_LIBPATH = $(SVRCORE_BUILD_DIR)/lib
+  SVRCORE_INCDIR = $(SVRCORE_BUILD_DIR)/include
+endif
 SVRCORE_INCLUDE = -I$(SVRCORE_INCDIR)
-#SVRCORE_LIBNAMES = svrplcy svrcore
 SVRCORE_LIBNAMES = svrcore
-SVRCORE_IMPORT = $(COMPONENTS_DIR)/svrcore/$(SVRCORE_RELDATE)/$(NSOBJDIR_NAME)
-#SVRCORE_IMPORT = $(COMPONENTS_DIR_DEV)/svrcore/$(SVRCORE_RELDATE)/$(NSOBJDIR_NAME)
 
 ifeq ($(ARCH), WINNT)
   SVRCOREOBJNAME = $(addsuffix .lib, $(SVRCORE_LIBNAMES))
   LIBSVRCORE = $(addprefix $(SVRCORE_LIBPATH)/, $(SVRCOREOBJNAME))
   SVRCORELINK = /LIBPATH:$(SVRCORE_LIBPATH) $(SVRCOREOBJNAME)
-  SVRCORE_DEP = $(SVRCORE_LIBPATH)/svrcore.$(LIB_SUFFIX)
 else
   SVRCOREOBJNAME = $(addsuffix .a, $(addprefix $(LIB_PREFIX), $(SVRCORE_LIBNAMES)))
   LIBSVRCORE = $(addprefix $(SVRCORE_LIBPATH)/, $(SVRCOREOBJNAME))
-ifeq ($(ARCH), OSF1)
-# the -all flag is used by default.  This flag causes _all_ objects in lib.a files to
-# be processed and linked.  This causes problems with svrcore because there are
-# several undefined symbols (notably, the JSS_xxx functions)
-  SVRCORELINK = -L$(SVRCORE_LIBPATH) -none $(addprefix -l, $(SVRCORE_LIBNAMES)) -all
-else
   SVRCORELINK = -L$(SVRCORE_LIBPATH) $(addprefix -l, $(SVRCORE_LIBNAMES))
 endif
-  SVRCORE_DEP = $(SVRCORE_LIBPATH)/libsvrcore.$(LIB_SUFFIX)
-endif
-
-ifndef SVRCORE_PULL_METHOD
-SVRCORE_PULL_METHOD = $(COMPONENT_PULL_METHOD)
-endif
-
-$(SVRCORE_DEP): $(NSCP_DISTDIR)
-ifdef COMPONENT_DEPS
-	$(FTP_PULL) -method $(SVRCORE_PULL_METHOD) \
-		-objdir $(SVRCORE_BUILD_DIR) -componentdir $(SVRCORE_IMPORT)/.. \
-		-files xpheader.jar -unzip $(SVRCORE_INCDIR)
-	$(FTP_PULL) -method $(SVRCORE_PULL_METHOD) \
-		-objdir $(SVRCORE_BUILD_DIR) -componentdir $(SVRCORE_IMPORT) \
-		-files mdbinary.jar -unzip $(SVRCORE_BUILD_DIR)
-endif
-	-@if [ ! -f $@ ] ; \
-	then echo "Error: could not get component SVRCORE file $@" ; \
-	fi
 
 ### SVRCORE END #############################
 
-### SETUPSDK #############################
-# this is where the build looks for setupsdk components
-SETUP_SDK_BUILD_DIR = $(NSCP_DISTDIR)/setupsdk
-SETUPSDK_VERSION = $(SETUP_SDK_RELDATE)$(SEC_SUFFIX)
-SETUPSDK_RELEASE = $(COMPONENTS_DIR)/setupsdk/$(SETUPSDK_VERSDIR)/$(SETUPSDK_VERSION)/$(NSOBJDIR_NAME)
-SETUPSDK_LIBPATH = $(SETUP_SDK_BUILD_DIR)/lib
-SETUPSDK_INCDIR = $(SETUP_SDK_BUILD_DIR)/include
-SETUPSDK_BINPATH = $(SETUP_SDK_BUILD_DIR)/bin
-SETUPSDK_INCLUDE = -I$(SETUPSDK_INCDIR)
-
-ifeq ($(ARCH), WINNT)
-SETUP_SDK_FILES = setupsdk.tar.gz -unzip $(NSCP_DISTDIR)/setupsdk
-SETUPSDK_DEP = $(SETUPSDK_LIBPATH)/nssetup32.$(LIB_SUFFIX)
-SETUPSDKLINK = /LIBPATH:$(SETUPSDK_LIBPATH) nssetup32.$(LIB_SUFFIX)
-SETUPSDK_S_LINK = /LIBPATH:$(SETUPSDK_LIBPATH) nssetup32_s.$(LIB_SUFFIX)
-else
-SETUP_SDK_FILES = bin,lib,include
-SETUPSDK_DEP = $(SETUPSDK_LIBPATH)/libinstall.$(LIB_SUFFIX)
-SETUPSDKLINK = -L$(SETUPSDK_LIBPATH) -linstall
-SETUPSDK_S_LINK = $(SETUPSDKLINK)
-endif
-
-ifndef SETUPSDK_PULL_METHOD
-SETUPSDK_PULL_METHOD = $(COMPONENT_PULL_METHOD)
-endif
-
-$(SETUPSDK_DEP): $(NSCP_DISTDIR)
-ifdef COMPONENT_DEPS
-	$(FTP_PULL) -method $(SETUPSDK_PULL_METHOD) \
-		-objdir $(SETUP_SDK_BUILD_DIR) -componentdir $(SETUPSDK_RELEASE) \
-		-files $(SETUP_SDK_FILES)
-endif
-	-@if [ ! -f $@ ] ; \
-	then echo "Error: could not get component SETUPSDK file $@" ; \
-	fi
-
 ####################################################
 # LDAP SDK
 ###################################################
-ifndef LDAP_VERSION
-  LDAP_VERSION = $(LDAP_RELDATE)$(SEC_SUFFIX)
-endif
 
-LDAP_ROOT = $(NSCP_DISTDIR_FULL_RTL)/ldapsdk
-LDAPSDK_LIBPATH = $(LDAP_ROOT)/lib
-LDAPSDK_INCDIR = $(LDAP_ROOT)/include
-LDAPSDK_INCLUDE = -I$(LDAPSDK_INCDIR)
-ifndef LDAP_SBC
-# LDAP_SBC = $(COMPONENTS_DIR_DEV)
-LDAP_SBC = $(COMPONENTS_DIR)
+ifdef LDAPSDK_SOURCE_ROOT
+  LDAPSDK_LIBPATH = $(LDAPSDK_SOURCE_ROOT)/dist/lib
+  LDAPSDK_INCDIR = $(LDAPSDK_SOURCE_ROOT)/dist/public/ldap
+  LDAPSDK_BINPATH = $(LDAPSDK_SOURCE_ROOT)/dist/bin
+else
+  LDAPSDK_LIBPATH = $(LDAP_ROOT)/lib
+  LDAPSDK_INCDIR = $(LDAP_ROOT)/include
+  LDAPSDK_BINPATH = $(LDAP_ROOT)/tools
 endif
+LDAPSDK_INCLUDE = -I$(LDAPSDK_INCDIR)
 
 # package the command line programs
-LDAPSDK_TOOLS = $(wildcard $(LDAP_ROOT)/tools/*$(EXE_SUFFIX))
+LDAPSDK_TOOLS = $(wildcard $(LDAPSDK_BINPATH)/ldap*$(EXE_SUFFIX))
 BINS_TO_PKG_SHARED += $(LDAPSDK_TOOLS)
 # package the include files - needed for the plugin API
 LDAPSDK_INCLUDE_FILES = $(wildcard $(LDAPSDK_INCDIR)/*.h)
 PACKAGE_SRC_DEST += $(subst $(SPACE),$(SPACE)plugins/slapd/slapi/include$(SPACE),$(LDAPSDK_INCLUDE_FILES))
 PACKAGE_SRC_DEST += plugins/slapd/slapi/include
 
-LDAPOBJDIR = $(FULL_RTL_OBJDIR)
 ifeq ($(ARCH), WINNT)
-  ifeq ($(PROCESSOR), ALPHA)
-	ifeq ($(DEBUG), full)
-	  LDAPOBJDIR = WINNTALPHA3.51_DBG.OBJ
-	else
-	  LDAPOBJDIR = WINNTALPHA3.51_OPT.OBJ
-	endif
-  endif
-
-  LDAP_RELEASE = $(LDAP_SBC)/$(LDAPCOMP_DIR)/$(LDAP_VERSION)/$(LDAPOBJDIR)
   LDAP_LIBNAMES = ldapssl32v$(LDAP_SUF) ldap32v$(LDAP_SUF) ldappr32v$(LDAP_SUF)
   LDAPDLL_NAME = $(addprefix ns, $(LDAP_LIBNAMES))
   LDAPOBJNAME = $(addsuffix .$(LIB_SUFFIX), $(LDAPDLL_NAME))
   LDAPLINK = /LIBPATH:$(LDAPSDK_LIBPATH) $(LDAPOBJNAME)
   LDAP_NOSSL_LINK = /LIBPATH:$(LDAPSDK_LIBPATH) nsldap32v$(LDAP_SUF).$(LIB_SUFFIX)
   LIBLDAPDLL_NAMES = $(addsuffix .dll, $(addprefix $(LDAP_LIBPATH)/, $(LDAPDLL_NAME)))
-  LDAPSDK_DEP = $(LDAPSDK_LIBPATH)/nsldap32v$(LDAP_SUF).$(DLL_SUFFIX)
-  LDAPSDK_PULL_LIBS = lib/nsldapssl32v$(LDAP_SUF).$(LIB_SUFFIX),lib/nsldapssl32v$(LDAP_SUF).$(LDAP_DLL_SUFFIX),lib/nsldap32v$(LDAP_SUF).$(LIB_SUFFIX),lib/nsldap32v$(LDAP_SUF).$(LDAP_DLL_SUFFIX),lib/nsldappr32v$(LDAP_SUF).$(LIB_SUFFIX),lib/nsldappr32v$(LDAP_SUF).$(LDAP_DLL_SUFFIX)
 
   LIBS_TO_PKG += $(addsuffix .$(DLL_SUFFIX),$(addprefix $(LDAPSDK_LIBPATH)/,$(LDAPDLL_NAME)))
-  PACKAGE_SETUP_LIBS += $(addsuffix .$(DLL_SUFFIX),$(addprefix $(LDAPSDK_LIBPATH)/,$(LDAPDLL_NAME)))
   LIBS_TO_PKG_SHARED += $(addsuffix .$(DLL_SUFFIX),$(addprefix $(LDAPSDK_LIBPATH)/,$(LDAPDLL_NAME)))
-  LIBS_TO_PKG_CLIENTS += $(addsuffix .$(DLL_SUFFIX),$(addprefix $(LDAPSDK_LIBPATH)/,$(LDAPDLL_NAME)))
-endif
-
-# override LDAP version in OS specific section
-ifneq ($(ARCH), WINNT)
-# LDAP Does not has PTH version, so here is the hack which treat non PTH
-# version as PTH version
-  ifeq ($(USE_PTHREADS), 1)
-	LDAP_RELEASE = $(LDAP_SBC)/$(LDAPCOMP_DIR)/$(LDAP_VERSION)/$(NSOBJDIR_NAME1)
-  else
-	LDAP_RELEASE = $(LDAP_SBC)/$(LDAPCOMP_DIR)/$(LDAP_VERSION)/$(LDAPOBJDIR)
+  ifeq ($(USE_SETUPSDK), 1)
+    PACKAGE_SETUP_LIBS += $(addsuffix .$(DLL_SUFFIX),$(addprefix $(LDAPSDK_LIBPATH)/,$(LDAPDLL_NAME)))
+  endif
+  ifeq ($(USE_DSGW), 1)
+    LIBS_TO_PKG_CLIENTS += $(addsuffix .$(DLL_SUFFIX),$(addprefix $(LDAPSDK_LIBPATH)/,$(LDAPDLL_NAME)))
   endif
+else # not WINNT
   LDAP_SOLIB_NAMES = ssldap$(LDAP_SUF)$(LDAP_DLL_PRESUF) ldap$(LDAP_SUF)$(LDAP_DLL_PRESUF) prldap$(LDAP_SUF)$(LDAP_DLL_PRESUF)
   ifndef LDAP_NO_LIBLCACHE
 	LDAP_SOLIB_NAMES += lcache30$(LDAP_DLL_PRESUF)
@@ -520,489 +308,128 @@ ifneq ($(ARCH), WINNT)
   LDAP_SOLIBS = $(addsuffix .$(LDAP_DLL_SUFFIX), $(addprefix $(LIB_PREFIX), $(LDAP_SOLIB_NAMES)))
   LDAPOBJNAME = $(addsuffix .$(LIB_SUFFIX), $(addprefix $(LIB_PREFIX), $(LDAP_DOTALIB_NAMES))) \
 		$(LDAP_SOLIBS)
-  LDAPSDK_DEP = $(LDAPSDK_LIBPATH)/libldap$(LDAP_SUF).$(DLL_SUFFIX)
   LDAPLINK = -L$(LDAPSDK_LIBPATH) $(addprefix -l,$(LDAP_SOLIB_NAMES))
   LDAP_NOSSL_LINK = -L$(LDAPSDK_LIBPATH) -lldap$(LDAP_SUF)$(LDAP_DLL_PRESUF)
-  LDAPSDK_PULL_LIBS = lib/libssldap$(LDAP_SUF)$(LDAP_DLL_PRESUF).$(LDAP_DLL_SUFFIX),lib/libldap$(LDAP_SUF)$(LDAP_DLL_PRESUF).$(LDAP_DLL_SUFFIX),lib/libprldap$(LDAP_SUF)$(LDAP_DLL_PRESUF).$(LDAP_DLL_SUFFIX)
 
   LIBS_TO_PKG += $(addprefix $(LDAPSDK_LIBPATH)/,$(LDAP_SOLIBS))
-  PACKAGE_SETUP_LIBS += $(addprefix $(LDAPSDK_LIBPATH)/,$(LDAP_SOLIBS))
   LIBS_TO_PKG_SHARED += $(addprefix $(LDAPSDK_LIBPATH)/,$(LDAP_SOLIBS))
-  LIBS_TO_PKG_CLIENTS += $(addprefix $(LDAPSDK_LIBPATH)/,$(LDAP_SOLIBS))
+  ifeq ($(USE_SETUPSDK), 1)
+    PACKAGE_SETUP_LIBS += $(addprefix $(LDAPSDK_LIBPATH)/,$(LDAP_SOLIBS))
+  endif
+  ifeq ($(USE_DSGW), 1)
+    LIBS_TO_PKG_CLIENTS += $(addprefix $(LDAPSDK_LIBPATH)/,$(LDAP_SOLIBS))
+  endif
 endif
 
-LDAP_LIBPATH = $(LDAP_ROOT)/lib
-LDAP_INCLUDE = $(LDAP_ROOT)/include
-LDAP_TOOLDIR = $(LDAP_ROOT)/tools
+LDAP_LIBPATH = $(LDAPSDK_LIBPATH)
+LDAP_INCLUDE = $(LDAPSDK_INCDIR)
+LDAP_TOOLDIR = $(LDAPSDK_BINPATH)
 LIBLDAP = $(addprefix $(LDAP_LIBPATH)/, $(LDAPOBJNAME))
-LDAPSDK_FILES = include,$(LDAPSDK_PULL_LIBS),tools
-
-ifndef LDAPSDK_PULL_METHOD
-LDAPSDK_PULL_METHOD = $(COMPONENT_PULL_METHOD)
-endif
-
-$(LDAPSDK_DEP): $(NSCP_DISTDIR_FULL_RTL)
-ifdef COMPONENT_DEPS
-	mkdir -p $(LDAP_LIBPATH)
-	$(FTP_PULL) -method $(LDAPSDK_PULL_METHOD) \
-		-objdir $(LDAP_ROOT) -componentdir $(LDAP_RELEASE) \
-		-files $(LDAPSDK_FILES)
-endif
-	-@if [ ! -f $@ ] ; \
-	then echo "Error: could not get component LDAPSDK file $@" ; \
-	fi
-
-# apache-axis java classes #######################################
-AXIS = axis-bin-$(AXIS_VERSION).zip
-AXIS_FILES = $(AXIS)
-AXIS_RELEASE = $(COMPONENTS_DIR)/axis
-#AXISJAR_DIR = $(AXISJAR_RELEASE)/$(AXISJAR_COMP)/$(AXISJAR_VERSION)
-AXIS_DIR = $(AXIS_RELEASE)/$(AXIS_VERSION)
-AXIS_FILE = $(CLASS_DEST)/$(AXIS)
-AXIS_DEP = $(AXIS_FILE) 
-AXIS_REL_DIR=$(subst -bin,,$(subst .zip,,$(AXIS)))
-
-
-# This is java, so there is only one real platform subdirectory
-
-#PACKAGE_UNDER_JAVA += $(AXIS_FILE)
-
-ifndef AXIS_PULL_METHOD
-AXIS_PULL_METHOD = $(COMPONENT_PULL_METHOD)
-endif
-
-$(AXIS_DEP): $(CLASS_DEST) 
-ifdef COMPONENT_DEPS
-	echo "Inside ftppull"
-	$(FTP_PULL) -method $(COMPONENT_PULL_METHOD) \
-		-objdir $(CLASS_DEST) -componentdir $(AXIS_DIR) \
-		-files $(AXIS_FILES) -unzip $(CLASS_DEST)
-endif
-	-@if [ ! -f $@ ] ; \
-	then echo "Error: could not get component AXIS files $@" ; \
-	fi
-
-###########################################################
-
-
-# other dsml java classes #######################################
-DSMLJAR = activation.jar,jaxrpc-api.jar,jaxrpc.jar,saaj.jar,xercesImpl.jar,xml-apis.jar
-DSMLJAR_FILES = $(DSMLJAR)
-DSMLJAR_RELEASE = $(COMPONENTS_DIR)
-#DSMLJARJAR_DIR = $(DSMLJARJAR_RELEASE)/$(DSMLJARJAR_COMP)/$(DSMLJARJAR_VERSION)
-DSMLJAR_DIR = $(DSMLJAR_RELEASE)/dsmljars
-DSMLJAR_FILE = $(CLASS_DEST)
-DSMLJAR_DEP = $(CLASS_DEST)/activation.jar $(CLASS_DEST)/jaxrpc-api.jar $(CLASS_DEST)/jaxrpc.jar $(CLASS_DEST)/saaj.jar $(CLASS_DEST)/xercesImpl.jar $(CLASS_DEST)/xml-apis.jar
 
-ifndef DSMLJAR_PULL_METHOD
-DSMLJAR_PULL_METHOD = $(COMPONENT_PULL_METHOD)
-endif
-
-$(DSMLJAR_DEP): $(CLASS_DEST) 
-ifdef COMPONENT_DEPS
-	echo "Inside ftppull"
-	$(FTP_PULL) -method $(COMPONENT_PULL_METHOD) \
-		-objdir $(CLASS_DEST) -componentdir $(DSMLJAR_DIR) \
-		-files $(DSMLJAR_FILES)
-
-endif
-	-@if [ ! -f $@ ] ; \
-	then echo "Error: could not get component DSMLJAR files $@" ; \
-	fi
-
-###########################################################
-
-# XMLTOOLS java classes #######################################
-CRIMSONJAR = crimson.jar
-CRIMSON_LICENSE = LICENSE.crimson
-CRIMSONJAR_FILES = $(CRIMSONJAR),$(CRIMSON_LICENSE)
-CRIMSONJAR_RELEASE = $(COMPONENTS_DIR)
-CRIMSONJAR_DIR = $(CRIMSONJAR_RELEASE)/$(CRIMSONJAR_COMP)/$(CRIMSONJAR_VERSION)
-CRIMSONJAR_FILE = $(CLASS_DEST)/$(CRIMSONJAR)
-CRIMSONJAR_DEP = $(CRIMSONJAR_FILE) $(CLASS_DEST)/$(CRIMSON_LICENSE)
-
-
-# This is java, so there is only one real platform subdirectory
-
-PACKAGE_UNDER_JAVA += $(CRIMSONJAR_FILE)
-
-ifndef CRIMSONJAR_PULL_METHOD
-CRIMSONJAR_PULL_METHOD = $(COMPONENT_PULL_METHOD)
-endif
-
-$(CRIMSONJAR_DEP): $(CLASS_DEST)
-ifdef COMPONENT_DEPS
-	echo "Inside ftppull"
-	$(FTP_PULL) -method $(COMPONENT_PULL_METHOD) \
-		-objdir $(CLASS_DEST) -componentdir $(CRIMSONJAR_DIR) \
-		-files $(CRIMSONJAR_FILES)
-endif
-	-@if [ ! -f $@ ] ; \
-	then echo "Error: could not get component CRIMSONJAR files $@" ; \
-	fi
-
-###########################################################
-
-# ANT java classes #######################################
-ifeq ($(BUILD_JAVA_CODE),1)
-#  (we use ant for building some Java code)
-ANTJAR = ant.jar
-JAXPJAR = jaxp.jar
-ANT_FILES = $(ANTJAR) $(JAXPJAR)
-ANT_RELEASE = $(COMPONENTS_DIR)
-ANT_HOME = $(ANT_RELEASE)/$(ANT_COMP)/$(ANT_VERSION)
-ANT_DIR = $(ANT_HOME)/lib
-ANT_DEP = $(addprefix $(CLASS_DEST)/, $(ANT_FILES))
-ANT_CP = $(subst $(SPACE),$(PATH_SEP),$(ANT_DEP))
-ANT_PULL = $(subst $(SPACE),$(COMMA),$(ANT_FILES))
-
-ifndef ANT_PULL_METHOD
-ANT_PULL_METHOD = $(COMPONENT_PULL_METHOD)
-endif
-
-$(ANT_DEP): $(CLASS_DEST) $(CRIMSONJAR_DEP)
-ifdef COMPONENT_DEPS
-	echo "Inside ftppull"
-	$(FTP_PULL) -method $(COMPONENT_PULL_METHOD) \
-		-objdir $(CLASS_DEST) -componentdir $(ANT_DIR) \
-		-files $(ANT_PULL)
-endif
-	-@if [ ! -f $@ ] ; \
-	then echo "Error: could not get component ant files $@" ; \
-	fi
-endif
-###########################################################
-
-# Servlet SDK classes #######################################
-SERVLETJAR = servlet.jar
-SERVLET_FILES = $(SERVLETJAR)
-SERVLET_RELEASE = $(COMPONENTS_DIR)
-SERVLET_DIR = $(SERVLET_RELEASE)/$(SERVLET_COMP)/$(SERVLET_VERSION)
-SERVLET_DEP = $(addprefix $(CLASS_DEST)/, $(SERVLET_FILES))
-SERVLET_CP = $(subst $(SPACE),$(PATH_SEP),$(SERVLET_DEP))
-SERVLET_PULL = $(subst $(SPACE),$(COMMA),$(SERVLET_FILES))
-
-ifndef SERVLET_PULL_METHOD
-SERVLET_PULL_METHOD = $(COMPONENT_PULL_METHOD)
-endif
-
-$(SERVLET_DEP): $(CLASS_DEST)
-ifdef COMPONENT_DEPS
-	echo "Inside ftppull"
-	$(FTP_PULL) -method $(COMPONENT_PULL_METHOD) \
-		-objdir $(CLASS_DEST) -componentdir $(SERVLET_DIR) \
-		-files $(SERVLET_PULL)
-endif
-	-@if [ ! -f $@ ] ; \
-	then echo "Error: could not get component servlet SDK files $@" ; \
-	fi
-
-###########################################################
-
-# LDAP java classes #######################################
-LDAPJDK = ldapjdk.jar
-LDAPJDK_VERSION = $(LDAPJDK_RELDATE)
-LDAPJDK_RELEASE = $(COMPONENTS_DIR)
-LDAPJDK_DIR = $(LDAPJDK_RELEASE)
-LDAPJDK_IMPORT = $(LDAPJDK_RELEASE)/$(LDAPJDK_COMP)/$(LDAPJDK_VERSION)/$(NSOBJDIR_NAME)
-# This is java, so there is only one real platform subdirectory
-LDAPJARFILE=$(CLASS_DEST)/ldapjdk.jar
-LDAPJDK_DEP=$(LDAPJARFILE)
-
-#PACKAGE_UNDER_JAVA += $(LDAPJARFILE)
-
-ifndef LDAPJDK_PULL_METHOD
-LDAPJDK_PULL_METHOD = $(COMPONENT_PULL_METHOD)
-endif
-
-$(LDAPJDK_DEP): $(CLASS_DEST)
-ifdef COMPONENT_DEPS
-	$(FTP_PULL) -method $(LDAPJDK_PULL_METHOD) \
-		-objdir $(CLASS_DEST) -componentdir $(LDAPJDK_IMPORT) \
-		-files $(LDAPJDK)
-endif
-	-@if [ ! -f $@ ] ; \
-	then echo "Error: could not get component LDAPJDK file $@" ; \
-	fi
-
-###########################################################
-
-# MCC java classes - the Mission Control Console #########
-MCC_VERSION=$(MCC_RELDATE)$(SEC_SUFFIX)
-#
-MCCJAR = mcc$(MCC_REL).jar
-MCCJAR_EN = mcc$(MCC_REL)_en.jar
-NMCLFJAR = nmclf$(MCC_REL).jar
-NMCLFJAR_EN = nmclf$(MCC_REL)_en.jar
-BASEJAR = base.jar
-#MCC_RELEASE=$(COMPONENTS_DIR_DEV)
-MCC_RELEASE=$(COMPONENTS_DIR)
-MCC_JARDIR = $(MCC_RELEASE)/$(MCC_COMP)/$(MCC_VERSION)/jars
-MCCJARFILE=$(CLASS_DEST)/$(MCCJAR)
-NMCLFJARFILE=$(CLASS_DEST)/$(NMCLFJAR)
-BASEJARFILE=$(CLASS_DEST)/$(BASEJAR)
-
-MCC_DEP = $(BASEJARFILE)
-MCC_FILES=$(MCCJAR),$(MCCJAR_EN),$(NMCLFJAR),$(NMCLFJAR_EN),$(BASEJAR)
-
-#PACKAGE_UNDER_JAVA += $(addprefix $(CLASS_DEST)/,$(subst $(COMMA),$(SPACE),$(MCC_FILES)))
-
-ifndef MCC_PULL_METHOD
-MCC_PULL_METHOD = $(COMPONENT_PULL_METHOD)
-endif
-
-$(MCC_DEP): $(CLASS_DEST)
-ifdef COMPONENT_DEPS
-	$(FTP_PULL) -method $(MCC_PULL_METHOD) \
-		-objdir $(CLASS_DEST) -componentdir $(MCC_JARDIR) \
-		-files $(MCC_FILES)
-endif
-	-@if [ ! -f $@ ] ; \
-	then echo "Error: could not get component MCC file $@" ; \
-	fi
-
-###########################################################
-# LDAP Console java classes
-###########################################################
-LDAPCONSOLEJAR = ds$(LDAPCONSOLE_REL).jar
-LDAPCONSOLEJAR_EN = ds$(LDAPCONSOLE_REL)_en.jar
-                                                                                                                            
-LDAPCONSOLE_RELEASE=$(COMPONENTS_DIR_DEV)
-LDAPCONSOLE_JARDIR = $(LDAPCONSOLE_RELEASE)/$(LDAPCONSOLE_COMP)ext/$(LDAPCONSOLE_RELDATE)/jars
-LDAPCONSOLE_DEP = $(CLASS_DEST)/$(LDAPCONSOLEJAR)
-LDAPCONSOLE_FILES=$(LDAPCONSOLEJAR),$(LDAPCONSOLEJAR_EN)
-
-ifndef LDAPCONSOLE_PULL_METHOD
-LDAPCONSOLE_PULL_METHOD = $(COMPONENT_PULL_METHOD)
-endif
-                                                                                                                            
-$(LDAPCONSOLE_DEP): $(CLASS_DEST)
-ifdef COMPONENT_DEPS
-	$(FTP_PULL) -method $(LDAPCONSOLE_PULL_METHOD) \
-		-objdir $(CLASS_DEST) -componentdir $(LDAPCONSOLE_JARDIR) \
-		-files $(LDAPCONSOLE_FILES)
-endif
-	-@if [ ! -f $@ ] ; \
-	then echo "Error: could not get component LDAPCONSOLE file $@" ; \
-	fi
-
-###########################################################
-### Perldap package #######################################
-
-PERLDAP_COMPONENT_DIR = $(COMPONENTS_DIR)/perldap/$(PERLDAP_VERSION)/$(NSOBJDIR_NAME_32)
-PERLDAP_ZIP_FILE = perldap14.zip
-
-###########################################################
-
-# JSS classes - for the Mission Control Console ######
-JSSJAR = jss$(JSS_JAR_VERSION).jar
-JSSJARFILE = $(CLASS_DEST)/$(JSSJAR)
-JSS_RELEASE = $(COMPONENTS_DIR)/$(JSS_COMP)/$(JSS_VERSION)
-JSS_DEP = $(JSSJARFILE)
-
-#PACKAGE_UNDER_JAVA += $(JSSJARFILE)
-
-ifndef JSS_PULL_METHOD
-JSS_PULL_METHOD = $(COMPONENT_PULL_METHOD)
-endif
-
-$(JSS_DEP): $(CLASS_DEST)
-ifdef COMPONENT_DEPS
-ifdef VSFTPD_HACK
-# work around vsftpd -L problem
-	$(FTP_PULL) -method $(JSS_PULL_METHOD) \
-		-objdir $(CLASS_DEST)/jss -componentdir $(JSS_RELEASE) \
-        -files xpclass.jar
-	mv $(CLASS_DEST)/jss/xpclass.jar $(CLASS_DEST)/$(JSSJAR)
-	rm -rf $(CLASS_DEST)/jss
-else
-	$(FTP_PULL) -method $(JSS_PULL_METHOD) \
-		-objdir $(CLASS_DEST) -componentdir $(JSS_RELEASE) \
-		-files $(JSSJAR)
-endif
-endif
-	-@if [ ! -f $@ ] ; \
-	then echo "Error: could not get component JSS file $@" ; \
-	fi
-
-###########################################################
+### SASL package ##########################################
 
-###########################################################
-### Admin Server package ##################################
-
-ADMIN_REL = $(ADM_VERSDIR)
-ADMIN_REL_DATE = $(ADM_VERSION)
-ADMIN_FILE = admserv.tar.gz
-ADMIN_FILE_TAR = admserv.tar
-ADMSDKOBJDIR = $(NSCONFIG)$(NSOBJDIR_TAG).OBJ
-IMPORTADMINSRV_BASE=$(COMPONENTS_DIR)/$(ADMIN_REL)/$(ADMIN_REL_DATE)
-IMPORTADMINSRV = $(IMPORTADMINSRV_BASE)/$(NSOBJDIR_NAME_32)
-ADMSERV_DIR=$(ABS_ROOT_PARENT)/dist/$(NSOBJDIR_NAME)/admserv
-ADMSERV_DEP = $(ADMSERV_DIR)/setup$(EXE_SUFFIX)
-
-ifdef FORTEZZA
-  ADM_VERSION = $(ADM_RELDATE)F
+ifdef SASL_SOURCE_ROOT
+  SASL_LIBPATH = $(SASL_SOURCE_ROOT)/lib
+  SASL_BINPATH = $(SASL_SOURCE_ROOT)/bin
+  SASL_INCDIR = $(SASL_SOURCE_ROOT)/include
 else
-  ifeq ($(SECURITY), domestic)
-    ADM_VERSION = $(ADM_RELDATE)D
-  else
-    ifneq ($(ARCH), IRIX)
-        ADM_VERSION = $(ADM_RELDATE)E
-    else
-        ADM_VERSION = $(ADM_RELDATE)D
-    endif
-  endif
+  SASL_LIBPATH = $(SASL_BUILD_DIR)/lib
+  SASL_BINPATH = $(SASL_BUILD_DIR)/bin
+  SASL_INCDIR = $(SASL_BUILD_DIR)/include
 endif
+SASL_INCLUDE = $(SASL_INCDIR)
+SASL_LIB_ROOT_NAME = sasl
+# for cyrus it's sasl2
+#SASL_LIB_ROOT_NAME = sasl2
 
-ADM_VERSION = $(ADM_RELDATE)$(SEC_SUFFIX)
-ADM_RELEASE = $(COMPONENTS_DIR)/$(ADM_VERSDIR)/$(ADM_VERSION)/$(NSOBJDIR_NAME)
-
-ifndef ADMSERV_PULL_METHOD
-ADMSERV_PULL_METHOD = $(COMPONENT_PULL_METHOD)
-endif
-
-ifndef ADMSERV_DEPS
-ADMSERV_DEPS = $(COMPONENT_DEPS)
-endif
-#IMPORTADMINSRV = /share/builds/sbsrel1/admsvr/admsvr62/ships/20030702.2/spd04_Solaris8/SunOS5.8-domestic-optimize-normal
-#ADM_RELEASE = /share/builds/sbsrel1/admsvr/admsvr62/ships/20030702.2/spd04_Solaris8/SunOS5.8-domestic-optimize-normal
-$(ADMSERV_DEP): $(ABS_ROOT_PARENT)/dist/$(NSOBJDIR_NAME)
-ifdef ADMSERV_DEPS
-	$(FTP_PULL) -method $(ADMSERV_PULL_METHOD) \
-		-objdir $(ADMSERV_DIR) -componentdir $(IMPORTADMINSRV) \
-		-files $(ADMIN_FILE) -unzip $(ADMSERV_DIR)
-endif
-	@if [ ! -f $@ ] ; \
-	then echo "Error: could not get component ADMINSERV file $@" ; \
-	exit 1 ; \
-	fi
-### Admin Server END ######################################
-
-
-
-### SASL package ##########################################
-
-SASL_BUILD_DIR = $(NSCP_DISTDIR_FULL_RTL)/sasl
-SASL_RELEASE = $(COMPONENTS_DIR)/sasl/$(SASL_VERSDIR)/$(SASL_RELDATE)/$(NSOBJDIR_NAME)
-SASL_LIBPATH = $(SASL_BUILD_DIR)/lib
-SASL_BINPATH = $(SASL_BUILD_DIR)/bin
-SASL_INCLUDE = $(SASL_BUILD_DIR)/include
-SASL_DEP = $(SASL_INCLUDE)/sasl.h
 ifeq ($(ARCH), WINNT)
-SASL_LINK = /LIBPATH:$(SASL_LIBPATH) sasl.lib
+  SASL_LINK = /LIBPATH:$(SASL_LIBPATH) $(SASL_LIB_ROOT_NAME).lib
 else
-ifeq ($(ARCH), SOLARIS)
-GSSAPI_LIBS=-lgss
-endif
+  ifeq ($(ARCH), SOLARIS)
+    GSSAPI_LIBS=-lgss
+  endif
 #ifeq ($(ARCH), HPUX)
-GSSAPI_LIBS=-lgss
+  GSSAPI_LIBS=-lgss
 #endif
-ifeq ($(ARCH), Linux)
-GSSAPI_LIBS=-L/usr/kerberos/lib -lgssapi_krb5
-endif
-SASL_LINK = -L$(SASL_LIBPATH) -lsasl $(GSSAPI_LIBS)
-#SASL_LINK = -L$(SASL_LIBPATH) -lsasl
-endif
-
-ifndef SASL_PULL_METHOD
-SASL_PULL_METHOD = $(COMPONENT_PULL_METHOD)
-endif
-
-$(SASL_DEP): $(NSCP_DISTDIR_FULL_RTL)
-ifdef COMPONENT_DEPS
-ifdef VSFTPD_HACK
-	$(FTP_PULL) -method $(SASL_PULL_METHOD) \
-		-objdir $(SASL_BUILD_DIR) -componentdir $(SASL_RELEASE) \
-		-files lib
-	$(FTP_PULL) -method $(SASL_PULL_METHOD) \
-		-objdir $(SASL_INCLUDE) -componentdir $(SASL_RELEASE)/../public \
-		-files .\*.h
-else
-	$(FTP_PULL) -method $(SASL_PULL_METHOD) \
-		-objdir $(SASL_BUILD_DIR) -componentdir $(SASL_RELEASE) \
-		-files lib,include
-
-endif
-endif
-	-@if [ ! -f $@ ] ; \
-	then echo "Error: could not get component SASL file $@" ; \
-	fi
-
-###########################################################
-
-### JSP compiler package ##################################
-
-JSPC_REL = $(JSPC_VERSDIR)
-JSPC_REL_DATE = $(JSPC_VERSION)
-JSPC_FILES = jasper-compiler.jar jasper-runtime.jar
-JSPC_RELEASE = $(COMPONENTS_DIR)
-JSPC_DIR = $(JSPC_RELEASE)/$(JSPC_COMP)/$(JSPC_VERSION)
-JSPC_DEP = $(addprefix $(CLASS_DEST)/, $(JSPC_FILES))
-JSPC_CP = $(subst $(SPACE),$(PATH_SEP),$(JSPC_DEP))
-JSPC_PULL = $(subst $(SPACE),$(COMMA),$(JSPC_FILES))
-
-ifndef JSPC_PULL_METHOD
-JSPC_PULL_METHOD = $(COMPONENT_PULL_METHOD)
-endif
-
-$(JSPC_DEP): $(CLASS_DEST)
-ifdef COMPONENT_DEPS
-	echo "Inside ftppull"
-	$(FTP_PULL) -method $(COMPONENT_PULL_METHOD) \
-		-objdir $(CLASS_DEST) -componentdir $(JSPC_DIR) \
-		-files $(JSPC_PULL)
+  ifeq ($(ARCH), Linux)
+    GSSAPI_LIBS=-L/usr/kerberos/lib -lgssapi_krb5
+  endif
+  SASL_LINK = -L$(SASL_LIBPATH) -l$(SASL_LIB_ROOT_NAME) $(GSSAPI_LIBS)
+#SASL_LINK = -L$(SASL_LIBPATH) -l$(SASL_LIB_ROOT_NAME)
 endif
-	-@if [ ! -f $@ ] ; \
-	then echo "Error: could not get component jspc files $@" ; \
-	fi
 
 ###########################################################
 
 ### ICU package ##########################################
 
 ICU_LIB_VERSION = 24
-ICU_BUILD_DIR = $(NSCP_DISTDIR_FULL_RTL)/libicu
-ICU_RELEASE = $(COMPONENTS_DIR)/libicu/$(ICU_VERSDIR)/$(ICU_RELDATE)/$(NSOBJDIR_NAME)
-ICU_LIBPATH = $(ICU_BUILD_DIR)/lib
-ICU_BINPATH = $(ICU_BUILD_DIR)/bin
-ICU_INCPATH = $(ICU_BUILD_DIR)/include
-ICU_DEP = $(ICU_INCPATH)/unicode/unicode.h
-ICU_INCLUDE = -I$(ICU_INCPATH)
-ifeq ($(ARCH), WINNT)
-ifeq ($(BUILD_DEBUG), optimize)
-ICU_LIB_SUF=
+ifdef ICU_SOURCE_ROOT
+  ICU_LIBPATH = $(ICU_SOURCE_ROOT)/built/lib
+  ICU_BINPATH = $(ICU_SOURCE_ROOT)/built/bin
+  ICU_INCPATH = $(ICU_SOURCE_ROOT)/built/include
 else
-ICU_LIB_SUF=d
+  ICU_LIBPATH = $(ICU_BUILD_DIR)/lib
+  ICU_BINPATH = $(ICU_BUILD_DIR)/bin
+  ICU_INCPATH = $(ICU_BUILD_DIR)/include
 endif
-ICU_LIBNAMES = icuin$(ICU_LIB_SUF) icuuc$(ICU_LIB_SUF) icudata
-ICU_DLLNAMES = icuin$(ICU_LIB_VERSION)$(ICU_LIB_SUF) icuuc$(ICU_LIB_VERSION)$(ICU_LIB_SUF) icudt$(ICU_LIB_VERSION)l
-ICULINK = /LIBPATH:$(ICU_LIBPATH) $(addsuffix .$(LIB_SUFFIX),$(ICU_LIBNAMES))
-LIBS_TO_PKG += $(addsuffix .$(DLL_SUFFIX),$(addprefix $(ICU_BINPATH)/,$(ICU_DLLNAMES)))
-LIBS_TO_PKG_SHARED += $(addsuffix .$(DLL_SUFFIX),$(addprefix $(ICU_BINPATH)/,$(ICU_DLLNAMES)))
-LIBS_TO_PKG_CLIENTS += $(addsuffix .$(DLL_SUFFIX),$(addprefix $(ICU_BINPATH)/,$(ICU_DLLNAMES)))
+ICU_INCLUDE = -I$(ICU_INCPATH)
+ifeq ($(ARCH), WINNT)
+  ifeq ($(BUILD_DEBUG), optimize)
+    ICU_LIB_SUF=
+  else
+    ICU_LIB_SUF=d
+  endif
+  ICU_LIBNAMES = icuin$(ICU_LIB_SUF) icuuc$(ICU_LIB_SUF) icudata
+  ICU_DLLNAMES = icuin$(ICU_LIB_VERSION)$(ICU_LIB_SUF) icuuc$(ICU_LIB_VERSION)$(ICU_LIB_SUF) icudt$(ICU_LIB_VERSION)l
+  ICULINK = /LIBPATH:$(ICU_LIBPATH) $(addsuffix .$(LIB_SUFFIX),$(ICU_LIBNAMES))
+  LIBS_TO_PKG += $(addsuffix .$(DLL_SUFFIX),$(addprefix $(ICU_BINPATH)/,$(ICU_DLLNAMES)))
+  LIBS_TO_PKG_SHARED += $(addsuffix .$(DLL_SUFFIX),$(addprefix $(ICU_BINPATH)/,$(ICU_DLLNAMES)))
+  ifeq ($(USE_DSGW), 1)
+    LIBS_TO_PKG_CLIENTS += $(addsuffix .$(DLL_SUFFIX),$(addprefix $(ICU_BINPATH)/,$(ICU_DLLNAMES)))
+  endif
 else
-ICU_LIBNAMES = icui18n icuuc icudata
-ICULINK = -L$(ICU_LIBPATH) $(addprefix -l, $(ICU_LIBNAMES))
-LIBS_TO_PKG += $(addsuffix .$(ICU_LIB_VERSION),$(addsuffix .$(DLL_SUFFIX),$(addprefix $(ICU_LIBPATH)/,$(addprefix lib,$(ICU_LIBNAMES)))))
-LIBS_TO_PKG_SHARED += $(addsuffix .$(ICU_LIB_VERSION),$(addsuffix .$(DLL_SUFFIX),$(addprefix $(ICU_LIBPATH)/,$(addprefix lib,$(ICU_LIBNAMES)))))
-LIBS_TO_PKG_CLIENTS += $(addsuffix .$(ICU_LIB_VERSION),$(addsuffix .$(DLL_SUFFIX),$(addprefix $(ICU_LIBPATH)/,$(addprefix lib,$(ICU_LIBNAMES)))))
+  ICU_LIBNAMES = icui18n icuuc icudata
+  ICULINK = -L$(ICU_LIBPATH) $(addprefix -l, $(ICU_LIBNAMES))
+  LIBS_TO_PKG += $(addsuffix .$(ICU_LIB_VERSION),$(addsuffix .$(DLL_SUFFIX),$(addprefix $(ICU_LIBPATH)/,$(addprefix lib,$(ICU_LIBNAMES)))))
+  LIBS_TO_PKG_SHARED += $(addsuffix .$(ICU_LIB_VERSION),$(addsuffix .$(DLL_SUFFIX),$(addprefix $(ICU_LIBPATH)/,$(addprefix lib,$(ICU_LIBNAMES)))))
+  ifeq ($(USE_DSGW), 1)
+    LIBS_TO_PKG_CLIENTS += $(addsuffix .$(ICU_LIB_VERSION),$(addsuffix .$(DLL_SUFFIX),$(addprefix $(ICU_LIBPATH)/,$(addprefix lib,$(ICU_LIBNAMES)))))
+  endif
 #LIBS_TO_PKG = $(addsuffix $(addprefix lib,$(ICU_LIBNAMES))
 endif
 
 BINS_TO_PKG_SHARED += $(ICU_BINPATH)/uconv$(EXE_SUFFIX)
 
-ifndef ICU_PULL_METHOD
-ICU_PULL_METHOD = $(COMPONENT_PULL_METHOD)
-endif
+###########################################################
 
-$(ICU_DEP): $(NSCP_DISTDIR_FULL_RTL)
-ifdef COMPONENT_DEPS
-	$(FTP_PULL) -method $(ICU_PULL_METHOD) \
-		-objdir $(ICU_BUILD_DIR) -componentdir $(ICU_RELEASE) \
-		-files lib,include,bin
+### DB component (Berkeley DB) ############################
+DB_LIBNAME=lib$(DB_MAJOR_MINOR)
+ifdef DB_SOURCE_ROOT
+  DB_INCLUDE =$(DB_SOURCE_ROOT)/built
+  DB_LIBPATH =$(DB_SOURCE_ROOT)/built/.libs
+  DB_BINPATH =$(DB_SOURCE_ROOT)/built
+else
+  DB_INCLUDE =$(db_path_config)/include
+  DB_LIBPATH =$(db_path_config)/lib
+  DB_BINPATH =$(db_path_config)/bin
 endif
-	-@if [ ! -f $@ ] ; \
-	then echo "Error: could not get component ICU file $@" ; \
-	fi
+ifeq ($(ARCH), WINNT)
+  db_import_lib_suffix =$(LIB_SUFFIX)
+  DB_LIB =$(DB_LIBPATH)/$(DB_LIBNAME).$(db_import_lib_suffix)
+  DB_STATIC_LIB =$(DB_LIBPATH)/$(DB_LIBNAME).$(LIB_SUFFIX)
+else	# not WINNT
+  db_import_lib_suffix =$(DLL_SUFFIX)
+  DB_LIB =-L$(DB_LIBPATH) -l$(DB_MAJOR_MINOR)
+# XXXsspitzer: we need the spinlock symbols staticly linked in to libdb
+  DB_STATIC_LIB =-L$(DB_LIBPATH) -ldbs
+endif	# not WINNT
 
-###########################################################
+# libdb only needs to be in the server directory since only the server uses it
+PACKAGE_SRC_DEST += $(wildcard $(DB_LIBPATH)/*.$(DLL_SUFFIX)) bin/slapd/server
+
+### DB component (Berkeley DB) ############################
+
+# must define dependencies last because they depend on the definitions above
+ifeq ($(INTERNAL_BUILD), 1)
+include $(BUILD_ROOT)/internal_comp_deps.mk
+endif

+ 90 - 0
internal_buildpaths.mk

@@ -0,0 +1,90 @@
+#
+# BEGIN COPYRIGHT BLOCK
+# Copyright (C) 2005 Red Hat, Inc.
+# All rights reserved.
+# END COPYRIGHT BLOCK
+#
+# This file is where you tell the build process where to find the
+# various components used during the build process.
+
+# You can either use components built locally from source or
+# pre-built components.  The reason for the different macros
+# for SOURCE and BUILD is that the locations for the libs, includes,
+# etc. are usually different for packages built from source vs.
+# pre-built packages.  As an example, when building NSPR from
+# source, the includes are in mozilla/dist/$(OBJDIR_NAME)/include
+# where OBJDIR_NAME includes the OS, arch, compiler, thread model, etc.
+# When using the pre-built NSPR from Mozilla FTP, the include files
+# are just in nsprdir/include.  This is why we have to make the
+# distinction between a SOURCE component and a BUILD (pre-built)
+# component.  See components.mk for the gory details.
+
+# For each component, specify the source root OR the pre-built
+# component directory.  If both a SOURCE_ROOT and a BUILD_DIR are
+# defined for a component, the SOURCE_ROOT will be used - don't do
+# this, it's confusing.
+
+# For the Mozilla components, if using source for all of them,
+# you can just define MOZILLA_SOURCE_ROOT - the build will
+# assume all of them have been built in that same directory
+# (as per the recommended build instructions)
+
+# For all components, the recommended way is to put each
+# component in a subdirectory of the parent directory of
+# BUILD_ROOT, both with pre-built and source components
+
+# work around vsftpd -L problem
+ifeq ($(COMPONENT_PULL_METHOD), FTP)
+ifdef USING_VSFTPD
+VSFTPD_HACK=1
+endif
+endif
+
+#MOZILLA_SOURCE_ROOT = $(BUILD_ROOT)/../mozilla
+
+#NSPR_SOURCE_ROOT = $(MOZILLA_SOURCE_ROOT)
+ifndef NSPR_SOURCE_ROOT
+NSPR_BUILD_DIR = $(NSCP_DISTDIR_FULL_RTL)/nspr
+# NSPR also needs a build dir with a full, absolute path for some reason
+NSPR_ABS_BUILD_DIR = $(NSCP_ABS_DISTDIR_FULL_RTL)/nspr
+endif # NSPR_SOURCE_ROOT
+
+#DBM_SOURCE_ROOT = $(MOZILLA_SOURCE_ROOT)
+ifndef DBM_SOURCE_ROOT
+DBM_BUILD_DIR = $(NSCP_DISTDIR_FULL_RTL)/dbm
+endif # DBM_SOURCE_ROOT
+
+#SECURITY_SOURCE_ROOT = $(MOZILLA_SOURCE_ROOT)
+ifndef SECURITY_SOURCE_ROOT
+SECURITY_BUILD_DIR = $(NSCP_DISTDIR_FULL_RTL)/nss
+endif # SECURITY_SOURCE_ROOT
+
+#SVRCORE_SOURCE_ROOT = $(MOZILLA_SOURCE_ROOT)
+ifndef SVRCORE_SOURCE_ROOT
+SVRCORE_BUILD_DIR = $(NSCP_DISTDIR)/svrcore
+endif # SVRCORE_SOURCE_ROOT
+
+#LDAPSDK_SOURCE_ROOT = $(MOZILLA_SOURCE_ROOT)
+ifndef LDAPSDK_SOURCE_ROOT
+LDAP_ROOT = $(NSCP_DISTDIR_FULL_RTL)/ldapsdk
+endif # LDAPSDK_SOURCE_ROOT
+
+#SASL_SOURCE_ROOT = $(BUILD_ROOT)/../cyrus-sasl-2.1.20
+ifndef SASL_SOURCE_ROOT
+SASL_BUILD_DIR = $(NSCP_DISTDIR_FULL_RTL)/sasl
+endif # SASL_SOURCE_ROOT
+
+#ICU_SOURCE_ROOT = $(BUILD_ROOT)/../icu
+ifndef ICU_SOURCE_ROOT
+ICU_BUILD_DIR = $(NSCP_DISTDIR_FULL_RTL)/libicu
+endif # ICU_SOURCE_ROOT
+
+#DB_SOURCE_ROOT = $(BUILD_ROOT)/../db-4.2.52.NC
+# DB_MAJOR_MINOR is the root name for the db shared library
+# source builds use db-4.2 - uncomment this if using source
+#DB_MAJOR_MINOR := db-4.2
+ifndef DB_SOURCE_ROOT
+DB_MAJOR_MINOR := db42
+component_name:=$(DB_MAJOR_MINOR)
+db_path_config =$(NSCP_DISTDIR)/$(component_name)
+endif # DB_SOURCE_ROOT

+ 703 - 0
internal_comp_deps.mk

@@ -0,0 +1,703 @@
+#
+# BEGIN COPYRIGHT BLOCK
+# Copyright (C) 2005 Red Hat, Inc.
+# All rights reserved.
+# END COPYRIGHT BLOCK
+#
+# This file defines dependencies for components and 
+# tells how to satisfy thoes dependencies
+
+# For internal components, we use ftp_puller_new.pl
+# We should consider using wget or something like that
+# in the future.
+
+ifndef NSPR_SOURCE_ROOT
+NSPR_IMPORT = $(COMPONENTS_DIR)/nspr20/$(NSPR_RELDATE)/$(FULL_RTL_OBJDIR)
+NSPR_DEP = $(NSPR_LIBPATH)/libnspr4.$(LIB_SUFFIX)
+
+ifndef NSPR_PULL_METHOD
+NSPR_PULL_METHOD = $(COMPONENT_PULL_METHOD)
+endif
+
+$(NSPR_DEP): $(NSCP_DISTDIR_FULL_RTL)
+ifdef COMPONENT_DEPS
+	$(FTP_PULL) -method $(NSPR_PULL_METHOD) \
+		-objdir $(NSPR_BUILD_DIR) -componentdir $(NSPR_IMPORT) \
+		-files lib,include
+endif
+	-@if [ ! -f $@ ] ; \
+	then echo "Error: could not get component NSPR file $@" ; \
+	fi
+endif # NSPR_SOURCE_ROOT
+
+ifndef DBM_SOURCE_ROOT
+DBM_IMPORT = $(COMPONENTS_DIR)/dbm/$(DBM_RELDATE)/$(NSOBJDIR_NAME)
+ifeq ($(ARCH), WINNT)
+  DBM_DEP = $(DBM_LIBPATH)/dbm.$(LIB_SUFFIX)
+else
+  DBM_DEP = $(DBM_LIBPATH)/libdbm.$(LIB_SUFFIX)
+endif
+
+ifndef DBM_PULL_METHOD
+DBM_PULL_METHOD = $(COMPONENT_PULL_METHOD)
+endif
+
+$(DBM_DEP): $(NSCP_DISTDIR_FULL_RTL)
+ifdef COMPONENT_DEPS
+	$(FTP_PULL) -method $(DBM_PULL_METHOD) \
+		-objdir $(DBM_BUILD_DIR) -componentdir $(DBM_IMPORT)/.. \
+		-files xpheader.jar -unzip $(DBM_INCDIR)
+	$(FTP_PULL) -method $(DBM_PULL_METHOD) \
+		-objdir $(DBM_BUILD_DIR) -componentdir $(DBM_IMPORT) \
+		-files mdbinary.jar -unzip $(DBM_BUILD_DIR)
+endif
+	-@if [ ! -f $@ ] ; \
+	then echo "Error: could not get component DBM file $@" ; \
+	fi
+endif # DBM_SOURCE_ROOT
+
+ifndef SECURITY_SOURCE_ROOT
+SECURITY_IMPORT = $(COMPONENTS_DIR)/nss/$(SECURITY_RELDATE)/$(FULL_RTL_OBJDIR)
+ifeq ($(ARCH), WINNT)
+  SECURITY_DEP = $(SECURITY_LIBPATH)/ssl3.$(DLL_SUFFIX)
+else
+  SECURITY_DEP = $(SECURITY_LIBPATH)/libssl3.$(DLL_SUFFIX)
+endif
+
+ifdef VSFTPD_HACK
+SECURITY_FILES=lib,bin/$(subst $(SPACE),$(COMMA)bin/,$(SECURITY_TOOLS))
+else
+SECURITY_FILES=lib,include,bin/$(subst $(SPACE),$(COMMA)bin/,$(SECURITY_TOOLS))
+endif
+
+ifndef SECURITY_PULL_METHOD
+SECURITY_PULL_METHOD = $(COMPONENT_PULL_METHOD)
+endif
+
+$(SECURITY_DEP): $(NSCP_DISTDIR_FULL_RTL)
+ifdef COMPONENT_DEPS
+	mkdir -p $(SECURITY_BINPATH)
+	$(FTP_PULL) -method $(SECURITY_PULL_METHOD) \
+		-objdir $(SECURITY_BUILD_DIR) -componentdir $(SECURITY_IMPORT) \
+		-files $(SECURITY_FILES)
+ifdef VSFTPD_HACK
+# work around vsftpd -L problem
+	$(FTP_PULL) -method $(SECURITY_PULL_METHOD) \
+		-objdir $(SECURITY_BUILD_DIR) -componentdir $(COMPONENTS_DIR)/nss/$(SECURITY_RELDATE) \
+		-files include
+endif
+endif
+	-@if [ ! -f $@ ] ; \
+	then echo "Error: could not get component NSS file $@" ; \
+	fi
+endif # SECURITY_SOURCE_ROOT
+
+ifndef SVRCORE_SOURCE_ROOT
+SVRCORE_IMPORT = $(COMPONENTS_DIR)/svrcore/$(SVRCORE_RELDATE)/$(NSOBJDIR_NAME)
+#SVRCORE_IMPORT = $(COMPONENTS_DIR_DEV)/svrcore/$(SVRCORE_RELDATE)/$(NSOBJDIR_NAME)
+ifeq ($(ARCH), WINNT)
+  SVRCORE_DEP = $(SVRCORE_LIBPATH)/svrcore.$(LIB_SUFFIX)
+else
+  SVRCORE_DEP = $(SVRCORE_LIBPATH)/libsvrcore.$(LIB_SUFFIX)
+endif
+
+ifndef SVRCORE_PULL_METHOD
+SVRCORE_PULL_METHOD = $(COMPONENT_PULL_METHOD)
+endif
+
+$(SVRCORE_DEP): $(NSCP_DISTDIR)
+ifdef COMPONENT_DEPS
+	$(FTP_PULL) -method $(SVRCORE_PULL_METHOD) \
+		-objdir $(SVRCORE_BUILD_DIR) -componentdir $(SVRCORE_IMPORT)/.. \
+		-files xpheader.jar -unzip $(SVRCORE_INCDIR)
+	$(FTP_PULL) -method $(SVRCORE_PULL_METHOD) \
+		-objdir $(SVRCORE_BUILD_DIR) -componentdir $(SVRCORE_IMPORT) \
+		-files mdbinary.jar -unzip $(SVRCORE_BUILD_DIR)
+endif
+	-@if [ ! -f $@ ] ; \
+	then echo "Error: could not get component SVRCORE file $@" ; \
+	fi
+endif # SVRCORE_SOURCE_ROOT
+
+ifndef LDAPSDK_SOURCE_ROOT
+ifndef LDAP_VERSION
+  LDAP_VERSION = $(LDAP_RELDATE)$(SEC_SUFFIX)
+endif
+ifndef LDAP_SBC
+# LDAP_SBC = $(COMPONENTS_DIR_DEV)
+LDAP_SBC = $(COMPONENTS_DIR)
+endif
+LDAPOBJDIR = $(FULL_RTL_OBJDIR)
+# LDAP does not have PTH version, so here is the hack which treat non PTH
+# version as PTH version
+ifeq ($(USE_PTHREADS), 1)
+  LDAP_RELEASE = $(LDAP_SBC)/$(LDAPCOMP_DIR)/$(LDAP_VERSION)/$(NSOBJDIR_NAME1)
+else
+  LDAP_RELEASE = $(LDAP_SBC)/$(LDAPCOMP_DIR)/$(LDAP_VERSION)/$(LDAPOBJDIR)
+endif
+ifeq ($(ARCH), WINNT)
+  LDAPSDK_DEP = $(LDAPSDK_LIBPATH)/nsldap32v$(LDAP_SUF).$(DLL_SUFFIX)
+  LDAPSDK_PULL_LIBS = lib/nsldapssl32v$(LDAP_SUF).$(LIB_SUFFIX),lib/nsldapssl32v$(LDAP_SUF).$(LDAP_DLL_SUFFIX),lib/nsldap32v$(LDAP_SUF).$(LIB_SUFFIX),lib/nsldap32v$(LDAP_SUF).$(LDAP_DLL_SUFFIX),lib/nsldappr32v$(LDAP_SUF).$(LIB_SUFFIX),lib/nsldappr32v$(LDAP_SUF).$(LDAP_DLL_SUFFIX)
+else
+  LDAPSDK_DEP = $(LDAPSDK_LIBPATH)/libldap$(LDAP_SUF).$(DLL_SUFFIX)
+  LDAPSDK_PULL_LIBS = lib/libssldap$(LDAP_SUF)$(LDAP_DLL_PRESUF).$(LDAP_DLL_SUFFIX),lib/libldap$(LDAP_SUF)$(LDAP_DLL_PRESUF).$(LDAP_DLL_SUFFIX),lib/libprldap$(LDAP_SUF)$(LDAP_DLL_PRESUF).$(LDAP_DLL_SUFFIX)
+endif
+
+ifndef LDAPSDK_PULL_METHOD
+LDAPSDK_PULL_METHOD = $(COMPONENT_PULL_METHOD)
+endif
+
+$(LDAPSDK_DEP): $(NSCP_DISTDIR_FULL_RTL)
+ifdef COMPONENT_DEPS
+	mkdir -p $(LDAP_LIBPATH)
+	$(FTP_PULL) -method $(LDAPSDK_PULL_METHOD) \
+		-objdir $(LDAP_ROOT) -componentdir $(LDAP_RELEASE) \
+		-files include,$(LDAPSDK_PULL_LIBS),tools
+endif
+	-@if [ ! -f $@ ] ; \
+	then echo "Error: could not get component LDAPSDK file $@" ; \
+	fi
+endif # LDAPSDK_SOURCE_ROOT
+
+ifndef SASL_SOURCE_ROOT
+#SASL_RELEASE = $(COMPONENTS_DIR_DEV)/sasl/$(SASL_VERSDIR)/$(SASL_RELDATE)/$(NSOBJDIR_NAME)
+SASL_RELEASE = $(COMPONENTS_DIR)/sasl/$(SASL_VERSDIR)/$(SASL_RELDATE)/$(NSOBJDIR_NAME)
+SASL_DEP = $(SASL_INCLUDE)/sasl.h
+ifndef SASL_PULL_METHOD
+SASL_PULL_METHOD = $(COMPONENT_PULL_METHOD)
+endif
+
+$(SASL_DEP): $(NSCP_DISTDIR_FULL_RTL)
+ifdef COMPONENT_DEPS
+	$(FTP_PULL) -method $(SASL_PULL_METHOD) \
+		-objdir $(SASL_BUILD_DIR) -componentdir $(SASL_RELEASE) \
+		-files lib,include
+
+endif
+	-@if [ ! -f $@ ] ; \
+	then echo "Error: could not get component SASL file $@" ; \
+	fi
+endif # SASL_SOURCE_ROOT
+
+ifndef ICU_SOURCE_ROOT
+ICU_RELEASE = $(COMPONENTS_DIR)/libicu/$(ICU_VERSDIR)/$(ICU_RELDATE)/$(NSOBJDIR_NAME)
+ICU_DEP = $(ICU_INCPATH)/unicode/ucol.h
+ifndef ICU_PULL_METHOD
+ICU_PULL_METHOD = $(COMPONENT_PULL_METHOD)
+endif
+
+$(ICU_DEP): $(NSCP_DISTDIR_FULL_RTL)
+ifdef COMPONENT_DEPS
+	$(FTP_PULL) -method $(ICU_PULL_METHOD) \
+		-objdir $(ICU_BUILD_DIR) -componentdir $(ICU_RELEASE) \
+		-files lib,include,bin
+endif
+	-@if [ ! -f $@ ] ; \
+	then echo "Error: could not get component ICU file $@" ; \
+	fi
+endif # ICU_SOURCE_ROOT
+
+ifndef DB_SOURCE_ROOT
+#if no version specified, we'll use the latest one
+ifndef DB_VERSION
+  DB_VERSION=20040130
+endif
+# define the paths to the component parts
+db_components_share=$(COMPONENTS_DIR)/$(component_name)
+MY_NSOBJDIR_TAG=$(NSOBJDIR_TAG).OBJ
+db_release_config =$(db_components_share)/$(DB_VERSION)/$(NSCONFIG_NOTAG)$(NS64TAG)$(MY_NSOBJDIR_TAG)
+# add ",bin" to DB_FILES if you want the programs like db_verify, db_recover, etc.
+DB_FILES=include,lib,bin
+
+ifeq ($(ARCH), WINNT)
+  DB_LIB_DEP =$(DB_STATIC_LIB)
+else	# not WINNT
+  DB_LIB_DEP =$(DB_LIBPATH)/$(DB_LIBNAME).$(DLL_SUFFIX)
+endif	# not WINNT
+
+ifndef DB_PULL_METHOD
+DB_PULL_METHOD = $(COMPONENT_PULL_METHOD)
+endif
+
+$(DB_LIB_DEP): $(NSCP_DISTDIR)
+ifdef COMPONENT_DEPS
+	$(FTP_PULL) -method $(DB_PULL_METHOD) \
+		-objdir $(db_path_config) -componentdir $(db_release_config) \
+		-files $(DB_FILES)
+endif
+	-@if [ ! -f $@ ] ; \
+	then echo "Error: could not get component $(component_name) file $@" ; \
+	fi
+endif # DB_SOURCE_ROOT
+
+######## END OF OPEN SOURCE COMPONENTS ######################
+
+######## The rest of these components are internal only (for now)
+
+# ADMINUTIL library #######################################
+ADMINUTIL_VERSION=$(ADMINUTIL_RELDATE)$(SEC_SUFFIX)
+ADMINUTIL_BASE=$(ADMINUTIL_VERSDIR)/${ADMINUTIL_VERSION}
+ADMSDKOBJDIR = $(FULL_RTL_OBJDIR)
+ADMINUTIL_IMPORT=$(COMPONENTS_DIR)/${ADMINUTIL_BASE}/$(NSOBJDIR_NAME)
+# this is the base directory under which the component's files will be found
+# during the build process
+ADMINUTIL_BUILD_DIR=$(NSCP_DISTDIR_FULL_RTL)/adminutil
+ADMINUTIL_LIBPATH=$(ADMINUTIL_BUILD_DIR)/lib
+ADMINUTIL_INCPATH=$(ADMINUTIL_BUILD_DIR)/include
+
+PACKAGE_SRC_DEST += $(ADMINUTIL_LIBPATH)/property bin/slapd/lib
+LIBS_TO_PKG += $(wildcard $(ADMINUTIL_LIBPATH)/*.$(DLL_SUFFIX))
+LIBS_TO_PKG_CLIENTS += $(wildcard $(ADMINUTIL_LIBPATH)/*.$(DLL_SUFFIX))
+
+#
+# Libadminutil
+#
+ADMINUTIL_DEP = $(ADMINUTIL_LIBPATH)/libadminutil$(ADMINUTIL_VER).$(LIB_SUFFIX)
+ifeq ($(ARCH), WINNT)
+ADMINUTIL_LINK = /LIBPATH:$(ADMINUTIL_LIBPATH) libadminutil$(ADMINUTIL_VER).$(LIB_SUFFIX)
+ADMINUTIL_S_LINK = /LIBPATH:$(ADMINUTIL_LIBPATH) libadminutil_s$(ADMINUTIL_VER).$(LIB_SUFFIX)
+LIBADMINUTILDLL_NAMES = $(ADMINUTIL_LIBPATH)/libadminutil$(ADMINUTIL_VER).$(DLL_SUFFIX)
+else
+ADMINUTIL_LINK=-L$(ADMINUTIL_LIBPATH) -ladminutil$(ADMINUTIL_VER)
+endif
+ADMINUTIL_INCLUDE=-I$(ADMINUTIL_INCPATH) \
+	-I$(ADMINUTIL_INCPATH)/libadminutil \
+	-I$(ADMINUTIL_INCPATH)/libadmsslutil
+
+ifndef ADMINUTIL_PULL_METHOD
+ADMINUTIL_PULL_METHOD = $(COMPONENT_PULL_METHOD)
+endif
+
+$(ADMINUTIL_DEP): ${NSCP_DISTDIR_FULL_RTL}
+ifdef COMPONENT_DEPS
+	$(FTP_PULL) -method $(ADMINUTIL_PULL_METHOD) \
+		-objdir $(ADMINUTIL_BUILD_DIR) \
+		-componentdir $(ADMINUTIL_IMPORT) \
+		-files include,lib
+endif
+	-@if [ ! -f $@ ] ; \
+	then echo "Error: could not get component adminutil file $@" ; \
+	fi
+
+###########################################################
+# Peer
+
+PEER_BUILD_DIR = $(NSCP_DISTDIR)/peer
+ifeq ($(ARCH), WINNT)
+# PEER_RELEASE = $(COMPONENTS_DIR)/peer/$(PEER_RELDATE)
+# PEER_FILES = include
+else
+PEER_RELEASE = $(COMPONENTS_DIR)/peer/$(PEER_RELDATE)/$(NSOBJDIR_NAME)
+PEER_FILES = obj
+PEER_DEP = $(PEER_OBJPATH)/ns-ldapagt
+endif
+# PEER_MGMTPATH = $(PEER_BUILD_DIR)/dev
+# PEER_INCDIR = $(PEER_BUILD_DIR)/include
+# PEER_BINPATH = $(PEER_BUILD_DIR)/dev
+PEER_OBJPATH = $(PEER_BUILD_DIR)/obj
+# PEER_INCLUDE = -I$(PEER_INCDIR)
+
+ifndef PEER_PULL_METHOD
+PEER_PULL_METHOD = $(COMPONENT_PULL_METHOD)
+endif
+
+$(PEER_DEP): $(NSCP_DISTDIR)
+ifdef COMPONENT_DEPS
+	$(FTP_PULL) -method $(PEER_PULL_METHOD) \
+		-objdir $(PEER_BUILD_DIR) -componentdir $(PEER_RELEASE) \
+		-files $(PEER_FILES)
+	-@if [ ! -f $@ ] ; \
+	then echo "Error: could not get component PEER file $@" ; \
+	fi
+endif
+
+###########################################################
+
+### SETUPSDK #############################
+# this is where the build looks for setupsdk components
+SETUP_SDK_BUILD_DIR = $(NSCP_DISTDIR)/setupsdk
+SETUPSDK_VERSION = $(SETUP_SDK_RELDATE)$(SEC_SUFFIX)
+SETUPSDK_RELEASE = $(COMPONENTS_DIR)/setupsdk/$(SETUPSDK_VERSDIR)/$(SETUPSDK_VERSION)/$(NSOBJDIR_NAME)
+SETUPSDK_LIBPATH = $(SETUP_SDK_BUILD_DIR)/lib
+SETUPSDK_INCDIR = $(SETUP_SDK_BUILD_DIR)/include
+SETUPSDK_BINPATH = $(SETUP_SDK_BUILD_DIR)/bin
+SETUPSDK_INCLUDE = -I$(SETUPSDK_INCDIR)
+
+ifeq ($(ARCH), WINNT)
+SETUP_SDK_FILES = setupsdk.tar.gz -unzip $(NSCP_DISTDIR)/setupsdk
+SETUPSDK_DEP = $(SETUPSDK_LIBPATH)/nssetup32.$(LIB_SUFFIX)
+SETUPSDKLINK = /LIBPATH:$(SETUPSDK_LIBPATH) nssetup32.$(LIB_SUFFIX)
+SETUPSDK_S_LINK = /LIBPATH:$(SETUPSDK_LIBPATH) nssetup32_s.$(LIB_SUFFIX)
+else
+SETUP_SDK_FILES = bin,lib,include
+SETUPSDK_DEP = $(SETUPSDK_LIBPATH)/libinstall.$(LIB_SUFFIX)
+SETUPSDKLINK = -L$(SETUPSDK_LIBPATH) -linstall
+SETUPSDK_S_LINK = $(SETUPSDKLINK)
+endif
+
+ifndef SETUPSDK_PULL_METHOD
+SETUPSDK_PULL_METHOD = $(COMPONENT_PULL_METHOD)
+endif
+
+$(SETUPSDK_DEP): $(NSCP_DISTDIR)
+ifdef COMPONENT_DEPS
+	$(FTP_PULL) -method $(SETUPSDK_PULL_METHOD) \
+		-objdir $(SETUP_SDK_BUILD_DIR) -componentdir $(SETUPSDK_RELEASE) \
+		-files $(SETUP_SDK_FILES)
+endif
+	-@if [ ! -f $@ ] ; \
+	then echo "Error: could not get component SETUPSDK file $@" ; \
+	fi
+# apache-axis java classes #######################################
+AXIS = axis-bin-$(AXIS_VERSION).zip
+AXIS_FILES = $(AXIS)
+AXIS_RELEASE = $(COMPONENTS_DIR)/axis
+#AXISJAR_DIR = $(AXISJAR_RELEASE)/$(AXISJAR_COMP)/$(AXISJAR_VERSION)
+AXIS_DIR = $(AXIS_RELEASE)/$(AXIS_VERSION)
+AXIS_FILE = $(CLASS_DEST)/$(AXIS)
+AXIS_DEP = $(AXIS_FILE) 
+AXIS_REL_DIR=$(subst -bin,,$(subst .zip,,$(AXIS)))
+
+
+# This is java, so there is only one real platform subdirectory
+
+#PACKAGE_UNDER_JAVA += $(AXIS_FILE)
+
+ifndef AXIS_PULL_METHOD
+AXIS_PULL_METHOD = $(COMPONENT_PULL_METHOD)
+endif
+
+$(AXIS_DEP): $(CLASS_DEST) 
+ifdef COMPONENT_DEPS
+	echo "Inside ftppull"
+	$(FTP_PULL) -method $(COMPONENT_PULL_METHOD) \
+		-objdir $(CLASS_DEST) -componentdir $(AXIS_DIR) \
+		-files $(AXIS_FILES) -unzip $(CLASS_DEST)
+endif
+	-@if [ ! -f $@ ] ; \
+	then echo "Error: could not get component AXIS files $@" ; \
+	fi
+
+###########################################################
+
+
+# other dsml java classes #######################################
+DSMLJAR = activation.jar,jaxrpc-api.jar,jaxrpc.jar,saaj.jar,xercesImpl.jar,xml-apis.jar
+DSMLJAR_FILES = $(DSMLJAR)
+DSMLJAR_RELEASE = $(COMPONENTS_DIR)
+#DSMLJARJAR_DIR = $(DSMLJARJAR_RELEASE)/$(DSMLJARJAR_COMP)/$(DSMLJARJAR_VERSION)
+DSMLJAR_DIR = $(DSMLJAR_RELEASE)/dsmljars
+DSMLJAR_FILE = $(CLASS_DEST)
+DSMLJAR_DEP = $(CLASS_DEST)/activation.jar $(CLASS_DEST)/jaxrpc-api.jar $(CLASS_DEST)/jaxrpc.jar $(CLASS_DEST)/saaj.jar $(CLASS_DEST)/xercesImpl.jar $(CLASS_DEST)/xml-apis.jar
+
+ifndef DSMLJAR_PULL_METHOD
+DSMLJAR_PULL_METHOD = $(COMPONENT_PULL_METHOD)
+endif
+
+$(DSMLJAR_DEP): $(CLASS_DEST) 
+ifdef COMPONENT_DEPS
+	echo "Inside ftppull"
+	$(FTP_PULL) -method $(COMPONENT_PULL_METHOD) \
+		-objdir $(CLASS_DEST) -componentdir $(DSMLJAR_DIR) \
+		-files $(DSMLJAR_FILES)
+
+endif
+	-@if [ ! -f $@ ] ; \
+	then echo "Error: could not get component DSMLJAR files $@" ; \
+	fi
+
+###########################################################
+
+# XMLTOOLS java classes #######################################
+CRIMSONJAR = crimson.jar
+CRIMSON_LICENSE = LICENSE.crimson
+CRIMSONJAR_FILES = $(CRIMSONJAR),$(CRIMSON_LICENSE)
+CRIMSONJAR_RELEASE = $(COMPONENTS_DIR)
+CRIMSONJAR_DIR = $(CRIMSONJAR_RELEASE)/$(CRIMSONJAR_COMP)/$(CRIMSONJAR_VERSION)
+CRIMSONJAR_FILE = $(CLASS_DEST)/$(CRIMSONJAR)
+CRIMSONJAR_DEP = $(CRIMSONJAR_FILE) $(CLASS_DEST)/$(CRIMSON_LICENSE)
+
+
+# This is java, so there is only one real platform subdirectory
+
+PACKAGE_UNDER_JAVA += $(CRIMSONJAR_FILE)
+
+ifndef CRIMSONJAR_PULL_METHOD
+CRIMSONJAR_PULL_METHOD = $(COMPONENT_PULL_METHOD)
+endif
+
+$(CRIMSONJAR_DEP): $(CLASS_DEST)
+ifdef COMPONENT_DEPS
+	echo "Inside ftppull"
+	$(FTP_PULL) -method $(COMPONENT_PULL_METHOD) \
+		-objdir $(CLASS_DEST) -componentdir $(CRIMSONJAR_DIR) \
+		-files $(CRIMSONJAR_FILES)
+endif
+	-@if [ ! -f $@ ] ; \
+	then echo "Error: could not get component CRIMSONJAR files $@" ; \
+	fi
+
+###########################################################
+
+# ANT java classes #######################################
+ifeq ($(BUILD_JAVA_CODE),1)
+#  (we use ant for building some Java code)
+ANTJAR = ant.jar
+JAXPJAR = jaxp.jar
+ANT_FILES = $(ANTJAR) $(JAXPJAR)
+ANT_RELEASE = $(COMPONENTS_DIR)
+ANT_HOME = $(ANT_RELEASE)/$(ANT_COMP)/$(ANT_VERSION)
+ANT_DIR = $(ANT_HOME)/lib
+ANT_DEP = $(addprefix $(CLASS_DEST)/, $(ANT_FILES))
+ANT_CP = $(subst $(SPACE),$(PATH_SEP),$(ANT_DEP))
+ANT_PULL = $(subst $(SPACE),$(COMMA),$(ANT_FILES))
+
+ifndef ANT_PULL_METHOD
+ANT_PULL_METHOD = $(COMPONENT_PULL_METHOD)
+endif
+
+$(ANT_DEP): $(CLASS_DEST) $(CRIMSONJAR_DEP)
+ifdef COMPONENT_DEPS
+	echo "Inside ftppull"
+	$(FTP_PULL) -method $(COMPONENT_PULL_METHOD) \
+		-objdir $(CLASS_DEST) -componentdir $(ANT_DIR) \
+		-files $(ANT_PULL)
+endif
+	-@if [ ! -f $@ ] ; \
+	then echo "Error: could not get component ant files $@" ; \
+	fi
+endif
+###########################################################
+
+# Servlet SDK classes #######################################
+SERVLETJAR = servlet.jar
+SERVLET_FILES = $(SERVLETJAR)
+SERVLET_RELEASE = $(COMPONENTS_DIR)
+SERVLET_DIR = $(SERVLET_RELEASE)/$(SERVLET_COMP)/$(SERVLET_VERSION)
+SERVLET_DEP = $(addprefix $(CLASS_DEST)/, $(SERVLET_FILES))
+SERVLET_CP = $(subst $(SPACE),$(PATH_SEP),$(SERVLET_DEP))
+SERVLET_PULL = $(subst $(SPACE),$(COMMA),$(SERVLET_FILES))
+
+ifndef SERVLET_PULL_METHOD
+SERVLET_PULL_METHOD = $(COMPONENT_PULL_METHOD)
+endif
+
+$(SERVLET_DEP): $(CLASS_DEST)
+ifdef COMPONENT_DEPS
+	echo "Inside ftppull"
+	$(FTP_PULL) -method $(COMPONENT_PULL_METHOD) \
+		-objdir $(CLASS_DEST) -componentdir $(SERVLET_DIR) \
+		-files $(SERVLET_PULL)
+endif
+	-@if [ ! -f $@ ] ; \
+	then echo "Error: could not get component servlet SDK files $@" ; \
+	fi
+
+###########################################################
+
+# LDAP java classes #######################################
+LDAPJDK = ldapjdk.jar
+LDAPJDK_VERSION = $(LDAPJDK_RELDATE)
+LDAPJDK_RELEASE = $(COMPONENTS_DIR)
+LDAPJDK_DIR = $(LDAPJDK_RELEASE)
+LDAPJDK_IMPORT = $(LDAPJDK_RELEASE)/$(LDAPJDK_COMP)/$(LDAPJDK_VERSION)/$(NSOBJDIR_NAME)
+# This is java, so there is only one real platform subdirectory
+LDAPJARFILE=$(CLASS_DEST)/ldapjdk.jar
+LDAPJDK_DEP=$(LDAPJARFILE)
+
+#PACKAGE_UNDER_JAVA += $(LDAPJARFILE)
+
+ifndef LDAPJDK_PULL_METHOD
+LDAPJDK_PULL_METHOD = $(COMPONENT_PULL_METHOD)
+endif
+
+$(LDAPJDK_DEP): $(CLASS_DEST)
+ifdef COMPONENT_DEPS
+	$(FTP_PULL) -method $(LDAPJDK_PULL_METHOD) \
+		-objdir $(CLASS_DEST) -componentdir $(LDAPJDK_IMPORT) \
+		-files $(LDAPJDK)
+endif
+	-@if [ ! -f $@ ] ; \
+	then echo "Error: could not get component LDAPJDK file $@" ; \
+	fi
+
+###########################################################
+
+# MCC java classes - the Mission Control Console #########
+MCC_VERSION=$(MCC_RELDATE)$(SEC_SUFFIX)
+#
+MCCJAR = mcc$(MCC_REL).jar
+MCCJAR_EN = mcc$(MCC_REL)_en.jar
+NMCLFJAR = nmclf$(MCC_REL).jar
+NMCLFJAR_EN = nmclf$(MCC_REL)_en.jar
+BASEJAR = base.jar
+#MCC_RELEASE=$(COMPONENTS_DIR_DEV)
+MCC_RELEASE=$(COMPONENTS_DIR)
+MCC_JARDIR = $(MCC_RELEASE)/$(MCC_COMP)/$(MCC_VERSION)/jars
+MCCJARFILE=$(CLASS_DEST)/$(MCCJAR)
+NMCLFJARFILE=$(CLASS_DEST)/$(NMCLFJAR)
+BASEJARFILE=$(CLASS_DEST)/$(BASEJAR)
+
+MCC_DEP = $(BASEJARFILE)
+MCC_FILES=$(MCCJAR),$(MCCJAR_EN),$(NMCLFJAR),$(NMCLFJAR_EN),$(BASEJAR)
+
+#PACKAGE_UNDER_JAVA += $(addprefix $(CLASS_DEST)/,$(subst $(COMMA),$(SPACE),$(MCC_FILES)))
+
+ifndef MCC_PULL_METHOD
+MCC_PULL_METHOD = $(COMPONENT_PULL_METHOD)
+endif
+
+$(MCC_DEP): $(CLASS_DEST)
+ifdef COMPONENT_DEPS
+	$(FTP_PULL) -method $(MCC_PULL_METHOD) \
+		-objdir $(CLASS_DEST) -componentdir $(MCC_JARDIR) \
+		-files $(MCC_FILES)
+endif
+	-@if [ ! -f $@ ] ; \
+	then echo "Error: could not get component MCC file $@" ; \
+	fi
+
+###########################################################
+# LDAP Console java classes
+###########################################################
+LDAPCONSOLEJAR = ds$(LDAPCONSOLE_REL).jar
+LDAPCONSOLEJAR_EN = ds$(LDAPCONSOLE_REL)_en.jar
+
+LDAPCONSOLE_RELEASE=$(COMPONENTS_DIR_DEV)
+LDAPCONSOLE_JARDIR = $(LDAPCONSOLE_RELEASE)/$(LDAPCONSOLE_COMP)ext/$(LDAPCONSOLE_RELDATE)/jars
+LDAPCONSOLE_DEP = $(CLASS_DEST)/$(LDAPCONSOLEJAR)
+LDAPCONSOLE_FILES=$(LDAPCONSOLEJAR),$(LDAPCONSOLEJAR_EN)
+
+ifndef LDAPCONSOLE_PULL_METHOD
+LDAPCONSOLE_PULL_METHOD = $(COMPONENT_PULL_METHOD)
+endif
+
+$(LDAPCONSOLE_DEP): $(CLASS_DEST)
+ifdef COMPONENT_DEPS
+	$(FTP_PULL) -method $(LDAPCONSOLE_PULL_METHOD) \
+		-objdir $(CLASS_DEST) -componentdir $(LDAPCONSOLE_JARDIR) \
+		-files $(LDAPCONSOLE_FILES)
+endif
+	-@if [ ! -f $@ ] ; \
+	then echo "Error: could not get component LDAPCONSOLE file $@" ; \
+	fi
+
+###########################################################
+### Perldap package #######################################
+
+PERLDAP_COMPONENT_DIR = $(COMPONENTS_DIR)/perldap/$(PERLDAP_VERSION)/$(NSOBJDIR_NAME_32)
+PERLDAP_ZIP_FILE = perldap14.zip
+
+###########################################################
+
+# JSS classes - for the Mission Control Console ######
+JSSJAR = jss$(JSS_JAR_VERSION).jar
+JSSJARFILE = $(CLASS_DEST)/$(JSSJAR)
+JSS_RELEASE = $(COMPONENTS_DIR)/$(JSS_COMP)/$(JSS_VERSION)
+JSS_DEP = $(JSSJARFILE)
+
+#PACKAGE_UNDER_JAVA += $(JSSJARFILE)
+
+ifndef JSS_PULL_METHOD
+JSS_PULL_METHOD = $(COMPONENT_PULL_METHOD)
+endif
+
+$(JSS_DEP): $(CLASS_DEST)
+ifdef COMPONENT_DEPS
+ifdef VSFTPD_HACK
+# work around vsftpd -L problem
+	$(FTP_PULL) -method $(JSS_PULL_METHOD) \
+		-objdir $(CLASS_DEST)/jss -componentdir $(JSS_RELEASE) \
+        -files xpclass.jar
+	mv $(CLASS_DEST)/jss/xpclass.jar $(CLASS_DEST)/$(JSSJAR)
+	rm -rf $(CLASS_DEST)/jss
+else
+	$(FTP_PULL) -method $(JSS_PULL_METHOD) \
+		-objdir $(CLASS_DEST) -componentdir $(JSS_RELEASE) \
+		-files $(JSSJAR)
+endif
+endif
+	-@if [ ! -f $@ ] ; \
+	then echo "Error: could not get component JSS file $@" ; \
+	fi
+
+###########################################################
+
+### JSP compiler package ##################################
+
+JSPC_REL = $(JSPC_VERSDIR)
+JSPC_REL_DATE = $(JSPC_VERSION)
+JSPC_FILES = jasper-compiler.jar jasper-runtime.jar
+JSPC_RELEASE = $(COMPONENTS_DIR)
+JSPC_DIR = $(JSPC_RELEASE)/$(JSPC_COMP)/$(JSPC_VERSION)
+JSPC_DEP = $(addprefix $(CLASS_DEST)/, $(JSPC_FILES))
+JSPC_CP = $(subst $(SPACE),$(PATH_SEP),$(JSPC_DEP))
+JSPC_PULL = $(subst $(SPACE),$(COMMA),$(JSPC_FILES))
+
+ifndef JSPC_PULL_METHOD
+JSPC_PULL_METHOD = $(COMPONENT_PULL_METHOD)
+endif
+
+$(JSPC_DEP): $(CLASS_DEST)
+ifdef COMPONENT_DEPS
+	echo "Inside ftppull"
+	$(FTP_PULL) -method $(COMPONENT_PULL_METHOD) \
+		-objdir $(CLASS_DEST) -componentdir $(JSPC_DIR) \
+		-files $(JSPC_PULL)
+endif
+	-@if [ ! -f $@ ] ; \
+	then echo "Error: could not get component jspc files $@" ; \
+	fi
+
+###########################################################
+
+###########################################################
+### Admin Server package ##################################
+
+ADMIN_REL = $(ADM_VERSDIR)
+ADMIN_REL_DATE = $(ADM_VERSION)
+ADMIN_FILE = admserv.tar.gz
+ADMIN_FILE_TAR = admserv.tar
+ADMSDKOBJDIR = $(NSCONFIG)$(NSOBJDIR_TAG).OBJ
+IMPORTADMINSRV_BASE=$(COMPONENTS_DIR)/$(ADMIN_REL)/$(ADMIN_REL_DATE)
+IMPORTADMINSRV = $(IMPORTADMINSRV_BASE)/$(NSOBJDIR_NAME_32)
+ADMSERV_DIR=$(ABS_ROOT_PARENT)/dist/$(NSOBJDIR_NAME)/admserv
+ADMSERV_DEP = $(ADMSERV_DIR)/setup$(EXE_SUFFIX)
+
+ifdef FORTEZZA
+  ADM_VERSION = $(ADM_RELDATE)F
+else
+  ifeq ($(SECURITY), domestic)
+    ADM_VERSION = $(ADM_RELDATE)D
+  else
+    ifneq ($(ARCH), IRIX)
+        ADM_VERSION = $(ADM_RELDATE)E
+    else
+        ADM_VERSION = $(ADM_RELDATE)D
+    endif
+  endif
+endif
+
+ADM_VERSION = $(ADM_RELDATE)$(SEC_SUFFIX)
+ADM_RELEASE = $(COMPONENTS_DIR)/$(ADM_VERSDIR)/$(ADM_VERSION)/$(NSOBJDIR_NAME)
+
+ifndef ADMSERV_PULL_METHOD
+ADMSERV_PULL_METHOD = $(COMPONENT_PULL_METHOD)
+endif
+
+ifndef ADMSERV_DEPS
+ADMSERV_DEPS = $(COMPONENT_DEPS)
+endif
+#IMPORTADMINSRV = /share/builds/sbsrel1/admsvr/admsvr62/ships/20030702.2/spd04_Solaris8/SunOS5.8-domestic-optimize-normal
+#ADM_RELEASE = /share/builds/sbsrel1/admsvr/admsvr62/ships/20030702.2/spd04_Solaris8/SunOS5.8-domestic-optimize-normal
+$(ADMSERV_DEP): $(ABS_ROOT_PARENT)/dist/$(NSOBJDIR_NAME)
+ifdef ADMSERV_DEPS
+	$(FTP_PULL) -method $(ADMSERV_PULL_METHOD) \
+		-objdir $(ADMSERV_DIR) -componentdir $(IMPORTADMINSRV) \
+		-files $(ADMIN_FILE) -unzip $(ADMSERV_DIR)
+endif
+	@if [ ! -f $@ ] ; \
+	then echo "Error: could not get component ADMINSERV file $@" ; \
+	exit 1 ; \
+	fi
+### Admin Server END ######################################

+ 7 - 3
ldap/Makefile

@@ -29,6 +29,7 @@ ldapprogs:
 ifneq ($(ARCH), WINNT) 
 	cd systools; $(MAKE) $(MFLAGS) all
 	# new unix installer
+ifeq ($(USE_SETUPSDK), 1)
 	cd cm/newinst; $(MAKE) $(MFLAGS) all
 ifeq ($(USE_64),1)
 	# In 64-bit builds, we build the installer 32-bit, which has the side-effect that the uninstaller and ns-update scripts
@@ -36,10 +37,13 @@ ifeq ($(USE_64),1)
 	# to see them in the 64-bit output directory. So, here we copy them over.
 	$(CP) $(RELDIR_32)/bin/slapd/admin/bin/ns-update $(LDAP_ADMIN_BIN_RELDIR)
 	$(CP) $(RELDIR_32)/bin/slapd/admin/bin/uninstall $(LDAP_ADMIN_BIN_RELDIR)
-endif
-else
+endif # USE_64
+endif # USE_SETUPSDK
+else # not WINNT
+ifeq ($(USE_SETUPSDK), 1)
 	cd cm/newinstnt; $(MAKE) $(MFLAGS) all
-endif
+endif # USE_SETUPSDK
+endif # WINNT
 	cd admin; $(MAKE) $(MFLAGS) all
 
 ldapdocs:

+ 36 - 27
ldap/admin/src/Makefile

@@ -21,11 +21,10 @@ SCRIPTSDIR=$(LDAP_BASE_RELDIR)/admin/scripts
 
 include $(BUILD_ROOT)/nsconfig.mk
 include $(LDAP_SRC)/nsldap.mk
-ifndef LDAP_USE_OLD_DB
-include $(BUILD_ROOT)/ns_usedb.mk
-endif
 
+ifeq ($(USE_ADMINSERVER), 1)
 MCC_INCLUDE += $(ADMINUTIL_INCLUDE)
+endif
 
 INCLUDES += -I$(LDAP_SRC)/admin/include
 
@@ -36,15 +35,21 @@ EXTRALDFLAGS += $(SSLLIBFLAG)
 endif
 
 ifeq ($(BUILD_DLL), yes)
-DYNAMIC_DEPLIBS=$(LDAP_ADMLIB) $(LDAP_COMMON_LIBS_DEP) $(ADMINUTIL)
+DYNAMIC_DEPLIBS=$(LDAP_ADMLIB) $(LDAP_COMMON_LIBS_DEP)
+ifeq ($(USE_ADMINSERVER), 1)
+  DYNAMIC_DEPLIBS += $(ADMINUTIL)
+endif
 DYNAMIC_DEPLINK=$(DYNAMIC_DEPLIBS)
 else
 DYNAMIC_DEPLIBS=$(LDAP_COMMON_LIBS_DEP)
 DYNAMIC_DEPLINK=$(LDAP_ADMLIB) $(LDAP_COMMON_LIBS)
 endif
 
-EXTRA_LIBS_DEP += $(NSPR_DEP) $(LDAPSDK_DEP) $(ADMINUTIL_DEP) $(ICU_DEP)
-
+EXTRA_LIBS_DEP += $(NSPR_DEP) $(LDAPSDK_DEP)
+ifeq ($(USE_ADMINSERVER), 1)
+  EXTRA_LIBS_DEP += $(ADMINUTIL_DEP)
+endif
+EXTRA_LIBS_DEP += $(ICU_DEP)
 # we don't want to build with warnings-as-errors for the admin/ stuff, because
 # it's got crappy C++ code which is LITTERED with warnings, most of which we
 # can't fix because it comes from files in dist/, etc.
@@ -53,8 +58,15 @@ CFLAGS := $(subst -Werror,,$(CFLAGS))
 endif
 
 OLD_EXTRA_LIBS := $(EXTRA_LIBS)
-EXTRA_LIBS = $(DYNAMIC_DEPLINK) $(ADMINUTIL_LINK) $(LDAP_NOSSL_LINK) \
-	$(SECURITYLINK) $(NSPRLINK) $(SETUPSDK_S_LINK) $(ICULINK) $(OLD_EXTRA_LIBS)
+EXTRA_LIBS = $(DYNAMIC_DEPLINK) $(LDAP_NOSSL_LINK)
+ifeq ($(USE_ADMINSERVER), 1)
+  EXTRA_LIBS += $(ADMINUTIL_LINK)
+endif
+EXTRA_LIBS += $(SECURITYLINK) $(NSPRLINK)
+ifeq ($(USE_SETUPSDK), 1)
+  EXTRA_LIBS += $(SETUPSDK_S_LINK)
+endif
+EXTRA_LIBS += $(ICULINK) $(OLD_EXTRA_LIBS)
 
 # these are the libraries to use when building the installer for the open source version
 OPENSOURCE_LIBS = $(LDAP_ADMLIB) $(LDAP_NOSSL_LINK) $(SECURITYLINK) $(NSPRLINK)
@@ -146,7 +158,9 @@ SECURE_BINS=
 SECLIB=$(LIBSECURITY)
 endif
 
-ADMIN_DLLGLUEOBJ=$(BUILD_ROOT)/built/$(ARCH)-$(SECURITY)-$(DEBUG)-admin/admin-lib/dllglue.o
+ifeq ($(USE_ADMINSERVER), 1)
+  ADMIN_DLLGLUEOBJ=$(BUILD_ROOT)/built/$(ARCH)-$(SECURITY)-$(DEBUG)-admin/admin-lib/dllglue.o
+endif
 
 ifeq ($(ARCH),AIX)
 DLLGLUEOBJ=
@@ -156,29 +170,27 @@ endif
 $(OBJDEST)/key.res: key.rc
 	$(RC) $(OFFLAG)$(OBJDEST)/key.res ey.rc
 
-OLD_PROGS	= ds_pcontrol   ds_impldif    \
-	ds_backldif      ds_backdb      ds_restdb \
-	 ds_monitor ds_conf ds_rmldif  \
-	commit index   ds_acccon ds_perf ds_dbconf ds_conf_check \
-	ds_net ds_ldap ds_pwconf ds_inconf ds_grplst ds_grpcrt \
-	ds_version ds_client ds_secpref ds_secact instindex \
-	ds_reploc ds_repinit ldif2replica ds_addldif ds_ldif2ldap clpstat \
-	ds_sscfg ds_attr_manage ds_oc_view ds_oc_create ds_schema_update \
-	ds_replov ds_pw ds_snmpconf  
-
-PROGS	= start   restart  shutdown   ds_ldif2db \
+PROGS = ds_newinst
+ifeq ($(USE_ADMINSERVER), 1)
+PROGS += start   restart  shutdown   ds_ldif2db \
 	ds_db2ldif   ds_db2bak   ds_listdb  \
-	ds_bak2db ds_rmdb ds_create ds_newinst \
+	ds_bak2db ds_rmdb ds_create \
 	ds_remove ds_snmpctrl vlvindex addindex
+endif
 
 ifeq ($(ARCH), WINNT)
 SERVER_PROGS = namegen latest_file
 endif
 
+ifeq ($(USE_ADMINSERVER), 1)
 OBJECTS= init_ds_env.o
+endif
 
 ifeq ($(ARCH), WINNT)
-OBJECTS += namegen.o latest_file.o ds_remove_uninst.o
+OBJECTS += namegen.o latest_file.o
+ifeq ($(USE_SETUPSDK), 1)
+  OBJECTS += ds_remove_uninst.o
+endif
 endif
 
 ifeq ($(ARCH), WINNT)
@@ -212,9 +224,6 @@ $(SCRIPTSDIR):
 
 .PHONY: installPerlFiles
 
-#NSSetupSDK:
-#	$(MAKE) -f NSSetupSDK_Base.mk $(MFLAGS) all
-
 clean:
 	-@echo $(BINS)
 	-$(RM) $(BINS)
@@ -236,13 +245,13 @@ $(BINDIR)/ds_newinst:	$(OBJDEST)/ds_newinst.o $(OBJDEST)/cfg_sspt.o \
     $(OBJDEST)/create_instance.o $(OBJDEST)/script-gen.o
 	$(LINK_EXE_NOLIBSOBJS) $(SHARED) $(EXTRALDFLAGS) \
 	$(OBJDEST)/ds_newinst.o $(OBJDEST)/cfg_sspt.o \
-    $(OBJDEST)/create_instance.o $(OBJDEST)/script-gen.o $(OPENSOURCE_LIBS)
+    $(OBJDEST)/create_instance.o $(OBJDEST)/script-gen.o $(EXTRA_LIBS)
 
 $(BINDIR)/ds_newinst.exe:	$(OBJDEST)/ds_newinst.o $(OBJDEST)/cfg_sspt.o \
     $(OBJDEST)/create_instance.o $(OBJDEST)/script-gen.o
 	$(LINK_EXE) $(NT_NOLIBS) $(OBJDEST)/ds_newinst.o $(OBJDEST)/cfg_sspt.o \
     $(OBJDEST)/create_instance.o $(OBJDEST)/script-gen.o \
-		$(LIBNT) $(OPENSOURCE_LIBS)
+		$(LIBNT) $(NSPRLINK) $(EXTRA_LIBS) $(DB_LIB)
 # linking this file causes a .exp and a .lib file to be generated which don't seem
 # to be required while running, so I get rid of them
 	$(RM) $(subst .exe,.exp,$@) $(subst .exe,.lib,$@)

+ 10 - 4
ldap/cm/Makefile

@@ -27,7 +27,6 @@ ADMSERV_DEPS = 1
 include $(BUILD_ROOT)/nsconfig.mk
 include $(BUILD_ROOT)/ldap/nsldap.mk
 include $(BUILD_ROOT)/ldap/javarules.mk
-include $(BUILD_ROOT)/ns_usedb.mk
 include $(BUILD_ROOT)/ns_usesh.mk
 
 NSDISTMODE = copy
@@ -279,6 +278,7 @@ endif
 	done
 
 # install the DSMLGW into the client directory
+ifeq ($(USE_DSMLGW), 1)
 	$(MKDIR) $(RELDIR)/clients/dsmlgw
 	$(CP) -R $(NSDIST)/classes/$(AXIS_REL_DIR)/webapps/axis/*  $(RELDIR)/clients/dsmlgw/
 
@@ -295,7 +295,7 @@ endif
 	$(INSTALL) -m 644 $(NSDIST)/classes/saaj.jar  $(RELDIR)/clients/dsmlgw/WEB-INF/lib
 	$(INSTALL) -m 644 $(NSDIST)/classes/xercesImpl.jar $(RELDIR)/clients/dsmlgw/WEB-INF/lib
 	$(INSTALL) -m 644 $(NSDIST)/classes/xml-apis.jar $(RELDIR)/clients/dsmlgw/WEB-INF/lib
-
+endif # USE_DSMLGW
 
 # PACKAGE_UNDER_JAVA is defined in components.mk - these are component .jar files to install
 # with the other component files that we don't necessarily pick up from the admin server build
@@ -320,6 +320,7 @@ endif
 #	fi
 
 ### Package up the orgchart ###
+ifeq ($(USE_ORGCHART), 1)
 	$(INSTALL) -m 644 $(BUILD_DRIVE)$(BUILD_ROOT)/ldap/clients/orgchart/*.gif $(RELDIR)/clients/orgchart/html
 	$(INSTALL) -m 644 $(BUILD_DRIVE)$(BUILD_ROOT)/ldap/clients/orgchart/*.html $(RELDIR)/clients/orgchart/html
 	$(INSTALL) -m 644 $(BUILD_DRIVE)$(BUILD_ROOT)/ldap/clients/orgchart/*.css $(RELDIR)/clients/orgchart/html
@@ -335,6 +336,7 @@ else
 	chmod 755 $(RELDIR)/clients/orgchart/bin/org
 	chmod 755 $(RELDIR)/clients/orgchart/bin/myorg
 endif
+endif # USE_ORGCHART
 ### end orgchart package ###
 
 	$(INSTALL) -m 644 $(BUILD_DRIVE)$(BUILD_ROOT)/ldap/schema/*.ldif $(RELDIR)/bin/slapd/install/schema
@@ -366,8 +368,8 @@ endif
 
 # the plugin API
 	$(INSTALL) -m 644 $(BUILD_DRIVE)$(BUILD_ROOT)/ldap/servers/slapd/slapi-plugin.h $(RELDIR)/plugins/slapd/slapi/include
-	$(INSTALL) -m 644 $(NSPR_BUILD_DIR)/include/*.h $(RELDIR)/plugins/slapd/slapi/include
-	$(INSTALL) -m 644 $(NSPR_BUILD_DIR)/include/obsolete/*.h $(RELDIR)/plugins/slapd/slapi/include/obsolete
+	$(INSTALL) -m 644 $(NSPR_INCDIR)/*.h $(RELDIR)/plugins/slapd/slapi/include
+	$(INSTALL) -m 644 $(NSPR_INCDIR)/obsolete/*.h $(RELDIR)/plugins/slapd/slapi/include/obsolete
 	$(INSTALL) -m 644 $(BUILD_DRIVE)$(BUILD_ROOT)/ldap/servers/slapd/slapi-plugin-compat4.h $(RELDIR)/plugins/slapd/slapi/include
 #	if [ -f $(BUILD_DRIVE)$(BUILD_ROOT)/ldap/docs/plugin/README ] ; \
 #	then $(INSTALL) -m 644 $(BUILD_DRIVE)$(BUILD_ROOT)/ldap/docs/plugin/README $(RELDIR)/plugins/slapd ; \
@@ -406,11 +408,15 @@ endif
 
 # install the ds jar file in the <server root>/$(DS_JAR_DEST_PATH) directory
 # also install the other jar files we use
+ifeq ($(USE_CONSOLE), 1)
 	$(INSTALL) -m 644 $(NSDIST)/classes/$(LDAPCONSOLEJAR) $(RELDIR)/$(DS_JAR_DEST_PATH)
 	$(INSTALL) -m 644 $(NSDIST)/classes/$(LDAPCONSOLEJAR_EN) $(RELDIR)/$(DS_JAR_DEST_PATH)
+endif
+ifeq ($(USE_JAVATOOLS), 1)
 	$(INSTALL) -m 644 $(DS_JAR_SRC_PATH)/$(XMLTOOLS_JAR_FILE) $(RELDIR)/$(DS_JAR_DEST_PATH)
 	$(INSTALL) -m 644 $(NSDIST)/classes/$(CRIMSONJAR) $(RELDIR)/$(DS_JAR_DEST_PATH)
 	$(INSTALL) -m 644 $(NSDIST)/classes/$(CRIMSON_LICENSE) $(RELDIR)/$(DS_JAR_DEST_PATH)
+endif
 
 # Images for IM Presence plugin
 ifdef BUILD_PRESENCE

+ 2 - 0
ldap/servers/Makefile

@@ -48,7 +48,9 @@ _plugins:
 	cd plugins; $(MAKE) $(MFLAGS) all
 
 _snmp:
+ifdef still_waiting_for_net_snmp
 	cd snmp; $(MAKE) $(MFLAGS) all
+endif
 
 _slapdtools:
 	cd slapd/tools; $(MAKE) $(MFLAGS) all

+ 11 - 0
nsconfig.mk

@@ -26,6 +26,17 @@ MAKE=gmake $(BUILDOPT)
 # 7/12/96 Adrian - allow MAKEFLAGS to propagate
 # override MAKEFLAGS := 
 
+# all of these things are on by default for internal builds
+ifdef INTERNAL_BUILD
+	USE_ADMINSERVER:=1
+	USE_CONSOLE:=1
+	USE_DSMLGW:=1
+	USE_ORGCHART:=1
+	USE_DSGW:=1
+	USE_JAVATOOLS:=1
+	USE_SETUPSDK:=1
+endif
+
 include $(BUILD_ROOT)/nsdefs.mk
 include $(BUILD_ROOT)/component_versions.mk