# -*- shell-script -*-

# teTeX 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-src-2.0.2.tar.gz

   ## rm -rf /home/netrel/src/tetex-bin*
   mkdir -p /home/netrel/src && cd /home/netrel/src
   ## TODO: look at pimport
   tar xzf /var/tmp/tetex-src*
   mv tetex-src-* $(echo tetex-src* | sed -e 's/tex-src/tex-bin/')-1

   cd -

   ./bin/mknetrel -xXC tetex-bin


EOC

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


sub_packages="devel lib x11"

#sover=3_4_5
sover=3

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


needinstall_info () { return 1; }


autoupdate () {
    cd $src || exit 1
    bash reautoconf
    
    cat > strip <<EOF2
#!/bin/sh
echo NOT stripping: \$*
EOF2
    chmod +x strip
    PATH=$(pwd):$PATH
}

mflags="EXEEXT= XLOADLIBES='-L'$cygwin_root/usr/X11R6/lib' -lICE -lSM -lXpm -lX11' XLDFLAGS='-lm'"

buildnative () {
    cd $build || exit 1
    
    NATIVE_CONFIGOPTS="--enable-ipc --with-dialog --without-texinfo --with-system-ncurses --with-x --with-system-zlib --with-system-pnglib --with-system-tifflib --without-texi2hthml --disable-multiplatform --enable-shared --x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib"

    rm -f config.cache
    PATH=/bin:/usr/bin:$PATH $src/configure $NATIVE_CONFIGOPTS || exit 1
    make all "XLOADLIBES='-L/usr/X11R6/lib' -lICE -lSM -lXpm -lX11" || exit 1
    make distclean || exit 1
}

preconfig () {

    # Add to mknetrel?
    patchsrc 

    # Fix libtool's -rpath detection
    export CC="${build_cc}"
    export CXX="${build_cxx}"
    export X_CFLAGS="-I/cygwin/usr/X11R6"
    DLLTOOL=${build_dlltool}
    OBJDUMP=${build_objdump}
    export AS="${build_as}"
    export HOST_CC=/usr/bin/gcc
    export DLLTOOL=${build_dlltool}
    export LTCC=echo
    export allow_undefined="yes"
    export allow_undefined_flag=""
    
    true || autoupdate

    true || for i in texk texk/kpathsea; do
	cd $src/$i
	mv configure configure.orig
	sed -e 's/\(allow_undefined_flag=.*\)unsupported/\1/' < configure.orig > configure
	chmod 755 configure
    done

    cd $src

    # do not run fmtutil -- that does not work
    mv configure configure.orig
    sed -e "s/FMU=.*/FMU=''/" < configure.orig > configure
    chmod 755 configure

    opt='-O2 -g -DKPSE_DLL'
    
    cd $build || exit 1

    chmod +w config.cache
    iscygwin || crosscache
    iscygwin || cat <<EOF >> config.cache
xdvi_cv_bitmap_type=\${xdvi_cv_bitmap_type='BMTYPE=int BMBYTES=4'}
xdvi_cv_func_poll=\${xdvi_cv_func_poll=yes}
xdvi_cv_sys_streams=\${xdvi_cv_sys_streams=no}
xdvi_cv_sys_sunos_4=\${xdvi_cv_sys_sunos_4=no}
xdvi_cv_motif_include=${xdvi_cv_motif_include=no}
xdvi_cv_motif_libdir=\${xdvi_cv_motif_libdir=no}
xdvi_cv_func_good_vsnprintf=\${xdvi_cv_func_good_vsnprintf=yes}
ac_cv_func_vfork_works=\${ac_cv_func_vfork_works=yes}
xdvi_cv_setsid_in_vfork=\${xdvi_cv_setsid_in_vfork=yes}
lt_cv_cc_dll_switch=\${lt_cv_cc_dll_switch="-Wl,--dll -nostartfiles"}
EOF

    cp -pv config.cache config.site
    export CONFIG_SITE=$build/config.site

    # Need --with-x-toolkit=Xaw, xdvik's motif check is broken
    CONFIGOPTS="$CONFIGOPTS \
--with-omega \
--enable-ipc \
--with-dialog \
--without-texinfo \
--without-texi2html \
--with-system-ncurses \
--with-x \
--with-x-toolkit=Xaw \
--with-system-zlib \
--with-system-pnglib \
--with-system-tifflib \
--disable-multiplatform \
--enable-shared \
--x-includes=$cygwin_root/usr/X11R6/include \
--x-libraries=$cygwin_root/usr/X11R6/lib"
##--enable-maintainer-mode" ## extra

   # --with-pnglib-include=$cygwin_root/usr/include/libpng \
   # --cache-file=$build/config.cache"

    chmod -w config.cache
}

prebuild () {
    cd $build/texk
    mkdir -p kpathsea/kpathsea

    cd kpathsea
    mv libtool libtool.orig
    sed -e 's/^DLLTOOL="dlltool"/DLLTOOL="i686-cygwin-dlltool"\nHOST_CC=gcc/' < libtool.orig > libtool
    cd ..
    
    cp -pv kpathsea/libtool .
    ###  addmakeflags "$mflags"
    addmakeflags "$mflags" " " TEXMF=/usr/share/texmf
    for i in $sub_packages; do
	rm -rf $inst-$i
	mkdir -p $inst-$i || exit 1
    done
}

