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

# make all the applications
all	: jpgfdraw jdrview ajr2jdr ajr2tex eps2jdr jdr2ajr \
	  jdr2eps jdr2png jdr2svg jdr2tex

demo	: jpgfdraw
	jpgfdraw -experimental

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

# make the distribution
dist	: all doc/html/index.html inno-setup/jpgfdraw.iss $(DISTTARGET)/jpgfdraw/INSTALL
	make -C doc/manual helpset
	mkdir -p $(DISTTARGET)/jpgfdraw
	mkdir -p $(DISTTARGET)/jpgfdraw-$(JPGFDRAW_VERSION)/doc
	rsync -r -L --exclude=\*.svn  bin $(DISTTARGET)/jpgfdraw-$(JPGFDRAW_VERSION)
	rsync -r -L --exclude=\*.svn examples $(DISTTARGET)/jpgfdraw-$(JPGFDRAW_VERSION)
	rsync -r -L --exclude=\*.svn lib $(DISTTARGET)/jpgfdraw-$(JPGFDRAW_VERSION)
	cp doc/manual/jdrutils-*.pdf $(DISTTARGET)/jpgfdraw-$(JPGFDRAW_VERSION)/doc/
	cp doc/manual/jdrview-*.pdf $(DISTTARGET)/jpgfdraw-$(JPGFDRAW_VERSION)/doc/
	cp doc/manual/jpgfdraw-*.pdf $(DISTTARGET)/jpgfdraw-$(JPGFDRAW_VERSION)/doc/
	cp doc/manual/jpgfdraw-en-GB.pdf $(DISTTARGET)/jpgfdraw
	cp BUGS $(DISTTARGET)/jpgfdraw-$(JPGFDRAW_VERSION)/
	$(INNOSETUP) /cc inno-setup/jpgfdraw.iss
	mv $(DISTTARGET)/jpgfdraw-$(JPGFDRAW_VERSION)/lib/resources/README $(DISTTARGET)/jpgfdraw
	cd $(DISTTARGET); zip -r $(DISTTARGET)/jpgfdraw/jpgfdraw-$(JPGFDRAW_VERSION).zip jpgfdraw-$(JPGFDRAW_VERSION)
	cp CHANGES $(DISTTARGET)/jpgfdraw
	cd $(DISTTARGET) ; ln -f -s ../trunk jpgfdraw-$(JPGFDRAW_VERSION)-src ; zip -r $(DISTTARGET)/jpgfdraw/jpgfdraw-$(JPGFDRAW_VERSION)-src.zip \
           jpgfdraw-$(JPGFDRAW_VERSION)-src/{bin,src,icons,examples,Makefile,CHANGES,DICT-CHANGES,README,TODO,BUGS,object-ids.txt} \
           jpgfdraw-$(JPGFDRAW_VERSION)-src/resources/dictionaries/ \
           jpgfdraw-$(JPGFDRAW_VERSION)-src/inno-setup/jpgfdraw-src.iss \
           jpgfdraw-$(JPGFDRAW_VERSION)-src/doc/{image-src,sharedimages} \
           jpgfdraw-$(JPGFDRAW_VERSION)-src/doc/manual/*.{tex,sty,perl,pl} \
           jpgfdraw-$(JPGFDRAW_VERSION)-src/doc/manual/{fixpaths,makehelpset,pgf2png} \
           jpgfdraw-$(JPGFDRAW_VERSION)-src/doc/manual/Makefile* \
           jpgfdraw-$(JPGFDRAW_VERSION)-src/doc/manual/images-* \
            -x "*.class" "*.swp" "*.bak" "*.zip" "*\.svn*"

inno-setup/jpgfdraw.iss	: inno-setup/jpgfdraw-src.iss src/jpgfdraw/JpgfDraw.java
	cat inno-setup/jpgfdraw-src.iss | sed "s/\"VERSION\"/\"$(JPGFDRAW_VERSION)\"/" > inno-setup/jpgfdraw.iss

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

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

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

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

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

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

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

eps2jdr	: lib/jdr.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

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
		make -C src ../lib/jdrresources.jar

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

lib/jdrview.jar	: src/jdrview/*.java
			make -C src ../lib/jdrview.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

doc/version.tex	: src/jpgfdraw/JpgfDraw.java 
		echo "\\version{$(JPGFDRAW_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/jpgfdraw/*.java \
			  src/jpgfdraw/dialog/*.java \
			  src/jdrview/*.java 
	mkdir -p doc/html
	cd src; javadoc -quiet -classpath ../lib/jh.jar -d ../doc/html uk */*.java */*.java */*/*.java */*/*/*.java */*/*/*/*.java
	cd doc/html/uk/ac/uea/cmp/nlct/jdr; ln -s ../../../../../../../../src/images

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

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

$(DISTTARGET)/jpgfdraw/INSTALL	: doc/version.tex
	echo "Windows:" > $(DISTTARGET)/jpgfdraw/INSTALL
	echo "" >> $(DISTTARGET)/jpgfdraw/INSTALL
	echo "  Run the installer jpgfdraw-$(JPGFDRAW_VERSION)-setup.exe" >> $(DISTTARGET)/jpgfdraw/INSTALL
	echo "" >> $(DISTTARGET)/jpgfdraw/INSTALL
	echo "Unix-Like (including MacOS X)" >> $(DISTTARGET)/jpgfdraw/INSTALL
	echo "" >> $(DISTTARGET)/jpgfdraw/INSTALL
	echo "  1. Extract jpgfdraw-$(JPGFDRAW_VERSION).zip to the directory of your choice." >> $(DISTTARGET)/jpgfdraw/INSTALL
	echo "     For example:" >> $(DISTTARGET)/jpgfdraw/INSTALL
	echo "" >> $(DISTTARGET)/jpgfdraw/INSTALL
	echo "      unzip -d /usr/local jpgfdraw-$(JPGFDRAW_VERSION).zip" >> $(DISTTARGET)/jpgfdraw/INSTALL
	echo "" >> $(DISTTARGET)/jpgfdraw/INSTALL
	echo "  2. Add the full path to jpgfdraw-$(JPGFDRAW_VERSION)/bin to the PATH environment variable." >> $(DISTTARGET)/jpgfdraw/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
