# $Id: Makefile,v 1.31 2006/08/17 13:12:46 arpruss Exp $

PALMONESDK_DIR = /palm/palmdev/PalmOneSDK/Incs
SONYSDK_DIR = /sdk-5/Sony
#SONYSDK_DIR = /usr/include/Sony
# comment out next line if Sony SDK is not available
SONYSDK = -I $(SONYSDK_DIR) -I $(SONYSDK_DIR)/Libraries -I $(SONYSDK_DIR)/System -D SUPPORT_DIA_SONY
FONTCONV = /palm/palmfontconv/fontconv
PAR = par

all: PalmIshido.prc WidePiece.prc WideMarble.prc Marble.prc WideSlate.prc \
 WideWood.prc WidePinkMarble.prc WideShadowedPieces.prc \
 WideWoodAndMarble.prc Sounds.prc ShadowedPieces.prc UgariticPieces.prc \
 WideUgariticPieces.prc HieroglyphicPieces.prc WideHieroglyphicPieces.prc \
 Ishido-Readme.txt

OBJS = Main.o BoardForm.o Utils.o Game.o Plugins.o resize.o DIA.o Coords.o \
       Skins.o Manager.o
DEFINES = 

SysZLib.prc:
	cd zlib && make && cp SysZLib.prc ..

Main.o: Main.c

Ishido-Readme.txt: readme.txt HelpGame.txt HelpPlugins.txt HelpScoring.txt
	fold -w 72 -s < readme.txt > Ishido-Readme.txt
	printf "\n\nGAME PLAY\n\n" >> Ishido-Readme.txt
	fold -w 72 -s < HelpGame.txt >> Ishido-Readme.txt
	printf "\n\nSCORING\n\n" >> Ishido-Readme.txt
	fold -w 72 -s < HelpScoring.txt >> Ishido-Readme.txt
	printf "\n\nPLUGINS\n\n" >> Ishido-Readme.txt
	fold -w 72 -s < HelpPlugins.txt >> Ishido-Readme.txt

%.o: %.c
	m68k-palmos-gcc -O2 -Wall $(DEFINES) $(SONYSDK) -I $(PALMONESDK_DIR) -c $*.c

ARMCC = arm-palmos-gcc -Wall -DARM $(DEFINES) -DARMLET -march=armv4t -mtune=xscale \
        -O3 -Wno-multichar -fshort-enums -fno-strict-aliasing -fpack-struct -nostartfiles 

%-small.bmp: %.bmp
	-rm $@
	convert $< -resize 50% $@

code0001.%.grc: %.o Redirect.c GetArgs.c
	m68k-palmos-gcc -Wall -nostartfiles -o $* $*.c
	m68k-palmos-obj-res $*

PalmIshido-sections.ld PalmIshido-sections.s: PalmIshido.def
	m68k-palmos-multigen PalmIshido.def

PalmIshido: $(OBJS) 
	m68k-palmos-gcc -Wall $(OBJS) -lPalmOSGlue -o PalmIshido 
    
alpha: alpha.c
	$(ARMCC) alpha.c -o alpha

PalmIshido.prc: PalmIshido PalmIshido.def bin.stamp alpha
	build-prc PalmIshido.def PalmIshido alpha *.bin

Piece.rcp: Piece.pl
	perl Piece.pl> Piece.rcp

%.ro : %.rcp
	pilrc -ro $*.rcp

WideHieroglyphicPieces.rcp: ShadowedPieceCompose.pl
	perl ShadowedPieceCompose.pl images/out/WideHiero images/out/WideHieroShadowed images/out/WideHiero00 > WideHieroglyphicPieces.rcp

HieroglyphicPieces.rcp: ShadowedPieceCompose.pl
	perl ShadowedPieceCompose.pl images/out/Hiero images/out/HieroShadowed images/out/Hiero00 > HieroglyphicPieces.rcp

WideUgariticPieces.rcp: ShadowedPieceCompose.pl
	perl ShadowedPieceCompose.pl images/out/WideUgaritic images/out/WideUgariticShadowed  images/out/WideUgaritic00 > WideUgariticPieces.rcp

UgariticPieces.rcp: ShadowedPieceCompose.pl
	perl ShadowedPieceCompose.pl images/out/Ugaritic images/out/UgariticShadowed  images/out/Ugaritic00 > UgariticPieces.rcp

ShadowedPieces.rcp: ShadowedPiece.pl
	perl ShadowedPiece.pl Koester/Narrow2dpiece Koester/ShadowedNarrow images/NarrowEllipse > ShadowedPieces.rcp

WideShadowedPieces.rcp: ShadowedPiece.pl
	perl ShadowedPiece.pl > WideShadowedPieces.rcp

ShadowedPieces.ro: ShadowedPieces.rcp

UgariticPieces.ro: UgariticPieces.rcp

HieroglyphicPieces.ro: HieroglyphicPieces.rcp

WideHieroglyphicPieces.ro: WideHieroglyphicPieces.rcp

