#
# The XXX_DIR variables below MUST have ABSOLUTE path. Since this file
# is sourced from several directories relative path specification will
# be simple wrong.
#

SRC_DIR = /a/home/grad/gershon/irit

#
# All libraries created will be installed into the LIB_DIR directory.
#
LIB_DIR = $(SRC_DIR)/lib

#
# All includes files associated with the installed libraries will be
# installed into the INC_DIR directory.
#
INC_DIR = $(SRC_DIR)/include

#
# All binaries created will be installed into the BIN_DIR directory.
#
BIN_DIR = $(SRC_DIR)/bin

#
# Location of object file to resolve circularities in libraries.
#
CIRCLINK = $(SRC_DIR)/circlink/circlink.o

#
# The scan converter (irender) needs the Utah Raster Toolkit (URT) library
# to read/write image data. You can ftp it in cs.utah.edu.
#
#   Make these empty if you would like to give up on irender's compilation.
#
URT = /usr/local/urt
URT_INC = -I$(URT)/include
URT_LIB = $(URT)/lib/librle.a
URT_FLAGS = -DHAVE_URT_RLE -DURT_OLD_COMPAT

#
# Support of (shared) libraries.  You will need to set the proper suffix
# of the libraries (LIB_SUFFIX) and the proper method to create a (shared)
# library (LIB_MAKE). LIB_RAN is optional to optimize the archive (ranlib).
# Remember you will have to update the LD_LIBRARY_PATH environment variable.
#
# For "SGI Irix 5.2 using native cc",
#
# LIB_SUFFIX = so
# LIB_MAKE = ld -shared -o 
# LIB_RAN = echo
#
# For "SGI Irix 5.3/6.3 using native cc",
#     "SUN Solaris 5.3 using cc SC3.x"
#
LIB_SUFFIX = so
LIB_MAKE = cc -shared -o 
LIB_RAN = echo
#
# For "SUN Solaris 5.3 using /usr/ucb/cc (ucbcc)"
#
# LIB_SUFFIX = so
# LIB_MAKE = ld -G -o 
# LIB_RAN = echo
#
# For "DEC Alpha running AXP running OSF1.3 (ld produces ignorable warnings)"
#
# LIB_SUFFIX = so
# LIB_MAKE = ld -shared -o 
# LIB_RAN = echo
#
#
# For no shared libraries:
#
# LIB_SUFFIX = a
# LIB_MAKE = ar rcv
# LIB_RAN = ranlib

#
# Uncomment the correct set of variables to be used or modify it for
# your system.
#
# -D flags:
#
# -D__GL__ - if your system supports gl graphics library (SGI 4d & IBM R6000).
#
# -D__X11__ - if your system supports X11. Only one of __GL__ or __X11__ should
#	be used.
#
#  Emulation to the following function are available by defining the
#  following. Look at misc_lib/xgeneral.c/h for implementation.
# -DGETCWD - if getcwd is not defined in this system.
# -DSTRSTR - if strstr is not defined in this system.
# -DSTRDUP - if strdup is not defined in this system.
# -DSTRICMP - if niether strcasecmp nor stricmp are defined in this system.
#
# -DTIMES - if times is defined in your system, otherwise uses time.
#
# -DRAND - if the (s)rand random number generator exists.
# -DRAND48 - ?rand48 random number generators exists.
#	If non of RAND or RAND48 are defined, (s)random is used.
#
# Unfortunately, there is no one Unix function to do subseconds' sleep.
# -DUSLEEP - if usleep is defined in the system.
# -DSGINAP - on sgi systems instead of usleep.
# -DUSLEEP_SELECT - do the usleep using the 'select' unix call.
# -DITIMERVAL - when all the above fails, try this.
#
# -DNO_VOID_PTR - if your C compiler does not support (void *).
#
# -DUSE_VARARGS - if your system does not have stdarg.h and have the old
#	varargs.h.
#
# -DNO_CONCAT_STR - if 'char *p = "This is" "one string";' is illegal.
#
# -DGRAPDRVS - any combination of of 'xgldrvs', 'xgladap', 'x11drvs', etc.
#
# -DMAKE_REAL_FLOAT - force real number to be float and not double.
#               Expect problems as it is not really tested.
#
# -DURT_INC and -DURT_LIB - library and include of the utah raster toolkit.
#		This library is used by irender to save images in rle format.
#
# -DHAVE_URT_RLE - if irender can use the URT RLE package. That is URT_INC/
#		URT_LIB are properly set.
#
# Other, possibly useful defines (for c code development):
#
# -DDEBUG - for some debugging functions in the code (that can be invoked
#		from a debugger).
#

