gecko-dev/db/dist/distrib

259 строки
8.4 KiB
Bash

#!/bin/sh -
# @(#)distrib 10.26 (Sleepycat) 5/26/98
# Build autoconf structure.
echo "Running autoheader"
autoheader 2>&1 | sed '/warning: AC_TRY_RUN called without default/d'
chmod 444 config.h.in
echo "Running autoconf"
autoconf 2>&1 | sed '/warning: AC_TRY_RUN called without default/d'
chmod 555 configure config.guess config.sub install-sh
msgc="/* DO NOT EDIT: automatically built by dist/distrib. */"
msgsh="# DO NOT EDIT: automatically built by dist/distrib."
msgcxx="// DO NOT EDIT: automatically built by dist/distrib."
# Build the automatically generated logging/recovery files.
for i in db btree hash log txn; do
sh ./db_gen.sh ../$i/$i.src ../$i
done
# Build the automatically generated function prototype files.
for i in db btree clib common hash lock log mp mutex os txn; do
f=../include/${i}_ext.h
echo "Building $f"
(echo "$msgc" &&
echo "#ifndef _${i}_ext_h_" &&
echo "#define _${i}_ext_h_" &&
sed -n "s/^ \* PUBLIC: \(.*\)/\1/p" ../$i/*.c &&
echo "#endif /* _${i}_ext_h_ */") > $f
chmod 444 $f
done
# Build the Win32 files.
f=../build.win32/db.h
echo "Building $f"
(echo "$msgc" && sed \
-e 's/@u_int8_decl@/typedef unsigned char u_int8_t;/' \
-e 's/@int16_decl@/typedef short int16_t;/' \
-e 's/@u_int16_decl@/typedef unsigned short u_int16_t;/' \
-e 's/@int32_decl@/typedef int int32_t;/' \
-e 's/@u_int32_decl@/typedef unsigned int u_int32_t;/' \
-e '/@u_char_decl@/{' \
-e 'i\' \
-e '#if !defined(_WINSOCKAPI_)' \
-e 's/@u_char_decl@/typedef unsigned char u_char;/' \
-e '}' \
-e 's/@u_short_decl@/typedef unsigned short u_short;/' \
-e 's/@u_int_decl@/typedef unsigned int u_int;/' \
-e '/@u_long_decl@/{' \
-e 's/@u_long_decl@/typedef unsigned long u_long;/' \
-e 'a\' \
-e '#endif' \
-e '}' \
< ../include/db.h.src) > $f
chmod 444 $f
f=../build.win32/db_int.h
echo "Building $f"
(echo "$msgc" && sed \
-e 's/\(PATH_SEPARATOR[^"]*"\)\/"/\1\\\\\/"/' \
-e 's/@spin_line1@/typedef unsigned int tsl_t;/' \
-e '/@spin_line2@/d' \
-e '/@spin_line3@/d' \
-e 's/@mutex_align@/sizeof(unsigned int)/' \
< ../include/db_int.h.src) > $f
chmod 444 $f
f=../build.win32/libdb.rc
echo "Building $f"
major=`egrep DB_VERSION_MAJOR ../include/db.h.src | awk '{print $3}'`
minor=`egrep DB_VERSION_MINOR ../include/db.h.src | awk '{print $3}'`
patch=`egrep DB_VERSION_PATCH ../include/db.h.src | awk '{print $3}'`
sed -e "s/%MAJOR%/$major/" \
-e "s/%MINOR%/$minor/" \
-e "s/%PATCH%/$patch/" \
< ../build.win32/libdb.rc.src > $f
chmod 444 $f
f=../build.win32/.dbtestrc
echo "Building $f"
(echo "$msgsh" && \
sed -e "s/is_windows_test[ ]0/is_windows_test 1/" ../test/test.tcl) > $f
chmod 444 $f
# Build the Win16 files.
f=../build.win16/db.h
echo "Building $f"
(echo "$msgc" && sed \
-e 's/@u_int8_decl@/typedef unsigned char u_int8_t;/' \
-e 's/@int16_decl@/typedef short int16_t;/' \
-e 's/@u_int16_decl@/typedef unsigned short u_int16_t;/' \
-e 's/@int32_decl@/typedef long int32_t;/' \
-e 's/@u_int32_decl@/typedef unsigned long u_int32_t;/' \
-e '/@u_char_decl@/{' \
-e 'i\' \
-e '#if !defined(_WINSOCKAPI_)' \
-e 's/@u_char_decl@/typedef unsigned char u_char;/' \
-e '}' \
-e 's/@u_short_decl@/typedef unsigned short u_short;/' \
-e 's/@u_int_decl@/typedef unsigned int u_int;/' \
-e '/@u_long_decl@/{' \
-e 's/@u_long_decl@/typedef unsigned long u_long;/' \
-e 'a\' \
-e '#endif' \
-e '}' \
-e 's/(\*\(db_errcall\))/(DB_CALLBACK *\1)/' \
-e 's/(\*\(tx_recover\))/(DB_CALLBACK *\1)/' \
-e 's/(\*\(db_malloc\))/(DB_CALLBACK *\1)/' \
-e 's/(\*\(bt_compare\))/(DB_CALLBACK *\1)/' \
-e 's/(\*\(bt_prefix\))/(DB_CALLBACK *\1)/' \
-e 's/(\*\(h_hash\))/(DB_CALLBACK *\1)/' \
-e 's/(\*\(close\))/(DB_CALLBACK *\1)/' \
-e 's/(\*\(cursor\))/(DB_CALLBACK *\1)/' \
-e 's/(\*\(del\))/(DB_CALLBACK *\1)/' \
-e 's/(\*\(fd\))/(DB_CALLBACK *\1)/' \
-e 's/(\*\(get\))/(DB_CALLBACK *\1)/' \
-e 's/(\*\(put\))/(DB_CALLBACK *\1)/' \
-e 's/(\*\(stat\))/(DB_CALLBACK *\1)/' \
-e 's/(\*\(sync\))/(DB_CALLBACK *\1)/' \
-e 's/(\*\(c_close\))/(DB_CALLBACK *\1)/' \
-e 's/(\*\(c_del\))/(DB_CALLBACK *\1)/' \
-e 's/(\*\(c_get\))/(__cdecl __loadds *\1)/' \
-e 's/(\*\(c_put\))/(__cdecl __loadds *\1)/' \
< ../include/db.h.src) > $f
chmod 444 $f
f=../build.win16/db_int.h
echo "Building $f"
(echo "$msgc" && sed \
-e 's/\(PATH_SEPARATOR[^"]*"\)\/"/\1\\\\\/"/' \
-e 's/@spin_line1@/typedef unsigned int tsl_t;/' \
-e '/@spin_line2@/d' \
-e '/@spin_line3@/d' \
-e 's/@mutex_align@/sizeof(unsigned int)/' \
-e 's/off_t/u_int32_t/' \
< ../include/db_int.h.src) > $f
chmod 444 $f
# Build the MacOS files.
#f=../build.macos/db.h
#echo "Building $f"
#(echo "$msgc" && sed \
# -e 's/@u_int8_decl@/typedef unsigned char u_int8_t;/' \
# -e 's/@int16_decl@/typedef short int16_t;/' \
# -e 's/@u_int16_decl@/typedef unsigned short u_int16_t;/' \
# -e 's/@int32_decl@/typedef int int32_t;/' \
# -e 's/@u_int32_decl@/typedef unsigned int u_int32_t;/' \
# -e '/@u_char_decl@/d' \
# -e '/@u_short_decl@/d' \
# -e '/@u_int_decl@/d' \
# -e '/@u_long_decl@/d' \
# < ../include/db.h.src) > $f
#chmod 444 $f
#f=../build.macos/db_int.h
#echo "Building $f"
#(echo "$msgc" && sed \
# -e 's/^#include."db.h".*/#include "::build.macintosh:db.h"/' \
# -e 's/\(PATH_SEPARATOR[^"]*"\)\/"/\1:"/' \
# -e 's/@spin_line1@/typedef unsigned char tsl_t;/' \
# -e '/@spin_line2@/d' \
# -e 's/@mutex_align@/sizeof(unsigned char)/' \
# < ../include/db_int.h.src) > $f
#chmod 444 $f
# Build the Java files.
f=../java/src/com/sleepycat/db/DbConstants.java
echo "Building $f"
(echo "$msgcxx" && \
echo &&
echo 'package com.sleepycat.db;' &&
echo &&
echo 'public class DbConstants' &&
echo '{' &&
grep '#define.DB_' ../include/db.h.src | \
sed -e '/"/d' -e 's/[()]//g' | \
awk '{ print "\tpublic static final int " $2 " = " $3 ";" }' && \
echo '}') > $f
chmod 444 $f
# Build the Tcl test files.
f=../test/include.tcl.src
echo "Building $f"
rm -f $f
(echo "$msgsh" && \
echo 'global dict' && \
echo 'global testdir' && \
echo '' && \
echo 'set CP @db_cv_path_cp@' && \
echo 'set DIFF @db_cv_path_diff@' && \
echo 'set KILL @db_cv_path_kill@' && \
echo 'set LS @db_cv_path_ls@' && \
echo 'set MKDIR @db_cv_path_mkdir@' && \
echo 'set MV @db_cv_path_mv@' && \
echo 'set RM @db_cv_path_rm@' && \
echo 'set SED @db_cv_path_sed@' && \
echo 'set SLEEP @db_cv_path_sleep@' && \
echo 'set SORT @db_cv_path_sort@' && \
echo 'set TR @db_cv_path_tr@' && \
echo '' && \
echo 'set DB_LOCK_GET 0' && \
echo 'set DB_LOCK_PUT 1' && \
echo 'set DB_LOCK_PUT_ALL 2' && \
echo 'set DB_LOCK_PUT_OBJ 3' && \
echo 'set DB_LOCK_NG 0' && \
echo 'set DB_LOCK_READ 1' && \
echo 'set DB_LOCK_WRITE 2' && \
echo 'set DB_LOCK_IREAD 3' && \
echo 'set DB_LOCK_IWRITE 4' && \
echo 'set DB_LOCK_IWR 5' && \
grep '#define.DB_' ../include/db.h.src | sed -e '/"/d' -e 's/[()]//g' | \
awk '{ print "set " $2 " " $3}') > $f
chmod 444 $f
f=../build.win32/include.tcl
echo "Building $f"
rm -f $f
(echo "$msgsh" && \
echo 'global dict' && \
echo 'global testdir' && \
echo '' && \
echo 'set CP c:/tools/cp.exe' && \
echo 'set DIFF c:/tools/diff.exe' && \
echo 'set KILL c:/tools/kill.exe' && \
echo 'set LS c:/tools/ls.exe' && \
echo 'set MKDIR c:/tools/mkdir.exe' && \
echo 'set MV c:/tools/mv.exe' && \
echo 'set RM c:/tools/rm.exe' && \
echo 'set SED c:/tools/sed.exe' && \
echo 'set SLEEP c:/tools/sleep.exe' && \
echo 'set SORT c:/tools/sort.exe' && \
echo 'set TR c:/tools/tr.exe' && \
echo '' && \
echo 'set DB_LOCK_GET 0' && \
echo 'set DB_LOCK_PUT 1' && \
echo 'set DB_LOCK_PUT_ALL 2' && \
echo 'set DB_LOCK_PUT_OBJ 3' && \
echo 'set DB_LOCK_NG 0' && \
echo 'set DB_LOCK_READ 1' && \
echo 'set DB_LOCK_WRITE 2' && \
echo 'set DB_LOCK_IREAD 3' && \
echo 'set DB_LOCK_IWRITE 4' && \
echo 'set DB_LOCK_IWR 5' && \
grep '#define.DB_' ../include/db.h.src | sed -e '/"/d' -e 's/[()]//g' | \
awk '{ print "set " $2 " " $3}') > $f
chmod 444 $f
# Build tags files.
f=tags
echo "Building $f"
rm -f $f
ctags -d -w \
../include/*.src ../include/*.h ../btree/*.[ch] ../clib/*.[ch] \
../common/*.[ch] ../db/*.[ch] ../db185/*.[ch] ../dbm/*.[ch] \
../hash/*.[ch] ../hsearch/*.[ch] ../lock/*.[ch] ../log/*.[ch] \
../mp/*.[ch] ../mutex/*.[ch] ../os/*.[ch] ../txn/*.[ch] \
../test/*.[ch]
chmod 444 $f