
/*  @(#)Imakefile 1.11 91/11/07
 *
 *  Copyright (C) 1990, 1991 - Rich Burridge & Yves Gallot.
 *  All rights reserved.
 *
 *  Permission is granted to copy this source, for redistribution
 *  in source form only, provided the news headers in "substantially
 *  unaltered format" are retained, the introductory messages are not
 *  removed, and no monies are exchanged.
 *
 *  Permission is also granted to copy this source, without the
 *  news headers, for the purposes of making an executable copy by
 *  means of compilation, provided that such copy will not be used
 *  for the purposes of competition in any othello tournaments, without
 *  prior permission from the authors.
 *
 *  No responsibility is taken for any errors inherent either
 *  to the comments or the code of this program, but if reported
 *  (see README file), then an attempt will be made to fix them.
 *
 *------------------------------------------------------------------------
 *  There are various small changes needed when compiling reve on
 *  different systems. These have been isolated here, and should be
 *  uncommented if needed.
 *
 *
 *  If your system doesn't have the getdtablesize() library call, then
 *  you will need to uncomment the following definition. This will be
 *  needed for SVR4.
 *
 *NOGETDTAB       = -DNOGETDTAB
 *
 *
 *  Not all machines have the index() string library function. If you
 *  don't have this function then you should uncomment the NOINDEX
 *  definition below.
 *
 *NOINDEX         = -DNOINDEX
 *
 *
 *  Not every version of Unix (in particular System V derivitives) has the
 *  select() system call. If your machine doesn't have this call, then you
 *  need to uncomment the following definition.
 *
 *NOSELECT        = -DNOSELECT
 *
 *
 *  Some machines do not have the usleep library function. If this is
 *  true, then you will need to uncomment this definition.
 *
 *NO_USLEEP      = -DNO_USLEEP
 */

#ifdef UltrixArchitecture
NO_USLEEP	= -DNO_USLEEP
#endif

/*  If your machine doesn't have a definition for the timeval struct, then
 *  you will need to uncomment this definition. It's needed to get Reve to
 *  work an an AT&T UNIX PC (aka 7300 or 3b1).
 *
 *NO_TIMEVAL     = -DNO_TIMEVAL
 *
 *  If you not running under a BSD4.3 derived system, the parameters
 *  to the select call are different, and this definition should be
 *  uncommented. You need to uncomment this for SunOS v3.x.
 *
 *SELTYPE        = -DNO_43SELECT
 */


/*  YOU SHOULD NOT NEED TO MODIFY ANYTHING BELOW HERE.  */
     
#if HasVoidSignalReturn == NO
SIGRET	=	-DINT_SIGNAL
#endif
     
/*  Compilation flags and standard macro definitions.  */

X11LIBS		= $(XLIB)     
TTYLIBS		= -ltermcap
CDEFS		= $(NOGETDTAB) $(NOINDEX) $(NOSELECT) $(NO_USLEEP) \
		  $(NO_TIMEVAL) $(SELTYPE) $(SIGRET) $(EDGENAME) \
		  $(HELPNAME) $(REVEPROC)
DEFINES         = $(CDEFS) -DX11
ETABLE		= reve.edgetable
HELPFILE	= reve.help

/*
 *  Full pathname of the reve edge table file. This can also be overridden
 *  with a command line option.
 */
EDGENAMEFILE    = $(USRLIBDIR)$(PATHSEP)reve$(PATHSEP)$(ETABLE)
EDGENAME        = -DEDGENAME=\"$(EDGENAMEFILE)\"

/*
 *  Full pathname of the reve online help file.  This can also be
 *  overridden with a command line option.
 */
HELPNAMEFILE	= $(USRLIBDIR)$(PATHSEP)reve$(PATHSEP)$(HELPFILE)
HELPNAME	= -DHELPNAME=\"$(HELPNAMEFILE)\"

/*
 *  Full pathname of reve_proc. This can be overridden with a command line
 *  option.
 */
REVEPROCFILE    = $(USRLIBDIR)$(PATHSEP)reve$(PATHSEP)reve_proc
REVEPROC        = -DREVEPROC=\"$(REVEPROCFILE)\"

REVESRCS        = reve_proc.c rev_eval.c rev_ip.c rev_iycp.c
STDSRCS         = boardstuff.c events.c items.o makemove.c main.c procs.c
REVEOBJS        = reve_proc.o rev_eval.o rev_ip.o rev_iycp.o
STDOBJS         = boardstuff.o events.o items.o makemove.o main.o procs.o

SRCS1		= $(STDSRCS) $(REVESRCS) x11.c
OBJS1		= $(STDOBJS) x11.o
SRCS2		= $(STDSRCS) $(REVESRCS) tty.c
OBJS2		= $(STDOBJS) tty.o


PROGRAMS	= reve

ComplexProgramTarget_1(reve, $(X11LIBS), /**/)
MakeDirectories(install,$(USRLIBDIR)$(PATHSEP)reve)
InstallNonExec($(ETABLE),$(USRLIBDIR)$(PATHSEP)reve)
InstallNonExec(reve.man.text,$(USRLIBDIR)$(PATHSEP)reve$(PATHSEP)$(HELPFILE))
InstallAppDefaults(Reve)

x11: reve reve_proc

tty: tty_reve
	-cp tty_reve reve

NormalProgramTarget(tty_reve, $(OBJS2), /**/, /**/, $(TTYLIBS))

NormalProgramTarget(reve_proc, $(REVEOBJS), /**/, /**/, /**/)
InstallProgramWithFlags(reve_proc, $(REVEPROCFILE), )

install:: install.man

$(ETABLE): reve.edge1 reve.edge2
	cat reve.edge1 reve.edge2 > $(ETABLE)
