diff options
Diffstat (limited to 'security/nss/coreconf/nspr.sh')
-rw-r--r-- | security/nss/coreconf/nspr.sh | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/security/nss/coreconf/nspr.sh b/security/nss/coreconf/nspr.sh new file mode 100644 index 0000000000..d84674e0e0 --- /dev/null +++ b/security/nss/coreconf/nspr.sh @@ -0,0 +1,77 @@ +#!/usr/bin/env bash +# This script builds NSPR for NSS. +# +# This build system is still under development. It does not yet support all +# the features or platforms that the regular NSPR build supports. + +# variables +nspr_cflags= +nspr_cxxflags= +nspr_ldflags= + +# Try to avoid bmake on OS X and BSD systems +if hash gmake 2>/dev/null; then + make() { command gmake "$@"; } +fi + +nspr_set_flags() +{ + nspr_cflags="$CFLAGS $@" + nspr_cxxflags="$CXXFLAGS $@" + nspr_ldflags="$LDFLAGS $@" +} + +nspr_build() +{ + local nspr_dir="$cwd"/../nspr/$target + mkdir -p "$nspr_dir" + + # These NSPR options are directory-specific, so they don't need to be + # included in nspr_opt and changing them doesn't force a rebuild of NSPR. + extra_params=(--prefix="$dist_dir"/$target) + if [ "$opt_build" = 1 ]; then + extra_params+=(--disable-debug --enable-optimize) + fi + if [ "$target_arch" = "x64" ]; then + extra_params+=(--enable-64bit) + fi + + echo "NSPR [1/5] configure ..." + pushd "$nspr_dir" >/dev/null + CFLAGS="$nspr_cflags" CXXFLAGS="$nspr_cxxflags" \ + LDFLAGS="$nspr_ldflags" CC="$CC" CXX="$CCC" \ + run_verbose ../configure "${extra_params[@]}" "$@" + popd >/dev/null + echo "NSPR [2/5] make ..." + run_verbose make -C "$nspr_dir" + + if [ "$build_nspr_tests" = 1 ]; then + echo "NSPR [3/5] build tests ..." + run_verbose make -C "$nspr_dir/pr/tests" + else + echo "NSPR [3/5] NOT building tests" + fi + + if [[ "$build_nspr_tests" = 1 && "$run_nspr_tests" = 1 ]]; then + echo "NSPR [4/5] run tests ..." + run_verbose make -C "$nspr_dir/pr/tests" runtests + else + echo "NSPR [4/5] NOT running tests" + fi + + echo "NSPR [5/5] install ..." + run_verbose make -C "$nspr_dir" install +} + +nspr_clean() +{ + rm -rf "$cwd"/../nspr/$target +} + +set_nspr_path() +{ + local include=$(echo "$1" | cut -d: -f1) + local lib=$(echo "$1" | cut -d: -f2) + gyp_params+=(-Dnspr_include_dir="$include") + gyp_params+=(-Dnspr_lib_dir="$lib") +} |