#!/bin/sh
#
EXT=db
TCZ=/tmp/$EXT/TCZ

sudo rm -rf /tmp/$EXT

for a in compiletc bash file squashfs-tools 
	do tce-load -i $a
done

case $(uname -m) in
	armv*)
		export CFLAGS="-Os -pipe -march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp"
		export CXXFLAGS="-Os -pipe -fexceptions -fno-rtti -march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp"
	;;
	aarch64)
		export CFLAGS="-Os -pipe -march=armv8-a+crc -mtune=cortex-a72"
		export CXXFLAGS="-Os -pipe -fexceptions -fno-rtti -march=armv8-a+crc -mtune=cortex-a72"
	;;
esac

cd db-6.0.19
[ ! -e build ] && mkdir build
cd build

#make clean
../dist/configure \
	--prefix=/usr/local \
	--localstatedir=/var \
	--disable-rpath \
	--enable-shared \
	--enable-static \
	--enable-compat185 \
	--disable-dump185 \
	--enable-cxx \
	|| exit

make -j4 || exit

if [ $(grep -q '^install-strip:' Makefile) ]; then
	make install-strip DESTDIR=$TCZ
else
	make install DESTDIR=$TCZ
	chmod -R ug+w $TCZ
	for a in $(find $TCZ -type f); do file -b $a | grep -q '^ELF .*not stripped$' && strip $a; done
fi

mkdir -p $TCZ-doc/usr/local
mv $TCZ/usr/local/docs $TCZ-doc/usr/local

mkdir -p $TCZ-dev/usr/local/lib
mv $TCZ/usr/local/include $TCZ-dev/usr/local
for a in $(find $TCZ -name '*.a'); do
	b=$(echo $(dirname $a) | sed "s#$TCZ#$TCZ-dev#")
	mkdir -p $b
	mv $a $b
done
for a in $(find $TCZ -name '*.la'); do
	b=$(echo $(dirname $a) | sed "s#$TCZ#$TCZ-dev#")
	mkdir -p $b
	mv $a $b
done

cd /tmp/$EXT/TCZ
find * > ../$EXT.tcz.list
cd /tmp/$EXT/TCZ-dev
find * > ../$EXT-dev.tcz.list
cd /tmp/$EXT/TCZ-doc
find * > ../$EXT-doc.tcz.list

sudo chown -R root.root $TCZ*

mksquashfs $TCZ /tmp/$EXT/$EXT.tcz -noappend
mksquashfs $TCZ-dev /tmp/$EXT/$EXT-dev.tcz -noappend
mksquashfs $TCZ-doc /tmp/$EXT/$EXT-doc.tcz -noappend

cd /tmp/$EXT
md5sum $EXT.tcz > $EXT.tcz.md5.txt
md5sum $EXT-dev.tcz > $EXT-dev.tcz.md5.txt
md5sum $EXT-doc.tcz > $EXT-doc.tcz.md5.txt
