copy_top() { srcdir_="$1" dstdir_="$2" files=`find "$srcdir_" -maxdepth 1 -mindepth 1 -type f` for f in $files; do cp -p "$f" "$dstdir_" done } split_util() { nssdir="$1" dstdir="$2" # Prepare a source tree only containing files to build nss-util: # # nss/dbm full directory # nss/coreconf full directory # nss top files only # nss/lib top files only # nss/lib/util full directory # Copy everything. cp -R $nssdir $dstdir # Remove subdirectories that we don't want. rm -rf $dstdir/cmd rm -rf $dstdir/lib rm -rf $dstdir/automation rm -rf $dstdir/doc # Start with an empty cmd lib directories to be filled selectively. mkdir $dstdir/cmd cp $nssdir/cmd/Makefile $dstdir/cmd cp $nssdir/cmd/manifest.mn $dstdir/cmd cp $nssdir/cmd/platlibs.mk $dstdir/cmd cp $nssdir/cmd/platrules.mk $dstdir/cmd # Copy some files at the top and the util subdirectory recursively. mkdir $dstdir/lib cp $nssdir/lib/Makefile $dstdir/lib cp -R $nssdir/lib/util $dstdir/lib/util } split_softoken() { nssdir="$1" dstdir="$2" # Prepare a source tree only containing files to build nss-softoken: # # nss/dbm full directory # nss/coreconf full directory # nss top files only # nss/lib top files only # nss/lib/freebl full directory # nss/lib/softoken full directory # nss/lib/softoken/dbm full directory # Copy everything. cp -R $nssdir $dstdir # Skip gtests when building. sed '/^DIRS = /s/ cpputil gtests$//' $nssdir/manifest.mn > $dstdir/manifest.mn-t && mv $dstdir/manifest.mn-t $dstdir/manifest.mn # Remove subdirectories that we don't want. rm -rf $dstdir/cmd rm -rf $dstdir/tests rm -rf $dstdir/lib rm -rf $dstdir/pkg rm -rf $dstdir/automation rm -rf $dstdir/gtests rm -rf $dstdir/cpputil rm -rf $dstdir/doc # Start with an empty lib directory and copy only what we need. mkdir $dstdir/lib copy_top $nssdir/lib $dstdir/lib cp -R $nssdir/lib/dbm $dstdir/lib/dbm cp -R $nssdir/lib/freebl $dstdir/lib/freebl cp -R $nssdir/lib/softoken $dstdir/lib/softoken cp -R $nssdir/lib/sqlite $dstdir/lib/sqlite mkdir $dstdir/cmd copy_top $nssdir/cmd $dstdir/cmd cp -R $nssdir/cmd/bltest $dstdir/cmd/bltest cp -R $nssdir/cmd/ecperf $dstdir/cmd/ecperf cp -R $nssdir/cmd/fbectest $dstdir/cmd/fbectest cp -R $nssdir/cmd/fipstest $dstdir/cmd/fipstest cp -R $nssdir/cmd/lib $dstdir/cmd/lib cp -R $nssdir/cmd/lowhashtest $dstdir/cmd/lowhashtest cp -R $nssdir/cmd/shlibsign $dstdir/cmd/shlibsign mkdir $dstdir/tests copy_top $nssdir/tests $dstdir/tests cp -R $nssdir/tests/cipher $dstdir/tests/cipher cp -R $nssdir/tests/common $dstdir/tests/common cp -R $nssdir/tests/ec $dstdir/tests/ec cp -R $nssdir/tests/lowhash $dstdir/tests/lowhash cp $nssdir/lib/util/verref.h $dstdir/lib/freebl cp $nssdir/lib/util/verref.h $dstdir/lib/softoken cp $nssdir/lib/util/verref.h $dstdir/lib/softoken/legacydb } split_nss() { nssdir="$1" dstdir="$2" # Prepare a source tree only containing files to build nss: # # nss/dbm full directory # nss/coreconf full directory # nss top files only # nss/lib top files only # nss/lib/freebl full directory # nss/lib/softoken full directory # nss/lib/softoken/dbm full directory # Copy everything. cp -R $nssdir $dstdir # Remove subdirectories that we don't want. rm -rf $dstdir/lib/freebl rm -rf $dstdir/lib/softoken rm -rf $dstdir/lib/util rm -rf $dstdir/cmd/bltest rm -rf $dstdir/cmd/fipstest rm -rf $dstdir/cmd/rsaperf_low # Copy these headers until the upstream bug is accepted # Upstream https://bugzilla.mozilla.org/show_bug.cgi?id=820207 cp $nssdir/lib/softoken/lowkeyi.h $dstdir/cmd/rsaperf cp $nssdir/lib/softoken/lowkeyti.h $dstdir/cmd/rsaperf # Copy verref.h which will be needed later during the build phase. cp $nssdir/lib/util/verref.h $dstdir/lib/ckfw/builtins/verref.h cp $nssdir/lib/util/verref.h $dstdir/lib/nss/verref.h cp $nssdir/lib/util/verref.h $dstdir/lib/smime/verref.h cp $nssdir/lib/util/verref.h $dstdir/lib/ssl/verref.h cp $nssdir/lib/util/templates.c $dstdir/lib/nss/templates.c # FIXME: Skip util_gtest because it links with libnssutil.a. Note # that we can't use libnssutil3.so instead, because util_gtest # depends on internal symbols not exported from the shared library. sed '/ util_gtest \\/d' $dstdir/gtests/manifest.mn > $dstdir/gtests/manifest.mn-t && mv $dstdir/gtests/manifest.mn-t $dstdir/gtests/manifest.mn }