FLOWFRAMTK_VERSION:=$(shell grep "public static final String version" src/flowframtk/FlowframTkInvoker.java | sed "s/public\sstatic\sfinal\sString\sversion\s=//" | tr -d "\"\; ")
COPY=rsync -a --exclude='.*'
INNOSETUP=wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Inno\ Setup\ 5/Compil32.exe
DISTTARGET=../dist
IZPACKDIR=/usr/local/IzPack

# make all the applications
all	: flowframtk jdrview ajr2ajr ajr2jdr ajr2tex eps2jdr jdr2ajr \
	  jdr2eps jdr2png jdr2svg jdr2tex svg2jdr jdrinfo

demo	: flowframtk
	flowframtk -debug

ctan	: dist 
	cd $(DISTTARGET) ; zip -r flowframtk.zip flowframtk

inno	: inno-setup/flowframtk.iss
	$(INNOSETUP) /cc inno-setup/flowframtk.iss

# make the distribution
dist	: all installer/*.xml ../dist/flowframtk-$(FLOWFRAMTK_VERSION)-src.zip
	make -C doc/manual helpset
	mkdir -p $(DISTTARGET)/flowframtk
	mkdir -p $(DISTTARGET)/flowframtk-$(FLOWFRAMTK_VERSION)/doc
	rsync -r -L --exclude=\*.svn  bin $(DISTTARGET)/flowframtk-$(FLOWFRAMTK_VERSION)
	rsync -r -L --exclude=\*.svn examples $(DISTTARGET)/flowframtk-$(FLOWFRAMTK_VERSION)
	rsync -r -L --exclude=\*.svn lib $(DISTTARGET)/flowframtk-$(FLOWFRAMTK_VERSION)
	cp doc/manual/jdrutils-*.pdf $(DISTTARGET)/flowframtk-$(FLOWFRAMTK_VERSION)/doc/
	cp doc/manual/jdrview-*.pdf $(DISTTARGET)/flowframtk-$(FLOWFRAMTK_VERSION)/doc/
	cp doc/manual/flowframtk-*.pdf $(DISTTARGET)/flowframtk-$(FLOWFRAMTK_VERSION)/doc/
	cp doc/manual/flowframtk-en-GB.pdf $(DISTTARGET)/flowframtk
	cp BUGS $(DISTTARGET)/flowframtk-$(FLOWFRAMTK_VERSION)/
	cp $(DISTTARGET)/flowframtk-$(FLOWFRAMTK_VERSION)/lib/resources/README $(DISTTARGET)/flowframtk-$(FLOWFRAMTK_VERSION)/
	mv $(DISTTARGET)/flowframtk-$(FLOWFRAMTK_VERSION)/lib/resources/README $(DISTTARGET)/flowframtk
	cd $(DISTTARGET); zip -r $(DISTTARGET)/flowframtk/flowframtk-$(FLOWFRAMTK_VERSION).zip flowframtk-$(FLOWFRAMTK_VERSION)
	cp CHANGES $(DISTTARGET)/flowframtk
	$(IZPACKDIR)/bin/compile installer/install.xml -b $(DISTTARGET)/flowframtk-$(FLOWFRAMTK_VERSION) \
	  -o $(DISTTARGET)/flowframtk-$(FLOWFRAMTK_VERSION)-installer.jar \
	  -k standard


../dist/flowframtk-$(FLOWFRAMTK_VERSION)-src.zip	:
	cd $(DISTTARGET) ; ln -f -s ../trunk flowframtk-$(FLOWFRAMTK_VERSION)-src ; zip --exclude="trunk" -r $(DISTTARGET)/flowframtk/flowframtk-$(FLOWFRAMTK_VERSION)-src.zip \
           flowframtk-$(FLOWFRAMTK_VERSION)-src/{bin,src,icons,examples,Makefile,CHANGES,README,BUGS,object-ids.txt} \
           flowframtk-$(FLOWFRAMTK_VERSION)-src/resources/dictionaries/flowframtk* \
           flowframtk-$(FLOWFRAMTK_VERSION)-src/doc/{image-src,sharedimages} \
           flowframtk-$(FLOWFRAMTK_VERSION)-src/doc/manual/*.{tex,sty,perl,pl} \
           flowframtk-$(FLOWFRAMTK_VERSION)-src/doc/manual/{fixpaths,makehelpset,pgf2png} \
           flowframtk-$(FLOWFRAMTK_VERSION)-src/doc/manual/Makefile* \
           flowframtk-$(FLOWFRAMTK_VERSION)-src/doc/manual/images-* \
            -x "*.class" "*~" "*.swp" "*.bak" "*.zip" "*\.svn*"

inno-setup/flowframtk.iss	: inno-setup/flowframtk-src.iss src/flowframtk/FlowframTk.java
	cat inno-setup/flowframtk-src.iss | sed "s/\"VERSION\"/\"$(FLOWFRAMTK_VERSION)\"/" > inno-setup/flowframtk.iss

# copy distribution to the www directory
www	: dist
	$(COPY) doc/html/* $(HOME)/www/java/jdr/doc/
	cp $(DISTTARGET)/flowframtk-$(FLOWFRAMTK_VERSION)-src.zip  $(HOME)/www/java/jdr/
	cp $(DISTTARGET)/flowframtk-$(FLOWFRAMTK_VERSION).zip  $(HOME)/www/flowframtk/
	cp doc/manual/flowframtk-*.pdf $(HOME)/www/flowframtk/
	cp doc/manual/jdrview-*.pdf $(HOME)/www/flowframtk/
	cp doc/manual/jdrutils-*.pdf $(HOME)/www/flowframtk/
	make -C $(HOME)/documents/www/flowframtk
	make -C $(HOME)/documents/www/java/default www
	make -C $(HOME)/documents/www/java/jdr www

flowframtk	: lib/jdr.jar \
		  lib/jdrresources.jar \
		  lib/flowframtk.jar \
		  lib/resources \
		  lib/icons \
		  lib/resources/helpsets/flowframtk/en-GB/flowframtk-en-GB.html \
		  lib/resources/helpsets/flowframtk/en-US/flowframtk-en-US.html

lib/resources/helpsets/flowframtk/en-GB/flowframtk-en-GB.html	: doc/manual/flowframtk-en-GB.tex \
	doc/manual/flowframtk.perl doc/manual/flowframtk.sty doc/manual/flowframtk-main.tex
	make -C doc/manual helpset-en-GB

lib/resources/helpsets/flowframtk/en-US/flowframtk-en-US.html	: doc/manual/flowframtk-en-US.tex \
	doc/manual/flowframtk.perl doc/manual/flowframtk.sty doc/manual/flowframtk-main.tex
	make -C doc/manual helpset-en-US

jdrview	: lib/jdr.jar lib/jdrresources.jar lib/jdrview.jar

ajr2ajr	: lib/jdr.jar lib/ajr2ajr.jar

jdrinfo	: lib/jdr.jar lib/jdrinfo.jar

ajr2jdr	: lib/jdr.jar lib/ajr2jdr.jar

ajr2tex	: lib/jdr.jar lib/ajr2tex.jar

eps2jdr	: lib/jdr.jar lib/jdrresources.jar lib/eps2jdr.jar

jdr2ajr	: lib/jdr.jar lib/jdr2ajr.jar

jdr2eps	: lib/jdr.jar lib/jdr2eps.jar

jdr2png	: lib/jdr.jar lib/jdr2png.jar

jdr2svg	: lib/jdr.jar lib/jdr2svg.jar

jdr2tex	: lib/jdr.jar lib/jdr2tex.jar

svg2jdr	: lib/jdr.jar lib/svg2jdr.jar

lib/jdr.jar	: src/jdr/*.java \
		  src/jdr/*/*.java \
		  src/jdr/*/*/*.java \
		  src/jdr/*/*/*/*.java 
		make -C src ../lib/jdr.jar

lib/jdrresources.jar	: src/jdrresources/*.java \
			  src/jdrresources/filter/*.java \
			  src/jdrresources/numfield/*.java \
			  src/jdrresources/icons/*.png \
			  src/jdrresources/icons/*/*.png
		make -C src ../lib/jdrresources.jar

