include ../../../Configure

default: all

HOME    =       $(ROOT)/src/opihi
BIN     =       $(HOME)/bin
LIB     =       $(HOME)/lib
INC     =       $(HOME)/include
SDIR    =       $(HOME)/dvo
#
DESTBIN =       $(LBIN)
DESTLIB =       $(LLIB)
DESTINC =       $(LINC)
DESTMAN =       $(LMAN)
DESTHLP =       $(LHLP)/dvo
#  
INCS    =       -I$(INC) -I$(LINC) -I$(XINC)
LFLAGS  =       -L$(LLIB) -L$(LIB)
LIBS1   =       -lFITS -lsocket -lnsl -lreadline -ltermcap -lohana -lm
LIBS2   =       -lbasiccmd -ldatacmd -lastrocmd -lshell -ldata 
LIBS    =       $(LIBS2) $(LIBS1) 
CFLAGS  =       $(INCS) -DHELPDIR_DEFAULT=$(DESTHLP)
CCFLAGS =       $(LIBS) 

# dvo user commands and support functions ########################

dvofuncs = \
$(SDIR)/init.$(ARCH).o            	\
$(SDIR)/ImageOps.$(ARCH).o		\
$(SDIR)/ImageSelection.$(ARCH).o	\
$(SDIR)/LoadImages.$(ARCH).o		\
$(SDIR)/aregion.$(ARCH).o               \
$(SDIR)/compare.$(ARCH).o               \
$(SDIR)/find_regions.$(ARCH).o	  	\
$(SDIR)/get_regions.$(ARCH).o           \
$(SDIR)/match_image.$(ARCH).o		\
$(SDIR)/photometry.$(ARCH).o            \
$(SDIR)/dvomisc.$(ARCH).o		\
$(SDIR)/region_list.$(ARCH).o		\
$(SDIR)/dvo.$(ARCH).o

dvocmds = \
$(SDIR)/avextract.$(ARCH).o	  	\
$(SDIR)/badimages.$(ARCH).o	  	\
$(SDIR)/calextract.$(ARCH).o      	\
$(SDIR)/calmextract.$(ARCH).o     	\
$(SDIR)/catalog.$(ARCH).o	  	\
$(SDIR)/ccd.$(ARCH).o             	\
$(SDIR)/cmatch.$(ARCH).o	  	\
$(SDIR)/cmd.$(ARCH).o             	\
$(SDIR)/cmpload.$(ARCH).o	  	\
$(SDIR)/cmpread.$(ARCH).o	  	\
$(SDIR)/ddmags.$(ARCH).o	  	\
$(SDIR)/detrend.$(ARCH).o	  	\
$(SDIR)/dmagaves.$(ARCH).o	  	\
$(SDIR)/dmagmeas.$(ARCH).o	  	\
$(SDIR)/dmags.$(ARCH).o		  	\
$(SDIR)/dmt.$(ARCH).o		  	\
$(SDIR)/elixir.$(ARCH).o                \
$(SDIR)/fitcolors.$(ARCH).o             \
$(SDIR)/gcat.$(ARCH).o		  	\
$(SDIR)/gimages.$(ARCH).o	  	\
$(SDIR)/gstar.$(ARCH).o		  	\
$(SDIR)/images.$(ARCH).o	  	\
$(SDIR)/imbox.$(ARCH).o		  	\
$(SDIR)/imdata.$(ARCH).o	  	\
$(SDIR)/imdense.$(ARCH).o	  	\
$(SDIR)/imextract.$(ARCH).o	  	\
$(SDIR)/imlist.$(ARCH).o	  	\
$(SDIR)/imphot.$(ARCH).o	  	\
$(SDIR)/imrough.$(ARCH).o	  	\
$(SDIR)/imsearch.$(ARCH).o	  	\
$(SDIR)/imstats.$(ARCH).o	  	\
$(SDIR)/lcat.$(ARCH).o		  	\
$(SDIR)/lcurve.$(ARCH).o	  	\
$(SDIR)/lightcurve.$(ARCH).o	  	\
$(SDIR)/mextract.$(ARCH).o	  	\
$(SDIR)/pcat.$(ARCH).o		  	\
$(SDIR)/photcodes.$(ARCH).o	  	\
$(SDIR)/pmeasure.$(ARCH).o	  	\
$(SDIR)/procks.$(ARCH).o	  	\
$(SDIR)/skycoverage.$(ARCH).o	  	\
$(SDIR)/showtile.$(ARCH).o	  	\
$(SDIR)/simage.$(ARCH).o	  	\
$(SDIR)/subpix.$(ARCH).o 		

