mirror of
https://github.com/berkeleydb/libdb.git
synced 2024-11-16 09:06:25 +00:00
176 lines
4.4 KiB
Text
176 lines
4.4 KiB
Text
|
#!/bin/sh -
|
||
|
# $Id$
|
||
|
#
|
||
|
# Build the automatically generated function prototype files.
|
||
|
|
||
|
msgc="/* DO NOT EDIT: automatically built by dist/s_include. */"
|
||
|
|
||
|
. ./RELEASE
|
||
|
|
||
|
AWK=${AWK:-awk}
|
||
|
head()
|
||
|
{
|
||
|
defonly=0
|
||
|
while :
|
||
|
do case "$1" in
|
||
|
space)
|
||
|
echo ""; shift;;
|
||
|
defonly)
|
||
|
defonly=1; shift;;
|
||
|
*)
|
||
|
name="$1"; break;;
|
||
|
esac
|
||
|
done
|
||
|
|
||
|
echo "$msgc"
|
||
|
echo "#ifndef $name"
|
||
|
echo "#define $name"
|
||
|
echo ""
|
||
|
if [ $defonly -eq 0 ]; then
|
||
|
echo "#if defined(__cplusplus)"
|
||
|
echo "extern \"C\" {"
|
||
|
echo "#endif"
|
||
|
echo ""
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
tail()
|
||
|
{
|
||
|
defonly=0
|
||
|
while :
|
||
|
do case "$1" in
|
||
|
defonly)
|
||
|
defonly=1; shift;;
|
||
|
*)
|
||
|
name="$1"; break;;
|
||
|
esac
|
||
|
done
|
||
|
|
||
|
echo ""
|
||
|
if [ $defonly -eq 0 ]; then
|
||
|
echo "#if defined(__cplusplus)"
|
||
|
echo "}"
|
||
|
echo "#endif"
|
||
|
fi
|
||
|
echo "#endif /* !$name */"
|
||
|
}
|
||
|
|
||
|
# This script is run on a variety of systems. To avoid spurious changes, fix
|
||
|
# some variables that affect sort order of ls(1).
|
||
|
unset LANG
|
||
|
export LANG
|
||
|
LC_ALL="C"
|
||
|
export LC_ALL
|
||
|
|
||
|
# We are building several files:
|
||
|
# 1 external #define file
|
||
|
# 1 external prototype file
|
||
|
# 1 internal #define file
|
||
|
# N internal prototype files
|
||
|
e_dfile=/tmp/__db_c.$$
|
||
|
e_pfile=/tmp/__db_a.$$
|
||
|
i_dfile=/tmp/__db_d.$$
|
||
|
i_pfile=/tmp/__db_b.$$
|
||
|
trap 'rm -f $e_dfile $e_pfile $i_dfile $i_pfile; exit 0' 0 1 2 3 13 15
|
||
|
|
||
|
head defonly space _DB_EXT_DEF_IN_ > $e_dfile
|
||
|
head space _DB_EXT_PROT_IN_ > $e_pfile
|
||
|
head defonly _DB_INT_DEF_IN_ > $i_dfile
|
||
|
|
||
|
# Process the standard directories, creating per-directory prototype
|
||
|
# files and adding to the external prototype and #define files.
|
||
|
for i in db btree clib common crypto dbreg env fileops hash heap \
|
||
|
hmac lock log mp mutex os qam rep repmgr sequence tcl txn xa; do
|
||
|
head "_${i}_ext_h_" > $i_pfile
|
||
|
|
||
|
if [ $i = os ] ; then
|
||
|
f=`ls ../src/$i/*.c \
|
||
|
../src/os_qnx/*.c ../src/os_vxworks/*.c ../src/os_windows/*.c`
|
||
|
elif [ $i = crypto ] ; then
|
||
|
f=`ls ../src/$i/*.c ../src/$i/*/*.c`
|
||
|
elif [ $i = env ] ; then
|
||
|
f=`ls ../src/$i/*.c ../src/repmgr/repmgr_stub.c`
|
||
|
elif [ $i = tcl ] ; then
|
||
|
f=`ls ../lang/$i/*.c`
|
||
|
else
|
||
|
f=`ls ../src/$i/*.c`
|
||
|
fi
|
||
|
$AWK -f gen_inc.awk \
|
||
|
-v db_version_unique_name=$DB_VERSION_UNIQUE_NAME \
|
||
|
-v e_dfile=$e_dfile \
|
||
|
-v e_pfile=$e_pfile \
|
||
|
-v i_dfile=$i_dfile \
|
||
|
-v i_pfile=$i_pfile $f
|
||
|
|
||
|
tail "_${i}_ext_h_" >> $i_pfile
|
||
|
|
||
|
f=../src/dbinc_auto/${i}_ext.h
|
||
|
cmp $i_pfile $f > /dev/null 2>&1 ||
|
||
|
(echo "Building $f" && rm -f $f && cp $i_pfile $f)
|
||
|
done
|
||
|
|
||
|
# Process directories which only add to the external prototype and #define
|
||
|
# files.
|
||
|
for i in dbm hsearch; do
|
||
|
f=`ls ../lang/$i/*.c`
|
||
|
$AWK -f gen_inc.awk \
|
||
|
-v db_version_unique_name=$DB_VERSION_UNIQUE_NAME \
|
||
|
-v e_dfile=$e_dfile \
|
||
|
-v e_pfile=$e_pfile \
|
||
|
-v i_dfile="" \
|
||
|
-v i_pfile="" $f
|
||
|
done
|
||
|
|
||
|
# There are a few global variables in DB -- add them to the external/internal
|
||
|
# #define files.
|
||
|
(echo "#define __db_global_values __db_global_values@DB_VERSION_UNIQUE_NAME@";
|
||
|
echo "#define __repmgr_guesstimated_max __repmgr_guesstimated_max@DB_VERSION_UNIQUE_NAME@";
|
||
|
echo "#define db_xa_switch db_xa_switch@DB_VERSION_UNIQUE_NAME@"
|
||
|
) >> $i_dfile
|
||
|
|
||
|
# Wrap up the external #defines/prototypes, and internal #defines.
|
||
|
tail defonly _DB_EXT_DEF_IN_ >> $e_dfile
|
||
|
f=../src/dbinc_auto/ext_def.in
|
||
|
cmp $e_dfile $f > /dev/null 2>&1 ||
|
||
|
(echo "Building $f" && rm -f $f && cp $e_dfile $f)
|
||
|
|
||
|
tail _DB_EXT_PROT_IN_ >> $e_pfile
|
||
|
f=../src/dbinc_auto/ext_prot.in
|
||
|
cmp $e_pfile $f > /dev/null 2>&1 ||
|
||
|
(echo "Building $f" && rm -f $f && cp $e_pfile $f)
|
||
|
|
||
|
tail defonly _DB_INT_DEF_IN_ >> $i_dfile
|
||
|
f=../src/dbinc_auto/int_def.in
|
||
|
cmp $i_dfile $f > /dev/null 2>&1 ||
|
||
|
(echo "Building $f" && rm -f $f && cp $i_dfile $f)
|
||
|
|
||
|
# DB185 compatibility support.
|
||
|
head space defonly _DB_EXT_185_DEF_IN_ > $e_dfile
|
||
|
head space _DB_EXT_185_PROT_IN_ > $e_pfile
|
||
|
|
||
|
f=`ls ../lang/db185/*.c`
|
||
|
$AWK -f gen_inc.awk \
|
||
|
-v db_version_unique_name=$DB_VERSION_UNIQUE_NAME \
|
||
|
-v e_dfile=$e_dfile \
|
||
|
-v e_pfile=$e_pfile \
|
||
|
-v i_dfile="" \
|
||
|
-v i_pfile="" $f
|
||
|
|
||
|
tail defonly _DB_EXT_185_DEF_IN_ >> $e_dfile
|
||
|
f=../src/dbinc_auto/ext_185_def.in
|
||
|
cmp $e_dfile $f > /dev/null 2>&1 ||
|
||
|
(echo "Building $f" && rm -f $f && cp $e_dfile $f)
|
||
|
|
||
|
tail _DB_EXT_185_PROT_IN_ >> $e_pfile
|
||
|
f=../src/dbinc_auto/ext_185_prot.in
|
||
|
cmp $e_pfile $f > /dev/null 2>&1 ||
|
||
|
(echo "Building $f" && rm -f $f && cp $e_pfile $f)
|
||
|
|
||
|
# Make the DTrace provider description file from events.in
|
||
|
rm -f db_provider.d
|
||
|
(echo "/*"; \
|
||
|
echo " * DO NOT EDIT: automatically built by dist/s_include."; \
|
||
|
echo " * Oracle Berkeley DB DTrace Provider"; \
|
||
|
echo " */"; \
|
||
|
perl gen_provider.pl events.in) > db_provider.d
|