#! /bin/sh

# Values from c-auto.h

mk_NOTOOL=
mk_GREY=
mk_BUTTONS=
mk_PS_GS=
mk_GS_PATH='gs'
mk_PS_DPS=
mk_PS_NEWS=
mk_A4=0

# HyperTeX: There appears to be no (easy) way to disable this
mk_HTEX=1

# Kpathsea defaults, they are #if'ed in the source but there is no
# config option to disable them.
mk_SELFILE=1
mk_KPATHSEA=1

# Optional values from CFLAGS

mk_MFMODE='unspecified'
mk_BDPI=600
mk_DEFAULT_FONT_SIZES='m0:m0.5:m1:m2:m3:m4:m5'
mk_SHRINK=8
mk_DEFAULT_FONTMAP='/usr/local/share/texmf/xdvi/vfontmap'
mk_XDVIPRINTCMD='/usr/local/bin/xdviprint'

# Get arguments from CFLAGS

for mk_arg
do
  case "$mk_arg" in
    -D*=*)
      eval "`echo \"$mk_arg\" | sed 's/^-D/mk_/'`"
      ;;
    -D*)
      eval "`echo \"$mk_arg\" | sed 's/^-D/mk_/'`=1"
      ;;
  esac
done

# Get arguments from c-auto.h

eval "`awk '/^#define/ { print "mk_"$2"="$3 }' c-auto.h`"

# eval "`cat c-auto.h \
#   | grep '^[ 	]*#[ 	]*define[ 	]' \
#   | sed 's/^[ 	]*#[ 	]*define[ 	][ 	]*/mk_/' \
#   | sed 's/[ 	][ 	]*/=/'`"

# Get arguments from xdvi-cofig.h

if test -n "$mk_DVI2PS"; then
  mk_DVIFILTER='dvi2ps'
else
  if test -n "$mk_JDVI2KPS"; then
    mk_DVIFILTER='jdvi2kps'
  else
    mk_DVIFILTER='dvips'
  fi
fi
if test -f xdvi-config.h
then
  mk_PRCMDALL=`grep '^#define PRCMDALL ' xdvi-config.h | \
    awk -F'"' '{print $(NF-1)}'`
  mk_PRCMDCUR=`grep '^#define PRCMDCUR ' xdvi-config.h | \
    awk -F'"' '{print $(NF-1)}'`
  mk_PRCMDMRK=`grep '^#define PRCMDMRK ' xdvi-config.h | \
    awk -F'"' '{print $(NF-1)}'`
  mk_PRCMDRGN=`grep '^#define PRCMDRGN ' xdvi-config.h | \
    awk -F'"' '{print $(NF-1)}'`
  mk_PRCMDLST=`grep '^#define PRCMDLST ' xdvi-config.h | \
    awk -F'"' '{print $(NF-1)}'`
  mk_DVIPRINTER=`grep '^#define DVIPRINTER ' xdvi-config.h | \
    awk -F'"' '{print $(NF-1)}'`
  mk_FILTOPTTBLFILE=`grep '^#define FILTOPTTBLFILE ' xdvi-config.h | \
    grep $mk_DVIFILTER | awk -F'"' '{print $(NF-1)}'`
fi
test -z "$mk_NOCOLOR" && mk_GREY=1

# Process simple boolean arguments.  Their values are empty or nonempty

if test -n "$mk_NOTOOL";	then mk_BUTTONS=;			fi
if test -z "$mk_GREY";		then echo '/^#ifgrey/,/^#/d';		fi
if test -z "$mk_BUTTONS";	then echo '/^#ifbuttons/,/^#/d';	fi
if test -z "$mk_PS_DPS";	then echo '/^#ifdps/,/^#/d';		fi
if test -z "$mk_PS_NEWS";	then echo '/^#ifnews/,/^#/d';		fi
if test -n "$mk_NOCOLOR";	then echo '/^#ifcolor/,/^#/d';		fi
if test -z "$mk_HTEX";		then echo '/^#ifhyper/,/^#/d';		fi
if test -n "$mk_NOGRID";	then echo '/^#ifgrid/,/^#/d';		fi

if test -z "$mk_KPATHSEA"; then	echo	'/^#ifkpathsea/,/^#/d';
			   else echo	'/^#ifnokpathsea/,/^#/d';	fi

# -DNOSELFILE is supposed to override everything
case $mk_SELFILE:$mk_NOSELFILE in
    *:1)	echo '/^#ifselfile/,/^#/d';;
    1:*)	echo '/^#ifnoselfile/,/^#/d';
