# MMS Description file for xv
#
#   Modified from the Unix Makefile by Rick Dyson  8-NOV-1991
#                                      (dyson@iowasp.physics.uiowa.edu)

# Author:    John Bradley, University of Pennsylvania
#                 (bradley@cis.upenn.edu)
#
# Copyright 1989, 1990 by the University of Pennsylvania
#
# Permission to use, copy, and distribute for non-commercial purposes,
# is hereby granted without fee, providing that the above copyright
# notice appear in all copies and that both the copyright notice and this
# permission notice appear in supporting documentation. 
# 
# The software may be modified for your own purposes, but modified versions
# may not be distributed.
#
# This software is provided "as is" without any express or implied warranty.


################ CONFIGURATION OPTIONS #################

# if you are running on a SysV-based machine, such as HP, Silicon Graphics,
# etc, uncomment the following line to get you most of the way there.  
#
#UNIX = -DSVR4

# If you are running on a POSIX-compatible machine, such as an
# IBM RS6000, you MAY need to uncomment the 'NEED_DIRENT' line.
# To determine if such is the case, do a 'man readdir' on your machine.  If
# readdir() returns a pointer to 'struct direct', you will not have
# to change anything.  If, however, readdir() returns a pointer to
# 'struct dirent', you will have to add the '-DDIRENT' to CFLAGS
#
#NEED_DIRENT = -DDIRENT

# If, when 'Applying' colors, or when loading new pictures, you get an
# X Protocol Error on the XFreeColors() call, your X Server is Wrong.
# Several workarounds:  You can specify '-bfc' on the command line, or
# set the 'xv.brokeFreeCols' resource to 'true'.  Alternately, you can
# uncomment the BROKECOLS line below to compile in the workarounds
# permanently.  If you do this, '-bfc' will toggle OFF the workarounds.
# Noteworthy Offenders:  AIX 3.1 on IBM 6000, and OLW on Suns
#
#BROKECOLS = -DBROKEFREECOLS

# If your machine doesn't have the 'strchr', 'memset' and 'memcpy' functions,
# but does have 'bcopy', uncomment the following line:
#
#USEMEM = -DNEED_MEMROUTINES

# IF YOUR MACHINE DOESN'T HAVE 'vprintf()' OR 'vsprintf()'
#
# Vax BSD and IBM AOS don't have vprintf or vsprintf.
# Note that our local library versions of sprintf have been updated
# to return int, the number of characters in the formatted string,
# whereas the versions in stock 4.3BSD do not so return.  You may
# have to remove the "-DINTSPRINTF" below if you're compiling for
# stock 4.3BSD or for some other Vax or RT library package where
# sprintf returns char *.
#
# Also, I define NOVOID on the Vax because I'm using pcc to compile.
# If you use gcc or some other better compiler, this should not be
# necessary.  I define NOSTDHDRS on the RT because we don't have
# standard ANSI header files installed for the RT, even though the RT
# compiler claims to be ANSI-compliant.
#
#  (for BSD 4.3 VAX, uncomment the following line)
#VPRINTF = -DNEED_VPRINTF -DINTSPRINTF -DLONGINT -DNOVOID
#  (for (stock) IBM RT AOS 4.3, uncomment the following line)
#VPRINTF = -DNEED_VPRINTF -DLONGINT -DNOSTDHDRS

# If your machine does not have the 'setitimer()' call, but does
# have the 'usleep()' call, uncomment the following line:
#
#TIMERS = -DUSLEEP
#
# alternately, if your machine does not have EITHER the 'setitimer()' or
# the 'usleep()' call, uncomment the following line:
#
#TIMERS = -DNOTIMER

# If you are using an AT&T machine, uncomment the following line
# If you have problems compiling xv.c and xvdir.c because of the DIR
# reference in dirent.h, append '-DATT' to the following line:
#
#ATT = -DSYSV -DDIRENT -DUSLEEP -DATT

# For SCO and ODT machines, uncomment the following:
#
#SCO = -Dsco -DPOSIX -DNOTIMER
#
# Itimers will be in 3.2v3 (yeah!) but that won't be out in the public's
# hands for a while.  Hey, it's just the fish anyways.
#
# Also, you'll want to change LIBS to
#
#  -lX11 -lm -lsocket -lmalloc -lc -lx
#
# -lx must be after -lc so you get the right directory routines.
#

DEFS = /Define=(LONGINT,NOTIMER,ATT,DIRENT)