#
# Flags for SGI 4d, Irix 3.x, using GL or X11:
#
# CC = cc
# DFLAGS = -DNO_VOID_PTR -DSTRICMP -DNO_CONCAT_STR -DSGINAP -DRAND48 -DTIMES -D__UNIX__ -D__GL__ -D__X11__
# CFLAGS = -O $(DFLAGS) -Olimit 1000 -Wf,-XNh10000 -Wf,-XNd10000 -G 4
# CFLAGS = -g -DDEBUG $(DFLAGS) -Olimit 1000 -Wf,-XNh10000 -Wf,-XNd10000 -G 4
# MORELIBS = -lbsd -lmalloc
# GRAPX11LIBS = -lX11
# GRAPGLLIBS = -lgl_s
# GRAPDRVS = nuldrvs xgldrvs xgladap # x11drvs

#
# Flags for SGI 4d, Irix 4.0, using GL or X11:
#
# CC = cc -fullwarn -woff 302,303,269,927 -xansi
# DFLAGS = -DFUNCPROTO -DSGINAP -DRAND48 -DTIMES -D__UNIX__ -D__GL__ -D__X11__
# CFLAGS = -O $(DFLAGS) -Olimit 1000 -Wf,-XNh10000 -Wf,-XNd10000 -G 4
# CFLAGS = -g -DDEBUG $(DFLAGS) -Olimit 1000 -Wf,-XNh10000 -Wf,-XNd10000 -G 4
# MORELIBS = -lbsd -lmalloc
# GRAPX11LIBS = -lXext -lX11
# GRAPXMTLIBS = -lXm_s -lXt_s -lXext -lX11 -lgl_s
# GRAPGLLIBS = -lgl_s
# GRAPDRVS = nuldrvs xgldrvs xgladap # x11drvs xmtdrvs

#
# Flags for SGI 4d, Irix 5.1.1.2/5.2/5.3 using GL or X11 (tested on Indy):
#
CC = cc -xansi -fullwarn
DFLAGS = -DSGINAP -DRAND48 -DTIMES -D__UNIX__ -D__GL__ -D__X11__
# CFLAGS = $(DFLAGS) -Olimit 1000 -Wf,-XNh10000 -Wf,-XNd10000 -Wl,-w # -mips2
CFLAGS = -g -DDEBUG $(DFLAGS) -Olimit 1000 -Wf,-XNh10000 -Wf,-XNd10000 -Wl,-w # -mips2
MORELIBS = -lbsd -lmalloc
GRAPX11LIBS = -lXext -lX11_s
GRAPXMTLIBS = -lXm_s -lXt_s -lXext -lX11_s
GRAPGLLIBS = -lgl
GRAPOGLLIBS = -lGL -lGLw $(GRAPXMTLIBS)
GRAPDRVS = nuldrvs xgldrvs xgladap x11drvs xmtdrvs xglmdrvs xogldrvs

#
# Flags for SGI 4d, Irix 5.1.1.2/5.2/5.3 using GL or X11 and gcc 2.7.0
#
# CC = gcc
# DFLAGS = -DSGINAP -DRAND48 -DTIMES -D__UNIX__ -D__X11__ -Dsgi -D_SGI_SOURCE
# CFLAGS = -O2 -mcpu=r4000 -ansi -Wall $(DFLAGS)
# CFLAGS = -g -DDEBUG $(DFLAGS)
# MORE_FLAGS = -I /usr/include
# MORELIBS = -lbsd -lmalloc
# GRAPX11LIBS = -lXext -lX11
# GRAPXMTLIBS = -lXm_s -lXt_s -lXext -lX11
# GRAPGLLIBS = -lgl_s
# GRAPOGLLIBS = -lGL -lGLw $(GRAPXMTLIBS)
# GRAPDRVS = nuldrvs xgldrvs xgladap x11drvs xmtdrvs xglmdrvs xogldrvs

