#ifndef XCOMM
#define XCOMM #
#endif

XCOMM Copyright (C) 1993 Nathan Sidwell
XCOMM RCS $Id: Imakefile,v 4.51 1994/02/16 11:30:37 nathan Stable $

XCOMM specify if this is a transputer target
XCOMM #define transputerbuild 1

XCOMM For full details of the switches herein, read the README file
XCOMM Imake file for xmris V4.02 15 February 1994
VERSION = 4.02

/* Imake compatibility */
#ifndef MakeDir
#define MakeDir(dir)	mkdir dir
#endif

#ifndef InstallManPageAliases
#define InstallManPageAliases(name,dir,target) \
install.man :: \@@\
	ln -s ./name.$(MANSUFFIX) $(DESTDIR)dir/target.$(MANSUFFIX) \@@
#endif

/* to inhibit app defaults installation */
/* #undef InstallAppDefFiles */

XCOMM compiler options
XCOMM
#if HasGcc
EXTRACCOPTIONS = -Wall -Wpointer-arith -Wwrite-strings -Wtraditional
#endif /* HasGcc */
XCOMM Is it a knr compiler which _doesn't_ have void?
KNR = 
XCOMM KNR = -DSTRICTKNR
XCOMM do you trust the code?
NDEBUG =
XCOMM NDEBUG = -DNDEBUG
XCOMM Allow debugging?
CDEBUGFLAGS = -g
XCOMM debug event loop?
XCOMM CDEBUGFLAGS += -DDEBUGEVENTLOOP
#ifdef HPArchitecture
CCOPTIONS = -Aa -D_HPUX_SOURCE
EXTRA_LOAD_FLAGS = -lV3
#endif

XCOMM system environment
XCOMM
XCOMM don't you have gettimeofday?
TIME =
XCOMM TIME = -DUSETIME
XCOMM don't you have lockf or flock?
LOCK =
LOCK = -DUSELOCKFILE

XCOMM game defaults, you probably only want to alter the SCORE
XCOMM
/* You must specify a fixed width font that exists. */
/* #define thefont "-*-courier-*-r-*-*-18-*-*-*-m-*-*-*" */
XCOMM where is the high score file?
SCORE = $(LOCAL)/lib/xmris
XCOMM SCORE = $(DESTDIR)$(LIBDIR)/xmris
/* to install default gardens not in app_defaults/xmris
/* #define InstallDefaultGardens $(SCORE)/gardens */

XCOMM The following defines are needed for some implementations and/or sites.
XCOMM It is xmkmf's job to get these right in the first place.
XCOMM If you have to declare any of these, X may not be installed correctly.
XCOMM
XCOMM DEC station 5000 appears to require these includes
XCOMM STD_INCLUDES = -I/usr/include/mit
XCOMM and they require these two libraries changed
XCOMM XLIB = -lXext-mit -lX11-mit
XCOMM required for setuid, try one or the other, (the first is better)
XCOMM EXTRA_LOAD_FLAGS = -R$(USRLIBDIR)$${LD_RUN_PATH+\:$$LD_RUN_PATH}
XCOMM EXTRA_LOAD_FLAGS = -static
XCOMM some X implementations and openwindows require the maths library
XCOMM MATHSLIB = -lm

