APPNAME = PhotoPrint
STUBDIR = /System/Library/Frameworks/JavaVM.framework/Resources/MacOS
REZDIR = $(APPNAME).app/Contents/Resources
SOURCES = AboutBox.java \
          ContactSheet.java \
          ContactSheets.java \
	  ErrorDialog.java \
	  HorizontalLayout.java \
          MRJStuff.java \
          AppleStuff.java \
	  PhotoDialog.java \
	  PhotoPrint.java \
          PicCountListener.java \
	  Pict.java \
	  Picture.java \
	  PopupHandler.java \
	  ProgressDialog.java \
	  PrefsDialog.java \
	  VerticalLayout.java

CLASSES = $(SOURCES:.java=.class)
JARREZ = icone/icone.gif buildtime PhotoPrintStrings.properties
JAVAC = javac -source 1.4 -target 1.4

app : $(APPNAME).jar
	rm -rf $(APPNAME).app
	mkdir -p $(APPNAME).app/Contents/MacOS
	echo "APPLPPrn" > $(APPNAME).app/Contents/PkgInfo
	cp MacOS/Info.plist $(APPNAME).app/Contents/
	cp $(STUBDIR)/JavaApplicationStub $(APPNAME).app/Contents/MacOS/
	mkdir -p $(REZDIR)/Java
	cp icone/icone.icns $(REZDIR)/
	cp MacOS/MRJApp.properties $(REZDIR)/
	cp $(APPNAME).jar $(REZDIR)/Java/
	setfile -a B $(APPNAME).app

jar : $(APPNAME).jar

$(APPNAME).jar : $(CLASSES) $(JARREZ) manifest-info
	rm -f $(APPNAME).jar
	date "+%Y-%m-%d %H:%M:%S" > buildtime
	jar cmf manifest-info $(APPNAME).jar *.class $(JARREZ) PhotoPrintStrings_*.properties

buildtime :
	date "+%Y-%m-%d %H:%M:%S" > buildtime

%.class : %.java
	$(JAVAC) $<

MRJStuff.class : MRJStuff.java
	$(JAVAC) MRJStuff.java || touch $@

AppleStuff.class : AppleStuff.java
	$(JAVAC) AppleStuff.java || touch $@

.PHONY:doc

doc : doc/PhotoPrint.tex
	cd doc; pdftex \&pdflatex PhotoPrint.tex
	cd doc; tth -e2 PhotoPrint.tex

clean :
	rm -f *.class
	rm -f doc/*.aux doc/*.log doc/*.out doc/*.toc

clobber : clean
	rm -rf $(APPNAME).jar $(APPNAME).app buildtime
	rm -rf doc/PhotoPrint.html doc/PhotoPrint.pdf
