+2005-05-24 Tor Lillqvist <tml@novell.com>
+
+ Make libdb as included in e-d-s build on Win32 with mingw. (The
+ official build setup for libdb uses MSVC.)
+
+ * libdb/dist/Makefile.in: Use EXEEXT for Win32 portability. Use
+ the MAKEFILE_MAYBE_WIN32 variable (which configure.ac sets to
+ empty on Unix, "_win32" on Win32) to use those source files that
+ have an own copy in os_win32 from there.
+
+ * libdb/dist/config.hin: Add DB_WIN32 flag. Insert stuff from the
+ libdb/build_win32_db_config.h file.
+
+ * libdb/dist/configure.ac: Changes for mingw builds. AC_SUBST some
+ more variables.
+
+ * libdb/dist/configure: Manually make corresponding changes as in
+ configure.ac. (Yuck! But we don't run autogen in libdb/dost, so
+ what else to do?)
+
+ * libdb/os_win32/os_type.c: Include db_int_def.h here, too.
+
2005-05-19 Tor Lillqvist <tml@novell.com>
* configure.in: Check for regexec in a separate -lregex. Add
UTIL_PROGS=\
@ADDITIONAL_PROGS@ \
- db_archive db_checkpoint db_deadlock \
- db_dump db_load db_printlog db_recover db_stat db_upgrade db_verify
+ db_archive@EXEEXT@ db_checkpoint@EXEEXT@ db_deadlock@EXEEXT@ \
+ db_dump@EXEEXT@ db_load@EXEEXT@ db_printlog@EXEEXT@ \
+ db_recover@EXEEXT@ db_stat@EXEEXT@ db_upgrade@EXEEXT@ db_verify@EXEEXT@
##################################################
# List of files installed into the library directory.
echo >> $@ exec java com.sleepycat.db.rpcserver.DbServer \$$@
chmod +x $@
-db_archive: db_archive@o@ util_sig@o@ $(DEF_LIB)
+db_archive@EXEEXT@: db_archive@o@ util_sig@o@ $(DEF_LIB)
$(CCLINK) -o $@ $(LDFLAGS) \
db_archive@o@ util_sig@o@ $(DEF_LIB) $(LIBS)
$(POSTLINK) $@
-db_checkpoint: db_checkpoint@o@ util_log@o@ util_sig@o@ $(DEF_LIB)
+db_checkpoint@EXEEXT@: db_checkpoint@o@ util_log@o@ util_sig@o@ $(DEF_LIB)
$(CCLINK) -o $@ $(LDFLAGS) \
db_checkpoint@o@ util_log@o@ util_sig@o@ $(DEF_LIB) $(LIBS)
$(POSTLINK) $@
-db_deadlock: db_deadlock@o@ util_log@o@ util_sig@o@ $(DEF_LIB)
+db_deadlock@EXEEXT@: db_deadlock@o@ util_log@o@ util_sig@o@ $(DEF_LIB)
$(CCLINK) -o $@ $(LDFLAGS) \
db_deadlock@o@ util_log@o@ util_sig@o@ $(DEF_LIB) $(LIBS)
$(POSTLINK) $@
-db_dump: db_dump@o@ util_cache@o@ util_sig@o@ $(DEF_LIB)
+db_dump@EXEEXT@: db_dump@o@ util_cache@o@ util_sig@o@ $(DEF_LIB)
$(CCLINK) -o $@ $(LDFLAGS) db_dump@o@ util_cache@o@ util_sig@o@ $(DEF_LIB) $(LIBS)
$(POSTLINK) $@
-db_dump185: db_dump185@o@ @LTLIBOBJS@
+db_dump185@EXEEXT@: db_dump185@o@ @LTLIBOBJS@
$(CCLINK) -o $@ $(LDFLAGS) db_dump185@o@ @LTLIBOBJS@ $(DB185LIB)
$(POSTLINK) $@
-db_load: db_load@o@ util_cache@o@ util_sig@o@ $(DEF_LIB)
+db_load@EXEEXT@: db_load@o@ util_cache@o@ util_sig@o@ $(DEF_LIB)
$(CCLINK) -o $@ $(LDFLAGS) db_load@o@ util_cache@o@ util_sig@o@ $(DEF_LIB) $(LIBS)
$(POSTLINK) $@
-db_printlog: db_printlog@o@ util_sig@o@ $(DEF_LIB)
+db_printlog@EXEEXT@: db_printlog@o@ util_sig@o@ $(DEF_LIB)
$(CCLINK) -o $@ $(LDFLAGS) \
db_printlog@o@ util_sig@o@ $(DEF_LIB) $(LIBS)
$(POSTLINK) $@
-db_recover: db_recover@o@ util_sig@o@ $(DEF_LIB)
+db_recover@EXEEXT@: db_recover@o@ util_sig@o@ $(DEF_LIB)
$(CCLINK) -o $@ $(LDFLAGS) \
db_recover@o@ util_sig@o@ $(DEF_LIB) $(LIBS)
$(POSTLINK) $@
-db_stat: db_stat@o@ util_cache@o@ util_sig@o@ $(DEF_LIB)
+db_stat@EXEEXT@: db_stat@o@ util_cache@o@ util_sig@o@ $(DEF_LIB)
$(CCLINK) -o $@ $(LDFLAGS) db_stat@o@ util_cache@o@ util_sig@o@ $(DEF_LIB) $(LIBS)
$(POSTLINK) $@
-db_upgrade: db_upgrade@o@ util_sig@o@ $(DEF_LIB)
+db_upgrade@EXEEXT@: db_upgrade@o@ util_sig@o@ $(DEF_LIB)
$(CCLINK) -o $@ $(LDFLAGS) \
db_upgrade@o@ util_sig@o@ $(DEF_LIB) $(LIBS)
$(POSTLINK) $@
-db_verify: db_verify@o@ util_cache@o@ util_sig@o@ $(DEF_LIB)
+db_verify@EXEEXT@: db_verify@o@ util_cache@o@ util_sig@o@ $(DEF_LIB)
$(CCLINK) -o $@ $(LDFLAGS) \
db_verify@o@ util_cache@o@ util_sig@o@ $(DEF_LIB) $(LIBS)
$(POSTLINK) $@
$(CC) $(CFLAGS) $?
mutex@o@: $(srcdir)/mutex/mutex.c
$(CC) $(CFLAGS) $?
-os_abs@o@: $(srcdir)/os/os_abs.c
+os_abs@o@: $(srcdir)/os@MAKEFILE_MAYBE_WIN32@/os_abs.c
$(CC) $(CFLAGS) $?
os_alloc@o@: $(srcdir)/os/os_alloc.c
$(CC) $(CFLAGS) $?
-os_clock@o@: $(srcdir)/os/os_clock.c
+os_clock@o@: $(srcdir)/os@MAKEFILE_MAYBE_WIN32@/os_clock.c
$(CC) $(CFLAGS) $?
-os_config@o@: $(srcdir)/os/os_config.c
+os_config@o@: $(srcdir)/os@MAKEFILE_MAYBE_WIN32@/os_config.c
$(CC) $(CFLAGS) $?
-os_dir@o@: $(srcdir)/os/os_dir.c
+os_dir@o@: $(srcdir)/os@MAKEFILE_MAYBE_WIN32@/os_dir.c
$(CC) $(CFLAGS) $?
-os_errno@o@: $(srcdir)/os/os_errno.c
+os_errno@o@: $(srcdir)/os@MAKEFILE_MAYBE_WIN32@/os_errno.c
$(CC) $(CFLAGS) $?
-os_fid@o@: $(srcdir)/os/os_fid.c
+os_fid@o@: $(srcdir)/os@MAKEFILE_MAYBE_WIN32@/os_fid.c
$(CC) $(CFLAGS) $?
-os_fsync@o@: $(srcdir)/os/os_fsync.c
+os_fsync@o@: $(srcdir)/os@MAKEFILE_MAYBE_WIN32@/os_fsync.c
$(CC) $(CFLAGS) $?
os_id@o@: $(srcdir)/os/os_id.c
$(CC) $(CFLAGS) $?
-os_handle@o@: $(srcdir)/os/os_handle.c
+os_handle@o@: $(srcdir)/os@MAKEFILE_MAYBE_WIN32@/os_handle.c
$(CC) $(CFLAGS) $?
-os_map@o@: $(srcdir)/os/os_map.c
+os_map@o@: $(srcdir)/os@MAKEFILE_MAYBE_WIN32@/os_map.c
$(CC) $(CFLAGS) $?
os_method@o@: $(srcdir)/os/os_method.c
$(CC) $(CFLAGS) $?
os_oflags@o@: $(srcdir)/os/os_oflags.c
$(CC) $(CFLAGS) $?
-os_open@o@: $(srcdir)/os/os_open.c
+os_open@o@: $(srcdir)/os@MAKEFILE_MAYBE_WIN32@/os_open.c
$(CC) $(CFLAGS) $?
os_region@o@: $(srcdir)/os/os_region.c
$(CC) $(CFLAGS) $?
-os_rename@o@: $(srcdir)/os/os_rename.c
+os_rename@o@: $(srcdir)/os@MAKEFILE_MAYBE_WIN32@/os_rename.c
$(CC) $(CFLAGS) $?
os_root@o@: $(srcdir)/os/os_root.c
$(CC) $(CFLAGS) $?
os_rpath@o@: $(srcdir)/os/os_rpath.c
$(CC) $(CFLAGS) $?
-os_rw@o@: $(srcdir)/os/os_rw.c
+os_rw@o@: $(srcdir)/os@MAKEFILE_MAYBE_WIN32@/os_rw.c
$(CC) $(CFLAGS) $?
-os_seek@o@: $(srcdir)/os/os_seek.c
+os_seek@o@: $(srcdir)/os@MAKEFILE_MAYBE_WIN32@/os_seek.c
$(CC) $(CFLAGS) $?
-os_sleep@o@: $(srcdir)/os/os_sleep.c
+os_sleep@o@: $(srcdir)/os@MAKEFILE_MAYBE_WIN32@/os_sleep.c
$(CC) $(CFLAGS) $?
-os_spin@o@: $(srcdir)/os/os_spin.c
+os_spin@o@: $(srcdir)/os@MAKEFILE_MAYBE_WIN32@/os_spin.c
$(CC) $(CFLAGS) $?
-os_stat@o@: $(srcdir)/os/os_stat.c
+os_stat@o@: $(srcdir)/os@MAKEFILE_MAYBE_WIN32@/os_stat.c
$(CC) $(CFLAGS) $?
os_tmpdir@o@: $(srcdir)/os/os_tmpdir.c
$(CC) $(CFLAGS) $?
+os_type@o@: $(srcdir)/os@MAKEFILE_MAYBE_WIN32@/os_type.c
+ $(CC) $(CFLAGS) $?
os_unlink@o@: $(srcdir)/os/os_unlink.c
$(CC) $(CFLAGS) $?
qam@o@: $(srcdir)/qam/qam.c
/* Define to 1 to mask harmless unitialized memory read/writes. */
#undef UMRW
+/* Define to 1 to if building for Win32. */
+#undef DB_WIN32
+
/* Number of bits in a file offset, on hosts where this is settable. */
#undef _FILE_OFFSET_BITS
#ifndef HAVE_VSNPRINTF
#define vsnprintf __db_Cvsnprintf
#endif
+
+#ifdef DB_WIN32
+
+/* This part copied from build_win32/db_config.h */
+
+/*
+ * XXX
+ * The following is not part of the automatic configuration setup, but
+ * provides the information necessary to build Berkeley DB on Windows.
+ */
+#include <sys/types.h>
+#include <sys/stat.h>
+
+#include <direct.h>
+#include <fcntl.h>
+#include <io.h>
+#include <limits.h>
+#include <memory.h>
+#include <process.h>
+#include <signal.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <time.h>
+#include <errno.h>
+
+/*
+ * To build Tcl interface libraries, the include path must be configured to
+ * use the directory containing <tcl.h>, usually the include directory in
+ * the Tcl distribution.
+ */
+#ifdef DB_TCL_SUPPORT
+#include <tcl.h>
+#endif
+
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+
+/*
+ * All of the necessary includes have been included, ignore the #includes
+ * in the Berkeley DB source files.
+ */
+#define NO_SYSTEM_INCLUDES
+
+/*
+ * Win32 has getcwd, snprintf and vsnprintf, but under different names.
+ */
+#define getcwd(buf, size) _getcwd(buf, size)
+#define snprintf _snprintf
+#define vsnprintf _vsnprintf
+
+#endif /* DB_WIN32 */
# include <unistd.h>
#endif"
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os ADDITIONAL_INCS ADDITIONAL_LANG ADDITIONAL_OBJS ADDITIONAL_PROGS BUILD_TARGET CFLAGS CONFIGURATION_ARGS CONFIGURATION_PATH CPPFLAGS CXX CXXFLAGS DEFAULT_LIB DEFAULT_LIB_CXX EMBEDIX_ECD_CXX EMBEDIX_ECD_RPC EMBEDIX_ROOT INSTALLER INSTALL_LIBS INSTALL_TARGET JAR JAVACFLAGS LDFLAGS LIBJSO_LIBS LIBSO_LIBS LIBTOOL LIBTSO_LIBS LIBXSO_LIBS LOAD_LIBS MAKEFILE_CC MAKEFILE_CCLINK MAKEFILE_CXX MAKEFILE_CXXLINK MAKEFILE_SOLINK MAKEFILE_XSOLINK POSTLINK RPC_CLIENT_OBJS RPM_POST_INSTALL RPM_POST_UNINSTALL SOFLAGS db_cv_path_embedix_install db_cv_path_rpm_archive db_int_def o DB_VERSION_MAJOR DB_VERSION_MINOR DB_VERSION_PATCH DB_VERSION_UNIQUE_NAME DB_VERSION_STRING db_cv_path_ar ac_ct_db_cv_path_ar db_cv_path_chmod ac_ct_db_cv_path_chmod db_cv_path_cp ac_ct_db_cv_path_cp path_ldconfig ac_ct_path_ldconfig db_cv_path_ldconfig db_cv_path_ln ac_ct_db_cv_path_ln db_cv_path_mkdir ac_ct_db_cv_path_mkdir path_ranlib ac_ct_path_ranlib db_cv_path_ranlib db_cv_path_rm ac_ct_db_cv_path_rm db_cv_path_rpm ac_ct_db_cv_path_rpm path_sh ac_ct_path_sh db_cv_path_sh path_strip ac_ct_path_strip db_cv_path_strip db_cv_path_kill ac_ct_db_cv_path_kill INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CC ac_ct_CC EXEEXT OBJEXT CCC ac_ct_CCC ac_ct_CXX cxx_have_stdheaders LN_S ECHO RANLIB ac_ct_RANLIB STRIP ac_ct_STRIP CPP EGREP SOSUFFIX MODSUFFIX JMODSUFFIX JAVAC _ACJNI_JAVAC TCFLAGS TCL_BIN_DIR TCL_SRC_DIR TCL_LIB_FILE TCL_TCLSH u_char_decl u_short_decl u_int_decl u_long_decl u_int8_decl u_int16_decl int16_decl u_int32_decl int32_decl ssize_t_decl db_align_t_decl db_alignp_t_decl LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os ADDITIONAL_INCS ADDITIONAL_LANG ADDITIONAL_OBJS ADDITIONAL_PROGS BUILD_TARGET CFLAGS CONFIGURATION_ARGS CONFIGURATION_PATH CPPFLAGS CXX CXXFLAGS DEFAULT_LIB DEFAULT_LIB_CXX EMBEDIX_ECD_CXX EMBEDIX_ECD_RPC EMBEDIX_ROOT INSTALLER INSTALL_LIBS INSTALL_TARGET JAR JAVACFLAGS LDFLAGS LIBJSO_LIBS LIBSO_LIBS LIBTOOL LIBTSO_LIBS LIBXSO_LIBS LOAD_LIBS MAKEFILE_CC MAKEFILE_CCLINK MAKEFILE_CXX MAKEFILE_CXXLINK MAKEFILE_MAYBE_WIN32 MAKEFILE_SOLINK MAKEFILE_XSOLINK POSTLINK RPC_CLIENT_OBJS RPM_POST_INSTALL RPM_POST_UNINSTALL SOFLAGS db_cv_path_embedix_install db_cv_path_rpm_archive db_int_def o DB_VERSION_MAJOR DB_VERSION_MINOR DB_VERSION_PATCH DB_VERSION_UNIQUE_NAME DB_VERSION_STRING db_cv_path_ar ac_ct_db_cv_path_ar db_cv_path_chmod ac_ct_db_cv_path_chmod db_cv_path_cp ac_ct_db_cv_path_cp path_ldconfig ac_ct_path_ldconfig db_cv_path_ldconfig db_cv_path_ln ac_ct_db_cv_path_ln db_cv_path_mkdir ac_ct_db_cv_path_mkdir path_ranlib ac_ct_path_ranlib db_cv_path_ranlib db_cv_path_rm ac_ct_db_cv_path_rm db_cv_path_rpm ac_ct_db_cv_path_rpm path_sh ac_ct_path_sh db_cv_path_sh path_strip ac_ct_path_strip db_cv_path_strip db_cv_path_kill ac_ct_db_cv_path_kill INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CC ac_ct_CC EXEEXT OBJEXT CCC ac_ct_CCC ac_ct_CXX cxx_have_stdheaders LN_S ECHO RANLIB ac_ct_RANLIB STRIP ac_ct_STRIP CPP EGREP SOSUFFIX MODSUFFIX JMODSUFFIX JAVAC _ACJNI_JAVAC TCFLAGS TCL_BIN_DIR TCL_SRC_DIR TCL_LIB_FILE TCL_TCLSH u_char_decl u_short_decl u_int_decl u_long_decl u_int8_decl u_int16_decl int16_decl u_int32_decl int32_decl ssize_t_decl db_align_t_decl db_alignp_t_decl LIBOBJS LTLIBOBJS'
ac_subst_files=''
# Initialize some variables set by options.
# XXX
# Don't override anything if it's already set from the environment.
optimize_def="-O"
+MAKEFILE_MAYBE_WIN32=""
+SOFLAGS=""
case "$host_os" in
aix4.3.*|aix5*)
optimize_def="-O2"
CPPFLAGS="$CPPFLAGS -D_SGI_MP_SOURCE";;
linux*) optimize_def="-O2"
CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE -D_REENTRANT";;
+mingw*) optimize_def="-O2"
+ SOFLAGS="-no-undefined"
+ ADDITIONAL_OBJS="os_type.lo $ADDITIONAL_OBJS"
+ MAKEFILE_MAYBE_WIN32="_win32"
+ cat >>confdefs.h <<\_ACEOF
+#define DB_WIN32 1
+_ACEOF
+
+
+;;
mpeix*) CPPFLAGS="$CPPFLAGS -D_POSIX_SOURCE -D_SOCKET_SOURCE"
LIBS="$LIBS -lsocket -lsvipc";;
osf*) CPPFLAGS="$CPPFLAGS -D_REENTRANT"
LIBTOOL="\$(SHELL) ./libtool"
-SOFLAGS=""
# Set SOSUFFIX and friends
TCFLAGS="-I$TCL_PREFIX/include"
fi
+ case "$host" in
+ *-mingw*)
+ # To include tcl.h when compiling tcl_*.o
+ TCFLAGS="$TCFLAGS -DDB_TCL_SUPPORT"
+ ;;
+ esac
+
INSTALL_LIBS="${INSTALL_LIBS} \$(libtso_target)"
fi
s,@MAKEFILE_CCLINK@,$MAKEFILE_CCLINK,;t t
s,@MAKEFILE_CXX@,$MAKEFILE_CXX,;t t
s,@MAKEFILE_CXXLINK@,$MAKEFILE_CXXLINK,;t t
+s,@MAKEFILE_MAYBE_WIN32@,$MAKEFILE_MAYBE_WIN32,;t t
s,@MAKEFILE_SOLINK@,$MAKEFILE_SOLINK,;t t
s,@MAKEFILE_XSOLINK@,$MAKEFILE_XSOLINK,;t t
s,@POSTLINK@,$POSTLINK,;t t
AC_SUBST(EMBEDIX_ECD_CXX)
AC_SUBST(EMBEDIX_ECD_RPC)
AC_SUBST(EMBEDIX_ROOT)
+AC_SUBST(EXEEXT)
AC_SUBST(INSTALLER)
AC_SUBST(INSTALL_LIBS)
AC_SUBST(INSTALL_TARGET)
AC_SUBST(MAKEFILE_CCLINK)
AC_SUBST(MAKEFILE_CXX)
AC_SUBST(MAKEFILE_CXXLINK)
+AC_SUBST(MAKEFILE_MAYBE_WIN32)
AC_SUBST(MAKEFILE_SOLINK)
AC_SUBST(MAKEFILE_XSOLINK)
AC_SUBST(POSTLINK)
# XXX
# Don't override anything if it's already set from the environment.
optimize_def="-O"
+MAKEFILE_MAYBE_WIN32=""
+EXEEXT=""
+SOFLAGS=""
case "$host_os" in
aix4.3.*|aix5*)
optimize_def="-O2"
CPPFLAGS="$CPPFLAGS -D_SGI_MP_SOURCE";;
linux*) optimize_def="-O2"
CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE -D_REENTRANT";;
+mingw*) optimize_def="-O2"
+ EXEEXT=".exe"
+ SOFLAGS="-no-undefined"
+ ADDITIONAL_OBJS="os_type.lo $ADDITIONAL_OBJS"
+ MAKEFILE_MAYBE_WIN32="_win32"
+ AC_DEFINE(DB_WIN32)
+ AH_TEMPLATE(DB_WIN32,
+ [Define to 1 to if building for Win32.]);;
mpeix*) CPPFLAGS="$CPPFLAGS -D_POSIX_SOURCE -D_SOCKET_SOURCE"
LIBS="$LIBS -lsocket -lsvipc";;
osf*) CPPFLAGS="$CPPFLAGS -D_REENTRANT"
AC_PROG_LIBTOOL
LIBTOOL="\$(SHELL) ./libtool"
-SOFLAGS=""
# Set SOSUFFIX and friends
SOSUFFIX_CONFIG
*/
#include "db_config.h"
+#include "db_int_def.h"
#ifndef lint
static const char revid[] = "$Id$";