WideUgariticPieces.ro: WideUgariticPieces.rcp

Marble.ro: Marble.rcp

Sounds.ro: Sounds.rcp

WideShadowedPieces.ro: WideShadowedPieces.rcp

WideWoodAndMarble.ro: WideWoodAndMarble.rcp

WidePinkMarble.ro: WidePinkMarble.rcp

WideMarble.ro: WideMarble.rcp

WidePieceEllipse.ro: WidePieceEllipse.rcp

WidePiece.ro: WidePiece.rcp

WideWood.ro: WideMarble.rcp

WideSlate.ro: WideSlate.rcp

HieroglyphicPieces.prc: HieroglyphicPieces.ro
	build-prc --no-check-resources -n "Hieroglyphic Pieces" -t SknP -c pIsh HieroglyphicPieces.ro

WideHieroglyphicPieces.prc: WideHieroglyphicPieces.ro
	build-prc --no-check-resources -n "Hieroglyphic Pieces Wide" -t SknP -c pIsh WideHieroglyphicPieces.ro

WideUgariticPieces.prc: WideUgariticPieces.ro
	build-prc --no-check-resources -n "Ugaritic Pieces Wide" -t SknP -c pIsh WideUgariticPieces.ro

UgariticPieces.prc: UgariticPieces.ro
	build-prc --no-check-resources -n "Ugaritic Pieces" -t SknP -c pIsh UgariticPieces.ro

WideWoodAndMarble.prc: WideWoodAndMarble.ro
	build-prc --no-check-resources -n "Ishido Wood/Marble Wide" -t SknB -c pIsh WideWoodAndMarble.ro

Sounds.prc: Sounds.ro
	build-prc --no-check-resources -n "Ishido Sounds" -t SknS -c pIsh Sounds.ro

Marble.prc: Marble.ro
	build-prc --no-check-resources -n "Ishido Marble" -t SknB -c pIsh Marble.ro

WideSlate.prc: WideSlate.ro
	build-prc --no-check-resources -n "Ishido Slate Wide" -t SknB -c pIsh WideSlate.ro

WideWood.prc: WideWood.ro
	build-prc --no-check-resources -n "Ishido Wood Wide" -t SknB -c pIsh WideWood.ro

WidePinkMarble.prc: WidePinkMarble.ro
	build-prc --no-check-resources -n "Ishido Pink Marble Wide" -t SknB -c pIsh WidePinkMarble.ro

WideMarble.prc: WideMarble.ro
	build-prc --no-check-resources -n "Ishido Marble Wide" -t SknB -c pIsh WideMarble.ro

WidePiece.rcp: Piece.pl Koester/Widepiece00.bmp
	perl Piece.pl Wide > WidePiece.rcp

WidePieceEllipse.rcp: Piece.pl images/Wide2dEllipse.gray Koester/Widepiece00.bmp
	perl Piece.pl Wide Ellipse > WidePieceEllipse.rcp

ShadowedPieces.prc: ShadowedPieces.ro
	build-prc --no-check-resources -n "Ishido Pieces Shadowed" -t SknP -c pIsh ShadowedPieces.ro

WideShadowedPieces.prc: WideShadowedPieces.ro
	build-prc --no-check-resources -n "Ishido Pieces Shadowed Wide" -t SknP -c pIsh WideShadowedPieces.ro

WidePiece.prc: WidePiece.ro
	build-prc --no-check-resources -n "Ishido Pieces Wide" -t SknP -c pIsh WidePiece.ro

Koester/small00.bmp: Koester/splitup.pl Koester/Makefile Koester/Tileset.png
	cd Koester && make

images/Icon13x9.bmp images/SmallCross.bmp: images/Icon64x44.bmp images/Makefile images/Cross.bmp
	cd images && make

bin.stamp: Ishido.rcp Ishido_Res.h DefaultSound.rcp Board.rcp Piece.rcp code0001.Sound.grc code0001.Board.grc code0001.Piece.grc Koester/small00.bmp images/Icon13x9.bmp images/SmallCross.bmp
	sed 's/\\$$/@backslash@/' < Ishido.rcp | cpp -E > Ishido.rcp.1
	perl doaddition.pl < Ishido.rcp.1 >Ishido.rcp.out
	pilrc Ishido.rcp.out
	pilrc Board.rcp
	pilrc Piece.rcp
	pilrc DefaultSound.rcp
	touch bin.stamp

clean:
	-rm *.o *.bin *.rcp.out bin.stamp *.grc PalmIshido *.rcp.1 *.ro Piece Board Sound
	-cd images && make clean
	-cd Koester && make clean

ARMCC = arm-palmos-gcc -Wall -DARM $(DEFINES) -DARMLET -march=armv4t -mtune=xscale -O3 -Wno-multichar -fshort-enums -fno-strict-aliasing -fpack-struct -nostartfiles -I/palm/palmdev/unofficial/Incs

%_ARM: %.c
	$(ARMCC) -O2 $(INCS) -o $*_ARM $<


