1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153
|
#!/bin/sh -
# $Id: s_win32,v 1.37 2004/10/15 18:28:21 bostic Exp $
#
# Build Windows/32 include files.
msgc="/* DO NOT EDIT: automatically built by dist/s_win32. */"
msgw="; DO NOT EDIT: automatically built by dist/s_win32."
. 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 Win32 automatically generated files.
cat <<ENDOFSEDTEXT > $s
/@inttypes_h_decl@/d
/@stdint_h_decl@/d
s/@stddef_h_decl@/#include <stddef.h>/
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;/
/@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
}
/@ssize_t_decl@/{
i\\
#ifdef _WIN64\\
typedef int64_t ssize_t;\\
#else\\
typedef int32_t ssize_t;\\
#endif
d
}
s/@uintmax_t_decl@/typedef u_int64_t uintmax_t;/
/@uintptr_t_decl@/{
i\\
#ifdef _WIN64\\
typedef u_int64_t uintptr_t;\\
#else\\
typedef u_int32_t uintptr_t;\\
#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
(echo "$msgc" &&
sed -f $s ../dbinc/db.in &&
cat ../dbinc_auto/ext_prot.in) > $t
`egrep '@.*@' $t` && {
echo 'Unexpanded autoconf variables found in Windows db.h.'
exit 1
}
f=../build_win32/db.h
cmp $t $f > /dev/null 2>&1 ||
(echo "Building $f" && rm -f $f && cp $t $f && chmod 444 $f)
f=../build_win64/db.h
cmp $t $f > /dev/null 2>&1 ||
(echo "Building $f" && rm -f $f && cp $t $f && chmod 444 $f)
cat <<ENDOFSEDTEXT > $s
s/@cxx_have_stdheaders@/#define HAVE_CXX_STDHEADERS 1/
ENDOFSEDTEXT
(echo "$msgc" && sed -f $s ../dbinc/db_cxx.in) > $t
`egrep '@.*@' $t` && {
echo 'Unexpanded autoconf variables found in Windows db_cxx.h.'
exit 1
}
f=../build_win32/db_cxx.h
cmp $t $f > /dev/null 2>&1 ||
(echo "Building $f" && rm -f $f && cp $t $f && chmod 444 $f)
f=../build_win64/db_cxx.h
cmp $t $f > /dev/null 2>&1 ||
(echo "Building $f" && rm -f $f && cp $t $f && chmod 444 $f)
cat <<ENDOFSEDTEXT > $s
s/@PATH_SEPARATOR@/\\\\\\\\\/:/
s/@db_int_def@//
ENDOFSEDTEXT
(echo "$msgc" && sed -f $s ../dbinc/db_int.in) > $t
`egrep '@.*@' $t` && {
echo 'Unexpanded autoconf variables found in Windows db_int.h.'
exit 1
}
f=../build_win32/db_int.h
cmp $t $f > /dev/null 2>&1 ||
(echo "Building $f" && rm -f $f && cp $t $f && chmod 444 $f)
f=../build_win64/db_int.h
cmp $t $f > /dev/null 2>&1 ||
(echo "Building $f" && rm -f $f && cp $t $f && chmod 444 $f)
f=../build_win32/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)
f=../build_win64/db_config.h
cmp $t $f > /dev/null 2>&1 ||
(echo "Building $f" && rm -f $f && cp $t $f && chmod 444 $f)
f=../build_win32/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_win32/libdbrc.src > $t
cmp $t $f > /dev/null 2>&1 ||
(echo "Building $f" && rm -f $f && cp $t $f && chmod 444 $f)
f=../build_win32/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)
f=../build_win32/win_db.h
i=win_db.in
cmp $i $f > /dev/null 2>&1 ||
(echo "Building $f" && rm -f $f && cp $i $f && chmod 444 $f)
f=../build_win64/win_db.h
cmp $i $f > /dev/null 2>&1 ||
(echo "Building $f" && rm -f $f && cp $i $f && chmod 444 $f)
rm -f $s $t
|