1#!/bin/sh - 2# $Id$ 3# 4# Build structure signature code. 5 6a=/tmp/__db_a.$$ 7b=/tmp/__db_b.$$ 8trap 'rm -f $a $b; exit 0' 0 1 2 3 13 15 9 10cat ../dbinc/db.in ../dbinc/db_int.in ../dbinc/*.h | 11sed -e '/__addrinfo/d' \ 12 -e '/__aes_cipher/d' \ 13 -e '/__cipher/d' \ 14 -e '/__queued_output/d' \ 15 -e '/__repmgr_connection/d' \ 16 -e '/__repmgr_message/d' \ 17 -e '/__repmgr_retry/d' \ 18 -e '/__repmgr_runnable/d' \ 19 -e '/__repmgr_site/d' \ 20 -e '/struct.*mutex.*{/i\ 21#ifdef HAVE_MUTEX_SUPPORT' \ 22 -e '/struct.*mutex.*{/a\ 23#endif' \ 24 -e 's/.*[ ]*struct[ ]*\(__[a-z_]*\)[ ]*{.*/ __ADD(\1);/p' \ 25 -e d > $a 26 27cnt=`sed -e '$=' -e d $a` 28 29cat << END_OF_TEXT > $b 30/*- 31 * DO NOT EDIT: automatically built by dist/s_sig. 32 * 33 * \$Id$ 34 */ 35 36#include "db_config.h" 37 38#define __INCLUDE_NETWORKING 1 39#define __INCLUDE_SELECT_H 1 40#include "db_int.h" 41 42#include "dbinc/db_page.h" 43#include "dbinc/btree.h" 44#include "dbinc/crypto.h" 45#include "dbinc/db_join.h" 46#include "dbinc/db_verify.h" 47#include "dbinc/hash.h" 48#include "dbinc/lock.h" 49#include "dbinc/log.h" 50#include "dbinc/mp.h" 51#include "dbinc/partition.h" 52#include "dbinc/qam.h" 53#include "dbinc/txn.h" 54 55END_OF_TEXT 56 57echo "#define __STRUCTURE_COUNT $cnt" >> $b 58 59cat << END_OF_TEXT >> $b 60 61/* 62 * __env_struct_sig -- 63 * Compute signature of structures. 64 * 65 * PUBLIC: u_int32_t __env_struct_sig __P((void)); 66 */ 67u_int32_t 68__env_struct_sig() 69{ 70 u_short t[__STRUCTURE_COUNT + 5]; 71 u_int i; 72 73 i = 0; 74#define __ADD(s) (t[i++] = sizeof(struct s)) 75 76END_OF_TEXT 77 78cat $a >> $b 79 80cat << END_OF_TEXT >> $b 81 82 return (__ham_func5(NULL, t, i * sizeof(t[0]))); 83} 84END_OF_TEXT 85 86f=../env/env_sig.c 87cmp $b $f > /dev/null 2>&1 || 88 (echo "Building $f" && rm -f $f && cp $b $f && chmod 444 $f) 89