esac

# See HTEX comment above    
# if test -z "$mk_HAVE_LIBWWW" || test -z "$mk_HAVE_WWWLIB_H";
# 				then echo '/^#ifhyper/,/^#/d';		fi

# Process remaining PostScript emulation arguments

if test -z "$mk_PS_GS"; then
  echo '/^#ifghost/,/^#/d'
else
  echo "s^@GS_PATH@^$mk_GS_PATH^"
fi

if test -n "$mk_PS_GS" || test -n "$mk_PS_DPS" || test -n "$mk_PS_NEWS"; then
  mk_PS=y
  echo '/^#ifnops/,/^#/d'
else
  mk_PS=
  echo '/^#ifps/,/^#/d'
fi

# Miscellaneous args

if test "$mk_A4" -ne 0; then
  echo 's/@DEFAULT_PAGE_SIZE@/21 x 29.7 cm (A4 size)/'
  echo 's/@DEFAULT_UNIT@/cm " (centimeters)"/'
else
  echo 's/@DEFAULT_PAGE_SIZE@/8.5 x 11 inches/'
  echo 's/@DEFAULT_UNIT@/in " (inches)"/'
fi

echo "s^@MFMODE@^$mk_MFMODE^"
echo "s/@BDPI@/$mk_BDPI/"
echo "s/@SHRINK@/$mk_SHRINK/"

echo "s/@DEFAULT_FONT_SIZES@/$mk_DEFAULT_FONT_SIZES/" | sed -e "s/:/ :\\\\\\
/g"

if test -n "$mk_VI_KEY"; then
  echo '/^#ifnovikey/,/^#/d'
else
  echo '/^#ifvikey/,/^#/d'
fi
if test -n "$mk_ZOOM_BUTTON"; then
  echo '/^#ifnozoom/,/^#endifzoom/d'
else
  echo '/^#ifzoom/,/^#endifzoom/d'
fi

if test -n "$mk_NOZEIT"; then
  # ifzeit may nests.
  echo '/^#ifzeit/,/^#endifzeit/d'
  echo '/^#ifvfontmap/,/^#endifvfontmap/d'
else
  if test -n "$mk_NOVFONTMAP"; then
    echo '/^#ifvfontmap/,/^#endifvfontmap/d'
  else
    echo "s_@DEFAULTFONTMAP@_`echo $mk_DEFAULT_FONTMAP`_"
  fi
fi
if test -n "$mk_NOMARKPAGE";	then
  echo '/^#ifmarkpage/,/^#endifmarkpage/d'
fi
if test -n "$mk_NOPAPERMENU"; then
  echo '/^#ifpapermenu/,/^#endifpapermenu/d'
else
  echo '/^#ifnopapermenu/,/^#endifpapermenu/d'
fi
if test -n "$mk_NOPAGENUM";	then
  echo '/^#ifpagenum/,/^#endifpagenum/d'
else
  echo '/^#ifnopagenum/,/^#endifpagenum/d'
fi
if test -n "$mk_NOTOC";	then
  echo '/^#iftoc/,/^#endiftoc/d'
fi
if test -n "$mk_NODVISEL";	then
  echo '/^#ifdvisel/,/^#endifdvisel/d'
  if test -n "$mk_NOPRINTDVI";	then
    echo '/^#ifprintdvi/,/^#endifprintdvi/d'
  else
    echo "s_@PRCMDALL@_`echo $mk_PRCMDALL`_"
    echo "s_@PRCMDCUR@_`echo $mk_PRCMDCUR`_"
    echo "s_@PRCMDMRK@_`echo $mk_PRCMDMRK`_"
    echo "s_@PRCMDRGN@_`echo $mk_PRCMDRGN`_"
    echo "s_@PRCMDRGN@_`echo $mk_PRCMDLST`_"
    echo "s_@DVIPRINTER@_`echo $mk_DVIPRINTER`_"
    echo "s_@FILTOPTTBLFILE@_`echo $mk_FILTOPTTBLFILE`_"
  fi
else
  echo '/^#ifnodvisel/,/^#endifdvisel/d'
  echo "s_@DVIPRINTER@_`echo $mk_DVIPRINTER`_"
  echo "s_@XDVIPRINTCMD@_`echo $mk_XDVIPRINTCMD`_"
fi

# Remove all remaining '#' lines

echo	'/^#/d'

# Done

exit 0
