# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#

ROOT    = ..
SHELL   = /bin/sh

#
# Source piece gif images, and their zip file.
#
GIFS	= \
	bb32.gif bk32.gif bn32.gif bp32.gif bq32.gif br32.gif	\
	wb32.gif wk32.gif wn32.gif wp32.gif wq32.gif wr32.gif
GIFZIP	= azauir.zip

#
# Piece icons, three per piece (white square background, black square
# background, and "neutral" background [FFFFFF] for use in general display).
# Also, unoccupied square icons.
#
PIECES	= \
	bb32w.png bk32w.png bn32w.png bp32w.png bq32w.png br32w.png	\
	bb32b.png bk32b.png bn32b.png bp32b.png bq32b.png br32b.png	\
	wb32w.png wk32w.png wn32w.png wp32w.png wq32w.png wr32w.png 	\
	wb32b.png wk32b.png wn32b.png wp32b.png wq32b.png wr32b.png	\
	bb32n.png bk32n.png bn32n.png bp32n.png bq32n.png br32n.png	\
	wb32n.png wk32n.png wn32n.png wp32n.png wq32n.png wr32n.png	\
	sq32w.png sq32b.png

#
# Example board.
#
BOARD	= board.png

#
# Default make target.
#
default:	all

#
# Unpack gifs.
#
$(GIFS):	$(GIFZIP)
	unzip -qquL $(GIFZIP) $@

#
# Conversion macros.
#
WBG	= giftopnm | ppmchange '\#C0C0C0' '\#E4E6FC' | pnmtopng
BBG	= giftopnm | ppmchange '\#C0C0C0' '\#C4C6E4' | pnmtopng
NBG	= giftopnm | ppmchange '\#C0C0C0' '\#FFFFFF' | pnmtopng
SWBG	= giftopnm | ppmchange -remainder '\#E4E6FC' | pnmtopng
SBBG	= giftopnm | ppmchange -remainder '\#C4C6E4' | pnmtopng

#
# Icon dependencies and build commands.
#
bb32w.png bb32b.png bb32n.png:	bb32.gif
	cat bb32.gif | $(WBG) >bb32w.png
	cat bb32.gif | $(BBG) >bb32b.png
	cat bb32.gif | $(NBG) >bb32n.png
bk32w.png bk32b.png bk32n.png:	bk32.gif
	cat bk32.gif | $(WBG) >bk32w.png
	cat bk32.gif | $(BBG) >bk32b.png
	cat bk32.gif | $(NBG) >bk32n.png
bn32w.png bn32b.png bn32n.png:	bn32.gif
	cat bn32.gif | $(WBG) >bn32w.png
	cat bn32.gif | $(BBG) >bn32b.png
	cat bn32.gif | $(NBG) >bn32n.png
bp32w.png bp32b.png bp32n.png:	bp32.gif
	cat bp32.gif | $(WBG) >bp32w.png
	cat bp32.gif | $(BBG) >bp32b.png
	cat bp32.gif | $(NBG) >bp32n.png
bq32w.png bq32b.png bq32n.png:	bq32.gif
	cat bq32.gif | $(WBG) >bq32w.png
	cat bq32.gif | $(BBG) >bq32b.png
	cat bq32.gif | $(NBG) >bq32n.png
br32w.png br32b.png br32n.png:	br32.gif
	cat br32.gif | $(WBG) >br32w.png
	cat br32.gif | $(BBG) >br32b.png
	cat br32.gif | $(NBG) >br32n.png

wb32w.png wb32b.png wb32n.png:	wb32.gif
	cat wb32.gif | $(WBG) >wb32w.png
	cat wb32.gif | $(BBG) >wb32b.png
	cat wb32.gif | $(NBG) >wb32n.png
wk32w.png wk32b.png wk32n.png:	wk32.gif
	cat wk32.gif | $(WBG) >wk32w.png
	cat wk32.gif | $(BBG) >wk32b.png
	cat wk32.gif | $(NBG) >wk32n.png
wn32w.png wn32b.png wn32n.png:	wn32.gif
	cat wn32.gif | $(WBG) >wn32w.png
	cat wn32.gif | $(BBG) >wn32b.png
	cat wn32.gif | $(NBG) >wn32n.png
wp32w.png wp32b.png wp32n.png:	wp32.gif
	cat wp32.gif | $(WBG) >wp32w.png
	cat wp32.gif | $(BBG) >wp32b.png
	cat wp32.gif | $(NBG) >wp32n.png
wq32w.png wq32b.png wq32n.png:	wq32.gif
	cat wq32.gif | $(WBG) >wq32w.png
	cat wq32.gif | $(BBG) >wq32b.png
	cat wq32.gif | $(NBG) >wq32n.png
wr32w.png wr32b.png wr32n.png:	wr32.gif
	cat wr32.gif | $(WBG) >wr32w.png
	cat wr32.gif | $(BBG) >wr32b.png
	cat wr32.gif | $(NBG) >wr32n.png

sq32w.png: wp32.gif
	cat wp32.gif | $(SWBG) >sq32w.png
sq32b.png: bp32.gif
	cat bp32.gif | $(SBBG) >sq32b.png

#
# Build all piece icons.
#
$(PIECES):	Makefile $(GIFZIP)

#
# Build an example board layout.
#
$(BOARD):	$(PIECES)
	for i in bb bk bn bp bq br wb wk wn wp wq wr sq; do	\
		pngtopnm $${i}32b.png >$${i}32b.pnm;		\
		pngtopnm $${i}32w.png >$${i}32w.pnm;		\
	done
	pngtopnm sq32b.png >sq32b.pnm; pngtopnm sq32w.png >sq32w.pnm
	pnmcat -lr br32w.pnm bn32b.pnm bb32w.pnm bq32b.pnm	\
		   bk32w.pnm bb32b.pnm bn32w.pnm br32b.pnm >row8.pnm
	pnmcat -lr bp32b.pnm bp32w.pnm bp32b.pnm bp32w.pnm	\
		   bp32b.pnm bp32w.pnm bp32b.pnm bp32w.pnm >row7.pnm
	pnmcat -lr sq32w.pnm sq32b.pnm sq32w.pnm sq32b.pnm	\
		   sq32w.pnm sq32b.pnm sq32w.pnm sq32b.pnm >row6.pnm
	pnmcat -lr wr32b.pnm wn32w.pnm wb32b.pnm wq32w.pnm	\
		   wk32b.pnm wb32w.pnm wn32b.pnm wr32w.pnm >row1.pnm
	pnmcat -lr wp32w.pnm wp32b.pnm wp32w.pnm wp32b.pnm	\
		   wp32w.pnm wp32b.pnm wp32w.pnm wp32b.pnm >row2.pnm
	pnmcat -lr sq32b.pnm sq32w.pnm sq32b.pnm sq32w.pnm	\
		   sq32b.pnm sq32w.pnm sq32b.pnm sq32w.pnm >row3.pnm
	pnmcat -tb row8.pnm row7.pnm row6.pnm row3.pnm		\
		   row6.pnm row3.pnm row2.pnm row1.pnm | pnmtopng >$@

#
# Targets.
#
all:	$(PIECES) $(BOARD)

clean:
	rm -f *.gif *.png *.pnm