XCOMM install parameters
XCOMM
#if transputerbuild
XCOMM open access on the score file, 'cos transputers can't do setuid
INSTSCOREFLAGS = -m 777
#else
XCOMM owner and access rights for executable & score directory
XCOMM these are set for a setuid xmris
OWNER = -o games
INSTSCOREFLAGS = $(OWNER) -m 755
INSTMRISFLAGS = $(OWNER) $(INSTUIDFLAGS)
XCOMM normal install locations
THEBINDIR = $(BINDIR)
THEMANDIR = $(MANDIR)
XCOMM for open access you want 777 and $(INSTPGMFLAGS),
XCOMM (the personal score files go in users' home dirs.)
XCOMM INSTSCOREFLAGS = -m 777
XCOMM INSTMRISFLAGS = $(INSTPGMFLAGS)
XCOMM If you're not installing in the default locations
DESTDIR = 
THEBINDIR = $(LOCAL)/bin
THEMANDIR = $(LOCAL)/man/man6
#endif /* transputerbuild */

#ifndef thefont
#define thefont "-*-courier-*-r-*-*-18-*-*-*-m-*-*-*"
#else
XLSFONT = xlsfont
#endif /* thefont */
FONT = thefont

#ifndef InstallDefaultGardens
#ifdef InstallAppDefFiles
#define InstallDefaultGardens $(DESTDIR)/$(XAPPLOADDIR)/xmris
#endif
#endif

#if transputerbuild
#define object tco
XCOMM transputer tools
TOOLSET = /inmos/prod/d4314a
ICC = $(TOOLSET)/tools/icc -WT
ILINK = $(TOOLSET)/tools/ilink
ICOLLECT = $(TOOLSET)/tools/icollect
ILINKOPT = -f startup.lnk
IINCLUDE = $(TOOLSET)/libs/
IXINCLUDE = /inmos/prod/iq/f011a/libs/ /inmos/prod/iq/f011a/include/
ITCPIPINCLUDE = /inmos/swgprod/s507b/libs/c/
ISEARCH = $(IINCLUDE) $(IXINCLUDE) $(ITCPIPINCLUDE)
IXLIBS = iXt.lib iXmu.lib iXext.lib iXlib.lib iXau.lib iXc.lib
ILIBS = isockc.lib libc.lib
TRANSPUTER = -t8
ICFLAGS = -DTRANSPUTER $(ICDEBUGFLAGS) $(DEFINES)
XCOMM Unfortunately -O for the inmos compiler specifies output file, not optimize
XCOMM ICDEBUGFLAGS = -g
.SUFFIXES : .tco

.c.tco :
	ISEARCH="$(ISEARCH)" $(ICC) $(TRANSPUTER) $(ICFLAGS) $(OUTPUT_OPTION) $<

#else
#define object o
#endif /* transputerbuild */

XCOMM default args for RCS ci and co
XCOMM override from the command line to do other things
CIFLAGS =
COFLAGS =
RCSFLAGS =

DEFINES = $(EXTRACCOPTIONS) -DFONT_NAME='$(FONT)' $(NDEBUG) \ 
	-DSCORE_DIR='"$(SCORE)"' $(LOCK) $(TIME) $(KNR) -DSCROLLBARBUGFIX
LOCAL_LIBRARIES = $(XAWLIB) $(XTOOLLIB) $(XMULIB) $(XLIB) $(MATHSLIB)
DEPLIBS = $(DEPXLIB)

XCOMM filenames or stems
COMMONHDRS = patchlevel.h ansiknr.h defcom.h common.h
MRISHDRS = xmris.h defmris.h
MREDHDRS = xmred.h defmred.h
COMMONSRCS = defcom.c makecom.c
GARDENS = alphabet.gdn digits.gdn puzzle.gdn xmred.gdn
FILES = CHANGES CHANGES.4.01 CHANGES.4.02 README COPYRIGHT Imakefile \
	xmris.man xmred.man Xmris-ad.src
MRISSRCS = apple.c defmris.c demo.c draw.c makemris.c \ 
	monster.c move.c player.c scoring.c timer.c xmris.c
MRISOBJS = $(MRISSRCS:%.c=%.object)
SCRAMSRCS = scram.c
SCRAMOBJS = $(SCRAMSRCS:%.c=%.o)
WIDGETSRCS = Drag.c Icon.c PixmapList.c
WIDGETOBJS = $(WIDGETSRCS:%.c=%.object)
WIDGETHDRS = $(WIDGETSRCS:%.c=%.h)
MREDSRCS = all.c control.c defmred.c dialogs.c garden.c makemred.c \ 
	menubar.c xmred.c
MREDOBJS = $(MREDSRCS:%.c=%.object)
XCOMM name all the sprites -- these are root names
APPLE = bitmaps/apple/apldcy bitmaps/apple/aplnorm \ 
	bitmaps/apple/aplrock bitmaps/apple/aplrot \ 
	bitmaps/apple/aplspl bitmaps/apple/gstnorm \ 
	bitmaps/apple/gstrock bitmaps/apple/aplsmall \ 
	bitmaps/apple/bigedge bitmaps/apple/smledge
BOARD = bitmaps/board/cherry bitmaps/board/digits \ 
	bitmaps/board/seat bitmaps/board/ball
CHOMP = bitmaps/chomp/hchmpc bitmaps/chomp/hchmpo \ 
	bitmaps/chomp/schmpc bitmaps/chomp/schmpo
DRONE = bitmaps/drone/hdronw1 bitmaps/drone/hdronw2 \ 
	bitmaps/drone/hdronf \ 
	bitmaps/drone/sdronw1 bitmaps/drone/sdronw2 \ 
	bitmaps/drone/sdronf
ICON = bitmaps/icon/solidi bitmaps/icon/shelli \ 
	bitmaps/icon/solidm bitmaps/icon/shellm \ 
	bitmaps/icon/solidr bitmaps/icon/shellr \ 
	bitmaps/icon/solids bitmaps/icon/shells \ 
	bitmaps/icon/solidt bitmaps/icon/shellt
MUNCH = bitmaps/munch/hmnchw1 bitmaps/munch/hmnchw2 \ 
	bitmaps/munch/hmnchf \ 
	bitmaps/munch/smnchw1 bitmaps/munch/smnchw2 \ 
	bitmaps/munch/smnchf
NORMAL = bitmaps/normal/hnormw1 bitmaps/normal/hnormw2 \ 
	bitmaps/normal/hnormf bitmaps/normal/hden \ 
	bitmaps/normal/snormw1 bitmaps/normal/snormw2 \ 
	bitmaps/normal/snormf bitmaps/normal/sden
PLAYER = bitmaps/player/hplyrf \ 
	bitmaps/player/hplyrh1 bitmaps/player/hplyrh2 \ 
	bitmaps/player/hplyrp1 bitmaps/player/hplyrp2 \ 
	bitmaps/player/hplyrs1 bitmaps/player/hplyrs2 \ 
	bitmaps/player/hplyrw1 bitmaps/player/hplyrw2 \ 
	bitmaps/player/splyrf \ 
	bitmaps/player/splyrp1 bitmaps/player/splyrp2 \ 
	bitmaps/player/splyrs1 bitmaps/player/splyrs2 \ 
	bitmaps/player/splyrw1 bitmaps/player/splyrw2 \ 
	bitmaps/player/splyrd1 bitmaps/player/splyrd2 \ 
	bitmaps/player/splyrh1 bitmaps/player/splyrh2
PRIZE = bitmaps/prize/cake bitmaps/prize/spanner \ 
	bitmaps/prize/brolly bitmaps/prize/mushrm bitmaps/prize/clock \ 
	bitmaps/prize/gem1 bitmaps/prize/gem2 bitmaps/prize/gem3
XTRA = bitmaps/xtra/hxtraf bitmaps/xtra/hxtraw1 bitmaps/xtra/hxtraw2 \ 
	bitmaps/xtra/sxtraf bitmaps/xtra/sxtraw1 bitmaps/xtra/sxtraw2 \ 
	bitmaps/xtra/xtrbold bitmaps/xtra/xtrfaint
EDIT = bitmaps/edit/bigearw bitmaps/edit/bigsarw \ 
	bitmaps/edit/smlearw bitmaps/edit/smlsarw bitmaps/edit/path \ 
	bitmaps/edit/red bitmaps/edit/green bitmaps/edit/blue \ 
	bitmaps/edit/include bitmaps/edit/iconi bitmaps/edit/boardi \ 
	bitmaps/edit/warnon bitmaps/edit/warnoff
BITMAPS = bitmaps/bitmaps/edge bitmaps/bitmaps/fill0 \ 
	bitmaps/bitmaps/fill1 bitmaps/bitmaps/fill2 \ 
	bitmaps/bitmaps/fill3 bitmaps/bitmaps/rect \ 
	bitmaps/bitmaps/oblong bitmaps/bitmaps/mris \ 
	bitmaps/bitmaps/msit bitmaps/bitmaps/mred \
	bitmaps/bitmaps/ghosting
ALLFILES = $(FILES) $(GARDENS) $(COMMONHDRS) $(MRISHDRS) $(MREDHDRS) \ 
	$(COMMONSRCS) $(MRISSRCS) $(SCRAMSRCS) $(MREDSRCS) \ 
	$(WIDGETSRCS) $(WIDGETHDRS) \ 
	$(APPLE:%=%.bw) $(APPLE:%=%.rgb) $(BOARD:%=%.bw) $(BOARD:%=%.rgb) \ 
	$(CHOMP:%=%.bw) $(CHOMP:%=%.rgb) $(DRONE:%=%.bw) $(DRONE:%=%.rgb) \ 
	$(ICON:%=%.bw) $(ICON:%=%.rgb) $(MUNCH:%=%.bw) $(MUNCH:%=%.rgb) \ 
	$(NORMAL:%=%.bw) $(NORMAL:%=%.rgb) $(PLAYER:%=%.bw) $(PLAYER:%=%.rgb) \ 
	$(PRIZE:%=%.bw) $(PRIZE:%=%.rgb) $(XTRA:%=%.bw) $(XTRA:%=%.rgb) \ 
	$(EDIT:%=%.bw) $(EDIT:%=%.rgb) $(BITMAPS:%=%.h)

XCOMM using alltarget can cause gnumake to try and make a target called all.
XCOMM the reason is the All Target macro has no rules, so gnumake tries
XCOMM to find an implicit one. Other makes just give up.
all :: initialize
	@#keep gnumake happy

#if transputerbuild
all :: xmris.btl xmred.btl
	@#keep gnumake happy

#else
all :: xmris xmred
	@#keep gnumake happy

#endif /* transputerbuild */
all :: README.xmris README.xmred Xmris.ad
	@#keep gnumake happy

XCOMM rules to make sure the initialize thing is done
clean :: initialize

install :: initialize

XCOMM xmris build
#if transputerbuild
xmris.btl : xmris.lku
	$(ICOLLECT) -t xmris.lku

xmris.lku : $(MRISOBJS)
	$(ILINK) $(TRANSPUTER) $(MRISOBJS) $(ILINKOPT) -o xmris.lku \ 
	  $(IXLIBS) $(ILIBS)

clean ::
	$(RM) xmris.lku xmris.cfb

#else
NormalProgramTarget(xmris,$(MRISOBJS),$(DEPLIBS),$(LOCAL_LIBRARIES),)


InstallProgramWithFlags(xmris,$(THEBINDIR),$(INSTMRISFLAGS))

install :: $(THEBINDIR)/xmris
	$(RM) $(THEBINDIR)/xmsit
	$(LN) ./xmris $(THEBINDIR)/xmsit

#endif /* transputerbuild */

XCOMM xmred build
#if transputerbuild
xmred.btl : xmred.lku
	$(ICOLLECT) -t xmred.lku

xmred.lku : $(MREDOBJS)
	$(ILINK) $(TRANSPUTER) $(MREDOBJS) $(ILINKOPT) -o xmred.lku \ 
	  $(IXLIBS) $(ILIBS)

clean ::
	$(RM) xmred.lku xmred.cfb

#else
NormalProgramTarget(xmred,$(MREDOBJS) $(WIDGETOBJS),$(DEPLIBS),$(LOCAL_LIBRARIES) -lm,)

InstallProgram(xmred,$(THEBINDIR))

#endif /* transputerbuild */
#if !transputerbuild
XCOMM manual pages
README.xmris : xmris.man
	$(RM) README.xmris
	nroff -man xmris.man > README.xmris

README.xmred : xmred.man
	$(RM) README.xmred
	nroff -man xmred.man > README.xmred

InstallManPage(xmris,$(THEMANDIR))

InstallManPageAliases(xmris,$(THEMANDIR),xmsit)

InstallManPage(xmred,$(THEMANDIR))

#endif /* transputerbuild */
XCOMM application resource files
InstallAppDefaults(Xmris)

Xmris.ad : Xmris-ad.src
	sed -e 's@SCORE@$(SCORE)@' -e s@FONT@$(FONT)@ < Xmris-ad.src > Xmris.ad

XCOMM score directory install
install ::
	MakeDir($(SCORE))
	@#not all $(INSTALL) have a -d flag, have to do it explicitly
	@echo installing $(INSTSCOREFLAGS) $(SCORE)
	@set -- $(INSTSCOREFLAGS) ; \ 
	while [ $$# -ne 0 ] ; \ 
	do \ 
	case "$$1" in \ 
	"-o") shift ; chown $$1 $(SCORE) ; echo owner is $$1 ;; \ 
	"-m") shift ; chmod $$1 $(SCORE) ;; \ 
	"-g") shift ; chgrp $$1 $(SCORE) ; echo group is $$1 ;; \ 
	*) echo unknown option '$$1' ;; \ 
	esac ; \ 
	shift ; \ 
	done

