#!/bin/sh

# build nss
#
# build instructions taken from:
# http://www.linuxfromscratch.org/blfs/view/cvs/postlfs/nss.html
#

# Note: nss-config and nss.pc files must be corrected
# 	+prefix=/usr/local
#	+Requires= nspr sqlite3

#
# Build dep list
# compiletc
# sqlite3-dev
# sqlite3
# nspr-4.8.2

SRCNAM=nss-3.12.4.tar.gz
WRKDIR=$PWD/nss-3.12.4
TMPDIR=/tmp/package

# manual installation
DESTDIR=$TMPDIR
BINDIR=$DESTDIR/usr/local/bin
INCLUDEDIR=$DESTDIR/usr/local/include/nss
LIBDIR=$DESTDIR/usr/local/lib

# clear dirs
rm -rf $WRKDIR
rm -rf $TMPDIR

mkdir -p $TMPDIR

# create install dirs
mkdir -p $BINDIR
mkdir -p $INCLUDEDIR
mkdir -p $LIBDIR/pkgconfig

tar -xf $SRCNAM

cd $WRKDIR

export BUILD_OPT=1 &&
export NSS_USE_SYSTEM_SQLITE=1 &&
export NSPR_INCLUDE_DIR=/usr/local/include/nspr &&
export USE_SYSTEM_ZLIB=1 &&
export ZLIB_LIBS=-lz &&
patch -Np1 -i ../nss-3.12.4-standalone-3.patch &&
make -C mozilla/security/nss nss_build_all

export DOMSUF=mozilla.org &&
export PATH=$PATH:$PWD/mozilla/dist/$NSS_LINUXDIR/bin &&
export TEST_RESULTSDIR=$PWD/mozilla/tests_results/security &&

cd mozilla/security/nss/tests &&
sed -i 's/gmake/make/' common/init.sh &&
./all.sh &&

grep Passed $TEST_RESULTSDIR/$(hostname).1/results.html | wc -l &&

cd $WRKDIR

export NSS_LINUXDIR=$(basename `ls -d $PWD/mozilla/dist/Linux*`) &&
cd mozilla/dist &&
install -v -m755 $NSS_LINUXDIR/lib/*.so $DESTDIR/usr/local/lib &&
install -v -m644 $NSS_LINUXDIR/lib/libcrmf.a $DESTDIR/usr/local/lib &&
install -v -m644 $NSS_LINUXDIR/lib/*.chk $DESTDIR/usr/local/lib &&
install -v -m755 -d $DESTDIR/usr/local/include/nss &&
install -v -m755 $NSS_LINUXDIR/bin/nss-config $DESTDIR/usr/local/bin &&
install -v -m644 $NSS_LINUXDIR/lib/pkgconfig/nss.pc $DESTDIR/usr/local/lib/pkgconfig &&
cp -v -RL private/nss/* $DESTDIR/usr/local/include/nss &&
cp -v -RL public/nss/* $DESTDIR/usr/local/include/nss &&
chmod 644 $DESTDIR/usr/local/include/nss/*

cd $TMPDIR

find . | xargs file | grep "executable" | grep ELF | grep "not stripped" | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
find . | xargs file | grep "shared object" | grep ELF | grep "not stripped" | cut -f 1 -d : | xargs strip -g 2> /dev/null


