1#!/bin/sh - 2# $Id$ 3# 4# Build the BREW files on a POSIX system. 5 6s=/tmp/__db_a 7t=/tmp/__db_b 8 9trap 'rm -f $s $t ; exit 0' 0 10trap 'rm -f $s $t ; exit 1' 1 2 3 13 15 11 12# Temporary directory to build in. 13test -d ../build_brew_x || mkdir ../build_brew_x 14 15# Copy in db_config.h. 16# 17# We do have system include files in the POSIX build. 18f=../build_brew_x/db_config.h 19cat <<ENDOFSEDTEXT > $s 20/HAVE_SYSTEM_INCLUDE_FILES/{ 21 a\\ 22#define HAVE_SYSTEM_INCLUDE_FILES 1 23} 24ENDOFSEDTEXT 25sed -f $s < ../build_brew/db_config.h > $t 26cmp $t $f > /dev/null 2>&1 || 27 (echo "Building $f" && rm -f $f && cp $t $f && chmod 444 $f) 28 29# Copy in db.h. 30f=../build_brew_x/db.h 31sed -e '/typedef.*[ ]FILE;/s/.*/#define IFile FILE/' \ 32 -e '/typedef.*[ ]off_t;/d' \ 33 -e '/typedef.*[ ]time_t;/d' \ 34 -e '/typedef.*[ ]uintptr_t;/d' \ 35 -e '/#include.<AEEFile.h>/d' \ 36 < ../build_brew/db.h > $t 37 38cmp $t $f > /dev/null 2>&1 || 39 (echo "Building $f" && rm -f $f && cp $t $f && chmod 444 $f) 40 41# Copy in brew_db.h 42f=../build_brew_x/brew_db.h 43cmp brew/brew_posix.h $f > /dev/null 2>&1 || 44 (echo "Building $f" && rm -f $f && cp brew/brew_posix.h $f && chmod 444 $f) 45 46# Copy in clib_port.h 47# 48# Delete all references to isalpha, isdigit, isprint, isspace. 49f=../build_brew_x/clib_port.h 50sed -e '/HAVE_ISALPHA/,/#endif/d' \ 51 -e '/HAVE_ISDIGIT/,/#endif/d' \ 52 -e '/HAVE_ISPRINT/,/#endif/d' \ 53 -e '/HAVE_ISSPACE/,/#endif/d' < ../build_brew/clib_port.h > $t 54cmp $t $f > /dev/null 2>&1 || 55 (echo "Building $f" && rm -f $f && cp $t $f && chmod 444 $f) 56 57# Copy in remaining files. 58for i in db_int.h errno.h; do 59 f=../build_brew_x/$i 60 cmp ../build_brew/$i $f > /dev/null 2>&1 || 61 (echo "Building $f" && 62 rm -f $f && cp ../build_brew/$i $f && chmod 444 $f) 63done 64 65# Build a Makefile for testing on a POSIX system. 66# $1 is srcfiles keyword 67# $2 is Makefile name 68build_make() 69{ 70 f=../build_brew_x/$2 71 72 (cat brew/brew_make.in && 73 echo && 74 echo '###################################################' && 75 echo '# EVERYTHING BELOW THIS LINE IS GENERATED BY s_brew' && 76 echo '##################################################' && 77 echo 'OBJS=\' && 78 grep -w $1 srcfiles.in | 79 awk '{print $1}' | 80 sed -e '/isalpha/d' \ 81 -e '/isdigit/d' \ 82 -e '/isprint/d' \ 83 -e '/isspace/d' \ 84 -e 's/.*\// /' \ 85 -e 's/\.c$/.o/' \ 86 -e '$!s/$/\\/' && 87 echo && 88 grep -w $1 srcfiles.in | 89 awk '{print $1}' | 90 sed -e '/isalpha/d' \ 91 -e '/isdigit/d' \ 92 -e '/isprint/d' \ 93 -e '/isspace/d' \ 94 -e 's/\.c$//' \ 95 -e 's/.*/&.o: ..\/&.c/' \ 96 -e 's/^[^\/]*\///' && 97 echo && 98 echo 'libdb.a: $(OBJS)' && 99 echo ' ar cr $@ $(OBJS)') > $t 100 101 cmp $t $f > /dev/null 2>&1 || 102 (echo "Building $f" && rm -f $f && cp $t $f && chmod 444 $f) 103} 104 105build_make brew Makefile 106 107exit 0 108