#!/bin/bash

. script/option

EPDIR=`echo ../eptex-[0-9]*`
EPVER=`echo $EPDIR | sed "s/\.\.\/eptex-//"`

PATCH=patch
gpatch --version &>/dev/null && PATCH=gpatch

rm -rf ../eptexdir ../euptex

cd ..
cat texmfmem.h \
  | sed "s/#if\ \!defined(Omega)/#if\ \!defined(Omega)\ \&\&\ \!defined(TeX)/" \
  > texmfmem2.h
mv texmfmem.h texmfmem.h.orig
mv texmfmem2.h texmfmem.h

cp -r ptex eptexdir

cd eptexdir

if test "$FAM256" = "1"; then
cat <<EOF >> kanji.defines
  @define function getintone();
  @define procedure setintone();
EOF
fi

cp ../etexdir/etex.ch .
$PATCH -p0 < $EPDIR/etex.diff
$PATCH -p0 -f < $EPDIR/ep1.diff
cp ptexextra.h ptexextra.in
$PATCH -p0 < $EPDIR/pconvert.diff

if test "$FAM256" = "1"; then
  cat ptexextra.in | sed "s/EPTEX-VERSION/`echo $EPVER`_FAM256-PATCHED/" > ptexextra.h
  ../tie -m eptex.web ptex.web ptex.ch etex.ch \
      $EPDIR/etex-sysdep.ch $EPDIR/fp.ch $EPDIR/fam256.ch 
else
  cat ptexextra.in | sed "s/EPTEX-VERSION/$EPVER/" > ptexextra.h
  ../tie -m eptex.web ptex.web ptex.ch etex.ch \
      $EPDIR/etex-sysdep.ch $EPDIR/fp.ch
fi
../tangle eptex
./pconvert eptex

if test "$FAM256" = "1"; then
  cat <<EOF >> texd.h
#define getintone(w) (w).cint1
#define setintone(w,a) ((w).cint1=a)
EOF
fi

$CC $LDFLAGS $CFLAGS -o eptex texini.c tex0.c tex1.c tex2.c tex3.c \
    ptexextra.c kanji.c version.c usage.c  ../lib/lib.a plib.a \
    ../../kpathsea/.libs/libkpathsea.a -lm ../../ptexenc/.libs/libptexenc.a

cd $EPDIR
pwd

if test "$EUPTEX" = "1"; then
  cd ..
  cp -r uptexdir/ euptex
  cd euptex

  if test "$FAM256" = "1"; then
  cat <<EOF >> kanji.defines
  @define function getintone();
  @define procedure setintone();
EOF
  fi

  $PATCH -p1 < $EPDIR/up1.diff
  cp ../etexdir/etex.ch .
  cp $EPDIR/fam256.ch .
  $PATCH -p0 < $EPDIR/etex.diff
  $PATCH -p0 < $EPDIR/uptex.diff 

  if test "$FAM256" = "1"; then
    cat ptexextra.in | sed "s/EPTEX-VERSION/`echo $EPVER`_FAM256-PATCHED/" \
      | sed "s/UPTEX-VERSION/`cat ../uptexdir/uptex.version`/"> ptexextra.h
    ../tie -m euptex.web uptex.web uptex.ch etex.ch \
        $EPDIR/etex-sysdep.ch $EPDIR/fp.ch fam256.ch 
  else
    cat ptexextra.in | sed "s/EPTEX-VERSION/$EPVER/" \
      | sed "s/UPTEX-VERSION/`cat ../uptexdir/uptex.version`/"> ptexextra.h
    ../tie -m euptex.web uptex.web uptex.ch etex.ch \
        $EPDIR/etex-sysdep.ch $EPDIR/fp.ch
  fi
  ../tangle euptex
  ./pconvert euptex

  if test "$FAM256" = "1"; then
    cat <<EOF >> texd.h
#define getintone(w) (w).cint1
#define setintone(w,a) ((w).cint1=a)
EOF
fi
  $CC $LDFLAGS $CFLAGS -o euptex texini.c tex0.c tex1.c tex2.c tex3.c \
       ptexextra.c kanji.c version.c usage.c  ../lib/lib.a plib.a \
       ../../ptexenc/.libs/libptexenc.a ../../kpathsea/.libs/libkpathsea.a -lm
  
  cd $EPDIR
  echo "------------------------" 
  ls -l ../euptex/euptex ../eptexdir/eptex
  ../euptex/euptex -version | head -n 1
else
  echo "------------------------" 
  ls -l ../eptexdir/eptex
fi
../eptexdir/eptex -version | head -n 1

cd ..
mv texmfmem.h.orig texmfmem.h


exit 0


# *** Generate e-pTeX archive ***
# at /opt/home-supp/
rm eptex-*/*~ -i; rm eptex-*/*/*~ -i
tar jcvf eptex-090309.tar.bz2 eptex-*/; mv eptex-*.tar.bz2 /opt/home-supp/tl08/