lib/flowframtk.jar	: src/flowframtk/*.java \
			  src/flowframtk/Manifest.txt \
			  src/images/splashimage.png \
			  src/flowframtk/dialog/*.java
			make -C src ../lib/flowframtk.jar

lib/jdrview.jar	: src/jdrview/*.java
			make -C src ../lib/jdrview.jar

lib/ajr2ajr.jar	: src/ajr2ajr/*.java
		make -C src ../lib/ajr2ajr.jar

lib/jdrinfo.jar	: src/jdrinfo/*.java
		make -C src ../lib/jdrinfo.jar

lib/ajr2jdr.jar	: src/ajr2jdr/*.java
		make -C src ../lib/ajr2jdr.jar

lib/ajr2tex.jar	: src/ajr2tex/*.java
		make -C src ../lib/ajr2tex.jar

lib/eps2jdr.jar	: src/eps2jdr/*.java
		make -C src ../lib/eps2jdr.jar

lib/jdr2ajr.jar	: src/jdr2ajr/*.java
		make -C src ../lib/jdr2ajr.jar

lib/jdr2eps.jar	: src/jdr2eps/*.java
		make -C src ../lib/jdr2eps.jar

lib/jdr2png.jar	: src/jdr2png/*.java
		make -C src ../lib/jdr2png.jar

lib/jdr2svg.jar	: src/jdr2svg/*.java
		make -C src ../lib/jdr2svg.jar

lib/jdr2tex.jar	: src/jdr2tex/*.java
		make -C src ../lib/jdr2tex.jar

lib/svg2jdr.jar	: src/svg2jdr/*.java
		make -C src ../lib/svg2jdr.jar

doc/version.tex	: src/flowframtk/FlowframTk.java 
		echo "\\version{$(FLOWFRAMTK_VERSION)}" > doc/version.tex

doc/jdrviewversion.tex	: src/jdrview/JDRView.java 
		echo "\\version{$(JDRVIEW_VERSION)}" > doc/jdrviewversion.tex

doc/html/index.html	: src/jdr/*.java \
			  src/jdr/io/*.java \
			  src/jdr/io/eps/*.java \
			  src/jdr/io/eps/operators/*.java \
			  src/jdr/marker/*.java \
			  src/jdrresources/*.java \
			  src/jdrresources/filter/*.java \
			  src/jdrresources/numfield/*.java \
			  src/flowframtk/*.java \
			  src/flowframtk/dialog/*.java \
			  src/jdrview/*.java 
	mkdir -p doc/html
	cd src; javadoc -quiet -classpath ../lib/javahelp2.jar -d ../doc/html com */*.java */*.java */*/*.java */*/*/*.java */*/*/*/*.java
	cd doc/html/com/dickimawbooks/jdr; ln -f -s ../../../../../../../../src/images

lib/resources	:
	cd lib ; ln -s ../resources

lib/icons	:
	cd lib ; ln -s ../icons

$(DISTTARGET)/flowframtk/INSTALL	: doc/version.tex
	echo "  Run the installer flowframtk-$(FLOWFRAMTK_VERSION)-setup.jar" >> $(DISTTARGET)/flowframtk/INSTALL
	
clean	:
	make -C src clean
	make -C doc/manual squeaky clean
	\rm -f doc/html/*.{html,css}
	\rm -f -f doc/{uk,resources}
	\rm -f doc/version.tex
	\rm -f doc/jdrviewversion.tex
