summaryrefslogtreecommitdiff
path: root/db-4.8.30/dist/s_windows
diff options
context:
space:
mode:
authorJesse Morgan <jesse@jesterpm.net>2016-12-17 21:28:53 -0800
committerJesse Morgan <jesse@jesterpm.net>2016-12-17 21:28:53 -0800
commit54df2afaa61c6a03cbb4a33c9b90fa572b6d07b8 (patch)
tree18147b92b969d25ffbe61935fb63035cac820dd0 /db-4.8.30/dist/s_windows
Berkeley DB 4.8 with rust build script for linux.
Diffstat (limited to 'db-4.8.30/dist/s_windows')
-rwxr-xr-xdb-4.8.30/dist/s_windows259
1 files changed, 259 insertions, 0 deletions
diff --git a/db-4.8.30/dist/s_windows b/db-4.8.30/dist/s_windows
new file mode 100755
index 0000000..eae21ec
--- /dev/null
+++ b/db-4.8.30/dist/s_windows
@@ -0,0 +1,259 @@
+#!/bin/sh -
+# $Id$
+#
+# Build Windows include files.
+
+msgc="/* DO NOT EDIT: automatically built by dist/s_windows. */"
+msgw="; DO NOT EDIT: automatically built by dist/s_windows."
+
+. RELEASE
+
+s=/tmp/__db_a$$
+t=/tmp/__db_b$$
+rm -f $s $t
+
+trap 'rm -f $s $t ; exit 1' 1 2 3 13 15
+
+# Build the Windows db.h
+cat <<ENDOFSEDTEXT > $s
+/@inttypes_h_decl@/d
+/@stdint_h_decl@/d
+s/@stddef_h_decl@/#include <stddef.h>/
+/@unistd_h_decl@/d
+/@thread_h_decl@/d
+s/@u_int8_decl@/typedef unsigned char u_int8_t;/
+s/@int16_decl@/typedef short int16_t;/
+s/@u_int16_decl@/typedef unsigned short u_int16_t;/
+s/@int32_decl@/typedef int int32_t;/
+s/@u_int32_decl@/typedef unsigned int u_int32_t;/
+s/@int64_decl@/typedef __int64 int64_t;/
+s/@u_int64_decl@/typedef unsigned __int64 u_int64_t;/
+s/@db_seq_decl@/typedef int64_t db_seq_t;/
+s/@db_threadid_t_decl@/typedef u_int32_t db_threadid_t;/
+s/@pid_t_decl@/typedef int pid_t;/
+/@u_char_decl@/{
+ i\\
+#ifndef _WINSOCKAPI_
+ s/@u_char_decl@/typedef unsigned char u_char;/
+}
+s/@u_short_decl@/typedef unsigned short u_short;/
+s/@u_int_decl@/typedef unsigned int u_int;/
+/@u_long_decl@/{
+ s/@u_long_decl@/typedef unsigned long u_long;/
+ a\\
+#endif
+}
+/@FILE_t_decl@/d
+/@size_t_decl@/d
+/@ssize_t_decl@/{
+ i\\
+#ifdef _WIN64\\
+typedef int64_t ssize_t;\\
+#else\\
+typedef int32_t ssize_t;\\
+#endif
+ d
+}
+/@time_t_decl@/d
+/@uintmax_t_decl@/{
+ i\\
+#if defined(_MSC_VER) && _MSC_VER < 1300\\
+typedef u_int32_t uintmax_t;\\
+#else\\
+typedef u_int64_t uintmax_t;\\
+#endif
+ d
+}
+/@uintptr_t_decl@/{
+ i\\
+#ifdef _WIN64\\
+typedef u_int64_t uintptr_t;\\
+#else\\
+typedef u_int32_t uintptr_t;\\
+#endif
+ d
+}
+/@off_t_decl@/{
+ i\\
+/*\\
+\ * Windows defines off_t to long (i.e., 32 bits). We need to pass 64-bit\\
+\ * file offsets, so we declare our own.\\
+\ */\\
+#define off_t __db_off_t\\
+typedef int64_t off_t;
+ d
+}
+/@platform_header@/{
+ i\\
+/*\\
+\ * Turn off inappropriate compiler warnings\\
+\ */\\
+#ifdef _MSC_VER\\
+/*\\
+\ * This warning is explicitly disabled in Visual C++ by default.\\
+\ * It is necessary to explicitly enable the /Wall flag to generate this\\
+\ * warning.\\
+\ * Since this is a shared include file it should compile without warnings\\
+\ * at the highest warning level, so third party applications can use\\
+\ * higher warning levels cleanly.\\
+\ *\\
+\ * 4820: 'bytes' bytes padding added after member 'member'\\
+\ * The type and order of elements caused the compiler to\\
+\ * add padding to the end of a struct.\\
+\ */\\
+#pragma warning(push)\\
+#pragma warning(disable: 4820)\\
+#endif /* _MSC_VER */
+ d
+}
+/@platform_footer@/{
+ i\\
+/* Restore default compiler warnings */\\
+#ifdef _MSC_VER\\
+#pragma warning(pop)\\
+#endif
+ d
+}
+s/@DB_VERSION_MAJOR@/$DB_VERSION_MAJOR/
+s/@DB_VERSION_MINOR@/$DB_VERSION_MINOR/
+s/@DB_VERSION_PATCH@/$DB_VERSION_PATCH/
+s/@DB_VERSION_STRING@/"$DB_VERSION_STRING"/
+s/@DB_VERSION_UNIQUE_NAME@//
+s/@DB_CONST@//
+s/@DB_PROTO1@/#undef __P/
+s/@DB_PROTO2@/#define __P(protos) protos/
+ENDOFSEDTEXT
+# The db.h, db_int.h files are identical between Windows and WinCE.
+# This may change in the future, for now have the script copy
+# the headers into the build_wince directory.
+# WinCE does not support the C++ API, so don't need to copy db_cxx.h
+
+(echo "$msgc" &&
+ sed -f $s ../dbinc/db.in &&
+ cat ../dbinc_auto/api_flags.in &&
+ cat ../dbinc_auto/ext_prot.in) > $t
+test `egrep '@.*@' $t` && {
+ egrep '@.*@' $t
+ echo 'Unexpanded autoconf variables found in Windows db.h.'
+ exit 1
+}
+f=../build_windows/db.h
+cmp $t $f > /dev/null 2>&1 ||
+ (echo "Building $f" && rm -f $f && cp $t $f && chmod 444 $f)
+f=../build_wince/db.h
+cmp $t $f > /dev/null 2>&1 ||
+ (echo "Building $f" && rm -f $f && cp $t $f && chmod 444 $f)
+
+# Build the Windows db_cxx.h.
+cat <<ENDOFSEDTEXT > $s
+s/@cxx_have_stdheaders@/#define HAVE_CXX_STDHEADERS 1/
+ENDOFSEDTEXT
+(echo "$msgc" && sed -f $s ../dbinc/db_cxx.in) > $t
+test `egrep '@.*@' $t` && {
+ egrep '@.*@' $t
+ echo 'Unexpanded autoconf variables found in Windows db_cxx.h.'
+ exit 1
+}
+f=../build_windows/db_cxx.h
+cmp $t $f > /dev/null 2>&1 ||
+ (echo "Building $f" && rm -f $f && cp $t $f && chmod 444 $f)
+
+# Build the Windows db_int.h.
+cat <<ENDOFSEDTEXT > $s
+s/@PATH_SEPARATOR@/\\\\\\\\\/:/
+s/@db_int_def@//
+ENDOFSEDTEXT
+(echo "$msgc" && sed -f $s ../dbinc/db_int.in) > $t
+test `egrep '@.*@' $t` && {
+ egrep '@.*@' $t
+ echo 'Unexpanded autoconf variables found in Windows db_int.h.'
+ exit 1
+}
+f=../build_windows/db_int.h
+cmp $t $f > /dev/null 2>&1 ||
+ (echo "Building $f" && rm -f $f && cp $t $f && chmod 444 $f)
+f=../build_wince/db_int.h
+cmp $t $f > /dev/null 2>&1 ||
+ (echo "Building $f" && rm -f $f && cp $t $f && chmod 444 $f)
+
+# Build the Windows and WinCE db_config.h.
+# We don't fail, but we complain if the win_config.in file isn't up-to-date.
+check_config()
+{
+ egrep '^#undef' config.hin | awk '{print $2}' | sort > $s
+ (egrep '#undef' $1 | awk '{print $3}'
+ egrep '^#define' $1 | awk '{print $2}') | sed '/__STDC__/d' | sort > $t
+ cmp $s $t > /dev/null || {
+ echo "config.hin and $1 differ"
+ echo "<<< config.hin >>> $1"
+ diff $s $t
+ }
+}
+check_config win_config.in
+f=../build_windows/db_config.h
+(echo "$msgc" && sed "s/__EDIT_DB_VERSION__/$DB_VERSION/" win_config.in) > $t
+cmp $t $f > /dev/null 2>&1 ||
+ (echo "Building $f" && rm -f $f && cp $t $f && chmod 444 $f)
+check_config wince_config.in
+f=../build_wince/db_config.h
+(echo "$msgc" && sed "s/__EDIT_DB_VERSION__/$DB_VERSION/" wince_config.in) > $t
+cmp $t $f > /dev/null 2>&1 ||
+ (echo "Building $f" && rm -f $f && cp $t $f && chmod 444 $f)
+
+# Build the Windows libdb.rc and libdb.def.
+f=../build_windows/libdb.rc
+cat <<ENDOFSEDTEXT > $s
+s/%MAJOR%/$DB_VERSION_MAJOR/
+s/%MINOR%/$DB_VERSION_MINOR/
+s/%PATCH%/$DB_VERSION_PATCH/
+ENDOFSEDTEXT
+sed -f $s ../build_windows/libdbrc.src > $t
+cmp $t $f > /dev/null 2>&1 ||
+ (echo "Building $f" && rm -f $f && cp $t $f && chmod 444 $f)
+f=../build_windows/libdb.def
+(echo $msgw &&
+ echo &&
+ echo EXPORTS;
+a=1
+for i in `sed -e '/^$/d' -e '/^#/d' win_exports.in`; do
+ echo " $i @$a"
+ a=`expr $a + 1`
+done) > $t
+cmp $t $f > /dev/null 2>&1 ||
+ (echo "Building $f" && rm -f $f && cp $t $f && chmod 444 $f)
+
+# Build the Windows clib_port.h.
+cat <<ENDOFSEDTEXT > $s
+s/@INT64_FMT@/#define INT64_FMT "%I64d"/
+s/@UINT64_FMT@/#define UINT64_FMT "%I64u"/
+ENDOFSEDTEXT
+sed -f $s clib_port.in > $t
+test `egrep '@.*@' $t` && {
+ egrep '@.*@' $t
+ echo 'Unexpanded autoconf variables found in Windows clib_port.h.'
+ exit 1
+}
+f=../build_windows/clib_port.h
+cmp $t $f > /dev/null 2>&1 ||
+ (echo "Building $f" && rm -f $f && cp $t $f && chmod 444 $f)
+f=../build_wince/clib_port.h
+cmp $t $f > /dev/null 2>&1 ||
+ (echo "Building $f" && rm -f $f && cp $t $f && chmod 444 $f)
+
+# Build the Windows dbstl_common.h.
+cat <<ENDOFSEDTEXT > $s
+s/@WSTRING_decl@/#define HAVE_WSTRING 1/
+s/@TLS_decl@/#define TLS_DECL_MODIFIER __declspec(thread)/
+s/@TLS_defn@/#define TLS_DEFN_MODIFIER __declspec(thread)/
+ENDOFSEDTEXT
+sed -f $s ../stl/dbstl_common.in > $t
+f=../build_windows/dbstl_common.h
+cmp $t $f > /dev/null 2>&1 ||
+ (echo "Building $f" && rm -f $f && cp $t $f && chmod 444 $f)
+
+# Copy in errno.h.
+f=../build_wince/errno.h
+cmp errno.h $f > /dev/null 2>&1 ||
+ (echo "Building $f" && rm -f $f && cp errno.h $f && chmod 444 $f)
+
+rm -f $s $t