OPTIMIZE = /Optimize
DEBUG = /NoDebug
CFLAGS = $(CFLAGS) $(DEFS) $(DEBUG) $(OPTIMIZE)
LINKFLAGS = $(LINKFLAGS) $(DEBUG)
OPTS = Sys$Disk:[]OPTIONS.OPT

XVLIB = XV.OLB

BITMAPS = [.bitmaps]grasp [.bitmaps]penn [.bitmaps]down [.bitmaps]down1 \
	  [.bitmaps]up [.bitmaps]up1 [.bitmaps]scrlgray [.bitmaps]gray50 \
	  [.bitmaps]gray25 [.bitmaps]i_fifo [.bitmaps]i_chr [.bitmaps]i_dir \
	  [.bitmaps]i_blk [.bitmaps]i_lnk [.bitmaps]i_sock [.bitmaps]i_reg \
	  [.bitmaps]rb_off [.bitmaps]rb_on [.bitmaps]rb_off1 [.bitmaps]rb_on1 \
	  [.bitmaps]fc_left [.bitmaps]fc_leftm [.bitmaps]fc_mid \
	  [.bitmaps]fc_midm [.bitmaps]fc_right [.bitmaps]fc_rightm \
	  [.bitmaps]fc_left1 [.bitmaps]fc_left1m [.bitmaps]fc_right1 \
	  [.bitmaps]fc_right1m [.bitmaps]icon

BITMAPLIST = grasp,penn,down,down1,up,up1,scrlgray,gray50,gray25,i_fifo,i_chr,i_dir,i_blk,i_lnk,i_sock,i_reg,rb_off,rb_on,rb_off1,rb_on1,fc_left,fc_leftm,fc_mid,fc_midm,fc_right,fc_rightm,fc_left1,fc_left1m,fc_right1,fc_right1m,icon

SRCS =  argproc.c vmsreaddir.c xv24to8.c xvbutt.c xvctrl.c xvdir.c xvfish.c xvgam.c xvgif.c xvgifwr.c xvinfo.c xvmisc.c xvpbm.c xvpm.c xvscrl.c xvxbm.c bggen.c xv.c

OBJS =  argproc.obj vmsreaddir.obj xv24to8.obj xvbutt.obj xvctrl.obj xvdir.obj \
	xvfish.obj xvgam.obj xvgif.obj xvgifwr.obj xvinfo.obj xvmisc.obj \
        xvpbm.obj xvpm.obj xvscrl.obj xvxbm.obj

OBJLIST = argproc,vmsreaddir,xv24to8,xvbutt,xvctrl,xvdir,xvfish,xvgam,xvgif,xvgifwr,xvinfo,xvmisc,xvpbm,xvpm,xvscrl,xvxbm

MISC = readme patchlevel

.first
	Define Sys Sys$Library
	Define X11 DECW$Include

all : 		$(XVLIB) xv.exe bggen.exe
	@ continue

lib :   	$(XVLIB)
	@ continue

xv.exe : 	xv.c bitmaps.h $(XVLIB) $(OPTS)
	$(CC) $(CFLAGS) xv.c
	- $(LINK) $(LINKFLAGS) xv,$(XVLIB)/Library,$(OPTS)/Option

bggen.exe : 	bggen.c $(XVLIB) $(OPTS)
	$(CC) $(CFLAGS) bggen.c
	- $(LINK) $(LINKFLAGS) bggen,$(XVLIB)/Library,$(OPTS)/Option
	
xv.olb :	bitmaps.h $(OBJS)
	Library /Create XV.OLB $(OBJLIST)

$(OBJS) :   	xv.h
xv.obj :	bitmaps.h
xvbutt.obj :  	bitmaps.h
xvctrl.obj :  	bitmaps.h
xvdir.obj :	xv.h dirent.h
xvinfo.obj :  	bitmaps.h
xvmisc.obj :  	bitmaps.h
xvscrl.obj :  	bitmaps.h
argproc.obj :	includes.h
vmsreaddir.obj :	dirent.h

bitmaps.h : 	$(BITMAPS)
	Set Default [.Bitmaps]
	- Copy $(BITMAPLIST) [-]bitmaps.h
	Set Default [-]

clean :
	@- Purge

tar :
	tar cvf xv_pl3a.tar Makefile. *.c *.h [.bitmaps]*.* [.docs]*.* $(MISC)