dvo = $(dvofuncs) $(dvocmds)

libs = \
$(DESTLIB)/libshell.a \
$(DESTLIB)/libdata.a \
$(DESTLIB)/libbasiccmd.a \
$(DESTLIB)/libastrocmd.a \
$(DESTLIB)/libdatacmd.a

all: dvo

dvo: $(BIN)/dvo.$(ARCH)
	@echo done

$(BIN)/dvo.$(ARCH) : $(dvo) $(libs)

install: $(DESTBIN)/dvo help

help: cmd.basic.help cmd.data.help cmd.astro.help dvo.help

# utilities #################################################
$(BIN)/%.$(ARCH):
	@if [ ! -d $(BIN) ]; then mkdir -p $(BIN); fi
	$(CC) $^ -o $@ $(LFLAGS) $(LIBS)
	@echo "compiled $*"
	@echo ""

$(DESTBIN)/%: $(BIN)/%.$(ARCH) 
	@if [ ! -d $(DESTBIN) ]; then mkdir -p $(DESTBIN); fi
	rm -f $(DESTBIN)/$*
	cp $(BIN)/$*.$(ARCH) $(DESTBIN)/$*
	@echo "installed $*"
	@echo ""

$(LIB)/%.$(ARCH).a:
	@if [ ! -d $(LIB) ]; then mkdir -p $(LIB); fi
	rm -f $@
	ar rcv $@ $^ 
	$(RANLIB) $@
	@echo "compiled library $*"
	@echo ""

$(DESTLIB)/%.a: $(LIB)/%.$(ARCH).a
	@if [ ! -d $(DESTLIB) ]; then mkdir -p $(DESTLIB); fi
	@echo ""
	rm -f $@
	cp $^ $@

clean:
	rm -f $(BIN)/*.$(ARCH)
	rm -f $(LIB)/*.$(ARCH).a
	rm -f `find . -name "*.o"`
	rm -f `find . -name "*~"`
	rm -f `find . -name "#*"`

dist: clean
	rm -f $(BIN)/*
	rm -f $(LIB)/*

lib%.clean:
	rm -f $(LIB)/lib$*.$(ARCH).a
	rm -f $($*)
	@echo ""

%.clean:
	rm -f $(BIN)/$*.$(ARCH)
	@echo ""

%.$(ARCH).o : %.c
	$(CC) $(CFLAGS) -c $*.c -o $@

%.help:
	@if [ ! -d $(DESTHLP) ]; then mkdir -p $(DESTHLP); fi
	rm -f $(HOME)/$*/help/*~
	rm -f $(HOME)/$*/help/#*
	for i in `find $(HOME)/$*/help -type f -maxdepth 1`; do cp -f $$i $(DESTHLP); done

## -*- makefile -*- 
# deprecated functions: verify & delete
#$(SDIR)/abszero.$(ARCH).o \
#$(SDIR)/cals.$(ARCH).o \
#$(SDIR)/dumpmags.$(ARCH).o \
#$(SDIR)/extract.$(ARCH).o \
#$(SDIR)/gtypes.$(ARCH).o \
#$(SDIR)/photresid.$(ARCH).o \
#$(SDIR)/resid.$(ARCH).o \
#$(SDIR)/zeropts.$(ARCH).o
#$(SDIR)/objload.$(ARCH).o \ - make sure we have vect to tv
#$(SDIR)/ccdextract.$(ARCH).o \
#$(SDIR)/cmdextract.$(ARCH).o \
#$(SDIR)/dmagextract.$(ARCH).o \
#$(SDIR)/ddmagextract.$(ARCH).o \

# future functions, not fully implemented
#$(SDIR)/detrend.$(ARCH).o \
#$(SDIR)/getxtra.$(ARCH).o \
#$(SDIR)/addxtra.$(ARCH).o \

# functions that need to be updated
#$(SDIR)/gregions.$(ARCH).o \

