mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 04:53:01 +01:00
160 lines
4.1 KiB
Bash
Executable file
160 lines
4.1 KiB
Bash
Executable file
#!/bin/sh -
|
|
# $Id: s_include,v 1.19 2002/03/27 04:31:50 bostic Exp $
|
|
#
|
|
# Build the automatically generated function prototype files.
|
|
|
|
msgc="/* DO NOT EDIT: automatically built by dist/s_include. */"
|
|
|
|
. ./RELEASE
|
|
|
|
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 */"
|
|
}
|
|
|
|
# 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 dbreg env fileops hash hmac \
|
|
lock log mp mutex os qam rep rpc_client rpc_server tcl txn xa; do
|
|
head "_${i}_ext_h_" > $i_pfile
|
|
|
|
f="../$i/*.c"
|
|
[ $i = os ] && f="$f ../os_win32/*.c"
|
|
[ $i = rpc_server ] && f="../$i/c/*.c"
|
|
[ $i = crypto ] && f="../$i/*.c ../$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=$i_dfile \
|
|
-v i_pfile=$i_pfile $f
|
|
|
|
tail "_${i}_ext_h_" >> $i_pfile
|
|
|
|
f=../dbinc_auto/${i}_ext.h
|
|
cmp $i_pfile $f > /dev/null 2>&1 ||
|
|
(echo "Building $f" && rm -f $f && cp $i_pfile $f && chmod 444 $f)
|
|
done
|
|
|
|
# Process directories which only add to the external prototype and #define
|
|
# files.
|
|
for i in dbm hsearch; do
|
|
f="../$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
|
|
|
|
# RPC uses rpcgen to generate a header file; post-process it to add more
|
|
# interfaces to the internal #define file.
|
|
sed -e '/extern bool_t xdr___/{' \
|
|
-e 's/.* //' \
|
|
-e 's/();//' \
|
|
-e 's/.*/#define & &@DB_VERSION_UNIQUE_NAME@/' \
|
|
-e 'p' \
|
|
-e '}' \
|
|
-e d < ../dbinc_auto/db_server.h >> $i_dfile
|
|
|
|
# There are a few globals in DB -- add them to the external/internal
|
|
# #define files.
|
|
(echo "#define __db_global_values __db_global_values@DB_VERSION_UNIQUE_NAME@";
|
|
echo "#define __db_jump __db_jump@DB_VERSION_UNIQUE_NAME@") >> $i_dfile
|
|
(echo "#define db_xa_switch db_xa_switch@DB_VERSION_UNIQUE_NAME@") >> $e_dfile
|
|
|
|
# Wrap up the external #defines/prototypes, and internal #defines.
|
|
tail defonly _DB_EXT_DEF_IN_ >> $e_dfile
|
|
f=../dbinc_auto/ext_def.in
|
|
cmp $e_dfile $f > /dev/null 2>&1 ||
|
|
(echo "Building $f" && rm -f $f && cp $e_dfile $f && chmod 444 $f)
|
|
|
|
tail _DB_EXT_PROT_IN_ >> $e_pfile
|
|
f=../dbinc_auto/ext_prot.in
|
|
cmp $e_pfile $f > /dev/null 2>&1 ||
|
|
(echo "Building $f" && rm -f $f && cp $e_pfile $f && chmod 444 $f)
|
|
|
|
tail defonly _DB_INT_DEF_IN_ >> $i_dfile
|
|
f=../dbinc_auto/int_def.in
|
|
cmp $i_dfile $f > /dev/null 2>&1 ||
|
|
(echo "Building $f" && rm -f $f && cp $i_dfile $f && chmod 444 $f)
|
|
|
|
# DB185 compatibility support.
|
|
head space defonly _DB_EXT_185_DEF_IN_ > $e_dfile
|
|
head space _DB_EXT_185_PROT_IN_ > $e_pfile
|
|
|
|
f="../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=../dbinc_auto/ext_185_def.in
|
|
cmp $e_dfile $f > /dev/null 2>&1 ||
|
|
(echo "Building $f" && rm -f $f && cp $e_dfile $f && chmod 444 $f)
|
|
|
|
tail _DB_EXT_185_PROT_IN_ >> $e_pfile
|
|
f=../dbinc_auto/ext_185_prot.in
|
|
cmp $e_pfile $f > /dev/null 2>&1 ||
|
|
(echo "Building $f" && rm -f $f && cp $e_pfile $f && chmod 444 $f)
|