# NOTE: Bootstrap Makefiles does not use CPPFLAGS (e.g. nsinstall).
(
    export OLD_CFLAGS="$CFLAGS"
    # NOTE: Make sure nsinstall has largefile and time64 support on
    # 32-bit targets.
    export CFLAGS="$CPPFLAGS $CFLAGS"
    export NATIVE_FLAGS="$CPPFLAGS $CFLAGS"

    abinfo "Setting build options ..."
    export BUILD_OPT=1
    export NSS_USE_SYSTEM_SQLITE=1
    export NSS_ENABLE_ECC=1
    export NSPR_INCLUDE_DIR="`nspr-config --includedir`"
    export NSPR_LIB_DIR="`nspr-config --libdir`"

    ab_match_archgroup 64bit && export USE_64=1
    ab_match_arch powerpc && \
        export NSS_DISABLE_ALTIVEC=1 \
               NSS_DISABLE_CRYPTO_VSX=1
    abinfo "Building NSS ..."
    make all
)

DISTDIR="$(realpath $SRCDIR/../dist)"

abinfo "Creating installation directories ..."
install -dv "$PKGDIR"/usr/{bin,include/nss,lib/pkgconfig}

abinfo "Tweaking nss pkg-config ..."
NSS_VMAJOR=$(grep '#define.*NSS_VMAJOR' "$SRCDIR"/lib/nss/nss.h | awk '{print $3}')
NSS_VMINOR=$(grep '#define.*NSS_VMINOR' "$SRCDIR"/lib/nss/nss.h | awk '{print $3}')
NSS_VPATCH=$(grep '#define.*NSS_VPATCH' "$SRCDIR"/lib/nss/nss.h | awk '{print $3}')

sed "$SRCDIR"/autobuild/nss.pc.in \
    -e "s,%libdir%,/usr/lib,g" \
    -e "s,%prefix%,/usr,g" \
    -e "s,%exec_prefix%,/usr/bin,g" \
    -e "s,%includedir%,/usr/include/nss,g" \
    -e "s,%NSPR_VERSION%,4.10.7,g" \
    -e "s,%NSS_VERSION%,$PKGVER,g" \
    > "$PKGDIR/usr/lib/pkgconfig/nss.pc"
ln -sv nss.pc \
    "$PKGDIR/usr/lib/pkgconfig/mozilla-nss.pc"

abinfo "Tweaking nss-config ..."
sed "$SRCDIR"/autobuild/nss-config.in \
    -e "s,@libdir@,/usr/lib,g" \
    -e "s,@prefix@,/usr/bin,g" \
    -e "s,@exec_prefix@,/usr/bin,g" \
    -e "s,@includedir@,/usr/include/nss,g" \
    -e "s,@MOD_MAJOR_VERSION@,${NSS_VMAJOR},g" \
    -e "s,@MOD_MINOR_VERSION@,${NSS_VMINOR},g" \
    -e "s,@MOD_PATCH_VERSION@,${NSS_VPATCH},g" \
    > "$PKGDIR/usr/bin/nss-config"
chmod -v +x "$PKGDIR/usr/bin/nss-config"

abinfo "Installing utilities ..."
install -Dvm755 "$DISTDIR"/*.OBJ/bin/!(*_gtest) \
    -t "$PKGDIR"/usr/bin/

abinfo "Installing libraries ..."
install -Dvm755 "$DISTDIR"/*.OBJ/lib/{*.so,*.chk,libcrmf.a} \
    -t "$PKGDIR"/usr/lib
chmod -v -x "$PKGDIR"/usr/lib/*.{a,chk}

abinfo "Installing headers ..."
install -Dvm644 "$DISTDIR"/public/nss/*.h \
    -t "$PKGDIR"/usr/include/nss

abinfo "Dropping libnssckbi.so and replacing with an alternative shipped by p11-kit ..."
rm -v "$PKGDIR"/usr/lib/libnssckbi.so
ln -sv pkcs11/p11-kit-trust.so \
    "$PKGDIR"/usr/lib/libnssckbi.so
