# -*- shell-script -*-

# teTeX texmf specific mknetrel overrides
# To use this, do something like:
cat >/dev/null <<EOC

   #wget -P/var/tmp ftp://ftp.tex.ac.uk/tex-archive/systems/unix/teTeX/2.0/distrib/tetex-texm-2.0.2.tar.gz

   ##rm -rf /home/cygwin/src/tetex-texmf*
   mkdir -p /home/netrel/src/tetex-texmf-2.0.2-1/texmf && cd /home/netrel/src/tetex-texmf-2.0.2-1/texmf
   tar xzf /var/tmp/tetex-texmf-*
   cd -

   ./bin/mknetrel -xXC tetex-texmf


EOC


patch=$mknetrel_root/patch
if iscygwin; then
    true
else    
    #uploads=$here/uploads/$base && mkdir -p $uploads/
    uploads=$here/uploads/tetex && mkdir -p $uploads/
    tarstem=$uploads/$package
fi


sub_packages="base extra doc tiny"


# copy and include extra mknetrel stuff
#extras="doc patch auto cross split"
extras="doc patch auto cross"
for i in $extras; do
    f=mknetrel.$i
    [ -r $extra/$f ] && cp -pv $extra/$f $src/cygwin/$f
    . $src/cygwin/$f
done


#
# mknetrel.split -- split subpackages
#

presplit () { true; }

lib_name () {
    echo lib$base$sover
}

devel_name () {
    echo $base-devel
}

doc_name () {
    echo $base-doc
}

