/* Makefile for dvi previewer */

#define	Use_MAKEPK
#define	Use_SELFILE
#define	Use_KANJI
#undef	Use_ASCIIDNP
#define	Use_ZEIT
#define	Use_NTTZEIT
#define	Use_PS
#define	Use_MARKPAGE
#define	Use_TOC
#define	Use_PRINTDVI

#include "XDvi.defs"
#include "XDvi.rules"

LOCALBIN=/usr/local/bin
TEXLIB=/usr/local/lib/tex
TEXFONTS=$(TEXLIB)/fonts

#ifdef	Use_ZEIT
DEFAULT_FONT_PATH=.:$(TEXFONTS)/pk:$(TEXFONTS)/jfms
#else
DEFAULT_FONT_PATH=.:$(TEXFONTS)/pk
#endif	/* Use_ZEIT */
DEFAULT_VF_PATH=.:$(TEXFONTS)/vf
DEFAULT_SUBDIR_PATH=

DEFAULT_FONT_SIZES=FontSizes300
# defined macros of font size list: 
#   FontSizes82,  FontSizes87,  FontSizes118, FontSizes160, FontSizes180, 
#   FontSizes240, FontSizes300, FontSizes320, FontSizes360, FontSizes400

#ifdef	Use_MAKEPK
MAKEPK_BINDIR=$(LOCALBIN)
MAKEPK_DESTDIR=$(TEXFONTS)/pk
MAKEPK_DEFS=-DMAKEPK \
            -DMAKEPKCMD=\"$(MAKEPK_BINDIR)/MakeTeXPK\"
#else
MAKEPK_DEFS=
#endif	/* Use_MAKEPK */

#ifdef	Use_SELFILE
SELFILE_DEFS=-DSELFILE
#else
SELFILE_DEFS=
#endif	/* Use_SELFILE */

#ifdef	Use_KANJI
#ifdef	Use_ASCIIDNP
KANJI_DEFS=-DKANJI -DASCIIDNP
#else
KANJI_DEFS=-DKANJI
#endif	/* Use_ASCIIDNP */
#else
KANJI_DEFS=
#endif	/* Use_KANJI */

#ifdef	Use_ZEIT
DEFAULT_FONTCONFDIR=$(TEXFONTS)/zeit
DEFAULT_FONTCONF=$(DEFAULT_FONTCONFDIR)/FontConf
#ifdef	Use_NTTZEIT
ZEIT_DEFS=-DUSE_ZEIT -DNTTZEIT -DDEFAULT_FONTCONF=\"$(DEFAULT_FONTCONF)\"
#else
ZEIT_DEFS=-DUSE_ZEIT -DDEFAULT_FONTCONF=\"$(DEFAULT_FONTCONF)\"
#endif	/* Use_NTTZEIT */
#else
ZEIT_DEFS=
#endif	/* Use_ZEIT */

#ifdef	Use_PS
GHOSTSCRIPT_BINDIR=$(LOCALBIN)
DEFAULT_PS_PATH=.:$(TEXLIB)/ps
PS_DEFS=-DPS -USIGNALRETURNSINT -DGHOSTSCRIPT=\"$(GHOSTSCRIPT_BINDIR)/gs\" \
        -DPS_HEADER -DDEFAULT_PS_PATH=\"$(DEFAULT_PS_PATH)\" \
        -DPS_LITERAL \
        -DEPSBOX -DDVIPS -DJDVI2KPS -DPSFRAG
#else
PS_DEFS=
#endif	/* Use_PS */

#ifdef	Use_MARKPAGE
RINGSIZE=1024
MARKPAGE_DEFS=-DMARKPAGE -DRINGSIZE=$(RINGSIZE)
#else
MARKPAGE_DEFS=
#endif	/* Use_MARKPAGE */

#ifdef	Use_TOC
MAX_PAGE=1024
TOC_DEFS=-DTOC -DMAX_PAGE=$(MAX_PAGE)
#else
TOC_DEFS=
#endif	/* Use_TOC */

