#
#   Compile JFITS classes
#
#
JAVAC= javac
CLASSROOT=$(HOME)/.classes
SRCROOT=$(HOME)/jfits
PACKAGE=org/eso/fits

#J_OPT=-d $(CLASSROOT)
J_OPT=
JFLAGS = $(J_OPT)

#vpath  %.class $(CLASSROOT) $(CLASSPACK)

src =   Fits.java FitsException.java FitsKeyword.java \
	FitsTform.java FitsColumn.java \
	FitsData.java FitsTable.java FitsWCS.java FitsMatrix.java \
	FitsRGroup.java FitsHeader.java FitsHDUnit.java FitsFile.java \
	ListFits.java TestFits.java TestKeyword.java \
	SaveFits.java CopyFits.java CreateFits.java

obj =   $(notdir $(src:%.java=%.class))

# RULES:

.SUFFIXES: .java .class

%.class: %.java
	$(JAVAC) $(JFLAGS) $<
	cp $@ $(CLASSROOT)/$(PACKAGE)

# DEPENDENCIES

all: $(obj)
	@echo Library is updated

test: WriteFits SaveFits ListFits TestFits TestKeyword
	@echo  Test applications updated

.PHONY: all test doc jar clean

TestFits: TestFits.class  FitsFile.class
	chmod +x $(CLASSROOT)/$(PACKAGE)/TestFits.class

ListFits: ListFits.class  FitsFile.class
	chmod +x $(CLASSROOT)/$(PACKAGE)/ListFits.class

WriteFits: WriteFits.class  FitsFile.class
	chmod +x $(CLASSROOT)/$(PACKAGE)/WriteFits.class

SaveFits: SaveFits.class  FitsFile.class
	chmod +x $(CLASSROOT)/$(PACKAGE)/SaveFits.class

TestKeyword: TestKeyword.class FitsKeyword.class
	chmod +x $(CLASSROOT)/$(PACKAGE)/TestKeyword.class

doc:	$(src)
	javadoc -d $(SRCROOT)/docs -sourcepath $(SRCROOT) org.eso.fits

jar:    $(obj)
	cd ../../..; jar -cfv $(SRCROOT)/jfits.jar $(PACKAGE)/Fits*.class \
		$(PACKAGE)/TestFits.class $(PACKAGE)/ListFits.class

tar:    $(src)
	cd ../../..; tar czfv $(SRCROOT)/jfits.tgz $(PACKAGE)/*java \
		$(PACKAGE)/Makefile $(PACKAGE)/ChangeList.txt

clean:
	rm -f *.class *.html *.jar
	rm -f $(CLASSROOT)/$(PACKAGE)/*.class

FitsData.class:    Fits.class FitsException.class FitsHeader.class
FitsKeyword.class: Fits.class FitsException.class
FitsHeader.class:  FitsKeyword.class
FitsHDUnit.class:  FitsHeader.class FitsData.class
FitsFile.class:    FitsHDUnit.class
FitsRGroup.class:  FitsData.class
FitsMatrix.class:  FitsData.class FitsWCS.class
FitsTable.class:   FitsData.class FitsColumn.class
FitsColumn.class:  FitsTform.class Fits.class FitsException.class
TestKeyword.class: FitsKeyword.class
TestFits.class:    FitsFile.class
ListFits.class:    FitsFile.class
SaveFits.class:    FitsFile.class
CopyFits.class:    FitsFile.class
CreateFits.class:  FitsFile.class