#
# Flags for SGI 4d, Irix 6.3 using GL or X11 (tested on Indy):
#
# CC = cc -xansi -fullwarn
# DFLAGS = -DSGINAP -DRAND48 -DTIMES -D__UNIX__ -D__GL__ -D__X11__
# CFLAGS = $(DFLAGS) -Olimit 1000 -Wf,-XNh10000 -Wf,-XNd10000 # -mips2
# CFLAGS = -g -DDEBUG $(DFLAGS) -Olimit 1000 -Wf,-XNh10000 -Wf,-XNd10000 # -mips2
# MORELIBS = -lbsd -lmalloc
# GRAPX11LIBS = -lXext -lX11
# GRAPXMTLIBS = -lXm -lXt -lXext -lX11
# GRAPGLLIBS = -lgl
# GRAPOGLLIBS = -lGLw -lGL $(GRAPXMTLIBS)
# GRAPDRVS = nuldrvs xgldrvs xgladap x11drvs xmtdrvs xglmdrvs xogldrvs

# Flags for SGI 4d, Irix 6.4 using GL or X11:
#
# CC = cc -xansi -fullwarn
# DFLAGS = -DSGINAP -DRAND48 -DTIMES -D__UNIX__ -D__GL__ -D__X11__ -DMACHINE64
# CFLAGS = $(DFLAGS) -Wl,-w
# CFLAGS = -g -DDEBUG $(DFLAGS) -Wl,-w
# MORELIBS =  -lmalloc
# GRAPX11LIBS = -lXext -lX11
# GRAPXMTLIBS = -lXm -lXt -lXext -lX11
# GRAPGLLIBS = -lgl
# GRAPOGLLIBS = -lGLw -lGL $(GRAPXMTLIBS)
# GRAPDRVS = nuldrvs xgldrvs xgladap x11drvs xmtdrvs xglmdrvs xogldrvs

#
# Flags for i386 SVR4 using X11
#
# CC = cc
# DFLAGS = -D__UNIX__ -D__X11__
# CFLAGS = -O $(DFLAGS)
# CFLAGS = -g -DDEBUG $(DFLAGS)
# MORELIBS = -lsocket -lnsl
# GRAPX11LIBS = -lX11
# GRAPDRVS = nuldrvs x11drvs

#
# Flags for Linux, using X11, IBMPC.
#
# CC = cc
# DFLAGS = -D__UNIX__ -D__X11__ -DSTRICMP -DUSLEEP -DTIMES -DRAND -D_POSIX_SOURCE -DGRAPDRVS -DNO_CONCAT_STR
# CFLAGS = -O $(DFLAGS)
# CFLAGS = -g -DDEBUG $(DFLAGS)
# MORELIBS = -lsocket -lnsl
# GRAPX11LIBS = -lX11
# GRAPDRVS = nuldrvs x11drvs

#
# Flags for i386 Linux using X11R6
#
# CC = gcc
# DFLAGS = -D__UNIX__ -DX11R6 -D__X11__ -DSTRICMP -I/usr/include
# CFLAGS = -O2 -pipe -m486 -fomit-frame-pointer  $(DFLAGS)
# CFLAGS = -g -DDEBUG $(DFLAGS) 
# MORELIBS =  -lc
# GRAPX11LIBS = -L/usr/X11R6/lib -lX11
# GRAPDRVS = nuldrvs x11drvs

#
# Flags for SUN ipx O.S. 4.1.3 using gcc 2.4.5 and X11/Motif:
# Note you cannot use SUN's native cc compiler since it does not support
# Ansi C.
#
# CC = gcc
# DFLAGS = -DSUN4 -DTIMES -DUSLEEP -D__UNIX__ -D__X11__ -I/usr/include/X11
# CFLAGS = -O2 $(DFLAGS)
# CFLAGS = -g -DDEBUG $(DFLAGS)
# MORELIBS = 
# GRAPX11LIBS = -lX11
# GRAPXMTLIBS = -lXm -lXt -lX11
# GRAPDRVS = nuldrvs x11drvs xmtdrvs

