#!/bin/sh

# TODO - split out win32 bits ?

tar_opts=cj

if test "z$1" = "z" -o "z$1" = "z-h" -o "z$1" = "z--help"; then
  echo "src-package: <src-fir-name> [<destination-directory>]";
  echo "  the src will be packed into several archives";
  echo "   prefixed by the last path element";
  exit 0;
fi

src=$1
if test "z$2" = "z"; then
	dest="."
else
	dest=$2
fi

echo "packing source in $src to directory $dest";

if test ! -f "$src/vcl/source/gdi/outdev.cxx"; then
    echo "Doesn't look like an OO.o source tree";
    exit 1;
fi

system_dirs="$src/python $src/bitstream_vera_fonts $src/freetype $src/jpeg";
system_dirs="$system_dirs $src/dictionaries $src/libxml2 $src/zlib $src/moz";
system_dirs="$system_dirs $src/curl $src/neon ";
extension_dirs="$src/sdext $src/swext $src/tomcat $src/apache-commons";
extension_dirs="$extension_dirs $src/jfreereport $src/reportbuilder";
extension_dirs="$extension_dirs $src/xpdf"

# future system bits:
incomplete_modules="$src/curl $src/expat $src/icu $src/libxmlsec $src/neon";
incomplete_modules="$incomplete_modules $src/msfontextract $src/regexp $src/rhino ";
incomplete_modules="$incomplete_modules $src/sablot $src/sane $src/stlport $src/twain";
incomplete_modules="$incomplete_modules $src/unixODBC $src/x11_extensions $src/boost";

# Win32 dirs
win32_dirs="$src/bridges/source/cpp_uno/msvc_win32_intel
	    $src/connectivity/source/drivers/ado
            $src/desktop/win32
	    $src/dtrans/source/win32
	    $src/extensions/source/activex
            $src/extensions/source/ole
	    $src/extensions/source/installation 
	    $src/extensions/source/plugin/win
	    $src/external/ado
	    $src/external/gpc
            $src/fpicker/source/win32
	    $src/postprocess/rebase
            $src/setup_native/source/win32
	    $src/shell/source/win32
	    $src/shell/source/tools/lngconvex
	    $src/shell/source/tools/regsvrex
	    $src/shell/source/all/zipfile
	    $src/shell/source/all/ooofilereader
	    $src/shell/source/all/ooofilereader
	    $src/shell/source/backends/wininetbe
	    $src/sysui/source/win32
	    $src/sysui/desktop/icons
	    $src/tools/win
	    $src/vcl/win"
# FIXME - add build conditional to $src/embedserv & add

# FIXME - remove svdbt.dll with an unclear license; it looks unused anyway; http://www.openoffice.org/issues/show_bug.cgi?id=80408
rm -f $src/sfx2/util/svdbt.dll

# This saves only 800k
#
# echo "Packing CVS entries ...";
# find $src -name CVS > cvs.lst || exit 1;
# tar $tar_opts -f $dest/$src-cvs.tar.bz2 --files-from=cvs.lst || exit 1;
# cat cvs.lst | xargs rm -Rf || exit 1
# rm cvs.lst

echo "Packing binfilter ...";
tar $tar_opts -f $dest/$src-binfilter.tar.bz2 $src/binfilter || exit 1;
rm -Rf $src/binfilter || exit 1;

echo "Packing system pieces ...";
echo "tar $tar_opts -f $dest/$src-system.tar.bz2 $system_dirs";
tar $tar_opts -f $dest/$src-system.tar.bz2 $system_dirs || exit 1;
rm -Rf $system_dirs || exit 1;

# This saves only 1.5Mb
#
# echo "Packing win32 bits ...";
# tar $tar_opts -f $dest/$src-win32.tar.bz2 $win32_dirs || exit 1;
# rm -Rf $win32_dirs || exit 1;

echo "Packing i18n bits ...";
find $src -name localize.sdf > localize.lst || exit 1;
find $src/extras/source/templates -type f | grep -v 'CVS' | grep -v 'delzip' | grep -v 'makefile.mk' | grep -v '/de' | grep -v '/en-US' >> localize.lst || exit 1;
tar $tar_opts -f $dest/$src-lang.tar.bz2 --files-from=localize.lst || exit 1;
cat localize.lst | xargs rm -Rf || exit 1
rm localize.lst

echo "Packaging extension bits ..."
tar $tar_opts -f $dest/$src-extensions.tar.bz2 $extension_dirs || exit 1;
rm -Rf $extension_dirs || exit 1;

echo "Packing core source ...";
tar $tar_opts -f $dest/$src-core.tar.bz2 $src || exit 1;
rm -Rf $src

echo "Generating md5 sums ...";
for suffix in binfilter sdk_oo system lang core; do # win32 cvs
	md5sum $dest/$src-$suffix.tar.bz2 > $dest/$src-$suffix.tar.bz2.md5 || exit 1;
done