#ifdef	Use_PRINTDVI
/* Print-out command templates */
PRCMDALL="cd %d; dvi2ps %F > /tmp/%F:All@%r.ps; lpr -s -r -P%p -J'%F' /tmp/%F:All@%r.ps"
/* all pages of DVI file */
PRCMDCUR="cd %d; dviselect -i %F -o /tmp/%F:%c@%r.dvi =%c; dvi2ps /tmp/%F:%c@%r.dvi > /tmp/%F:%c@%r.ps; /bin/rm /tmp/%F:%c@%r.dvi; lpr -s -r -P%p -J'%F (Page %c)' /tmp/%F:%c@%r.ps"
/* the current page */
PRCMDMRK="cd %d; dviselect -i %F -o /tmp/%F:%m@%r.dvi =%m; dvi2ps /tmp/%F:%m@%r.dvi > /tmp/%F:%m@%r.ps; /bin/rm /tmp/%F:%m@%r.dvi; lpr -s -r -P%p -J'%F (Page %m)' /tmp/%F:%m@%r.ps"
/* the lastly marked page */
PRCMDRGN="cd %d; dviselect -i %F -o /tmp/%F:%s-%e@%r.dvi =%s:%e; dvi2ps /tmp/%F:%s-%e@%r.dvi > /tmp/%F:%s-%e@%r.ps; /bin/rm /tmp/%F:%s-%e@%r.dvi; lpr -s -r -P%p -J'%F (Page %s-%e)' /tmp/%F:%s-%e@%r.ps"
/* pages in the region, between the current page and the lastly marked page */
PRCMDLST="cd %d; dviselect -i %F -o /tmp/%F:%t@%r.dvi %A; dvi2ps /tmp/%F:%t@%r.dvi > /tmp/%F:%t@%r.ps; /bin/rm /tmp/%F:%t@%r.dvi; lpr -P%p -J'%F (Page %t)' /tmp/%F:%t@%r.ps"
/* all marked pages */
DVIPRINTER="lp"
/* the default printer to print-out DVI file */
PRINT_DEFS=-DPRINTDVI -DPRCMDALL=\"$(PRCMDALL)\" -DPRCMDCUR=\"$(PRCMDCUR)\" \
           -DPRCMDMRK=\"$(PRCMDMRK)\" -DPRCMDRGN=\"$(PRCMDRGN)\" \
           -DPRCMDLST=\"$(PRCMDLST)\" -DDVIPRINTER=\"$(DVIPRINTER)\"
#else
PRINT_DEFS=
#endif	/* Use_PRINTDVI */

#undef	XMachineDep

#ifdef	i386
#define	XMachineDep	-UMSBITFIRST -UBMLONG -UBMSHORT
#else
#define	XMachineDep	-DMSBITFIRST -UBMLONG -DBMSHORT
#endif

DEFS=-DBDPI=300 -DDEFAULT_SHRINK=\"4\" -DA4 -DVI_KEY \
     XMachineDep \
     -DUSE_PK -DUSE_GF -DUSE_PXL -DBUTTONS -DGREY -UTEXXET \
     -DSEARCH_SUBDIRECTORIES -UXDVIFONTS_ONLY \
     $(SELFILE_DEFS) $(KANJI_DEFS) $(ZEIT_DEFS) $(PS_DEFS) \
     $(MARKPAGE_DEFS) $(TOC_DEFS) $(PRINT_DEFS)

CDEBUGFLAGS=-g

VFLIB=VFlib-1.32/VFlib.a
#ifdef	Use_ZEIT
DEPLIBS=$(VFLIB) XawClientDepLibs
LOCAL_LIBRARIES=$(VFLIB) XawClientLibs
#else
DEPLIBS=XawClientDepLibs
LOCAL_LIBRARIES=XawClientLibs
#endif	/* Use_ZEIT */
MATHLIB=-lm
SYS_LIBRARIES=$(MATHLIB)
LINTLIBS=$(LINTXAW) $(LINTXMU) $(LINTXTOOL) $(LINTEXTENSIONLIB) $(LINTXLIB) -lm