#
# Flags for SUN Solaris 5.3 using gcc 2.5.8 and X11:
# Note you cannot use SUN's native cc compiler since it does not support
# Ansi C. 
#
# CC = gcc
# DFLAGS = -DSUN4 -DTIMES -DRAND48 -DNANOSLEEP -D__UNIX__ -D__X11__ -I/usr/openwin/share/include -I/opt/SUNWmotif/share/include
# CFLAGS = -O2 $(DFLAGS)
# CFLAGS = -g -DDEBUG $(DFLAGS)
# MORELIBS = -lsocket -lnsl -lposix4
# GRAPX11LIBS = -L/usr/openwin/lib -lX11
# GRAPXMTLIBS = -L/opt/SUNWmotif/lib -L/usr/ccs/lib -lXm -L/usr/openwin/lib -lXt -lX11 -lgen
# GRAPDRVS = nuldrvs x11drvs xmtdrvs

#
# Flags for SUN Solaris 5.3 using cc SC3.0.1 and X11:
#
# CC = cc
# DFLAGS = -D__EXTENSIONS__ -DSUN4 -DTIMES -DRAND48 -DNANOSLEEP -D__UNIX__ -D__X11__ -I/usr/openwin/share/include -I/opt/SUNWmotif/share/include
# CFLAGS = -O2 $(DFLAGS)
# CFLAGS = -g -DDEBUG $(DFLAGS)
# MORELIBS = -lsocket -lnsl -lposix4
# GRAPX11LIBS = -L/usr/openwin/lib -lX11
# GRAPXMTLIBS = -L/opt/SUNWmotif/lib -L/usr/ccs/lib -lXm -L/usr/openwin/lib -lXt -lX11 -lgen
# GRAPDRVS = nuldrvs x11drvs xmtdrvs

#
# Flags for SUN Solaris 5.3 using ubccc
#
# CC = cc
# DFLAGS = -D__EXTENSIONS__ -DSUN4 -DTIMES -DRAND48 -DNANOSLEEP -D__UNIX__ -D__X11__ -DNO_CONCAT_STR
# CFLAGS = -O2 $(DFLAGS)
# CFLAGS = -g -DDEBUG $(DFLAGS)
# MORELIBS = -lsocket -lnsl -lposix4
# GRAPX11LIBS = -L/usr/openwin/lib -lX11
# GRAPXMTLIBS = -L/opt/SUNWmotif/lib -lXm -L/usr/openwin/lib -lXt -lX11 -lgen
# GRAPDRVS = nuldrvs x11drvs xmtdrvs

#
# Flags for HPBSD 4.3, HP300/400 and X11
# Note I used gnumake here since the provided make do not support the
# 'include ../makeflag.unx' directive.
#
# CC = gcc
# DFLAGS = -DUSE_VARARGS -DRAND48 -DTIMES -D__UNIX__ -D__X11__ -DSTRICMP -DSTRSTR -DGETCWD
# CFLAGS = -O $(DFLAGS)
# CFLAGS = -g -pg -DDEBUG $(DFLAGS)
# MORELIBS = 
# GRAPX11LIBS = -lX11
# GRAPDRVS = nuldrvs x11drvs

#
# Flags for a DEC 5000/200, with gcc, x11:
#
# CC = gcc
# DFLAGS = -DSTRDUP -DRAND48 -DTIMES -D__UNIX__ -D__X11__
# CFLAGS = -O $(DFLAGS)
# CFLAGS = -O -fstrength-reduce -fcombine-regs -fforce-mem -fforce-addr -fomit-frame-pointer -finline-functions -fcaller-saves -fdelayed-branch $(DFLAGS)
# MORELIBS = 
# GRAPX11LIBS = -lX11
# GRAPDRVS = nuldrvs x11drvs

#
# Flags for a DEC 5000/240, with cc, x11:
#
# CC = cc
# DFLAGS = -DSTRDUP -DRAND48 -DTIMES -DNO_CONCAT_STR -D__UNIX__ -D__X11__
# CFLAGS = -O $(DFLAGS)
# CFLAGS = -g -DDEBUG $(DFLAGS)
# MORELIBS = 
# GRAPX11LIBS = -lX11
# GRAPDRVS = nuldrvs x11drvs

#
# Flags for Dec Alpha AXP running OSF1.3/ gcc2.7.2
#
# CC = gcc
# DFLAGS = -DOSF1DEC -DTIMES -DUSLEEP -D__UNIX__ -D__X11__ -I/usr/include/X11
# CFLAGS = -O2 $(DFLAGS)
# CFLAGS = -g -DDEBUG $(DFLAGS)
# MORELIBS = -lc
# GRAPX11LIBS = -lX11
# GRAPXMTLIBS = -lXm -lXt -lXext -lX11
# GRAPDRVS = nuldrvs x11drvs xmtdrvs
 
