head	1.1;
access;
symbols
	rpm-4_4_8-release:1.1.2.1
	rpm-4_4_7-release:1.1.2.1
	rpm-4_4:1.1.0.2
	db-4_5_20:1.1;
locks; strict;
comment	@# @;
expand	@o@;


1.1
date	2006.10.01.20.18.54;	author jbj;	state Exp;
branches
	1.1.2.1;
next	;

1.1.2.1
date	2006.10.01.22.29.21;	author jbj;	state Exp;
branches;
next	;


desc
@@


1.1
log
@Update to db-4.5.20.
@
text
@#!/bin/sh -
#	$Id: s_windows,v 12.20 2006/07/13 06:19:45 mjc Exp $
#
# 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 Win32 automatically generated files.
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/@@pid_t_decl@@/typedef int pid_t;/
s/@@db_threadid_t_decl@@/typedef u_int32_t db_threadid_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
}
/@@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
(echo "$msgc" &&
    sed -f $s ../dbinc/db.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)

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)

cat <<ENDOFSEDTEXT > $s
s/@@INT64_FMT@@/#define	INT64_FMT	"%I64d"/
s/@@UINT64_FMT@@/#define	UINT64_FMT	"%I64u"/
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)

# Build the Windows db_config.h file.
# 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}' | sed '/^SIZEOF_/d' | sort > $s
	(egrep '#undef' $1 | awk '{print $3}'
	 egrep '^#define' $1 | awk '{print $2}') | sed '/__STDC__/d' | sort > $t
	cmp $s $t || {
		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)

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)

f=../build_windows/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_windows/clib_port.h
cmp clib_port.h $f > /dev/null 2>&1 ||
    (echo "Building $f" && rm -f $f && cp clib_port.h $f && chmod 444 $f)

rm -f $s $t
@


1.1.2.1
log
@Merge db-4.5.20 onto rpm-4_4 branch.
@
text
@@

