#!/bin/sh

# TODO - split out win32 bits ?

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 $src/sndfile";

# future system bits:
incomplete_modules="$src/curl $src/expat $src/icu $src/libxmlsec $src/nas $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

# This saves only 800k
#
# echo "Packing CVS entries ...";
# find $src -name CVS > cvs.lst || exit 1;
# tar cf - -I cvs.lst | bzip2 $dest/${src}_src_cvs.tar.bz2 || exit 1;
# cat cvs.lst | xargs rm -Rf || exit 1
# rm cvs.lst

echo "Packing binfilter ...";
tar cf - $src/binfilter | bzip2 > $dest/${src}_src_binfilter.tar.bz2 || exit 1;
rm -Rf $src/binfilter || exit 1;

echo "Packing sdk_oo ...";
tar cf - $src/sdk_oo | bzip2 > $dest/${src}_src_sdk.tar.bz2 || exit 1;
rm -Rf $src/sdk_oo || exit 1;

echo "Packing system pieces ...";
tar cf - $system_dirs | bzip2 > $dest/${src}_src_system.tar.bz2 || exit 1;
rm -Rf $system_dirs || exit 1;

# This saves only 1.5Mb
#
# echo "Packing win32 bits ...";
# tar cf - $win32_dirs | bzip2 > $dest/${src}_src_win32.tar.bz2 || 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 cf - -I localize.lst | bzip2 > $dest/${src}_src_l10n.tar.bz2 || exit 1;
cat localize.lst | xargs rm -Rf || exit 1
rm localize.lst

echo "Packing core source ...";
tar cf - $src | bzip2 > $dest/${src}_src_core.tar.bz2 || exit 1;
rm -Rf $src

#echo "Generating md5 sums ...";
#for suffix in src_binfilter src_sdk src_system src_l10n src_core ; do # src_win32 src_cvs
#	md5sum $dest/${src}_$suffix.tar.bz2 > $dest/${src}_$suffix.tar.bz2.md5 || exit 1;
#done

echo "Finished successfully"
