summaryrefslogtreecommitdiffstats
path: root/ns_usedb.mk
diff options
context:
space:
mode:
Diffstat (limited to 'ns_usedb.mk')
-rw-r--r--ns_usedb.mk153
1 files changed, 153 insertions, 0 deletions
diff --git a/ns_usedb.mk b/ns_usedb.mk
new file mode 100644
index 00000000..0980468e
--- /dev/null
+++ b/ns_usedb.mk
@@ -0,0 +1,153 @@
+#
+# BEGIN COPYRIGHT BLOCK
+# Copyright 2001 Sun Microsystems, Inc.
+# Portions copyright 1999, 2001-2003 Netscape Communications Corporation.
+# All rights reserved.
+# END COPYRIGHT BLOCK
+#
+#
+# this is ns_usedb.mk
+# a make include file intended to make the use of berkeley db
+# within builds easier.
+# winges to: dboreham
+ifdef bogus_variable_to_skip_comments
+# to use this:
+# include nsconfig.mk because this file uses stuff defined in there
+# in your makefile, define DB_VERSION if you need to
+# (defaults to the latest version otherwise)
+# include this file.
+# you can now use the following variables in your
+# makefile:
+# DB_LIB_DEP Declare a dependency on this if you want to rebuild when the DB lib changes
+# DB_INCLUDE The pathname to the DB include directory use -I$(DB_INCLUDE) in CFLAGS to pickup the db header
+# DB_LIBPATH The pathname to the DB libraries. Use this to find the .so or .dll file
+# DB_LIB The pathname to the DB library file---put this on your linker command line to pickup the library
+# DB_STATIC_LIB The pathname to a static link version of DB.
+#
+# Here is a sample:
+#
+#MCOM_ROOT=../..
+#
+#include $(MCOM_ROOT)/ldapserver/nsconfig.mk
+#include $(MCOM_ROOT)/ldapserver/ns_usedb.mk
+#
+#
+#ifeq ($(ARCH), WINNT)
+#EXE_SUFFIX=.exe
+#OBJ_SUFFIX=obj
+#%.exe: %.$(OBJ_SUFFIX)
+# $(CC) $(LDFLAGS) $< -o $@
+#%.$(OBJ_SUFFIX): %.c
+# $(CC) $(CFLAGS) -c $< -o $@
+#else
+## currently assume that if not NT then UNIX
+#EXE_SUFFIX=
+#OBJ_SUFFIX=o
+#endif
+#
+#LINK_EXE = $(CC) $(LDFLAGS) -o $@ $(OBJS) $< $(EXTRA_LIBS)
+#
+#
+## these modules use DB, so we add to CFLAGS to ensure the headers get found
+#CFLAGS += -I$(DB_INCLUDE)
+## and, again because they us DB, we add the db library to the link flags
+#EXTRA_LIBS += $(DB_LIB)
+#
+#target=prog
+#
+#target_bin=prog$(EXE_SUFFIX)
+#
+#print:
+# @echo =========== Building with the follow DB Variables ============
+# @echo DB_LIB_DEP=$(DB_LIB_DEP)
+# @echo DB_INCLUDE=$(DB_INCLUDE)
+# @echo DB_LIBPATH=$(DB_LIBPATH)
+# @echo DB_LIB=$(DB_LIB)
+# @echo DB_STATIC_LIB=$(DB_STATIC_LIB)
+# @echo DB_VERSION=$(DB_VERSION)
+# @echo =========== ===================================== ============
+#
+#all: print $(DB_LIB_DEP) $(target_bin)
+#
+#$(target_bin): $(target).$(OBJ_SUFFIX)
+# $(LINK_EXE)
+#
+endif
+
+#if no version specified, we'll use the latest one
+ifndef DB_VERSION
+DB_VERSION=20040130
+endif
+
+# Sleepycat version #major#minor
+ifndef DB_MAJOR_MINOR
+DB_MAJOR_MINOR:=db42
+endif
+
+DB_LIBNAME=lib$(DB_MAJOR_MINOR)
+
+# this is the _only_ place the component name gets defined
+# if you're the next person adding a component to the build
+# process, you need only edit this line, and change the
+# external variable names---go home early today !
+# if we wanted to get really smart ass, we could use computed
+# variable names. Hmm...
+component_name:=$(DB_MAJOR_MINOR)
+
+# define the paths to the component parts
+db_components_share=$(COMPONENTS_DIR)/$(component_name)
+MY_NSOBJDIR_TAG=$(NSOBJDIR_TAG).OBJ
+
+db_path_config:=$(NSCP_DISTDIR)/$(component_name)
+ifeq ($(ARCH), IRIX)
+db_release_config:=$(db_components_share)/$(DB_VERSION)/$(NSCONFIG)$(NSOBJDIR_TAG)
+else
+ifeq ($(ARCH), OSF1)
+db_release_config:=$(db_components_share)/$(DB_VERSION)/$(NSCONFIG)$(MY_NSOBJDIR_TAG)
+else
+db_release_config:=$(db_components_share)/$(DB_VERSION)/$(NSCONFIG_NOTAG)$(NS64TAG)$(MY_NSOBJDIR_TAG)
+endif # OSF1
+endif # IRIX
+
+ifeq ($(ARCH), AIX)
+ifeq ($(AIXOS), 4.3)
+CFLAGS += -D__BIT_TYPES_DEFINED__
+endif
+endif # AIX
+
+DB_INCLUDE:=$(db_path_config)/include
+DB_LIBPATH:=$(db_path_config)/lib
+DB_BINPATH:=$(db_path_config)/bin
+# hack below because I couldn't find this defined anywhere in the nsxxx.mk headers
+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)
+DB_LIB_DEP:=$(DB_STATIC_LIB)
+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
+DB_LIB_DEP:=$(DB_LIBPATH)/$(DB_LIBNAME).$(DLL_SUFFIX)
+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
+
+# add ",bin" to DB_FILES if you want the programs
+DB_FILES=include,lib,bin
+
+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