preinstall () {
    #addmakeflags "$mflags" " " TEXMF=/usr/share/texmf " " texmf=$inst/usr/share/texmf " " runscriptdir=/usr/bin " " vartexfonts=/var/spool/texmf " "
    #addmakeflags "$mflags" " " TEXMF='\{!!/var/lib/texmf,!!/usr/share/texmf\}' " " texmf=$inst/usr/share/texmf " " runscriptdir=/usr/bin " " vartexfonts=/var/cache/fonts " "
    addmakeflags "$mflags" " " TEXMF="$(kpsexpand  \\$TEXMF)" " " texmf=$inst/usr/share/texmf " " runscriptdir=/usr/bin " " vartexfonts=/var/cache/fonts " "
}

presplit () {
    cd $inst
    cd usr/bin
    rm -f mf.exe
    ln -s mf-nowin.exe mf.exe
    # huh?
    rm -f latex latex.exe
    ln -s tex.exe latex.exe
}

devel_name () {
    echo tetex-devel
}

lib_name () {
    echo libkpathsea$sover
}

x11_name () {
    echo tetex-x11
}

x11_split () {
    xprefix=/usr/X11R6
    mkdir -p ./$xprefix/bin || exit 1
    mkdir -p ./$xprefix/lib || exit 1

    xdocprefix=$xprefix/share
    xmandir=$xdocprefix/man

    mkdir -p ./$xmandir/man1 || exit 1
    mv $inst/$xmandir/man1/mfw.1 ./$xmandir/man1
    mv $inst/$xmandir/man1/*xdvi*.1 ./$xmandir/man1

    mv $inst/$mandir/man1/mfw.1 ./$xmandir/man1
    mv $inst/$mandir/man1/*xdvi*.1 ./$xmandir/man1

    mv $inst/$prefix/man/man1/mfw.1 ./$xmandir/man1
    mv $inst/$prefix/man/man1/*xdvi*.1 ./$xmandir/man1

    mv $inst/$prefix/bin/mfw* ./$xprefix/bin
    mv $inst/$prefix/bin/*xdvi* ./$xprefix/bin

    rm -rf ./$prefix/share/texmf/xdvi
    install -d -m755 ./$prefix/share/texmf
    mv $inst/$prefix/share/texmf/xdvi ./$prefix/share/texmf

    rmdir ./$prefix/lib/ || true
    rmdir ./$xprefix/lib/ || true

    rmdir $inst/$prefix/lib/ || true
    rmdir $inst/$xprefix/lib/ || true

    true
}

#prepackage () {
postinstall () {
    fixdoc
    cd $src || exit 1
    ## cygwin=CYGWIN-PATCHES
    cygwin=cygwin
    readmes="ChangeLog INSTALL PROBLEMS QuickInstall README README.pretest TODO"
    for ibase in $base; do
	#packagedocdir=$docdir/$base-$ver
    	idocdir=$docdir/$ibase-$ver
	iinst=$inst
	[ $ibase != $base ] && iinst=$iinst-$ibase

	install -d -m755 $iinst/$idocdir || exit 1
	install -m 644 $readmes $iinst/$idocdir
	install -m644 $cygwin/README $iinst/$idocdir/README.Cygwin
	install -m644 $cygwin/changelog $iinst/$idocdir/changelog.Cygwin

	install -d -m755 $iinst/$cygdocdir || exit 1
	install -m644 $cygwin/README $iinst/$cygdocdir/$ibase-$ver.README
    done
}

myprepackage () {

    cd $inst || exit 1
    rm -f ./$prefix/bin/readlink*
    rm -f ./$mandir/man1/readlink*
    
    # huh?
    rm -f ./$infodir/dir.old

    # Get these from tetex-texmf
    # check that these are in tetex-tiny and tetex-base
    rm -f ./$prefix/share/texmf/dvips/config.ps
    rm -f ./$prefix/share/texmf/pdftex/pdftex.cfg
    rm -f ./$prefix/share/texmf/web2c/fmtutil.cnf
    rm -f ./$prefix/share/texmf/web2c/mktex.cnf
    rm -f ./$prefix/share/texmf/web2c/texmf.cnf

    # xdvi.cfg has been removed from tetex-texmf 2.0.1
    # rm -f usr/share/texmf/xdvi/xdvi.cfg
    true
}

prepackage () {
    cd $inst || exit 1
    myprepackage
    
    cd $inst || exit 1
    for f in bin/* usr/bin/*; do
	case "$f" in
	    *.exe|*\*) continue ;;
	esac
	case "`file -L $f`" in
	    *"perl script"*)
		mv $f $f.tmp
		sed -e 's@# *!/usr/bin/env *perl@#!/usr/bin/perl@' $f.tmp > $f
		rm -f $f.tmp
		chmod +x $f
		;;
	esac
    done

    cd $src || exit 1
}

postpackage () {
    cd $src || exit
#    cp cygwin/tetex.hint $uploads/setup.hint
#    mv $uploads/$base-$ver.tar.bz2 $uploads/tetex-$ver.tar.bz2
    mkdir -p $uploads/tetex-bin
    mv $uploads/$base-$ver.tar.bz2 $uploads/tetex-bin
    mv $uploads/$base-$ver-src.tar.bz2 $uploads/tetex-bin
    mv $uploads/setup.hint $uploads/tetex-bin
    
    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
}