lib_split () {
    mkdir -p ./$prefix/bin || exit 1
    mv $inst/$prefix/bin/*.dll ./$prefix/bin
    # dlopen-able .la files go in BIN dir, lib package
    mkdir -p ./$prefix/bin || exit 1
    mv $inst/$prefix/lib/lib*[0-9]*.la ./$prefix/bin
    mkdir -p ./$prefix/share || exit 1
    mv $inst/$prefix/share/$base ./$prefix/share
    true
}
   
devel_split () {
    mkdir -p ./$prefix/bin || exit 1
    mv $inst/$prefix/include ./$prefix/include
    mkdir -p ./$prefix/lib || exit 1
    mv $inst/$prefix/lib/*.a ./$prefix/lib
    # link time .la files go in LIB dir devel package
    mkdir -p ./$prefix/lib || exit 1
    mv $inst/$prefix/lib/*.la ./$prefix/lib
    mkdir -p ./$prefix/share || exit 1
    mv $inst/$prefix/share/aclocal ./$prefix/share
    true
}

doc_split () {
    mkdir -p ./$docprefix || exit 1
    mv $inst/$infodir ./$infodir
    true
}

prebuild () {
    for i in $sub_packages; do
	rm -rf $inst-$i
	mkdir -p $inst-$i || exit 1
    done
}
    
domkdist() {
    #
    # Fix up installation slightly
    #
    cd $inst || exit 1
    chmod -R u+w,og-w,a+rX .
    cd usr 2>/dev/null && dousrstuff

    # Split off any sub-packages.  The actual splitting is handled by
    # a package's specific code in extra/.

    # To package `foo' in foo, foo-doc and foo-devel, set
    # sub_packages='doc devel'.

    # Then provide functions doc_name and devel_name, that return the
    # full name of the sub-package.  Also provide functions doc_split
    # and devel_split, that mv part of foo's installation in $inst to
    # the sub-packages' installation roots $inst-doc and $inst-devel.

    cd $inst || exit 1
    presplit

    for i in $sub_packages; do
	subname=$(${i}_name)
  	cd $inst-$i || exit 1
	${i}_split || exit 1
    done
    
    cd $inst || exit 1
    prepackage

    cd $inst || exit 1
    hard2soft

    #
    # Make tar balls
    #

    # The base package
    echo creating $tarstem.tar.bz2
    cd $inst || exit 1

    f=$src/cygwin/setup.hint && test -r $f && cp $f $uploads
    f=$src/cygwin/$base.hint && test -r $f && cp $f $uploads/setup.hint
    find * -print | sort | tar -T - --no-recursion --owner=0 --group=0 -cjf $tarstem.tar.bz2

    # Any sub-packages
    for i in $sub_packages; do
	subname=$(${i}_name)
	subload=$uploads/$subname
	subtarstem=$subload/$subname-$ver
	mkdir -p $subload || exit 1
	echo creating $subtarstem.tar.bz2
	f=$src/cygwin/$subname.hint && test -r $f && cp $f $subload/setup.hint
  	cd $inst-$i
	hard2soft
	find * -print | sort | tar -T - --no-recursion --owner=0 --group=0 -cjf $subtarstem.tar.bz2
    done

    # The source package
    cd $src/.. || exit 1
    echo creating "$tarstem"-src.tar.bz2
    find $package_src/* -print -follow | egrep -v '\.cvsignore|\.bak$|\.orig$|\.o$|~$|^.#|CVS|%redact|/tags$' | egrep -v "$src_exclude" | sort | tar -T - --no-recursion --owner=0 --group=0 -cjf "$tarstem"-src.tar.bz2
    postpackage
}



#
# override mknetrel.split here
#

needdevoflags () {
    return 1
}

needinstall_info () { return 1; }

preconfig () {
    
    # Add to mknetrel?
    patchsrc || true

    cd $src || exit 1
    autoconf2.13
    
    mkdir -p $build
    cd $build || exit 1

    ##chmod -w config.cache
}

dorebuild () {
    cd $here || exit 1
    rm -rf $inst
    if $clean; then
	rm -rf $build
	mkdir -p $build
    fi
    cd $build || exit 1
    config
    prebuild
    mkdir -p $inst
}



base_name () {
    #echo $base-base
    echo tetex-base
}

extra_name () {
    #echo $base-extra
    echo tetex-extra
}

doc_name () {
    #echo $base-doc
    echo tetex-doc
}

tiny_name () {
    #echo $base-tiny
    echo tetex-tiny
}

base_split () {
    cd $build || exit 1
    make NAME=tetex-base prefix=$inst-base/usr sysconfdir=$inst-base/etc localstatedir=$inst-base/var install-base
}
   
extra_split () {
    cd $build || exit 1
    make NAME=tetex-extra prefix=$inst-extra/usr sysconfdir=$inst-extra/etc localstatedir=$inst-extra/var install-extra
}

doc_split () {
    cd $build || exit 1
    make NAME=tetex-doc prefix=$inst-doc/usr sysconfdir=$inst-doc/etc localstatedir=$inst-doc/var install-doc
}

tiny_split () {
    cd $build || exit 1
    make NAME=tetex-tiny prefix=$inst-tiny/usr sysconfdir=$inst-tiny/etc localstatedir=$inst-tiny/var install-tiny
}

#prepackage () {

postinstall () {
    cd $build || exit 1
    make NAME=tetex prefix=$inst/usr sysconfdir=$inst/etc localstatedir=$inst/var install-readmes
    
    fixdoc
    
    ## cygwin=CYGWIN-PATCHES
    cygwin=cygwin
    readmes="ChangeLog doc/README doc/README.knuth"

    ## Install under 'tetex' name too
    
    cd $src || exit 1

    for ibase in $base tetex; do
	#packagedocdir=$docdir/$base-$ver
    	idocdir=$docdir/$ibase-$ver
	iinst=$inst
	[ $ibase != $base ] && iinst=$iinst-$ibase
	
	cd $src/texmf || exit 1
	install -d -m755 $iinst/$packagedocdir || exit 1
	install -m 644 $readmes $iinst/$packagedocdir

	cd $src || exit 1
	install -m644 $cygwin/README $iinst/$packagedocdir/README.Cygwin
	install -m644 $cygwin/changelog $iinst/$packagedocdir/changelog.Cygwin
	install -d -m755 $iinst/$cygdocdir || exit 1
	install -m644 $cygwin/README $iinst/$cygdocdir/$ibase-$ver.README
    done
}

postpackage () {
    cd $src || exit
    cp cygwin/tetex.hint $uploads/setup.hint

    # Use the 'binary' tetex-texmf package as dummy setup helper package
    mv $uploads/$base-$ver.tar.bz2 $uploads/tetex-$ver.tar.bz2
    
    # tetex-texmf-20020530-3-src.tar.bz2 would be a fine name
    # but setup.exe cannot handle source-only packages
    # mv $uploads/$base-$ver-src.tar.bz2 $uploads/tetex-base/tetex-base-$ver.tar.bz2
    mv $uploads/$base-$ver-src.tar.bz2 $uploads/tetex-$ver-src.tar.bz2
    
    for i in $sub_packages; do
	subname=$(${i}_name)
	subload=$uploads/$subname
	f=$src/cygwin/$subname.hint && test -r $f && cp $f $subload/setup.hint
    done
}
