summaryrefslogtreecommitdiffstats
path: root/nsconfig.mk
diff options
context:
space:
mode:
authorcvsadm <cvsadm>2005-01-21 00:44:34 +0000
committercvsadm <cvsadm>2005-01-21 00:44:34 +0000
commitb2093e3016027d6b5cf06b3f91f30769bfc099e2 (patch)
treecf58939393a9032182c4fbc4441164a9456e82f8 /nsconfig.mk
downloadds-b2093e3016027d6b5cf06b3f91f30769bfc099e2.tar.gz
ds-b2093e3016027d6b5cf06b3f91f30769bfc099e2.tar.xz
ds-b2093e3016027d6b5cf06b3f91f30769bfc099e2.zip
Moving NSCP Directory Server from DirectoryBranch to TRUNK, initial drop. (foxworth)ldapserver7x
Diffstat (limited to 'nsconfig.mk')
-rw-r--r--nsconfig.mk1448
1 files changed, 1448 insertions, 0 deletions
diff --git a/nsconfig.mk b/nsconfig.mk
new file mode 100644
index 00000000..c4ab985d
--- /dev/null
+++ b/nsconfig.mk
@@ -0,0 +1,1448 @@
+#
+# BEGIN COPYRIGHT BLOCK
+# Copyright 2001 Sun Microsystems, Inc.
+# Portions copyright 1999, 2001-2003 Netscape Communications Corporation.
+# All rights reserved.
+# END COPYRIGHT BLOCK
+#
+#
+# nsconfig.h: determines which product is being built, how, and for what
+# arch
+#
+# Rob McCool
+
+# This is the default target for all Makefiles which include this file.
+# Those Makefiles should define this target with the appropriate dependencies
+# and build rules.
+#
+# More comment
+all:
+
+
+
+ABS_ROOT := $(shell cd $(MCOM_ROOT); pwd)
+NSROOT=$(MCOM_ROOT)/ldapserver
+MAKE=gmake $(BUILDOPT) NO_MOCHA=1
+
+# 7/12/96 Adrian - allow MAKEFLAGS to propagate
+# override MAKEFLAGS :=
+
+include $(NSROOT)/nsdefs.mk
+include $(NSROOT)/component_versions.mk
+
+# SEC_SUFFIX is the suffix to be applied to the reldate macro which specifies
+# the security of the specified release, either E for export, D for domestic,
+# or F for Fortezza
+ifdef FORTEZZA
+ SEC_SUFFIX = F
+else
+ ifeq ($(SECURITY), domestic)
+ SEC_SUFFIX = D
+ else
+ SEC_SUFFIX = E
+ endif
+endif
+
+PRETTY_ARCH := $(shell uname -s)
+
+NSOS_ARCH := $(subst /,_,$(shell uname -s))
+
+ifneq ($(NO_BUILD_NUM), true)
+ GET_BUILD_NUM := $(shell cat $(NSROOT)/$(BUILD_ARCH)/buildnum.dat)
+endif
+
+ifeq ($(NSOS_ARCH), IRIX64)
+ NSOS_ARCH := IRIX
+endif
+
+# Default
+NSOS_RELEASE := $(shell uname -r)
+NSOS_RELEASE_NOTAG = $(NSOS_RELEASE)
+
+ifeq ($(NSOS_ARCH), AIX)
+ NSOS_TEST := $(shell uname -v)
+ ifeq ($(NSOS_TEST),3)
+ NSOS_RELEASE := $(shell uname -r)
+ else
+ NSOS_RELEASE := $(shell uname -v).$(shell uname -r)
+ endif
+endif
+
+# Get OSF's OS revision number to figure out the OS release
+ifeq ($(NSOS_ARCH),OSF1)
+ NSOS_OSF1REV := $(shell uname -v)
+ ifeq ($(NSOS_OSF1REV),878)
+ NSOS_TAG := D
+ else
+ ifeq ($(NSOS_OSF1REV),564)
+ NSOS_TAG := B
+ else
+ ifeq ($(NSOS_OSF1REV),464)
+ NSOS_TAG := A
+ else
+# Grenoble: Defaulting to release D since these are the only version of components we have so far.
+ NSOS_TAG := D
+ endif
+ endif
+ endif
+ NSOS_RELEASE_NOTAG := $(NSOS_RELEASE)
+ NSOS_RELEASE := $(NSOS_RELEASE_NOTAG)$(NSOS_TAG)
+else
+ NSOS_RELEASE_NOTAG := $(NSOS_RELEASE)
+endif
+
+# IRIX: Recommond: USE_PTHREADS=1 and USE_N32=1
+ifeq ($(NSOS_ARCH), IRIX)
+ ifeq ($(USE_PTHREADS), 1)
+ ifeq ($(USE_N32), 1)
+ NSOS_RELEASE := $(shell uname -r)_n32_PTH
+ else
+ NSOS_RELEASE := $(shell uname -r)_PTH
+ endif
+ endif
+ NSOS_RELEASE_NOTAG := $(shell uname -r)
+endif
+
+# SVR5 (UnixWare7)
+ifeq ($(NSOS_ARCH),UnixWare)
+# For now get the OS release for backward compatibility (UnixWare5)
+NSOS_RELEASE := $(shell uname -r)
+endif
+
+# Catch NCR butchering of SVR4
+ifeq ($(NSOS_ARCH),UNIX_SV)
+ifneq ($(findstring NCR, $(shell grep NCR /etc/bcheckrc | head -1 )),)
+NSOS_ARCH := NCR
+PRETTY_ARCH := NCR
+else # !NCR
+# Make UnixWare something human readable
+NSOS_ARCH := UNIXWARE
+PRETTY_ARCH := UNIXWARE
+endif # !NCR
+# Check for UW2 using UDK, which looks like a Gemini (UnixWare7) build
+NSOS_RELEASE := $(shell $(MCOM_ROOT)/ldapserver/nsarch -f | sed 's/UnixWare //')
+ifeq ($(NSOS_RELEASE),5)
+NSOS_ARCH := UnixWare
+else # NSOS_RELEASE = 5
+# Get the OS release number, not 4.2
+NSOS_RELEASE := $(shell uname -v)
+ifeq ($(NSOS_RELEASE),2.1.2)
+# so we don't need yet another set of duplicate UNIXWARE$VER.mk gmake files
+NSOS_RELEASE := 2.1
+endif # NSOS_RELEASE = 2.1.2
+endif # NSOS_RELEASE = 5
+endif # UNIX_SV
+
+# Clean up SCO
+ifeq ($(NSOS_ARCH),SCO_SV)
+NSOS_ARCH := SCOOS
+ifeq (5.0,$(findstring 5.0,$(shell ls /var/opt/K/SCO/Unix)))
+NSOS_RELEASE := 5.0
+else
+NSOS_RELEASE := UNKNOWN
+endif
+endif
+
+# both values (SINIX-N and ReliantUNIX-N) are possible
+ifeq ($(NSOS_ARCH), SINIX-N)
+NSOS_ARCH := ReliantUNIX
+PRETTY_ARCH := ReliantUNIX
+NSOS_RELEASE := 5.4
+endif
+ifeq ($(NSOS_ARCH), ReliantUNIX-N)
+NSOS_ARCH := ReliantUNIX
+PRETTY_ARCH := ReliantUNIX
+NSOS_RELEASE := 5.4
+endif
+
+# Make NT versions 5.1 and 5.2 look like 5.0 for build purposes
+ifndef NSOS_RELEASE_OVERRIDE
+ifeq ($(NSOS_ARCH),WINNT)
+ifeq ($(NSOS_RELEASE),5.1)
+NSOS_RELEASE_OVERRIDE=5.0
+endif
+ifeq ($(NSOS_RELEASE),5.2)
+NSOS_RELEASE_OVERRIDE=5.0
+endif
+endif
+endif
+
+ifdef NSOS_RELEASE_OVERRIDE
+NSOS_RELEASE_NOTAG := $(NSOS_RELEASE_OVERRIDE)
+NSOS_RELEASE := $(NSOS_RELEASE_NOTAG)$(NSOS_TAG)
+endif
+
+ifeq ($(NSOS_ARCH),Linux)
+#
+# Handle FreeBSD 2.2-STABLE and Linux 2.0.30-osfmach3 and 2.2.14-5.0smp
+#
+ifeq (,$(filter-out Linux FreeBSD,$(NSOS_ARCH)))
+ NSOS_RELEASE := $(shell echo $(NSOS_RELEASE) | sed 's/-.*//')
+endif
+NSOS_RELEASE := $(basename $(NSOS_RELEASE))
+NSOS_ARCH := Linux
+PRETTY_ARCH := Linux
+endif
+
+NSOS_TEST1 := $(shell uname -m)
+ifeq ($(NSOS_ARCH),Linux)
+ ifeq (86,$(findstring 86,$(NSOS_TEST1)))
+ NSOS_TEST1 = x86
+ endif
+
+ ifeq ($(USE_LIBC),1)
+ LIBC_VERSION = _libc
+ else
+ LIBC_VERSION = _glibc
+ endif
+ USE_PTHREADS = 1
+ ifeq ($(USE_PTHREADS),1)
+ PTHREAD_TAG = _PTH
+ endif
+ NSCONFIG = $(NSOS_ARCH)$(NSOS_RELEASE)_$(NSOS_TEST1)$(LIBC_VERSION)$(PTHREAD_TAG)
+ NSCONFIG_NOTAG = $(NSCONFIG)
+else
+ ifeq ($(NSOS_TEST1),i86pc)
+ NSCONFIG = $(NSOS_ARCH)$(NSOS_RELEASE)_$(NSOS_TEST1)
+ NSCONFIG_NOTAG = $(NSOS_ARCH)$(NSOS_RELEASE_NOTAG)_$(NSOS_TEST1)
+ else
+ NSCONFIG = $(NSOS_ARCH)$(NSOS_RELEASE)
+ NSCONFIG_NOTAG = $(NSOS_ARCH)$(NSOS_RELEASE_NOTAG)
+ endif
+endif
+
+ifeq ($(DEBUG), full)
+ MCC_DEBUG=-DMCC_DEBUG $(ARCH_DEBUG)
+ NSOBJDIR_TAG=_DBG
+ ML_DEBUG=$(ARCH_LINK_DEBUG)
+else
+ifeq ($(DEBUG), purify)
+ MCC_DEBUG=$(ARCH_DEBUG)
+ NSOBJDIR_TAG=_DBG
+ ML_DEBUG=$(ARCH_LINK_DEBUG)
+ PUREOPTS=-follow-child-processes=true -check-debug-timestamps=no -best-effort
+ PURIFY=purify $(PUREOPTS)
+else
+ifeq ($(DEBUG), quantify)
+ MCC_DEBUG=$(ARCH_DEBUG)
+ NSOBJDIR_TAG=_DBG
+ ML_DEBUG=$(ARCH_LINK_DEBUG)
+ QUANOPTS=-follow-child-processes=true -check-debug-timestamps=no -best-effort
+ QUANTIFY=quantify $(QUANOPTS)
+ USE_QUANTIFY=1
+else
+ MCC_DEBUG=$(ARCH_OPT)
+ NSOBJDIR_TAG=_OPT
+ ML_DEBUG=$(ARCH_LINK_OPT)
+ BUILDOPT = BUILD_OPT=1
+endif
+endif
+endif
+
+ifeq ($(NSOS_ARCH),WINNT)
+ ifneq ($(PROCESSOR_ARCHITECTURE),x86)
+ NSOBJDIR_NAME = $(NSCONFIG)$(PROCESSOR_ARCHITECTURE)$(NSOBJDIR_TAG).OBJ
+ NSOBJDIR_NAME_32 = $(NSCONFIG)$(PROCESSOR_ARCHITECTURE)$(NSOBJDIR_TAG).OBJ
+ else
+ NSOBJDIR_NAME = $(NSCONFIG)$(NSOBJDIR_TAG).OBJ
+ NSOBJDIR_NAME_32 = $(NSCONFIG)$(NSOBJDIR_TAG).OBJ
+ endif
+else
+ NSOBJDIR_NAME = $(NSCONFIG)$(NS64TAG)$(NSOBJDIR_TAG).OBJ
+ NSOBJDIR_NAME_32 = $(NSCONFIG)$(NSOBJDIR_TAG).OBJ
+ NSOBJDIR_NAME1 = $(NSCONFIG)$(NS64TAG)$(NSOBJDIR_TAG).OBJ
+ NSOBJDIR_NAMEeh = $(NSCONFIG)_eh$(NS64TAG)$(NSOBJDIR_TAG).OBJ
+ NSOBJDIR_NAMEaCC = $(NSCONFIG)$(NS64TAG)$(NSOBJDIR_TAG).OBJ
+ NSOBJDIR_NAME_NOTAG = $(NSCONFIG_NOTAG)$(NS64TAG)$(NSOBJDIR_TAG).OBJ
+ NSOBJDIR_NAME1_NOTAG = $(NSCONFIG_NOTAG)$(NS64TAG)$(NSOBJDIR_TAG).OBJ
+endif
+
+
+# NSPR build stuff
+NSCP_DIST = $(MCOM_ROOT)/dist
+NSCP_DISTDIR = $(MCOM_ROOT)/dist/$(NSOBJDIR_NAME)
+
+MAKE=gmake $(BUILDOPT) NO_MOCHA=1 NO_JAVA=1
+
+export NSPR20=1
+
+LWDEFS = LIVEWIRE=1
+JSDEFS = JSFILE=1 JS_THREADSAFE=1
+
+-include ../lw/config/netsite-config.mk
+
+NSDEFS=SERVER_BUILD=1 XCFLAGS=$(MCL_CFLAGS) USE_PTHREADS=$(USE_PTHREADS) \
+ NS_PRODUCT=$(NS_PRODUCT) VERSION=$(SERVER_VERSION) \
+ NS_USE_NATIVE=$(NS_USE_NATIVE) NSPR_BASENAME=$(NSPR_BASENAME)
+
+NSPR_DEFINES = -DSERVER_BUILD
+
+
+# Destination for class files and packages
+CLASS_DEST = $(MCOM_ROOT)/dist/classes
+
+# ----------- Where to get shared components --------------------
+# COMPONENTS_DIR_DEV can be used to pull stuff from the integration area
+# at rtm time we switch it over to use the official components
+
+ifndef COMPONENTS_DIR_DEV
+COMPONENTS_DIR_DEV = /share/builds/sbsintegration
+endif
+
+ifndef COMPONENTS_DIR
+COMPONENTS_DIR = /share/builds/components
+endif
+
+# For now, we need to pick up a private build of the LDAP SDK
+#ifndef LDAP_SBC
+#LDAP_SBC = /share/builds/sbsintegration/ds/ds70-bozeman
+#endif
+
+###########################################################
+
+
+# ------------------------ Product-specific flags ------------------------
+
+
+ifdef PRODUCT_IS_DIRECTORY_SERVER
+ ifeq ($(SECURITY), export)
+ MCC_SERVER=-DMCC_HTTPD -DNS_EXPORT -DNET_SSL -DCLIENT_AUTH $(NSPR_DEFINES)
+ endif
+ ifeq ($(SECURITY), domestic)
+ MCC_SERVER=-DMCC_HTTPD -DNS_DOMESTIC -DNET_SSL -DCLIENT_AUTH $(NSPR_DEFINES)
+ endif
+ ifeq ($(SECURITY), none)
+ MCC_SERVER=-DMCC_HTTPD -DNS_UNSECURE $(NSPR_DEFINES)
+ endif
+ DS_SERVER_DEFS = -DNS_DS
+ ifeq ($(BUILD_DEBUG),full)
+ MODULE_CFLAGS += -DDEBUG
+ endif
+ MCC_SERVER += $(DS_SERVER_DEFS)
+ NS_PRODUCT = DIRECTORY_SERVER
+ ifeq ($(LDAP_NO_LIBLCACHE),1)
+ MODULE_CFLAGS+=-DNO_LIBLCACHE
+ endif
+endif
+
+ifdef FORTEZZA
+ MCC_SERVER += -DFORTEZZA -DCLIENT_AUTH
+endif
+
+MCC_SERVER += -DSPAPI20 -DBUILD_NUM=$(GET_BUILD_NUM)
+
+# ----------- Default Flags, may be overridden below ------------
+
+PEER_DATE=19980121
+CPPCMD=$(CC) -E
+HTTPDSO_NAME=$(BUILD_HTTPDLL_NAME)
+MATHLIB=-lm
+LIB_SUFFIX=a
+AR=ar rcv $@
+DLL_PRESUF=
+DLL_SUFFIX=so
+LDAP_DLL_PRESUF=
+LDAP_DLL_SUFFIX=$(DLL_SUFFIX)
+LINK_DLL=ld $(DLL_LDFLAGS) -o $@
+LINK_PLUGIN=$(LINK_DLL)
+
+# ---------------------- OS-specific compile flags -----------------------
+
+
+# Used by peer snmp defines below
+DEVROOT = $(MCOM_ROOT)/../peer
+
+ifeq ($(ARCH), AIX)
+# convert the output of oslevel to a 4 digit number
+# e.g. 4.2.0.0 -> 4200 4.2.1.0 -> 4210
+OSVERSION := $(shell oslevel | sed "s/[.]//g")
+OSMAJORVERSION := $(shell oslevel | cut -f1 -d.)
+OSMINORVERSION := $(shell oslevel | cut -f2 -d.)
+# we had to do a lot of special stuff to make shared libraries work
+ifeq ("yes", $(shell /bin/sh -c "[ $(OSVERSION) -lt 4200 ] && echo yes" ) )
+ OLD_AIX_LINKING=1
+endif
+
+ifdef OLD_AIX_LINKING
+ DLL_PRESUF=_shr
+ DLL_SUFFIX=a
+else
+# there is apparently a lot of stuff to do before we can use .so as the
+# shared library suffix, so leave it for now . . .
+ DLL_PRESUF=
+ DLL_SUFFIX=so
+ LD=xlC_r
+endif
+
+#CC=xlC_r -qinfo -qarch=com -qgenpcomp=$(OBJDIR)/.pcomp -qusepcomp -DAIX -DAIXV3 -DAIXV4 -DSYSV -DOSVERSION=$(OSVERSION)
+CC=xlC_r -qinfo -qarch=com -DAIX -DAIXV3 -DAIXV4 -DSYSV -DOSVERSION=$(OSVERSION) -DAIX$(OSMAJORVERSION)_$(OSMINORVERSION)
+CCC=$(CC)
+CXX=$(CC)
+CPPCMD=/usr/ccs/lib/cpp -P
+ARCH_DEBUG=-g -qfullpath
+ARCH_OPT=-O
+RANLIB=ranlib
+SHARED_FLAG=-brtl
+NONSHARED_FLAG=-bnso -bI:/lib/syscalls.exp
+EXPORT_FILE=$*.exp
+DEF_LIBPATH=/usr/lib/threads:/usr/lpp/xlC/lib:/usr/lib:/lib
+# JCM - LINK_PLUGIN+=-berok
+ifdef OLD_AIX_LINKING
+ MKSHLIB_FLAGS=-p 0 -blibpath:$(DEF_LIBPATH)
+ DLL_LDFLAGS=-bM:SRE -bnoentry -blibpath:$(DEF_LIBPATH)
+ LINK_DLL=$(ABS_ROOT)/build/aixmkshlib -o $@ $(MKSHLIB_FLAGS)
+ MKSHLIB=$(LINK_DLL)
+ EXTRA_LIBS=-lsvld
+else
+ MKSHLIB_FLAGS=-brtl -p 0 -blibpath:$(DEF_LIBPATH)
+ DLL_LDFLAGS=-bM:SRE -bnoentry -blibpath:$(DEF_LIBPATH)
+ LINK_DLL=/usr/lpp/xlC/bin/makeC++SharedLib_r -o $@ $(MKSHLIB_FLAGS)
+ ifeq ($(OSMAJORVERSION), 4)
+ ifeq ($(OSMINORVERSION), 3)
+ LINK_DLL=/usr/ibmcxx/bin/makeC++SharedLib_r -o $@ $(MKSHLIB_FLAGS)
+ endif
+ endif
+ MKSHLIB=$(LINK_DLL)
+ EXTRA_LIBS=-ldl
+endif
+#LINK_DLL=$(LD) $(DLL_LDFLAGS) -o $@
+# AIX plugins can have unresolved references
+ifdef PRODUCT_IS_DIRECTORY_SERVER
+EXTRA_LIBS += -lpthreads -lc_r -lm
+endif
+
+VERITY_ARCH=_rs6k41
+NSAPI_CAPABLE=true
+USE_PTHREADS=1
+ifdef OLD_AIX_LINKING
+ DL_LIB =-lsvld
+else
+ DL_LIB =-ldl
+endif
+NSPR_DEFINES += -DNSPR20
+RWTOOLS_VERSION = latest
+#HTTPDSO_NAME=libdsnshttpd
+PEER_ARCH=aix
+
+else
+ifeq ($(ARCH), BSDI)
+
+CC=cc
+ARCH_DEBUG=-g
+ARCH_OPT=-O2
+ARCH_CFLAGS=-Wall -DNO_GETDOMAINNAME
+RANLIB=ranlib
+NONSHARED_FLAG=-static
+PEER_ARCH=bsdi
+
+else
+ifeq ($(ARCH), HPUX)
+DLL_SUFFIX=sl
+#-D_POSIX_C_SOURCE=199506L turns kernel threads on for HPUX11
+CC=cc -Ae -D_POSIX_C_SOURCE=199506L
+ifeq ($(BUILD_MODULE), HTTP_ADMIN)
+CXX=aCC -DHPUX_ACC -D__STDC_EXT__ -D_POSIX_C_SOURCE=199506L -ext
+else
+CXX=aCC -DHPUX_ACC -D__STDC_EXT__ -D_POSIX_C_SOURCE=199506L -ext
+endif
+CCC=$(CXX)
+ARCH_DEBUG=-g
+ARCH_OPT=-O
+# Compile everything pos-independent in case we need to put it in shared lib
+ifdef USE_64
+ ARCH_CFLAGS=-D_HPUX_SOURCE +DA2.0W +DS2.0 +Z
+else
+ ARCH_CFLAGS=-D_HPUX_SOURCE +DAportable +DS1.1 +Z
+endif
+# NSPR uses fpsetmask which I'm told is in the math lib
+EXTRA_LIBS= -ldld -lm
+ifeq ($(NSOS_RELEASE), B.10.10)
+ARCH_CFLAGS+=-DHPUX10 -DHPUX10_10
+# Debug with HPUX "dde" - makes the server single process - avoids fork()ing.
+# Can also be used for non HPUX if desired.
+#ARCH_CFLAGS+=-DUSE_DDE_DEBUG
+EXTRA_LIBS += -ldce
+else
+
+ifeq ($(NSOS_RELEASE), B.11.00)
+ MODERNHP=1
+endif
+
+ifeq ($(NSOS_RELEASE), B.11.11)
+ MODERNHP=1
+endif
+
+ifeq ($(MODERNHP), 1)
+ifeq ($(NSOS_RELEASE), B.11.00)
+ ARCH_CFLAGS+=-DHPUX11 -DHPUX11_00
+endif
+ifeq ($(NSOS_RELEASE), B.11.11)
+ ARCH_CFLAGS+=-DHPUX11 -DHPUX11_11
+endif
+# Debug with HPUX "dde" - makes the server single process - avoids fork()ing.
+# Can also be used for non HPUX if desired.
+#ARCH_CFLAGS+=-DUSE_DDE_DEBUG
+EXTRA_LIBS+= -lpthread
+endif
+endif
+RANLIB=true
+NONSHARED_FLAG=-Wl,-a,archive
+
+# Flags passed to CC to pass onto the linker; separate it from EXTRA_LIBS
+ifeq ($(USE_64),1)
+LD_CFLAGS=-W1,-E
+else
+LD_CFLAGS=-Wl,-E,-N
+endif
+DLL_CFLAGS=+Z
+DLL_LDFLAGS=-b
+NSAPI_CAPABLE=true
+VERITY_ARCH=_hp800
+USE_PTHREADS=1
+NSPR_DEFINES += -DNSPR20 -D_PR_NTHREAD -D_PR_USECPU -D_REENTRANT
+LINK_DLL=$(CCC) $(DLL_LDFLAGS) $(ARCH_CFLAGS) -o $@
+PEER_ARCH=hp
+RWTOOLS_VERSION = latest
+
+else
+ifeq ($(ARCH), IRIX)
+OSVERSION := $(shell uname -r)
+# the ns/ side of the fence assumes SVR4 is defined. --Rob
+CC=cc -DSVR4
+ifndef PRODUCT_IS_DIRECTORY_SERVER
+CXX=CC -DSVR4 -exceptions
+else
+# XXXmcs: 17-Sep-1997 - the -exceptions flag causes the IRIX CC compiler
+# to dump core when compiling ldapserver/lib/safs/aclsafs.c
+# We don't seem to need this for Directory Server....
+CXX=CC -DSVR4
+endif
+CCC=$(CXX)
+ARCH_DEBUG=-g
+ARCH_OPT=-O
+ifeq ($(USE_N32), 1)
+ ARCH_CFLAGS=-fullwarn -use_readonly_const -MDupdate .depends -n32
+else
+ ARCH_CFLAGS=-fullwarn -use_readonly_const -MDupdate .depends -o32
+endif
+RANLIB=true
+DLL_LDFLAGS=-shared
+NONSHARED_FLAG=-non_shared
+NLIST=-lmld
+NSAPI_CAPABLE=true
+# Use -DIRIX6_2 for 6.x
+ifeq (6.,$(findstring 6.,$(OSVERSION)))
+ARCH_CFLAGS+=-DIRIX6_2
+endif
+ifeq (6.5,$(OSVERSION))
+ARCH_CFLAGS+=-DIRIX6_5 -mips3
+endif
+NSPR_DEFINES += -DNSPR20 -D_PR_NTHREAD -D_SGI_MP_SOURCE
+
+LINK_DLL=$(CCC) $(DLL_LDFLAGS) -o $@
+PEER_ARCH=irix
+
+export NO_DB2=1
+else
+ifeq ($(ARCH), Linux)
+OSVERSION := $(basename $(shell uname -r))
+CC=/usr/bin/gcc -fwritable-strings
+CXX=/usr/bin/g++ -fwritable-strings
+CCC=$(CXX)
+LD=$(CXX)
+ARCH_DEBUG=-g
+ARCH_OPT=-O2
+ARCH_CFLAGS=-Wall -DNO_DBM -DLINUX -DLINUX2_2 -DLINUX2_4 -fPIC -D_REENTRANT
+RANLIB=ranlib
+DLL_LDFLAGS=-shared
+LINK_DLL=$(CC) $(DLL_LDFLAGS) -o $@
+NSPR_DEFINES += -DNSPR20
+NLIST=-lelf
+NSAPI_CAPABLE=true
+EXTRA_LIBS=-ldl -lcrypt -lpthread
+BUILD_IIOPLIB=no
+ifeq (2.4,$(OSVERSION))
+PEER_ARCH=linux2.4
+else
+PEER_ARCH=linux
+endif
+# linux always uses pthreads
+USE_PTHREADS = 1
+# remove this line when smartheap is built for linux
+LDAP_DONT_USE_SMARTHEAP = 1
+
+else
+ifeq ($(ARCH), UNIXWARE)
+
+CC=$(ABS_ROOT)/build/hcc
+CXX=$(ABS_ROOT)/build/hcpp
+CCC=$(CXX)
+CPPCMD=/lib/cpp -P
+ARCH_DEBUG=-g
+ARCH_OPT=
+ARCH_CFLAGS=
+RANLIB=true
+NLIST=-lelf
+NSAPI_CAPABLE=true
+
+# to use native threads - uncomment this
+# export USE_SVR4_THREADS=1
+
+# The -lgen is for syslog.
+
+ifdef USE_SVR4_THREADS
+OS_THREADLIB = -lthread
+endif
+
+EXTRA_LIBS=-lsocket -lnsl -lresolv -ldl -lgen -lC -lc /usr/ucblib/libucb.a $(OS_THREADLIB)
+# extra libs because svr4 doesn't support sockets the way we want...?
+DLL_LDFLAGS=-d y -G
+USE_LD_RUN_PATH=true
+LDAP_VERSION = oem
+RWTOOLS_VERSION = latest
+ADM_RELDATE = oem
+ADM_VERSDIR = admserv35
+AUTOCATALOG_VERSION = oem
+NEED_VTASKSTUB = 1
+NO_MSOFT_OBJ=1
+BUILD_WEBPUB=no
+BUILD_IIOPLIB=no
+NSPR_DEFINES += -DNSPR20
+PEER_ARCH=unixware
+
+export NO_INFORMIX=1
+export NO_ORACLE=1
+export NO_SYBASE=1
+export NO_ODBC=1
+export NO_DB2=1
+
+else
+ifeq ($(ARCH), UnixWare)
+# We don't want to use absolute paths here, because we might want to pickup
+# UDK tools from /udk/usr/ccs, so we depend on the PATH being correctly set
+CC=cc
+CCC=CC
+CXX=$(CCC)
+CPPCMD=/lib/cpp -P
+ARCH_DEBUG=-g
+ARCH_OPT=-O
+SV_REL := $(shell uname -r)
+# SVR5 if Gemini UnixWare
+# SVR4 if UnixWare 2.1.x with the UDK tools
+ifeq ($(SV_REL),5)
+ ARCH_CFLAGS=-DSVR5 -D_SIMPLE_R
+else
+ ARCH_CFLAGS=-DSVR4 -D_SIMPLE_R
+endif
+RANLIB=true
+NLIST=-lelf
+NSAPI_CAPABLE=true
+
+# to use native threads - uncomment this
+# export USE_SVR4_THREADS=1
+
+ifdef USE_SVR4_THREADS
+OS_THREADLIB = -lthread
+endif
+
+# extra libs because svr4 doesn't support sockets the way we want...?
+EXTRA_LIBS=-lsocket -lnsl -lresolv -ldl -lgen -lC -lc /usr/ucblib/libucb.a
+$(OS_THREADLIB)
+LICENSE_LIBS=
+#LICENSE_LIBS=-lscolicense -lannot -li4clnt -li4shl -li4nsi -li4rpci\
+# -lnck_task -lcps -lsocket /usr/ccs/lib/libC.a
+# extra libs because svr4 doesn't support sockets the way we want...?
+VERITY_LIB=_386svr4
+
+#If you comment the line below, you will turn off the SCO licensing.
+#This will allow you to use the server internally for test purposes.
+#MCC_SERVER += -DSCO_PM
+DLL_LDFLAGS=-d y -G
+#DLL_CFLAGS=-KPIC
+USE_LD_RUN_PATH=true
+LDAP10_VERSION = oem
+RWTOOLS_VERSION = latest
+ADM_RELDATE = oem
+ADM_VERSDIR = admserv35
+AUTOCATALOG_VERSION = oem
+NEED_VTASKSTUB = 1
+NO_MSOFT_OBJ=1
+BUILD_WEBPUB=no
+BUILD_IIOPLIB=no
+NSPR_DEFINES += -DNSPR20
+PEER_ARCH=unixware5
+DB_VERSION=oem
+
+export NO_INFORMIX=1
+export NO_ORACLE=1
+export NO_SYBASE=1
+export NO_ODBC=1
+export NO_DB2=1
+
+else
+ifeq ($(ARCH), SCOOS)
+CC=cc -b elf -KPIC -DSCOOS
+CXX=g++ -b elf -DPRFSTREAMS_BROKEN -I/usr/local/lib/g++-include
+CCC=$(CXX)
+CPPCMD=/lib/cpp
+ARCH_DEBUG=-g
+ARCH_OPT=
+ARCH_CFLAGS=
+RANLIB=true
+NLIST=-lelf
+NSAPI_CAPABLE=true
+EXTRA_LIBS=-lsocket -lnsl -ldl -lpmapi -lc -lPW
+DLL_LDFLAGS=-d y -G
+
+VERITY_ARCH = _scoodt
+MCC_SERVER += -DSCO_PM
+DLL_LDFLAGS=-d y -G
+USE_LD_RUN_PATH=true
+LDAP_VERSION = oem
+RWTOOLS_VERSION = latest
+ADM_RELDATE = oem
+ADM_VERSDIR = admserv35
+AUTOCATALOG_VERSION = oem
+BUILD_WEBPUB = no
+NO_MSOFT_OBJ = 1
+NSPR_DEFINES += -DNSPR20
+PEER_ARCH=sco
+
+else
+ifeq ($(ARCH), NCR)
+
+ABS_ROOT := $(shell cd $(MCOM_ROOT); pwd)
+
+NS_USE_GCC = 1
+
+CPPCMD = /lib/cpp
+ARCH_DEBUG = -g
+ARCH_OPT =
+ARCH_CFLAGS =
+RANLIB = true
+NLIST = -lelf
+NSAPI_CAPABLE = true
+
+ifdef NS_USE_GCC
+# if gcc-settings are redefined already - don't touch it
+#
+ifeq (,$(findstring gcc, $(CC)))
+CC = gcc
+CCC = g++
+CXX = g++
+# always use -fpic - some makefiles are still broken and don't distinguish
+# situation when they build shared and static libraries
+ARCH_CFLAGS += -fpic -Wall -DPRFSTREAMS_BROKEN -DNS_USE_GCC $(GCC_FLAGS_EXTRA)
+CCC_EXTRA_LIBS = -L/usr/local/lib -lstdc++ -lg++ -lgcc
+endif
+endif
+
+ifdef NS_USE_NATIVE
+CC = cc
+CCC = ncc
+CXX = ncc
+ARCH_CFLAGS += -DNS_USE_NATIVE
+CCC_EXTRA_LIBS = -L/opt/ncc/lib
+endif
+
+###
+
+# order is important
+EXTRA_LIBS = -lsocket -lnsl -lresolv -lgen -ldl $(CCC_EXTRA_LIBS) -lc /usr/ucblib/libucb.a
+GCC_FLAGS_EXTRA = -pipe
+
+DLL_LDFLAGS = -d y -G
+VERITY_ARCH = _isvr4
+USE_LD_RUN_PATH = true
+LDAP_VERSION = oem
+RWTOOLS_VERSION = latest
+ADM_RELDATE = oem
+ADM_VERSDIR = admserv35
+NEED_VTASKSTUB = 1
+NO_MSOFT_OBJ = 1
+AUTOCATALOG_VERSION = oem
+BUILD_WEBPUB = no
+BUILD_IIOPLIB = no
+DL_LIB =-ldl
+NSPR_DEFINES += -DNSPR20
+# svr4-x86 compatible
+PEER_ARCH=unixware
+
+export NO_ODBC=1
+export NO_DB2=1
+
+else
+ifeq ($(ARCH), SONY)
+
+CC=cc
+ARCH_DEBUG=-g
+ARCH_OPT=
+ARCH_CFLAGS=
+RANLIB=true
+NLIST=-lelf
+NSAPI_CAPABLE=true
+EXTRA_LIBS=-lgen -lsocket -lnsl -ldl
+DLL_LDFLAGS=-G
+# extra libs because svr4 doesn't support sockets the way we want...
+
+LDAP_VERSION = oem
+RWTOOLS_VERSION = latest
+ADM_RELDATE = oem
+ADM_VERSDIR = admserv35
+AUTOCATALOG_VERSION = oem
+
+else
+ifeq ($(ARCH), NEC)
+
+CC=$(MCOM_ROOT)/build/hcc
+ARCH_DEBUG=-g
+ARCH_OPT=-KOlimit=4000
+ARCH_CFLAGS=-Xa
+RANLIB=true
+NLIST=
+NSAPI_CAPABLE=true
+EXTRA_LIBS=-lsocket -lnsl -ldl -lsdbm
+DLL_LDFLAGS=-G
+PEER_ARCH=nec
+LDAP_VERSION = oem
+RWTOOLS_VERSION = latest
+ADM_RELDATE = oem
+ADM_VERSDIR = admserv35
+AUTOCATALOG_VERSION = oem
+
+else
+ifeq ($(ARCH), ReliantUNIX)
+
+# do not use DCE PTHREADS now
+# USE_PTHREADS = 1
+# do not use gcc anymore
+# NS_USE_GCC = 1
+
+DLL_LDFLAGS = -G
+
+ifdef NS_USE_GCC
+
+# gcc section
+CC=gcc
+CXX=gcc
+CCC=gcc
+LD=gld
+ARCH_DEBUG=-gdwarf
+ARCH_OPT=-O2
+ARCH_LDFLAGS=-Xlinker -Blargedynsym
+ARCH_CFLAGS=-pipe -DSVR4 -DSNI
+LINK_DLL=gld $(DLL_LDFLAGS) -o $@
+
+else
+
+# CDS++ section
+CC=cc
+CXX=CC -K old_for_init
+CCC=CC -K old_for_init
+CPPCMD=/usr/ccs/lib/cpp -P
+ARCH_DEBUG=-g
+ARCH_OPT=-O2
+ARCH_LDFLAGS=-Wl,-Blargedynsym
+ARCH_CFLAGS=-DSVR4 -DSNI
+# we need to use $(CCC) if the .so contains C++ code
+# so in Makefiles where we want the .so to be linked with CC
+# we add a DLL_CC = $(CCC)
+LINK_DLL=$(DLL_CC) $(DLL_LDFLAGS) -o $@
+# otherwise, we just use $(CC)
+DLL_CC=$(CC)
+# There is another quirk: You cannot load .so's containing C++
+# code in an executable linked with $(CC)
+
+ifeq ($(USE_PTHREADS), 1)
+ARCH_CFLAGS += -K thread -DUSE_PTHREADS
+ARCH_LDFLAGS += -K thread
+DLL_LDFLAGS += -K thread
+endif
+
+endif
+
+RANLIB=true
+DLL_LDFLAGS=-G
+NONSHARED_FLAG=
+NLIST=-lelf
+NSAPI_CAPABLE=true
+VERITY_ARCH=_mipsabi
+NONSHARED_FLAG=
+EXTRA_LIBS=-lsocket -lnsl -lresolv -ldl -lgen -L/usr/local/lib -lsni
+USE_LD_RUN_PATH=true
+
+#LDAP_VERSION = latest
+#LDAP_RELDATE = latest
+LDAP_RELDATE = 20001119
+RWTOOLS_VERSION = latest
+# NEED_VTASKSTUB = 1
+
+#NO_MSOFT_OBJ=1
+BUILD_WEBPUB=yes
+BUILD_IIOPLIB=yes
+DO_AUTOCATALOG=yes
+DO_PKGAUTOCATALOG=yes
+
+#this is no longer needed
+#NEED_NSPR_MALLOC=yes
+NSPR_DEFINES += -DNSPR20
+
+PEER_ARCH=reliantunix
+RWTOOLS_VERSION = latest
+ADM_RELDATE = oem
+ADM_VERSDIR = admserv35
+AUTOCATALOG_VERSION = oem
+DB_VERSION=oem
+
+#export NO_INFORMIX=1
+#export NO_ORACLE=1
+export NO_SYBASE=1
+export NO_ODBC=1
+export NO_DB2=1
+
+else
+ifeq ($(ARCH), OSF1)
+
+CC=cc
+CCC=cxx
+CXX=cxx
+ARCH_DEBUG=-g
+ARCH_OPT=-O2
+ARCH_CFLAGS=-DIS_64 -DOSF1V4 -DOSF1V4$(NSOS_TAG) -ieee_with_inexact -pthread -std1
+# ranlib no longer needed on OSF1 V4.0
+RANLIB=true
+DLL_LDFLAGS=-shared -all -expect_unresolved "*"
+NONSHARED_FLAG=-non_shared
+NSAPI_CAPABLE=true
+VERITY_ARCH=_aosf40
+ifdef PRODUCT_IS_DIRECTORY_SERVER
+#EXTRA_LIBS+=-lcxxstd -lcxx
+else
+#EXTRA_LIBS=-lcxxstd -lcxx
+endif
+USE_PTHREADS=1
+NSPR_DEFINES += -DNSPR20
+RWTOOLS_VERSION = latest
+PEER_ARCH=osf
+PEERDIR=$(DEVROOT)/osf/dev
+
+export NO_DB2=1
+export NO_ODBC=1
+
+else
+ifeq ($(ARCH), SUNOS4)
+
+# Compile everything position-independent so we can put it into shared lib
+CC=gcc -fPIC
+ARCH_DEBUG=-g
+ARCH_OPT=-O2
+ARCH_CFLAGS=-Wall -pipe
+RANLIB=ranlib
+DLL_CFLAGS=-fPIC
+DLL_LDFLAGS=-assert pure-text
+NONSHARED_FLAG=-static
+NSAPI_CAPABLE=true
+RESOLV_LINK=/usr/local/lib/libresolvPIC.a
+PEER_ARCH=sunos
+
+ifeq ($(RESOLV_FLAG), noresolv)
+EXTRA_LIBS=-ldl
+DNS_STUB_C=dns-stub.c
+DNS_STUB_O=dns-stub.o
+
+else
+EXTRA_LIBS=$(RESOLV_LINK) -ldl
+DNS_STUB_C=nis-stub.c
+DNS_STUB_O=nis-stub.o
+endif
+
+else
+ifeq ($(ARCH), SOLARIS)
+
+#
+# 7/12/96 Adrian - Switch to use SparcWorks for 3.0 Development
+# Therefore no need to separate from catalog server
+#
+OSVERSION := $(shell uname -r | sed "y/./0/")
+NS_USE_NATIVE=1
+CC=cc -v
+CXX=CC +w
+CCC=$(CXX)
+LD=$(CC)
+ARCH_OPT=-xO2
+ARCH_CFLAGS=-DSVR4 -D__svr4 -D__svr4__ -D_SVID_GETTOD -DOSVERSION=$(OSVERSION)
+ifdef USE_64
+ ARCH_CFLAGS += -xarch=v9
+endif
+ARCH_DEBUG=-g
+RANLIB=true
+
+EXTRA_LIBS = -lthread -lposix4 -lsocket -lnsl -ldl -lresolv -lw
+ifdef PRODUCT_IS_DIRECTORY_SERVER
+EXTRA_LIBS += -lgen
+endif
+
+DLL_LDFLAGS=-G
+NONSHARED_FLAG=-static
+NSAPI_CAPABLE=true
+NLIST=-lelf
+VERITY_ARCH=_solaris
+NSPR_DEFINES += -DNSPR20 -D_PR_NTHREAD -D_REENTRANT
+PEER_ARCH=solaris
+
+# XXXrobm BARF
+# ifeq ($(NSOS_RELEASE), 5.3)
+# GCCLIB=/usr/local/lib/gcc-lib/sparc-sun-solaris2.3/2.6.3/libgcc.a
+GCCLIB=
+# We are using a CC compiler but we were linking to libgcc.a - should use sparcworks libC
+#GCCLIB=/tools/ns-arch/sparc_sun_solaris2.5/soft/sparcworks-3.0.1/run/default/share/lib/sparcworks/SUNWspro/SC3.0.1/lib/libC.a
+# else
+# GCCLIB=/usr/local/lib/gcc-lib/sparc-sun-solaris2.4/2.6.3/libgcc.a
+# endif
+
+else
+ifeq ($(ARCH), SOLARISx86)
+OSVERSION := $(shell uname -r | sed "y/./0/")
+NS_USE_NATIVE=1
+# Add SOLARIS define as well as SOLARISx86 which happens automagically
+CC=cc -DSOLARIS
+CXX=CC -DSOLARIS
+CCC=$(CXX)
+ARCH_OPT=-xO2
+ARCH_CFLAGS=-DSVR4 -D__svr4 -D__svr4__ -D_SVID_GETTOD -DOSVERSION=$(OSVERSION)
+ARCH_DEBUG=-g
+RANLIB=true
+
+EXTRA_LIBS = -lsocket -lthread -lposix4 -lnsl -ldl -lresolv -lm -lw
+
+DLL_LDFLAGS=-G
+#LDAP_VERSION = oem
+RWTOOLS_VERSION = latest
+#ADM_RELDATE = oem
+#ADM_VERSDIR = admserv30
+AUTOCATALOG_VERSION = oem
+#DB_VERSION=oem
+NONSHARED_FLAG=-static
+NSAPI_CAPABLE=true
+NLIST=-lelf
+NO_MSOFT_OBJ=1
+BUILD_WEBPUB=no
+BUILD_IIOPLIB=no
+NSPR_DEFINES += -DNSPR20 -D_PR_NTHREAD -D_REENTRANT
+export NO_INFORMIX=1
+export NO_ORACLE=1
+export NO_SYBASE=1
+export NO_ODBC=1
+export NO_DB2=1
+PEER_ARCH=solarisx86
+
+else
+ifeq ($(ARCH), WINNT)
+ifdef DEBUG_RUNTIME
+RTFLAG=-MDd
+else
+RTFLAG=-MD
+endif
+LIB_SUFFIX=lib
+DLL_SUFFIX=dll
+PROCESSOR := $(shell uname -p)
+PEER_ARCH=nti31
+ifeq ($(PROCESSOR), I386)
+CPU_ARCH = x386
+VERITY_ARCH=_nti31
+ARCH_OPT=-DNDEBUG -O2
+CC=cl -nologo $(RTFLAG) -W3 -GT -GX -D_X86_ -Dx386 -DWIN32 -D_WINDOWS -D_RWTOOLSDLL
+CCP=cl -nologo $(RTFLAG) -W3 -GT -GX -D_X86_ -Dx386 -DWIN32 -D_WINDOWS -D_MBCS -D_AFXDLL -D_RWTOOLSDLL
+else
+ifeq ($(PROCESSOR), MIPS)
+CPU_ARCH = MIPS
+VERITY_ARCH=verity_is_undefined
+ARCH_OPT=-DNDEBUG -O2
+CC=cl -nologo $(RTFLAG) -W3 -GT -GX -D_MIPS_ -DWIN32 -D_WINDOWS -D_RWTOOLSDLL
+CCP=cl -nologo $(RTFLAG) -W3 -GT -GX -D_X86_ -Dx386 -DWIN32 -D_WINDOWS -D_MBCS -D_AFXDLL -D_RWTOOLSDLL
+else
+ifeq ($(PROCESSOR), ALPHA)
+CPU_ARCH = ALPHA
+VERITY_ARCH=_ant35
+ARCH_OPT=-DNDEBUG -Od
+CC=cl -nologo $(RTFLAG) -W3 -GT -GX -D_ALPHA=1 -DWIN32 -D_WINDOWS -D_RWTOOLSDLL
+CCP=cl -nologo $(RTFLAG) -W3 -GT -GX -D_ALPHA_ -DWIN32 -D_WINDOWS -D_MBCS -D_AFXDLL -D_RWTOOLSDLL
+BUILD_IIOPLIB=no
+export NO_SYBASE=1
+export NO_ODBC=1
+export NO_DB2=1
+else
+CPU_ARCH = processor_is_undefined
+endif
+endif
+endif
+RC=rc $(MCC_SERVER)
+MC=mc
+ifdef HEAPAGENT
+OBJSWITCH=-Zi
+else
+OBJSWITCH=-Z7
+endif
+ARCH_DEBUG=-D_DEBUG -Od $(OBJSWITCH)
+ARCH_CFLAGS=
+ARCH_LINK_DEBUG=-DEBUG
+ARCH_LINK_OPT=
+RANLIB=echo
+
+EXTRA_LIBS=wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib \
+ comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib \
+ rpcrt4.lib uuid.lib odbc32.lib odbccp32.lib winmm.lib
+
+DLL_LDFLAGS=
+NONSHARED_FLAG=
+NSAPI_CAPABLE=true
+NO_MSOFT_OBJ=1
+NSPR_DEFINES += -DNSPR20 -D_PR_NTHREAD -D_PR_USECPU
+
+else
+
+CC=UNKNOWN_SYSTEM_TYPE
+
+endif
+endif
+endif
+endif
+endif
+endif
+endif
+endif
+endif
+endif
+endif
+endif
+endif
+endif
+endif
+endif
+endif
+
+# Peer SNMP defines
+ifeq ($(BUILD_SNMP), yes)
+MCC_SERVER += -DPEER_SNMP
+SNMP=libsnmp
+SNMP_INCLUDE=$(DEVROOT)/include
+PEERLIB=$(DEVROOT)/$(PEER_ARCH)/dev
+SNMPNOLIB=snmp
+ifeq ($(ARCH), WINNT)
+PEERLIBOBJ=$(PEERLIB)/mgmt.lib
+else
+PEERLIBOBJ=$(PEERLIB)/mgmt.o
+endif
+else
+SNMP=
+SNMP_INCLUDE=.
+PEERLIB=
+PEERLIBOBJ=
+SNMPNOLIB=
+endif
+
+# ------------------------ The actual build rules ------------------------
+include $(MCOM_ROOT)/ldapserver/nsperl.mk
+
+RELTOOLSPATH = $(ABS_ROOT)/reltools
+FTP_PULL = $(PERL) $(RELTOOLSPATH)/ftp_puller_new.pl -logdir $(ABS_ROOT) -trimlog
+
+# make sure ftp puller exists
+$(RELTOOLSPATH)/ftp_puller_new.pl:
+ cd $(ABS_ROOT) ; cvs co RelToolsLite
+
+# Define preferred pull method for the platform.
+# Can be overridden for the entire build, and also for each component
+# each component has an XXX_PULL_METHOD macro that defaults to the pull
+# method listed below; see components.mk
+ifndef COMPONENT_PULL_METHOD
+ifeq ($(ARCH), WINNT)
+COMPONENT_PULL_METHOD = FTP
+else
+COMPONENT_PULL_METHOD = SYMLINK
+endif
+endif
+
+# platforms without full rtl debugging versions of libraries i.e. not NT
+FULL_RTL_OBJDIR = $(NSOBJDIR_NAME)
+NSCP_DISTDIR_FULL_RTL = $(NSCP_DISTDIR)
+NSCP_ABS_DISTDIR_FULL_RTL = $(ABS_ROOT)/dist/$(FULL_RTL_OBJDIR)
+
+# these components may have additional RTL debugging support built in on NT
+# adminsdk (adminutil), dbm, ldapsdk, NLS, NSPR, NSS (security)
+# we cannot simply redefine NSOBJDIR_NAME and NSCP_DISTDIR because other
+# components do not have this RTL support stuff and the .OBJD directory
+# does not exist
+ifeq ($(ARCH), WINNT)
+ ifeq ($(DEBUG), fulld)
+ FULL_RTL_OBJDIR=$(NSOBJDIR_NAME)D
+ NSCP_DISTDIR_FULL_RTL = $(MCOM_ROOT)/dist/$(FULL_RTL_OBJDIR)
+ NSCP_ABS_DISTDIR_FULL_RTL = $(MCOM_ROOT)/dist/$(FULL_RTL_OBJDIR)
+ endif
+endif
+
+$(NSCP_DISTDIR_FULL_RTL) $(CLASS_DEST): $(RELTOOLSPATH)/ftp_puller_new.pl
+ mkdir -p $@
+
+include $(NSROOT)/components.mk
+
+# these two macros are to fool the crazy NSPR nsinstall and fasttime
+# stuff into putting the objects and binaries in this location
+ABS_OBJDIR=$(ABS_ROOT)/ldapserver/built/$(NS_BUILD_FLAVOR)
+NSDEFS += DIST=$(NSPR_ABS_BUILD_DIR) OBJDIR=$(ABS_OBJDIR) \
+ FASTTIME_HEADER_DEST=$(ABS_OBJDIR)/include \
+ FASTTIME_TARGET_DEST=$(ABS_OBJDIR)
+# NT uses nsinstall.exe from the path
+ifneq ($(ARCH), WINNT)
+ NSDEFS += NSINSTALL=$(ABS_OBJDIR)/nsinstall
+endif
+
+##### FTP over AIX and HPUX since they are flakey over NFS ######
+#################################################################
+ifeq ($(ARCH), AIX)
+ FTP_UNIX=YES
+endif
+ifeq ($(ARCH), HPUX)
+ FTP_UNIX=YES
+endif
+################################################################
+
+#############################################################################
+# Pull the DS4.1 MCC package to get nsslapd.dll/.lib/.so for the DS ResKit
+# ONLY. Do not USE these macros for anything else
+#############################################################################
+MCCBINARYDATE=19990621$(SEC_SUFFIX)
+FULLDSBINARY=$(COMPONENTS_DIR)/mcc41/$(MCCBINARYDATE)/$(NSOBJDIR_NAME)
+
+RM=rm
+DEPEND=makedepend
+
+ifeq ($(ARCH), IRIX)
+STRIP=strip -x
+else
+STRIP=strip
+endif # IRIX
+
+# XXXrobm The Sun MD stuff #includes stuff in the nspr dir without a prefix
+# Otherwise the second NSCP_DISTDIR/include/nspr would not be necessary
+ifdef NSPR20
+MCC_INCLUDE=-I$(NSROOT)/include \
+ -I$(MCOM_ROOT)/include \
+ $(NSPR_INCLUDE) $(DBM_INCLUDE) $(SECURITY_INCLUDE) \
+ $(SVRCORE_INCLUDE) \
+ -I$(MCOM_ROOT)/nspr20/lib
+
+# $(SVRCORE_INCLUDE) $(NLS_INCLUDE) \
+
+else
+MCC_INCLUDE=-I$(NSROOT)/include -I$(MCOM_ROOT)/include \
+ -I$(NSCP_DISTDIR)/include -I$(NSCP_DISTDIR)/include/nspr
+endif
+
+MCC_INCLUDE += -I$(LDAP_INCLUDE)
+MCC_INCLUDE += -I$(SASL_INCLUDE)
+
+ifeq ($(ARCH), WINNT)
+XP_FLAG=-DXP_WIN32 -DXP_WIN -D_WINDOWS -DXP_PC -DXP_WINNT
+else
+XP_FLAG=-DXP_UNIX
+endif
+# CFLAGS_NO_ARCH is needed temporarily by NS_MAIL
+CFLAGS_NO_ARCH=$(NODE_FLAG) $(BOMB) $(MODULE_CFLAGS) $(XP_FLAG) \
+ -D$(ARCH) $(MCC_DEBUG) $(MCC_SERVER)
+CFLAGS=$(ARCH_CFLAGS) $(CFLAGS_NO_ARCH)
+ifeq ($(BUILD_DLL), yes)
+CFLAGS += -DBUILD_DLL
+endif
+LFLAGS=$(ML_DEBUG)
+
+ifeq ($(BSCINFO), yes)
+CBSCFLAGS=-FR$(OBJDEST)/$*.sbr
+endif
+
+include $(NSROOT)/nscore.mk
+
+# These are the defaults, individual Makefiles can override them as necessary
+FVERSION=$(MAJOR_VERSION).$(MINOR_VERSION)
+FVERSION_FLAGS=-v$(FVERSION)
+
+$(NSROOT)/fversion.exe: $(NSROOT)/dategen/fversion.c
+ cl $< user32.lib -link -out:$@
+
+ifeq ($(ARCH), WINNT)
+$(OBJDEST)/%.res: %.rc $(NSROOT)/fversion.exe
+ $(RC) $(shell $(NSROOT)/fversion.exe $(FVERSION_FLAGS)) -Fo$@ $*.rc
+endif
+
+ifdef USE_LINT
+LINT = lint
+LINTCFLAGS = -errchk=%all -u -F -errtags -errhdr -errfmt=simple -Nlevel=4 -Xarch=v9 -erroff=E_ASGN_NEVER_USED
+#no lint for c++ code on Solaris
+#LINTCCFLAGS = $(LINTCFLAGS)
+endif
+
+#ifndef NOSTDCOMPILE
+$(OBJDEST)/%.o: %.cc
+ifeq ($(ARCH), WINNT)
+ $(CCP) -c $(CCFLAGS) $(CFLAGS) $(MCC_INCLUDE) $< -Fo$(OBJDEST)/$*.o
+else
+ $(CCC) -c $(CCFLAGS) $(CFLAGS) $(MCC_INCLUDE) $< -o $(OBJDEST)/$*.o
+endif
+#endif
+
+ifndef NOSTDCOMPILE
+$(OBJDEST)/%.o: %.cpp
+ifeq ($(ARCH), WINNT)
+ $(CCP) -c $(CCFLAGS) $(CFLAGS) $(MCC_INCLUDE) $< -Fo$(OBJDEST)/$*.o
+else
+ $(CCC) -c $(CCFLAGS) $(CFLAGS) $(MCC_INCLUDE) $< -o $(OBJDEST)/$*.o
+endif
+endif
+
+ifndef NOSTDCOMPILE
+$(OBJDEST)/%.o: %.c
+ifeq ($(ARCH), WINNT)
+ifeq ($(BOUNDS_CHECKER), yes)
+ bcompile -c -Zop $(NSROOT)/bchecker.ini -nologo $(RTFLAG) -W3 -GT -GX -DWIN32 \
+ -D_WINDOWS $(CFLAGS) $(MCC_INCLUDE) $< -Fo$(OBJDEST)/$*.o
+else
+ $(CC) -c $(CFLAGS) $(MCC_INCLUDE) $< -Fo$(OBJDEST)/$*.o $(CBSCFLAGS)
+endif
+else
+ $(CC) -c $(CFLAGS) $(MCC_INCLUDE) $< -o $(OBJDEST)/$*.o
+endif
+ifdef USE_LINT
+ $(LINT) $(LINTCFLAGS) $(subst -KPIC,,$(CFLAGS)) $(MCC_INCLUDE) $< > $(OBJDEST)/$*.ln 2>&1
+# $(LINT) $(LINTCFLAGS) $(MODULE_CFLAGS) $(DEFS) $(MCC_SERVER) $(INCLUDES) $(MCC_INCLUDE) $< > $(OBJDEST)/$*.ln 2>&1
+endif
+endif
+
+ifeq ($(ARCH), WINNT)
+AR=lib /nologo /out:"$@"
+ifdef HEAPAGENT
+LDAP_DONT_USE_SMARTHEAP=true
+else
+PDBSWITCH=/PDB:NONE
+endif
+LINK_DLL = link /nologo $(USE_MAP) /DLL $(PDBSWITCH) $(ML_DEBUG) /SUBSYSTEM:WINDOWS $(LLFLAGS) $(DLL_LDFLAGS) /out:"$@"
+LINK_EXE = link -OUT:"$@" $(USE_MAP) $(ARCH_LINK_DEBUG) $(LCFLAGS) /NOLOGO $(PDBSWITCH) /INCREMENTAL:NO \
+ /SUBSYSTEM:windows $(OBJS) $(DEPLIBS) $(EXTRA_LIBS)
+BSCMAKE = bscmake.exe /nologo /o $@
+endif # WINNT
+
+ifndef NOSTDCLEAN
+clean:
+ $(RM) -f .depends $(LIBS) $(OBJDEST)/*.o *_pure_* $(BINS) $(PUREFILES)
+endif
+
+ifndef NOSTDDEPEND
+ifeq ($(ARCH), WINNT)
+INCLUDE_DEPENDS = $(NULL)
+depend:
+ echo making depends
+else
+INCLUDE_DEPENDS = .depends
+.depends:
+ touch .depends
+
+depend:
+ $(DEPEND) -f .depends -- $(MCC_INCLUDE) $(CFLAGS) *.c *.cpp
+endif
+endif
+
+ifndef NOSTDSTRIP
+strip:
+ $(STRIP) $(BINS)
+endif
+
+
+# Whoa. Hack around the fact that we're using CPP for something it
+# wasn't designed to do.
+#
+# Note: I copied and pasted the HTML def to the section below. Please
+# make changes in BOTH places. MLM
+
+ifeq ($(ARCH), WINNT)
+WIN_HTMLDEFS= /D "XP_WIN32" /D"WIN32" $(MCC_SERVER)
+
+$(HTMLDEST)/%.html: %.h
+ cl /nologo /P /EP -I. $(WIN_HTMLDEFS) -Fo$@ $*.h
+ cp $*.i $@
+ rm $*.i
+else
+$(HTMLDEST)/%.html: %.h
+ @echo "$< -> $(HTMLDEST)/$*.html..."
+ @sed -e s/\'/::NETSCAPE_QUOTE_CHAR::/g \
+ -e s/\"/::NETSCAPE_DBL_QUOTE::/g \
+ -e 's^/\*^::NETSCAPE_SLASHSTAR::^g' \
+ -e 's^\*/^::NETSCAPE_STARSLASH::^g' \
+ -e 's^//^::NETSCAPE_DBLSLASH::^g' \
+ -e 's^\.^::NETSCAPE_PERIOD::^g' \
+ -e 's/^# /::NETSCAPE_HASH_BEGIN::/g' $< > /tmp/$*.HTEMP.c
+ @$(CPPCMD) -I. $(MCC_SERVER) -DXP_UNIX $(HTMLDEFS) /tmp/$*.HTEMP.c | \
+ sed -e s/::NETSCAPE_QUOTE_CHAR::/\'/g \
+ -e s/::NETSCAPE_DBL_QUOTE::/\"/g \
+ -e 's^::NETSCAPE_SLASHSTAR::^/\*^g' \
+ -e 's^::NETSCAPE_DBLSLASH::^//^g' \
+ -e 's^::NETSCAPE_PERIOD::^.^g' \
+ -e 's^::NETSCAPE_STARSLASH::^\*/^g' | \
+ egrep -v '^# .*' | grep -v '#ident ' | \
+ sed -e 's/::NETSCAPE_HASH_BEGIN::/# /g' > $(HTMLDEST)/$*.html
+ @rm /tmp/$*.HTEMP.c
+endif
+
+#
+# Compile in TNF_PROBE_*_DEBUG() macros by doing eg: gmake BUILD_DEBUG=optimize TNF_DEBUG=1
+# See aclplugin for TNF_PROBE_0_DEBUG() egs.
+# After do:
+# prex ns-slapd -z -D <instance-dir>
+# enable $all
+# trace $all
+# continue
+# <ctrl-c>
+#
+# and do a tnfdump /tmp/trace-<ns-slapd-PID> to see tnf logs.
+#
+
+ifeq ($(ARCH), SOLARIS)
+ifeq ($(USE_64), 1)
+LDAP_DONT_USE_SMARTHEAP=1
+endif
+ifdef TNF_DEBUG
+CFLAGS += -DTNF_DEBUG
+endif
+endif
+
+# Do the same for index.lst...
+ifeq ($(ARCH), WINNT)
+L_WIN_HTMLDEFS= /D "XP_WIN32" /D"WIN32" $(MCC_SERVER)
+
+$(HTMLDEST)/%.lst: %.lst
+ cl /nologo /P /EP $(L_WIN_HTMLDEFS) -Fo$@ $*.lst
+ cp $*.i $@
+ rm $*.i
+else
+$(HTMLDEST)/%.lst: %.lst
+ @echo "$< -> $(HTMLDEST)/$*.lst..."
+ @sed -e s/\'/::NETSCAPE_QUOTE_CHAR::/g \
+ -e s/\"/::NETSCAPE_DBL_QUOTE::/g \
+ -e 's^/\*^::NETSCAPE_SLASHSTAR::^g' \
+ -e 's^\*/^::NETSCAPE_STARSLASH::^g' \
+ -e 's^//^::NETSCAPE_DBLSLASH::^g' \
+ -e 's/^# /::NETSCAPE_HASH_BEGIN::/g' $< > /tmp/$*.HTEMP.c
+ @$(CPPCMD) -I. $(MCC_SERVER) -DXP_UNIX $(HTMLDEFS) /tmp/$*.HTEMP.c | \
+ sed -e s/::NETSCAPE_QUOTE_CHAR::/\'/g \
+ -e s/::NETSCAPE_DBL_QUOTE::/\"/g \
+ -e 's^::NETSCAPE_SLASHSTAR::^/\*^g' \
+ -e 's^::NETSCAPE_DBLSLASH::^//^g' \
+ -e 's^::NETSCAPE_STARSLASH::^\*/^g' | egrep -v '^# .*' | \
+ sed -e 's/::NETSCAPE_HASH_BEGIN::/# /g' > $(HTMLDEST)/$*.lst
+ @rm /tmp/$*.HTEMP.c
+endif
+
+# ------------------------- Finally, the modules -------------------------
+$(NSROOT)/modules.mk: $(NSROOT)/modules.awk
+ @echo re-making $(NSROOT)/modules.mk ...
+ @cd $(NSROOT); sh modules.sh
+
+include $(NSROOT)/modules.mk