/*
 * Imakefile for dvi previewer.
 */

/* use gnu gcc */
CC=/mit/gnu/bin/gcc
CCOPTIONS=
#if defined(UltrixArchitecture)
LDOPTIONS=-L/mit/dps/usr/lib
EXTRA_INCLUDES=-I/mit/dps/usr/include
#elif defined(SparcArchitecture)
EXTRA_LDOPTIONS=-L/usr/openwin/lib -R/usr/openwin/lib
EXTRA_INCLUDES=-I/usr/openwin/include/X11
MDEPSRCS=sun_fix.c
MDEPOBJS=sun_fix.o
#elif defined(AIXArchitecture)
EXTRA_INCLUDES=-I./aix_fake
#endif

#if defined(AIXArchitecture) || defined(SparcArchitecture)
OSDEFS=-DBMLONG -DMSBITFIRST
#else
OSDEFS=-DBMLONG
#endif
#if defined(NetBSDArchitecture) || defined(LinuxArchitecture)
OPTIONDEFS=-DUSE_PK -DUSE_GF -DBUTTONS -DGREY -DBDPI=600 -DPS_GS
DEFAULT_FONT_PATH=.:/mit/sipb/lib/tex/fonts/pk:/afs/sipb.mit.edu/project/tex/share/texmf/ath-fonts/pk
DEFAULT_VF_PATH=.:/mit/sipb/lib/tex/fonts/vf:/afs/sipb.mit.edu/project/tex/share/texmf/ath-fonts/vf
#else
OPTIONDEFS=-DUSE_PK -DUSE_GF -DBUTTONS -DGREY -DBDPI=600 -DPS_DPS -DPS_GS
DEFAULT_FONT_PATH=.:/mit/sipb/lib/tex/fonts/pk:/usr/athena/lib/tex/fonts/pk
DEFAULT_VF_PATH=.:/mit/sipb/lib/tex/fonts/vf:/usr/athena/lib/tex/fonts/vf
#endif
/* a mix of 300dpi and 600dpi, to deal with non-upgraded fonts */
DEFAULT_FONT_SIZES=\
	300:328.6:360:432:518.4:600:622:657.2:720:746.4:864:1036.8:1244:1492.8

LOCAL_LIBRARIES_TOOL=$(VARLIBS) XawClientLibs
DEPLIBS_TOOL=$(VARDEPLIBS) XawClientDepLibs
LINTLIBS_TOOL=$(VARLINT) $(LINTXAW) $(LINTXMU) $(LINTXTOOL) \
  $(LINTEXTENSIONLIB) $(LINTXLIB) -lm

LOCAL_LIBRARIES_NOT=$(VARLIBS) $(XLIB)
DEPLIBS_NOT=$(VARDEPLIBS) $(DEPXLIB)
LINTLIBS_NOT=$(VARLINT) $(LINTXLIB) -lm

MATHLIB=-lm
SYS_LIBRARIES=$(MATHLIB)

DEFS=$(OSDEFS) $(OPTIONDEFS)
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)\"

/*
 * Nothing below this line should need to be changed by the user.
 */

/* Sizes for magstephalf and magsteps 0..5. */
SIZES72=72:79:86:104:124:149:179
SIZES85=85:93:102:122:147:176:212
SIZES118=118:129:142:170:204:245
SIZES300=300:329:360:432:518:622:746
SIZES400=400:438:480:576:691:829:995

default: xdvi

config:
	./mkconfig imake $(DEFS)

Makefile.cfg: Imakefile mkconfig
	./mkconfig imake $(DEFS)

include Makefile.cfg

SRCS=xdvi.c events.c dvi_init.c dvi_draw.c special.c font_open.c vf.c util.c \
  $(VARSRCS) $(MDEPSRCS)
OBJS=xdvi.o events.o dvi_init.o dvi_draw.o special.o font_open.o vf.o util.o \
  $(VAROBJS) $(MDEPOBJS)

ComplexProgramTarget(xdvi)

psheader.c:	psheader.txt squeeze
	./squeeze psheader.txt psheader.c

squeeze:	squeeze.c
	$(CC) $(CFLAGS) -o squeeze squeeze.c

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

clean::
	$(RM) Makefile.cfg sedscript xdvi.man psheader.c squeeze

/* and our very local hack... */
SIPBSRC=/afs/sipb/project/sipbsrc
#include "patchlevel.h"
PL=PATCHLEVEL
SRCDIR=$(SIPBSRC)/src/xdvi.pl$(PL)
BLDDIR=$(SIPBSRC)/@sys/xdvi.pl$(PL)

sync: $(BLDDIR)
	/usr/athena/etc/synctree -s $(SRCDIR) -d $(BLDDIR)

$(BLDDIR):
	mkdir $(BLDDIR)