#
# Flags for Dec Alpha AXP running OSF1.3/native C compiler
#
# CC = cc
# DFLAGS = -std1 -warnprotos -DOSF1DEC -DTIMES -DUSLEEP -D__UNIX__ -D__X11__ -I/usr/include/X11
# CFLAGS = -O2 $(DFLAGS)
# CFLAGS = -g -DDEBUG $(DFLAGS)
# MORELIBS = -lc
# GRAPX11LIBS = -lX11
# GRAPXMTLIBS = -lXm -lXt -lXext -lX11
# GRAPDRVS = nuldrvs x11drvs xmtdrvs
 
#
# Flags for IBM RS6000 using GL or X11, X11/Motif
# The gl implementation (in both software and hardware) on the RS6000
# could be better. Although basically working, its speed is approximately
# the same as X11 (You do get hardware shading though)...
#
# CC = xlc # Or it is cc now!?
# DFLAGS = -D_POSIX_SOURCE -D_ALL_SOURCE -DSTRSTR -DSTRDUP -DRAND48 -DTIMES -D__UNIX__ -D__X11__ -D__GL__
# CFLAGS = -O -qnoro $(DFLAGS)
# CFLAGS = -g -pg -qnoro -DDEBUG $(DFLAGS)
# MORELIBS =
# GRAPX11LIBS = -lX11
# GRAPXMTLIBS = -lXm -lXt -lX11
# GRAPGLLIBS = -lgl
# GRAPDRVS = nuldrvs xgldrvs x11drvs xmtdrvs xglmdrvs

#
# Flags for HP 7xx (snake) machines running hpux.
#
# CC = cc
# DHPFLAGS = -D_INCLUDE_XOPEN_SOURCE -D_INCLUDE_POSIX_SOURCE -D_INCLUDE_HPUX_SOURCE -DUSLEEP_SELECT -I/usr/include/X11R5 -I/usr/include/Motif1.2
# DFLAGS = -DRAND48 -DTIMES -D__UNIX__ -D__X11__ $(DHPFLAGS)
# CFLAGS = -Aa -O $(DFLAGS)
# CFLAGS = -Aa -g -DDEBUG $(DFLAGS)
# MORELIBS =
# GRAPX11LIBS = -L/usr/lib/X11R5 -lX11
# GRAPXMTLIBS = -L/usr/lib/X11R5 -L/usr/lib/Motif1.2 -lXm -lXt -lXhp11 -lX11
# GRAPSBLIBS = -L/usr/lib -L/usr/lib/X11R5 -lXwindow -lsb -ldld
# GRAPDRVS = nuldrvs x11drvs xmtdrvs xsbmdrvs

#
# Flags for IBM PC, SYSV3.2, ISC 2.2.1 and MIT X11R4, using gcc 1.40
#
# CC = gcc
# DFLAGS = -DNO_CONCAT_STR -DUSE_VARARGS -DRAND48 -DTIMES -D__UNIX__ -D__X11__ -DNO_ASM -DISC
# CFLAGS = -O $(DFLAGS)
# MORELIBS = -L/usr2/lib -linet -lpt -lcposix
# GRAPX11LIBS = -lX11_s
# GRAPDRVS = nuldrvs x11drvs

#
# Flags for Evans & Sutherland ESV
#
# CC = cc
# DFLAGS = -DSTRICMP -DNO_CONCAT_STR -DRAND48 -DTIMES -D__UNIX__ -D__X11__ 
# CFLAGS = -systype sysv -s -O $(DFLAGS)
# MORELIBS = -systype sysv -lbsd
# GRAPX11LIBS = -lX11
# GRAPDRVS = nuldrvs x11drvs

#
# Default rule for compilation.
#
.c.o:
	$(CC) $(CFLAGS) $(URT_FLAGS) $(MORE_FLAGS) -I. -I$(INC_DIR) $(URT_INC) $(MORE_INC) -c $<

#
# All libraries.
#
LIBS = $(CIRCLINK) $(URT_LIB) -L$(LIB_DIR) -luser -lbool -lgeom -lprsr -ltrim -ltriv -ltrng -lsymb -lcagd -lmisc -lxtra # -lgif