#ifdef	Use_SELFILE
#define	SELFILE_SRCS	Dir.c Draw.c Path.c SelFile.c
#define	SELFILE_OBJS	Dir.o Draw.o Path.o SelFile.o
#else
#define	SELFILE_SRCS
#define	SELFILE_OBJS
#endif	/* Use_SELFILE */

#ifdef	Use_PS
#define	PS_SRCS		ps.c gs-view.c
#define	PS_OBJS		ps.o gs-view.o
#else
#define	PS_SRCS
#define	PS_OBJS
#endif	/* Use_PS */

#ifdef	Use_MARKPAGE
#define MARKPAGE_SRCS	markpage.c markring.c
#define MARKPAGE_OBJS	markpage.o markring.o
#else
#define MARKPAGE_SRCS
#define MARKPAGE_OBJS
#endif	/* Use_MARKPAGE */

#ifdef	Use_TOC
#define TOC_SRCS	toc.c
#define TOC_OBJS	toc.o
#else
#define TOC_SRCS
#define TOC_OBJS
#endif	/* Use_TOC */

#ifdef	Use_PRINTDVI
#define PRINT_SRCS	print.c
#define PRINT_OBJS	print.o
#else
#define PRINT_SRCS
#define PRINT_OBJS
#endif	/* Use_PRINTDVI */

SRCS=xdvi.c dvi_init.c dvi_draw.c fontfmts.c vf.c util.c font_open.c tpic.c \
     SELFILE_SRCS PS_SRCS MARKPAGE_SRCS TOC_SRCS PRINT_SRCS
OBJS=xdvi.o dvi_init.o dvi_draw.o fontfmts.o vf.o util.o font_open.o tpic.o \
     SELFILE_OBJS PS_OBJS MARKPAGE_OBJS TOC_OBJS PRINT_OBJS

DEFINES=$(DEFS) -DDEFAULT_FONT_PATH=\"$(DEFAULT_FONT_PATH)\" \
  -DDEFAULT_VF_PATH=\"$(DEFAULT_VF_PATH)\" \
  -DDEFAULT_FONT_SIZES=\"$(DEFAULT_FONT_SIZES)\" \
  -DDEFAULT_SUBDIR_PATH=\"$(DEFAULT_SUBDIR_PATH)\"

ComplexProgramTarget(xdvi)

$(VFLIB):
	cd VFlib-1.32; make

xdvi.man: xdvi_man.sed mksedscript
	chmod u+x mksedscript
	./mksedscript $(DEFAULT_FONT_PATH) $(DEFAULT_FONT_SIZES) \
		""$(DEFAULT_VF_PATH) $(DEFS) > sedscript
	sed -f sedscript < xdvi_man.sed > xdvi.man

#ifdef	Use_MAKEPK
MakeTeXPK: FRC MakeTeXPK.sed
	sed <MakeTeXPK.sed >MakeTeXPK \
		-e 's;%%MAKEPK_DESTDIR%%;$(MAKEPK_DESTDIR);g' \
		-e 's;%%DEFAULT_FONT_PATH%%;$(DEFAULT_FONT_PATH);g' \
		-e 's;%%MKDIR%%;$(MKDIRHIER);g'
	chmod a+x MakeTeXPK

install.MakeTeXPK: MakeTeXPK
	MakeDir($(DESTDIR)$(MAKEPK_BINDIR))
	$(INSTALL) -c $(INSTDATFLAGS) MakeTeXPK $(DESTDIR)$(MAKEPK_BINDIR)
#endif	/* Use_MAKEPK */

#ifdef	Use_ZEIT
InstallNonExecFile(VFlib-1.32/FontConf, $(DEFAULT_FONTCONFDIR))
#endif	/* Use_ZEIT */

clean::
	$(RM) sedscript xdvi.man

FRC::
