#if ProjectX < 5
#define XCOMM #
#define NullParameter
#endif

XCOMM Imakefile for xzx

/* Define this if you want xzx installed suid root */
/* Only bother doing this on Linux with PC Speaker support defined */
/* #define InstallXzxSetUID */

PROGRAMS = xzx

SRCS = main.c z80ops.c edops.c cbops.c tables.c getline.c spectrum.c dtbl.c \
	   dis.c resource.c joystick.c strcasecmp.c if1.c saveload.c
OBJS = main.o z80ops.o edops.o cbops.o tables.o getline.o spectrum.o dtbl.o \
	   dis.o resource.o joystick.o strcasecmp.o if1.o saveload.o


/* Make sure this matches the definition of LIBDIR in resource.c */
ZXLIBDIR = /usr/local/lib/xzx

/* Change compiler to suit or let imake fill it in... */
# CC = cc
# CC = gcc
# CC = xlc -D_ALL_SOURCE                     # AIX
# CC = cc -D_POSIX_SOURCE -D_XOPEN_SOURCE    # HP-UX

/* Pick a suitable CDEBUGFLAGS or just let imake fill it in... */
# CDEBUGFLAGS = -O2
# CDEBUGFLAGS = -g -DDEBUG

/* Byte order of your CPU.  Intel is little-endian, Sparc is big-endian... */
END_DEF  = -DLITTLE_ENDIAN

/* Values > 1 mean a larger window but slow everything down. */
SCAL_DEF = -DSCALING=1

/* Compile in the MIT-SHM code.  If you can, do. */
SHM_DEF  = -DMITSHM

/* Emulate a 16k spectrum.  I wouldn't bother defining this one :-) */
MEM_DEF  = # -DSPEC16K

/* Define this if your system has the uname() system call. */
NAME_DEF = -DHAS_UNAME

/* Only define this if you have Linux with the joystick kernel patches */
JOY_DEF = #-DJOY

/* Define this if your system lacks the str[n]casecmp functions */
STRCASE_DEF = -DNEED_STRCASECMP

/* Define this if you want to use Sparc-style audio */
/*  (also works on Linux & NEC EWS 4800/330) */
AUDIO_DEF = # -DDEV_AUDIO

/* Define this for PC speaker audio on Linux */
PCSPKR_DEF = # -DPCSPKR_AUDIO

/* Define this to connect I/O ports to stdin, stdout & stderr */
IO_DEF = # -DPSEUDO_IO

/* Define at most one of these to mimic tape loading/saving  */
TAPE_DEF = #-DLOAD_SAVE_1
TAPE_DEF = -DLOAD_SAVE_2

/* Define this for Shadow ROM and Microdrive support */
IF1_DEF = -DZX_IF1

/* Define this for a 'level loader' trap for hacked-up multi-load games */
LEVEL_DEF = -DLEVEL_LOADER

/* Define this if you're running xzx on a very fast machine (e.g. DEC Alpha) */
SLOW_DEF = -DSLOWDOWN


XCOMM --- Don't change anything below this line ---

DEFINES = $(END_DEF) $(SCAL_DEF) $(SHM_DEF) $(MEM_DEF) $(JOY_DEF) $(NAME_DEF) \
          $(STRCASE_DEF) $(AUDIO_DEF) $(IO_DEF) $(TAPE_DEF) $(IF1_DEF) \
          $(PCSPKR_DEF) $(LEVEL_DEF) $(SLOW_DEF) -DZXSPEC

AllTarget($(PROGRAMS))
DependTarget()

NormalProgramTarget(xzx,$(OBJS),$(DEPXLIB),NullParameter,$(XLIB))

#ifdef InstallXzxSetUID
InstallProgramWithFlags(xzx,$(BINDIR),$(INSTUIDFLAGS))
#else
InstallProgramWithFlags(xzx,$(BINDIR),NullParameter)
#endif
InstallAppDefaults(Xzx)
InstallNonExecFile(spectrum.rom,$(ZXLIBDIR))
InstallNonExecFile(if1.rom,$(ZXLIBDIR))
InstallScript(mkcart, $(BINDIR))