#ifdef InstallDefaultGardens
XCOMM install default gardens
install :: $(GARDENS)
	MakeDir(InstallDefaultGardens)
	@set dummy $(GARDENS) ; shift ; \ 
	while [ $$# != 0 ] ; \ 
	do \ 
	  (set -x ; $(INSTALL) -c $(INSTAPPFLAGS) $$1 InstallDefaultGardens/$$1) ; \ 
	  shift ; \ 
	done
#endif /* InstallDefaultGardens */

XCOMM scram program
NormalProgramTarget(scram,$(SCRAMOBJS),,,)

clean ::
	$(RM) $(MRISOBJS)
	$(RM) Xmris.ad
	$(RM) $(MREDOBJS)
	$(RM) $(WIDGETOBJS)
	$(RM) $(SCRAMOBJS)

XCOMM tar is somewhat complicated because we want it to untar into an xmris
XCOMM subdirectory with the correct version number (ie xmris.4.00)
XCOMM this is done by cd'ing up, creating a link of the correct name to
XCOMM where we are and then tarring the files in here with the directory
XCOMM prefix tacked on. But we don't know the directory name we're in so
XCOMM we have to determine that, and if it is already what we want, then
XCOMM don't make a link
tar : checkout README.xmris README.xmred
	@if [ ! -f Makefile.std ] ; then \ 
	  echo No Makefile.std, winging it ; \ 
	  cp Makefile Makefile.std ; \ 
	elif [ `ls -t Makefile Makefile.std | \ 
	    sed '2,$$d'` = Makefile ] ; then \ 
	  echo Warning:Makefile.std is older than Makefile ; \ 
	fi
	@echo Tarring \& feathering into xmris.$(VERSION).tar.gz
	@DIR=`pwd | sed "s+/.*/++"` ; \ 
	  if [ "$$DIR" != "xmris.$(VERSION)" ] ; then \ 
	    $(RM) ../xmris.$(VERSION) ; $(LN) ./$$DIR ../xmris.$(VERSION) ; \ 
	  fi ; \ 
	  (cd .. ;  tar cf - `set README.xmris README.xmred Makefile.std \ 
	      $(ALLFILES) ; \ 
	    while [ $$# -ne 0 ] ; \ 
	    do echo xmris.$(VERSION)/$$1 ; shift ; \ 
	    done`) | \ 
	  gzip -f > xmris.$(VERSION).tar.gz ; \ 
	  if [ "$$DIR" != "xmris.$(VERSION)" ]; then \ 
	    $(RM) ../xmris.$(VERSION) ; \ 
	  fi

XCOMM checkpoint the RCS files
checkpoint.all : checkout
	@ARGS='$(CIFLAGS)' ; \ 
	echo Checkpointing all files with $${ARGS:-'no options'}
	@ci $(CIFLAGS) $(ALLFILES)

checkpoint : initialize
	@ARGS='$(CIFLAGS)' ; \ 
	echo Checkpointing locked files with $${ARGS:-'no options'}
	@ci $(CIFLAGS) `set $(ALLFILES) ; \ 
	  while [ $$# -ne 0 ] ; \ 
	  do if [ -w $$1 ] ; then echo $$1 ; fi ; \ 
	    shift ; \ 
	  done`

rcs : checkout
	@ARGS='$(RCSFLAGS)' ; \ 
	echo RCSing all files with $${ARGS:-'no options'}
	@rcs $(RCSFLAGS) $(ALLFILES)

checkout : initialize $(ALLFILES)
	@#keep gnumake happy

Makefile.std :: initialize
	cp Makefile Makefile.std
	@echo You may want to edit Makefile.std now

XCOMM these are the object dependencies
$(MRISOBJS) : xmris.h common.h ansiknr.h patchlevel.h

makemris.object : defmris.h defcom.h makecom.c

defmris.object : defmris.h defcom.h defcom.c bitmaps/sprites

draw.object : digits.gdn

$(MREDOBJS) : xmred.h common.h ansiknr.h patchlevel.h

all.object : Drag.h Icon.h PixmapList.h

control.object : Drag.h Icon.h

defmred.object : defmred.h defcom.h defcom.c bitmaps/sprites xmred.gdn

makemred.object : defmred.h defcom.h makecom.c Icon.h PixmapList.h

$(SCRAMOBJS) : ansiknr.h

Drag.object : Drag.h

Icon.object : Drag.h Icon.h

PixmapList.object : PixmapList.h Drag.h

XCOMM dependencies for single files
XCOMM can't use $(@:.o=.c) or similar clever thing, 'cos its incompatible
XCOMM gnumake is clever enough to perform a check out using implicit rules
#define SINGLEDEPEND(root,target,depend) root.target : root.depend @@
SINGLEDEPEND(apple,object,c)
SINGLEDEPEND(defmris,object,c)
SINGLEDEPEND(demo,object,c)
SINGLEDEPEND(draw,object,c)
SINGLEDEPEND(makemris,object,c)
SINGLEDEPEND(monster,object,c)
SINGLEDEPEND(move,object,c)
SINGLEDEPEND(player,object,c)
SINGLEDEPEND(scoring,object,c)
SINGLEDEPEND(timer,object,c)
SINGLEDEPEND(xmris,object,c)
SINGLEDEPEND(scram,object,c)
SINGLEDEPEND(Drag,object,c)
SINGLEDEPEND(Icon,object,c)
SINGLEDEPEND(PixmapList,object,c)
SINGLEDEPEND(all,object,c)
SINGLEDEPEND(control,object,c)
SINGLEDEPEND(defmred,object,c)
SINGLEDEPEND(dialogs,object,c)
SINGLEDEPEND(garden,object,c)
SINGLEDEPEND(makemred,object,c)
SINGLEDEPEND(menubar,object,c)
SINGLEDEPEND(xmred,object,c)
XCOMM sprite rules
SPRITEMARKERS = bitmaps/apple/sprites bitmaps/board/sprites \ 
	bitmaps/icon/sprites bitmaps/player/sprites bitmaps/normal/sprites \ 
	bitmaps/munch/sprites bitmaps/xtra/sprites bitmaps/drone/sprites \ 
	bitmaps/chomp/sprites bitmaps/prize/sprites bitmaps/edit/sprites \ 
	bitmaps/bitmaps/sprites
clean ::
	$(RM) $(APPLE:%=%.h)
	$(RM) $(BOARD:%=%.h)
	$(RM) $(CHOMP:%=%.h)
	$(RM) $(DRONE:%=%.h)
	$(RM) $(ICON:%=%.h)
	$(RM) $(MUNCH:%=%.h)
	$(RM) $(NORMAL:%=%.h)
	$(RM) $(PLAYER:%=%.h)
	$(RM) $(PRIZE:%=%.h)
	$(RM) $(XTRA:%=%.h)
	$(RM) $(EDIT:%=%.h)
	$(RM) bitmaps/sprites $(SPRITEMARKERS)

XCOMM makes the sprites from the rgb and bw images
bitmaps/sprites : $(SPRITEMARKERS)
	touch $@

bitmaps/apple/sprites : $(APPLE:%=%.h)
	touch $@

bitmaps/board/sprites : $(BOARD:%=%.h)
	touch $@

bitmaps/chomp/sprites : $(CHOMP:%=%.h)
	touch $@

bitmaps/drone/sprites : $(DRONE:%=%.h)
	touch $@

bitmaps/icon/sprites : $(ICON:%=%.h)
	touch $@

bitmaps/munch/sprites : $(MUNCH:%=%.h)
	touch $@

bitmaps/normal/sprites : $(NORMAL:%=%.h)
	touch $@

bitmaps/player/sprites : $(PLAYER:%=%.h)
	touch $@

bitmaps/prize/sprites : $(PRIZE:%=%.h)
	touch $@

bitmaps/xtra/sprites : $(XTRA:%=%.h)
	touch $@

bitmaps/edit/sprites : $(EDIT:%=%.h)
	touch $@

bitmaps/bitmaps/sprites : $(BITMAPS:%=%.h)
	touch $@

XCOMM sprite building rule, again clever make stuff is incompatible 
#define SPRITEBUILD(root,flags,noswap,swap,edge) \
root.h : ./scram root.rgb root.bw					@@\
	./scram root flags noswap + swap + edge

SPRITEBUILD(bitmaps/apple/apldcy,,\
COLOR_APPLE_1 COLOR_APPLE_2 COLOR_WHITE COLOR_BLACK,\
COLOR_APPLE_1 COLOR_APPLE_2 COLOR_WHITE COLOR_BLACK,\
COLOR_BLACK)

SPRITEBUILD(bitmaps/apple/aplnorm,,\
COLOR_APPLE_1 COLOR_APPLE_2 COLOR_WHITE COLOR_BLACK,\
COLOR_APPLE_1 COLOR_APPLE_2 COLOR_WHITE COLOR_BLACK,\
COLOR_BLACK)

SPRITEBUILD(bitmaps/apple/aplrock,,\
COLOR_APPLE_1 COLOR_APPLE_2 COLOR_WHITE COLOR_BLACK,\
COLOR_APPLE_1 COLOR_APPLE_2 COLOR_WHITE COLOR_BLACK,\
COLOR_BLACK)

SPRITEBUILD(bitmaps/apple/aplrot,,\
COLOR_APPLE_1 COLOR_APPLE_2 COLOR_WHITE COLOR_BLACK,\
COLOR_APPLE_1 COLOR_APPLE_2 COLOR_WHITE COLOR_BLACK,\
COLOR_BLACK)

SPRITEBUILD(bitmaps/apple/aplspl,,\
COLOR_APPLE_1 COLOR_APPLE_2 COLOR_WHITE COLOR_BLACK,\
COLOR_APPLE_1 COLOR_APPLE_2 COLOR_WHITE COLOR_BLACK,\
COLOR_BLACK)

SPRITEBUILD(bitmaps/apple/gstnorm,,\
COLOR_APPLE_FAINT COLOR_APPLE_1 COLOR_APPLE_2 COLOR_WHITE,\
COLOR_BACKGROUND COLOR_APPLE_1 COLOR_APPLE_2 COLOR_WHITE,\
COLOR_APPLE_FAINT)

SPRITEBUILD(bitmaps/apple/gstrock,,\
COLOR_APPLE_FAINT COLOR_APPLE_1 COLOR_APPLE_2 COLOR_WHITE,\
COLOR_BACKGROUND COLOR_APPLE_1 COLOR_APPLE_2 COLOR_WHITE,\
COLOR_APPLE_FAINT)

SPRITEBUILD(bitmaps/apple/aplsmall,,\
COLOR_APPLE_1 COLOR_APPLE_2 COLOR_WHITE COLOR_BLACK,\
COLOR_APPLE_1 COLOR_APPLE_2 COLOR_WHITE COLOR_BLACK,\
COLOR_BLACK)

SPRITEBUILD(bitmaps/apple/bigedge,-s,COLOR_APPLE_FAINT,COLOR_APPLE_FAINT,)

SPRITEBUILD(bitmaps/apple/smledge,-s,COLOR_APPLE_FAINT,COLOR_APPLE_FAINT,)

SPRITEBUILD(bitmaps/board/cherry,+s,\
COLOR_WHITE COLOR_CHERRY COLOR_BLACK COLOR_BLACK,\
COLOR_WHITE COLOR_CHERRY COLOR_BLACK COLOR_CHERRY_STALK,\
COLOR_BLACK)

SPRITEBUILD(bitmaps/board/ball,+n,COLOR_BALL,COLOR_BALL,COLOR_BLACK)

SPRITEBUILD(bitmaps/board/digits,-s,\
COLOR_BACKGROUND COLOR_BLACK,COLOR_BACKGROUND COLOR_WHITE,)

SPRITEBUILD(bitmaps/board/seat,-s,\
COLOR_SEAT COLOR_BLACK,COLOR_SEAT COLOR_WHITE,)

SPRITEBUILD(bitmaps/chomp/hchmpc,,\
COLOR_CHOMP COLOR_BLACK COLOR_WHITE COLOR_CHOMP_LIP COLOR_BLACK COLOR_BLACK,\
COLOR_CHOMP COLOR_CHOMP COLOR_BLACK COLOR_CHOMP_LIP COLOR_BLACK COLOR_WHITE,\
COLOR_BLACK)

SPRITEBUILD(bitmaps/chomp/hchmpo,,\
COLOR_CHOMP COLOR_BLACK COLOR_WHITE COLOR_CHOMP_LIP COLOR_BLACK COLOR_BLACK,\
COLOR_CHOMP COLOR_CHOMP COLOR_BLACK COLOR_CHOMP_LIP COLOR_BLACK COLOR_WHITE,\
COLOR_BLACK)

SPRITEBUILD(bitmaps/chomp/schmpc,,\
COLOR_WHITE COLOR_CHOMP COLOR_BLACK COLOR_BLACK,\
COLOR_WHITE COLOR_CHOMP COLOR_CHOMP COLOR_BLACK,)

SPRITEBUILD(bitmaps/chomp/schmpo,,\
COLOR_WHITE COLOR_CHOMP COLOR_CHOMP_TONGUE COLOR_BLACK COLOR_BLACK,\
COLOR_WHITE COLOR_CHOMP COLOR_CHOMP_TONGUE COLOR_CHOMP COLOR_BLACK,)

SPRITEBUILD(bitmaps/drone/hdronf,,\
COLOR_WHITE COLOR_DRONE COLOR_BLACK COLOR_WHITE,\
COLOR_BLACK COLOR_DRONE COLOR_WHITE COLOR_WHITE,COLOR_BLACK)

SPRITEBUILD(bitmaps/drone/hdronw1,,\
COLOR_WHITE COLOR_DRONE COLOR_BLACK COLOR_WHITE COLOR_BLACK,\
COLOR_BLACK COLOR_DRONE COLOR_WHITE COLOR_WHITE COLOR_BACKGROUND,\
COLOR_BLACK)

SPRITEBUILD(bitmaps/drone/hdronw2,,\
COLOR_WHITE COLOR_DRONE COLOR_BLACK COLOR_WHITE COLOR_BLACK,\
COLOR_BLACK COLOR_DRONE COLOR_WHITE COLOR_WHITE COLOR_BACKGROUND,\
COLOR_BLACK)

SPRITEBUILD(bitmaps/drone/sdronf,,\
COLOR_DRONE COLOR_BLACK COLOR_BLACK,\
COLOR_DRONE COLOR_DRONE COLOR_BLACK,)

SPRITEBUILD(bitmaps/drone/sdronw1,,\
COLOR_WHITE COLOR_DRONE COLOR_BLACK COLOR_BLACK,\
COLOR_WHITE COLOR_DRONE COLOR_DRONE COLOR_BLACK,)

SPRITEBUILD(bitmaps/drone/sdronw2,,\
COLOR_WHITE COLOR_DRONE COLOR_DRONE_TONGUE COLOR_BLACK COLOR_BLACK,\
COLOR_WHITE COLOR_DRONE COLOR_DRONE_TONGUE COLOR_DRONE COLOR_BLACK,)

SPRITEBUILD(bitmaps/icon/solidi,-s,COLOR_LETTER_GOT,COLOR_LETTER_GOT,)

SPRITEBUILD(bitmaps/icon/solidm,-s,COLOR_LETTER_GOT,COLOR_LETTER_GOT,)

SPRITEBUILD(bitmaps/icon/solidr,-s,COLOR_LETTER_GOT,COLOR_LETTER_GOT,)

SPRITEBUILD(bitmaps/icon/solids,-s,COLOR_LETTER_GOT,COLOR_LETTER_GOT,)

SPRITEBUILD(bitmaps/icon/solidt,-s,COLOR_LETTER_GOT,COLOR_LETTER_GOT,)

SPRITEBUILD(bitmaps/icon/shelli,-s,COLOR_LETTER_NOT_GOT,COLOR_LETTER_NOT_GOT,)

SPRITEBUILD(bitmaps/icon/shellm,-s,COLOR_LETTER_NOT_GOT,COLOR_LETTER_NOT_GOT,)

SPRITEBUILD(bitmaps/icon/shellr,-s,COLOR_LETTER_NOT_GOT,COLOR_LETTER_NOT_GOT,)

SPRITEBUILD(bitmaps/icon/shells,-s,COLOR_LETTER_NOT_GOT,COLOR_LETTER_NOT_GOT,)

SPRITEBUILD(bitmaps/icon/shellt,-s,COLOR_LETTER_NOT_GOT,COLOR_LETTER_NOT_GOT,)

SPRITEBUILD(bitmaps/munch/hmnchf,,\
COLOR_MUNCH_1 COLOR_MUNCH_2 COLOR_BLACK COLOR_WHITE COLOR_BLACK,\
COLOR_MUNCH_1 COLOR_MUNCH_2 COLOR_BLACK COLOR_WHITE COLOR_WHITE,\
COLOR_BLACK)

SPRITEBUILD(bitmaps/munch/hmnchw1,,\
COLOR_MUNCH_1 COLOR_MUNCH_2 COLOR_BLACK COLOR_WHITE COLOR_BLACK COLOR_BLACK,\
COLOR_MUNCH_1 COLOR_MUNCH_2 COLOR_MUNCH_2 COLOR_WHITE COLOR_BLACK COLOR_WHITE,\
COLOR_BLACK)

SPRITEBUILD(bitmaps/munch/hmnchw2,,\
COLOR_MUNCH_1 COLOR_MUNCH_2 COLOR_BLACK COLOR_WHITE COLOR_BLACK COLOR_BLACK,\
COLOR_MUNCH_1 COLOR_MUNCH_2 COLOR_MUNCH_2 COLOR_WHITE COLOR_BLACK COLOR_WHITE,\
COLOR_BLACK)

SPRITEBUILD(bitmaps/munch/smnchf,,\
COLOR_WHITE COLOR_MUNCH_1 COLOR_MUNCH_2 COLOR_BLACK COLOR_BLACK COLOR_BLACK,\
COLOR_WHITE COLOR_MUNCH_1 COLOR_MUNCH_2 COLOR_MUNCH_1 COLOR_MUNCH_2 \
COLOR_BLACK,)

SPRITEBUILD(bitmaps/munch/smnchw1,,COLOR_WHITE COLOR_MUNCH_1 \
COLOR_MUNCH_2 COLOR_BLACK COLOR_BLACK COLOR_BLACK COLOR_BLACK,\
COLOR_WHITE COLOR_MUNCH_1 COLOR_MUNCH_2 COLOR_WHITE COLOR_MUNCH_1 \
COLOR_MUNCH_2 COLOR_BLACK,)

SPRITEBUILD(bitmaps/munch/smnchw2,,\
COLOR_WHITE COLOR_MUNCH_1 COLOR_MUNCH_2 COLOR_BLACK COLOR_BLACK COLOR_BLACK,\
COLOR_WHITE COLOR_MUNCH_1 COLOR_MUNCH_2 COLOR_MUNCH_1 COLOR_MUNCH_2 \
COLOR_BLACK,)

SPRITEBUILD(bitmaps/normal/hden,-s,\
COLOR_NORMAL COLOR_NORMAL COLOR_WHITE COLOR_BLACK,\
COLOR_NORMAL COLOR_NORMAL COLOR_BLACK COLOR_WHITE,)

SPRITEBUILD(bitmaps/normal/hnormf,-s,\
COLOR_NORMAL COLOR_NORMAL COLOR_WHITE COLOR_BLACK,\
COLOR_NORMAL COLOR_NORMAL COLOR_BLACK COLOR_WHITE,)

SPRITEBUILD(bitmaps/normal/hnormw1,-s,\
COLOR_NORMAL COLOR_NORMAL COLOR_WHITE COLOR_BLACK,\
COLOR_NORMAL COLOR_NORMAL COLOR_BLACK COLOR_WHITE,)

SPRITEBUILD(bitmaps/normal/hnormw2,-s,\
COLOR_NORMAL COLOR_NORMAL COLOR_WHITE COLOR_BLACK,\
COLOR_NORMAL COLOR_NORMAL COLOR_BLACK COLOR_WHITE,)

SPRITEBUILD(bitmaps/normal/sden,,\
COLOR_WHITE COLOR_NORMAL COLOR_BLACK COLOR_BLACK,\
COLOR_WHITE COLOR_NORMAL COLOR_WHITE COLOR_BLACK,)

SPRITEBUILD(bitmaps/normal/snormf,,\
COLOR_WHITE COLOR_NORMAL COLOR_BLACK COLOR_BLACK,\
COLOR_WHITE COLOR_NORMAL COLOR_NORMAL COLOR_BLACK,)

SPRITEBUILD(bitmaps/normal/snormw1,,\
COLOR_WHITE COLOR_NORMAL COLOR_BLACK COLOR_BLACK,\
COLOR_WHITE COLOR_NORMAL COLOR_NORMAL COLOR_BLACK,)

SPRITEBUILD(bitmaps/normal/snormw2,,\
COLOR_WHITE COLOR_NORMAL COLOR_BLACK COLOR_BLACK,\
COLOR_WHITE COLOR_NORMAL COLOR_NORMAL COLOR_BLACK,)

SPRITEBUILD(bitmaps/player/hplyrf,,COLOR_PLAYER_BOBBLE \
COLOR_PLAYER COLOR_PLAYER_FACE COLOR_BLACK COLOR_BLACK COLOR_BACKGROUND,\
COLOR_PLAYER_BOBBLE COLOR_PLAYER COLOR_PLAYER_FACE COLOR_BLACK \
COLOR_PLAYER_BOOT COLOR_BACKGROUND,COLOR_BLACK)

SPRITEBUILD(bitmaps/player/hplyrh1,,COLOR_PLAYER_BOBBLE \
COLOR_PLAYER COLOR_PLAYER_FACE COLOR_BLACK COLOR_BLACK COLOR_BACKGROUND,\
COLOR_PLAYER_BOBBLE COLOR_PLAYER COLOR_PLAYER_FACE COLOR_BLACK \
COLOR_PLAYER_BOOT COLOR_BACKGROUND,COLOR_BLACK)

SPRITEBUILD(bitmaps/player/hplyrh2,,COLOR_PLAYER_BOBBLE \
COLOR_PLAYER COLOR_PLAYER_FACE COLOR_BLACK COLOR_BLACK COLOR_BACKGROUND,\
COLOR_PLAYER_BOBBLE COLOR_PLAYER COLOR_PLAYER_FACE COLOR_BLACK \
COLOR_PLAYER_BOOT COLOR_BACKGROUND,COLOR_BLACK)

SPRITEBUILD(bitmaps/player/hplyrp1,,COLOR_PLAYER_BOBBLE \
COLOR_PLAYER COLOR_PLAYER_FACE COLOR_BLACK COLOR_BLACK COLOR_BACKGROUND \
COLOR_BLACK,COLOR_PLAYER_BOBBLE COLOR_PLAYER COLOR_PLAYER_FACE COLOR_BLACK \
COLOR_PLAYER_BOOT COLOR_BACKGROUND COLOR_WHITE,COLOR_BLACK)

SPRITEBUILD(bitmaps/player/hplyrp2,,COLOR_PLAYER_BOBBLE \
COLOR_PLAYER COLOR_PLAYER_FACE COLOR_BLACK COLOR_BLACK COLOR_BACKGROUND \
COLOR_BLACK,COLOR_PLAYER_BOBBLE COLOR_PLAYER COLOR_PLAYER_FACE COLOR_BLACK \
COLOR_PLAYER_BOOT COLOR_BACKGROUND COLOR_WHITE,COLOR_BLACK)

SPRITEBUILD(bitmaps/player/hplyrs1,,COLOR_PLAYER_BOBBLE \
COLOR_PLAYER COLOR_PLAYER_FACE COLOR_BLACK COLOR_BLACK COLOR_BACKGROUND,\
COLOR_PLAYER_BOBBLE COLOR_PLAYER COLOR_PLAYER_FACE COLOR_BLACK \
COLOR_PLAYER_BOOT COLOR_BACKGROUND,COLOR_BLACK)

SPRITEBUILD(bitmaps/player/hplyrs2,,COLOR_PLAYER_BOBBLE \
COLOR_PLAYER COLOR_PLAYER_FACE COLOR_BLACK COLOR_BLACK COLOR_BACKGROUND,\
COLOR_PLAYER_BOBBLE COLOR_PLAYER COLOR_PLAYER_FACE COLOR_BLACK \
COLOR_PLAYER_BOOT COLOR_BACKGROUND,COLOR_BLACK)

SPRITEBUILD(bitmaps/player/hplyrw1,,COLOR_PLAYER_BOBBLE \
COLOR_PLAYER COLOR_PLAYER_FACE COLOR_BLACK COLOR_BLACK COLOR_BACKGROUND,\
COLOR_PLAYER_BOBBLE COLOR_PLAYER COLOR_PLAYER_FACE COLOR_BLACK \
COLOR_PLAYER_BOOT COLOR_BACKGROUND,COLOR_BLACK)

SPRITEBUILD(bitmaps/player/hplyrw2,,COLOR_PLAYER_BOBBLE \
COLOR_PLAYER COLOR_PLAYER_FACE COLOR_BLACK COLOR_BLACK COLOR_BACKGROUND,\
COLOR_PLAYER_BOBBLE COLOR_PLAYER COLOR_PLAYER_FACE COLOR_BLACK \
COLOR_PLAYER_BOOT COLOR_BACKGROUND,COLOR_BLACK)

SPRITEBUILD(bitmaps/player/splyrf,,COLOR_PLAYER_BOBBLE \
COLOR_PLAYER COLOR_PLAYER_FACE COLOR_BLACK COLOR_BLACK COLOR_BLACK \
COLOR_BLACK COLOR_PLAYER_BOOT,COLOR_PLAYER_BOBBLE COLOR_PLAYER \
COLOR_PLAYER_FACE COLOR_BLACK COLOR_PLAYER_BOBBLE COLOR_PLAYER \
COLOR_PLAYER_FACE COLOR_PLAYER_BOOT,)

SPRITEBUILD(bitmaps/player/splyrp1,,COLOR_PLAYER_BOBBLE \
COLOR_PLAYER COLOR_PLAYER_FACE COLOR_BLACK COLOR_BLACK COLOR_BLACK \
COLOR_BLACK COLOR_PLAYER_BOOT,COLOR_PLAYER_BOBBLE COLOR_PLAYER \
COLOR_PLAYER_FACE COLOR_BLACK COLOR_PLAYER_BOBBLE COLOR_PLAYER \
COLOR_PLAYER_FACE COLOR_PLAYER_BOOT,)

SPRITEBUILD(bitmaps/player/splyrp2,,COLOR_PLAYER_BOBBLE \
COLOR_PLAYER COLOR_PLAYER_FACE COLOR_BLACK COLOR_BLACK COLOR_BLACK \
COLOR_BLACK COLOR_PLAYER_BOOT,COLOR_PLAYER_BOBBLE COLOR_PLAYER \
COLOR_PLAYER_FACE COLOR_BLACK COLOR_PLAYER_BOBBLE COLOR_PLAYER \
COLOR_PLAYER_FACE COLOR_PLAYER_BOOT,)

SPRITEBUILD(bitmaps/player/splyrs1,,COLOR_PLAYER_BOBBLE \
COLOR_PLAYER COLOR_PLAYER_FACE COLOR_BLACK COLOR_BLACK COLOR_BLACK \
COLOR_BLACK COLOR_PLAYER_BOOT,COLOR_PLAYER_BOBBLE COLOR_PLAYER \
COLOR_PLAYER_FACE COLOR_BLACK COLOR_PLAYER_BOBBLE COLOR_PLAYER \
COLOR_PLAYER_FACE COLOR_PLAYER_BOOT,)

SPRITEBUILD(bitmaps/player/splyrs2,,COLOR_PLAYER_BOBBLE \
COLOR_PLAYER COLOR_PLAYER_FACE COLOR_BLACK COLOR_BLACK COLOR_BLACK \
COLOR_BLACK COLOR_PLAYER_BOOT,COLOR_PLAYER_BOBBLE COLOR_PLAYER \
COLOR_PLAYER_FACE COLOR_BLACK COLOR_PLAYER_BOBBLE COLOR_PLAYER \
COLOR_PLAYER_FACE COLOR_PLAYER_BOOT,)

SPRITEBUILD(bitmaps/player/splyrw1,,COLOR_PLAYER_BOBBLE \
COLOR_PLAYER COLOR_PLAYER_FACE COLOR_BLACK COLOR_BLACK COLOR_BLACK \
COLOR_BLACK COLOR_PLAYER_BOOT,COLOR_PLAYER_BOBBLE COLOR_PLAYER \
COLOR_PLAYER_FACE COLOR_BLACK COLOR_PLAYER_BOBBLE COLOR_PLAYER \
COLOR_PLAYER_FACE COLOR_PLAYER_BOOT,)

SPRITEBUILD(bitmaps/player/splyrw2,,COLOR_PLAYER_BOBBLE \
COLOR_PLAYER COLOR_PLAYER_FACE COLOR_BLACK COLOR_BLACK COLOR_BLACK \
COLOR_BLACK COLOR_PLAYER_BOOT,COLOR_PLAYER_BOBBLE COLOR_PLAYER \
COLOR_PLAYER_FACE COLOR_BLACK COLOR_PLAYER_BOBBLE COLOR_PLAYER \
COLOR_PLAYER_FACE COLOR_PLAYER_BOOT,)

SPRITEBUILD(bitmaps/player/splyrd1,,COLOR_PLAYER_BOBBLE \
COLOR_PLAYER COLOR_PLAYER_FACE COLOR_BLACK COLOR_BLACK COLOR_BLACK \
COLOR_BLACK COLOR_PLAYER_BOOT,COLOR_PLAYER_BOBBLE COLOR_PLAYER \
COLOR_PLAYER_FACE COLOR_BLACK COLOR_PLAYER_BOBBLE COLOR_PLAYER \
COLOR_PLAYER_FACE COLOR_PLAYER_BOOT,)

SPRITEBUILD(bitmaps/player/splyrd2,,COLOR_PLAYER_BOBBLE \
COLOR_PLAYER COLOR_PLAYER_FACE COLOR_BLACK COLOR_BLACK COLOR_BLACK \
COLOR_BLACK COLOR_PLAYER_BOOT,COLOR_PLAYER_BOBBLE COLOR_PLAYER \
COLOR_PLAYER_FACE COLOR_BLACK COLOR_PLAYER_BOBBLE COLOR_PLAYER \
COLOR_PLAYER_FACE COLOR_PLAYER_BOOT,)

SPRITEBUILD(bitmaps/player/splyrh1,,COLOR_PLAYER_BOBBLE \
COLOR_PLAYER COLOR_PLAYER_FACE COLOR_BLACK COLOR_BLACK COLOR_BLACK \
COLOR_BLACK COLOR_PLAYER_BOOT,COLOR_PLAYER_BOBBLE COLOR_PLAYER \
COLOR_PLAYER_FACE COLOR_BLACK COLOR_PLAYER_BOBBLE COLOR_PLAYER \
COLOR_PLAYER_FACE COLOR_PLAYER_BOOT,)

SPRITEBUILD(bitmaps/player/splyrh2,,COLOR_PLAYER_BOBBLE \
COLOR_PLAYER COLOR_PLAYER_FACE COLOR_BLACK COLOR_BLACK COLOR_BLACK \
COLOR_BLACK COLOR_PLAYER_BOOT,COLOR_PLAYER_BOBBLE COLOR_PLAYER \
COLOR_PLAYER_FACE COLOR_BLACK COLOR_PLAYER_BOBBLE COLOR_PLAYER \
COLOR_PLAYER_FACE COLOR_PLAYER_BOOT,)

SPRITEBUILD(bitmaps/prize/cake,+s,\
COLOR_CAKE_ICING COLOR_CAKE COLOR_BLACK COLOR_CAKE_JAM,\
COLOR_CAKE_ICING COLOR_CAKE COLOR_BLACK COLOR_CAKE_JAM,\
COLOR_BLACK)

SPRITEBUILD(bitmaps/prize/spanner,+s,COLOR_SPANNER_SHADOW COLOR_SPANNER,\
COLOR_SPANNER_SHADOW COLOR_SPANNER, COLOR_BLACK)

SPRITEBUILD(bitmaps/prize/brolly,+s,\
COLOR_BROLLY_1 COLOR_BROLLY_2 COLOR_BROLLY_HANDLE COLOR_BLACK,\
COLOR_BROLLY_1 COLOR_BROLLY_2 COLOR_BROLLY_HANDLE COLOR_BLACK,\
COLOR_BLACK)

SPRITEBUILD(bitmaps/prize/mushrm,+s,\
COLOR_MUSHROOM_STALK COLOR_MUSHROOM_CAP COLOR_BLACK COLOR_WHITE,\
COLOR_MUSHROOM_STALK COLOR_MUSHROOM_CAP COLOR_BLACK COLOR_WHITE,\
COLOR_BLACK)

SPRITEBUILD(bitmaps/prize/clock,+s,\
COLOR_CLOCK_FACE COLOR_BLACK COLOR_CLOCK_BELL COLOR_CLOCK_EDGE,\
COLOR_CLOCK_FACE COLOR_BLACK COLOR_CLOCK_BELL COLOR_CLOCK_EDGE,\
COLOR_BLACK)

SPRITEBUILD(bitmaps/prize/gem1,,COLOR_WHITE COLOR_GEM_1 \
COLOR_GEM_2 COLOR_BLACK COLOR_BLACK COLOR_BLACK COLOR_BLACK,\
COLOR_WHITE COLOR_GEM_1 COLOR_GEM_2 COLOR_WHITE COLOR_GEM_1 COLOR_GEM_2 \
COLOR_BLACK,)

SPRITEBUILD(bitmaps/prize/gem2,,COLOR_WHITE COLOR_GEM_1 \
COLOR_GEM_2 COLOR_BLACK COLOR_BLACK COLOR_BLACK COLOR_BLACK,\
COLOR_WHITE COLOR_GEM_1 COLOR_GEM_2 COLOR_WHITE COLOR_GEM_1 COLOR_GEM_2 \
COLOR_BLACK,)

SPRITEBUILD(bitmaps/prize/gem3,,COLOR_WHITE COLOR_GEM_1 \
COLOR_GEM_2 COLOR_BLACK COLOR_BLACK COLOR_BLACK COLOR_BLACK,\
COLOR_WHITE COLOR_GEM_1 COLOR_GEM_2 COLOR_WHITE COLOR_GEM_1 COLOR_GEM_2 \
COLOR_BLACK,)

SPRITEBUILD(bitmaps/xtra/sxtraf,,\
COLOR_WHITE COLOR_XTRA COLOR_BLACK,COLOR_BLACK COLOR_XTRA COLOR_XTRA,)

SPRITEBUILD(bitmaps/xtra/sxtraw1,,\
COLOR_WHITE COLOR_XTRA COLOR_BLACK COLOR_BLACK COLOR_BLACK,\
COLOR_WHITE COLOR_XTRA COLOR_WHITE COLOR_XTRA COLOR_BLACK,)

SPRITEBUILD(bitmaps/xtra/sxtraw2,,\
COLOR_WHITE COLOR_XTRA COLOR_BLACK COLOR_BLACK COLOR_BLACK,\
COLOR_WHITE COLOR_XTRA COLOR_WHITE COLOR_XTRA COLOR_BLACK,)

SPRITEBUILD(bitmaps/xtra/hxtraf,-s,\
COLOR_XTRA COLOR_WHITE COLOR_BLACK,COLOR_XTRA COLOR_BLACK COLOR_WHITE,)

SPRITEBUILD(bitmaps/xtra/hxtraw1,-s,\
COLOR_XTRA COLOR_WHITE COLOR_BLACK,COLOR_XTRA COLOR_BLACK COLOR_WHITE,)

SPRITEBUILD(bitmaps/xtra/hxtraw2,-s,\
COLOR_XTRA COLOR_WHITE COLOR_BLACK,COLOR_XTRA COLOR_BLACK COLOR_WHITE,)

SPRITEBUILD(bitmaps/xtra/xtrbold,-s,\
- COLOR_LETTER_GOT,- COLOR_LETTER_GOT,)

SPRITEBUILD(bitmaps/xtra/xtrfaint,-s,\
- COLOR_LETTER_NOT_GOT,- COLOR_LETTER_NOT_GOT,)

SPRITEBUILD(bitmaps/edit/bigearw,-s,COLOR_APPLE_FAINT,COLOR_APPLE_FAINT,)

SPRITEBUILD(bitmaps/edit/bigsarw,-s,COLOR_APPLE_FAINT,COLOR_APPLE_FAINT,)

SPRITEBUILD(bitmaps/edit/smlearw,-s,COLOR_APPLE_FAINT,COLOR_APPLE_FAINT,)

SPRITEBUILD(bitmaps/edit/smlsarw,-s,COLOR_APPLE_FAINT,COLOR_APPLE_FAINT,)

SPRITEBUILD(bitmaps/edit/path,-s,COLOR_BACKGROUND,COLOR_BACKGROUND,)

SPRITEBUILD(bitmaps/edit/red,-s,COLOR_RED_FORE,COLOR_RED_FORE,)

SPRITEBUILD(bitmaps/edit/green,-s,COLOR_GREEN_FORE,COLOR_GREEN_FORE,)

SPRITEBUILD(bitmaps/edit/blue,-s,COLOR_BLUE_FORE,COLOR_BLUE_FORE,)

SPRITEBUILD(bitmaps/edit/include,-s -c -m,\
COLOR_BACKGROUND COLOR_BORDER COLOR_BACKGROUND COLOR_RED_FORE \
COLOR_BACKGROUND COLOR_BLUE_FORE COLOR_BACKGROUND COLOR_GREEN_FORE,\
COLOR_BACKGROUND COLOR_BORDER COLOR_BACKGROUND COLOR_RED_FORE \
COLOR_BACKGROUND COLOR_BLUE_FORE COLOR_BACKGROUND COLOR_GREEN_FORE,)

SPRITEBUILD(bitmaps/edit/iconi,-s -c -m,COLOR_BACKGROUND COLOR_FOREGROUND,\
COLOR_BACKGROUND COLOR_FOREGROUND,)

SPRITEBUILD(bitmaps/edit/boardi,-s -c -m,COLOR_BACKGROUND COLOR_FOREGROUND,\
COLOR_BACKGROUND COLOR_FOREGROUND,)

SPRITEBUILD(bitmaps/edit/warnon,-s -c -m,COLOR_BACKGROUND COLOR_FOREGROUND,\
COLOR_BACKGROUND COLOR_FOREGROUND,)

SPRITEBUILD(bitmaps/edit/warnoff,-s -c -m,COLOR_BACKGROUND COLOR_FOREGROUND,\
COLOR_BACKGROUND COLOR_FOREGROUND,)

.DONE :
	@echo "Hurrah!"

.FAILED :
	@echo "Bummer!"

CHECKSUBST = a.b
XCOMM initialize rule is done before all makes. Not all makes
XCOMM have a .INIT implicit rule, so I don't use that
initialize :
	@echo Checking a few things
	@if [ $(CHECKSUBST:%.b=%.c) = a.b ] ; then \
	  echo This make does not understand % substitutions. ; \
	  echo It will lose big time. ; \
	  exit 1 ; \
	fi
	@if [ `ls -t Makefile Imakefile | sed '2,$$d'` = Imakefile ] ; then \ 
	  echo Warning:Makefile is older than Imakefile ; \ 
	fi
	@if [ ! -d `echo '$(SCORE)' | sed 's=/[^/]*$$=='` ] ; then \ 
	  echo The parent of $(SCORE) does not exist ; \ 
	fi
	@if [ $(FONT) = "" ] ; then true ; \ 
	elif echo $(FONT) | grep -c -- '-m-.*-.*-.*$$' > /dev/null ; then \ 
	  if [ "$(XLSFONTS)" = "" -o "$(DISPLAY)" = "" ] ; then \
	    XLSFONTS="" ; \
	  elif [ -x $(XLSFONTS) ] ; then \
	    XLSFONTS=$(XLSFONTS) ; \
	  elif [ -x $(BINDIR)/$(XLSFONTS) ] ; then \
	    XLSFONTS=$(BINDIR)/$(XLSFONTS) ; \
	  elif [ -x /usr/bin/X11/$(XLSFONTS) ] ; then \
	    XLSFONTS=/usr/bin/X11/$(XLSFONTS) ; \
	  else \
	    XLSFONTS="" ; \
	  fi ; \
	  if [ "$$XLSFONTS" = "" ] ; then \
	    true ; \
	  elif [ `$$xlsfonts -o -fn "$(FONT)" 2> /dev/null | wc -l` -eq 0 ] ; then \ 
	    echo Warning:Font $(FONT) not found ; \ 
	  fi ; \ 
	else \ 
	  echo Warning:Font $(FONT) is not fixed width ; \ 
	fi
	@echo "Geronimo!"

XCOMM default rule looks for an RCS file to check out
XCOMM not required for gmake, as that already has a rule for it
.DEFAULT :
	@if echo $@ | grep -cv '^/' > /dev/null && \
	  [ -f `echo ./$@ | sed 's+^\(.*/\)\([^/]*\)$$+\1RCS/\2,v+'` ] ; then \ 
	    co $(COFLAGS) $@ ; \ 
	else \
	  echo Cannot make $@ and cannot find one made. ; \ 
	  exit 1 ; \ 
	fi
