default: all
help:
	@echo "make options: all imregister etc (default)"

include ../../Configure
HOME    =       $(ROOT)/src/imregister
BIN	=	$(HOME)/bin
LIB	=	$(HOME)/lib
SRC	=	$(HOME)/src
MAN	=	$(HOME)/doc
INC	= 	$(HOME)/include
include ../../Makefile.Common

BASEDIR =	$(HOME)/base
DETREND =	$(HOME)/detrend
PHOTREG =	$(HOME)/photreg
IMREG   =	$(HOME)/imreg
IMPHOT  =	$(HOME)/imphot
SPREG   =	$(HOME)/spreg

LDFLAGS := 	-ldvo -lFITS -lohana $(LDFLAGS)

# programs which should be installed
INSTALL = \
detregister  detsearch    \
imregister   imstatreg    \
imsort       imsearch     \
showiminfo   convertimreg \
imregtable   photcode	  \
photsearch   photreg      \
cameraconfig filtnames    \
imphotsearch 

# program under development, not installed
DEVEL = spregister spsearch imphotmerge

IMPHOTOBJ = \
$(IMPHOT)/args.$(ARCH).o \
$(IMPHOT)/db_load.$(ARCH).o \
$(IMPHOT)/dumpfits.$(ARCH).o \
$(IMPHOT)/modify.$(ARCH).o \
$(IMPHOT)/output.$(ARCH).o \
$(IMPHOT)/rfits.$(ARCH).o \
$(IMPHOT)/rtext.$(ARCH).o \
$(IMPHOT)/subset.$(ARCH).o

IMOBJ  = \
$(IMREG)/delete.$(ARCH).o \
$(IMREG)/iminfo.$(ARCH).o \
$(IMREG)/load_probes.$(ARCH).o  \
$(IMREG)/match.$(ARCH).o  \
$(IMREG)/modify.$(ARCH).o \
$(IMREG)/newimages.$(ARCH).o \
$(IMREG)/output.$(ARCH).o \
$(IMREG)/unique.$(ARCH).o \
$(IMREG)/cadc.$(ARCH).o   \
$(IMREG)/mosaics.$(ARCH).o   \
$(IMREG)/ConfigPID.$(ARCH).o   \
$(IMREG)/SetSignals.$(ARCH).o   \
$(IMREG)/rconnect.$(ARCH).o   \
$(IMREG)/FifoOps.$(ARCH).o   \
$(IMREG)/SockScan.$(ARCH).o   \
$(IMREG)/submit.$(ARCH).o \
$(IMREG)/imregclient.$(ARCH).o

SPOBJ  = \
$(SPREG)/delete.$(ARCH).o   \
$(SPREG)/match.$(ARCH).o    \
$(SPREG)/modify.$(ARCH).o   \
$(SPREG)/output.$(ARCH).o   \
$(SPREG)/unique.$(ARCH).o   \
$(SPREG)/spinfo.$(ARCH).o   \
$(SPREG)/showinfo.$(ARCH).o \
$(SPREG)/ConfigInit.$(ARCH).o

PHOTOBJ  = \
$(PHOTREG)/delete.$(ARCH).o  \
$(PHOTREG)/match.$(ARCH).o   \
$(PHOTREG)/convert.$(ARCH).o \
$(PHOTREG)/output.$(ARCH).o  \
$(PHOTREG)/getImageData.$(ARCH).o

DETOBJ  = \
$(DETREND)/criteria.$(ARCH).o  \
$(DETREND)/delete.$(ARCH).o    \
$(DETREND)/entry.$(ARCH).o     \
$(DETREND)/image.$(ARCH).o     \
$(DETREND)/imdef.$(ARCH).o     \
$(DETREND)/match.$(ARCH).o     \
$(DETREND)/modify.$(ARCH).o    \
$(DETREND)/mosaic.$(ARCH).o    \
$(DETREND)/output.$(ARCH).o    \
$(DETREND)/recipe.$(ARCH).o    \
$(DETREND)/select.$(ARCH).o    \
$(DETREND)/unique.$(ARCH).o    \
$(DETREND)/altpath.$(ARCH).o   \
$(DETREND)/db_names.$(ARCH).o   \
$(DETREND)/usage.$(ARCH).o

BASEOBJ = \
$(BASEDIR)/ConfigCamera.$(ARCH).o \
$(BASEDIR)/ConfigFilter.$(ARCH).o \
$(BASEDIR)/ConfigInit.$(ARCH).o   \
$(BASEDIR)/WriteFIFO.$(ARCH).o    \
$(BASEDIR)/get_fwhm.$(ARCH).o     \
$(BASEDIR)/misc.$(ARCH).o         \
$(BASEDIR)/version.$(ARCH).o      \
$(BASEDIR)/parse_time.$(ARCH).o   \
$(BASEDIR)/fits_scan_nchar.$(ARCH).o \
$(BASEDIR)/sort.$(ARCH).o

all: $(INSTALL) $(DEVEL)

$(INSTALL) $(DEVEL) : % : $(BIN)/%.$(ARCH)

IR1 = $(SRC)/imsearch.$(ARCH).o     $(IMREG)/args.imsearch.$(ARCH).o      $(IMOBJ)   $(BASEOBJ)
IR2 = $(SRC)/imregister.$(ARCH).o   $(IMREG)/args.imregister.$(ARCH).o    $(IMOBJ)   $(BASEOBJ)
IR3 = $(SRC)/imregister.$(ARCH).o   $(IMREG)/args.imregister.$(ARCH).o    $(IMOBJ)   $(BASEOBJ)
IR4 = $(SRC)/imregister.$(ARCH).o   $(IMREG)/args.imregister.$(ARCH).o    $(IMOBJ)   $(BASEOBJ)
IR5 = $(SRC)/imregister.$(ARCH).o   $(IMREG)/args.imregister.$(ARCH).o    $(IMOBJ)   $(BASEOBJ)
IR6 = $(SRC)/imregister.$(ARCH).o   $(IMREG)/args.imregister.$(ARCH).o    $(IMOBJ)   $(BASEOBJ)
SR1 = $(SRC)/spregister.$(ARCH).o   $(SPREG)/args.spregister.$(ARCH).o    $(SPOBJ)   $(BASEOBJ)
SR2 = $(SRC)/spsearch.$(ARCH).o     $(SPREG)/args.spsearch.$(ARCH).o      $(SPOBJ)   $(BASEOBJ)
DR1 = $(SRC)/detregister.$(ARCH).o  $(DETREND)/args.detregister.$(ARCH).o $(DETOBJ)  $(BASEOBJ)
DR2 = $(SRC)/detsearch.$(ARCH).o    $(DETREND)/args.detsearch.$(ARCH).o   $(DETOBJ)  $(BASEOBJ)
PR1 = $(SRC)/photreg.$(ARCH).o      $(PHOTREG)/args.photreg.$(ARCH).o     $(PHOTOBJ) $(BASEOBJ)
PR2 = $(SRC)/photsearch.$(ARCH).o   $(PHOTREG)/args.photsearch.$(ARCH).o  $(PHOTOBJ) $(BASEOBJ)

$(IR1) : $(INC)/imreg.h $(INC)/imregister.h
$(IR2) : $(INC)/imreg.h $(INC)/imregister.h
$(IR3) : $(INC)/imreg.h $(INC)/imregister.h
$(IR4) : $(INC)/imreg.h $(INC)/imregister.h
$(IR5) : $(INC)/imreg.h $(INC)/imregister.h
$(IR6) : $(INC)/imreg.h $(INC)/imregister.h
$(SR1) : $(INC)/spreg.h $(INC)/imregister.h
$(SR2) : $(INC)/spreg.h $(INC)/imregister.h
$(DR1) : $(INC)/detrend.h $(INC)/imregister.h
$(DR2) : $(INC)/detrend.h $(INC)/imregister.h
$(PR1) : $(INC)/photreg.h $(INC)/imregister.h
$(PR2) : $(INC)/photreg.h $(INC)/imregister.h

# special rules:
$(BIN)/imsearch.$(ARCH)     : $(IR1)
$(BIN)/imregister.$(ARCH)   : $(IR2)
$(BIN)/imstatreg.$(ARCH)    : $(IR3)
$(BIN)/showiminfo.$(ARCH)   : $(IR4)
$(BIN)/imregtable.$(ARCH)   : $(IR5)
$(BIN)/convertimreg.$(ARCH) : $(IR6)
$(BIN)/detregister.$(ARCH)  : $(DR1)
$(BIN)/detsearch.$(ARCH)    : $(DR2)
$(BIN)/photreg.$(ARCH)      : $(PR1)
$(BIN)/photsearch.$(ARCH)   : $(PR2)
$(BIN)/spregister.$(ARCH)   : $(SR1)
$(BIN)/spsearch.$(ARCH)     : $(SR2)

#$(BIN)/imphotsearch.$(ARCH) : $(SRC)/imphotsearch.$(ARCH).o $(IP) ; $(CC) $^ -o $@ $(LFLAGS)
#$(BIN)/imsort.$(ARCH)       : $(BIN)/imregister.$(ARCH) ; rm -f $(BIN)/imsort.$(ARCH) ; cp $(BIN)/imregister.$(ARCH) $(BIN)/imsort.$(ARCH) 

# utilities #################################################

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

%.rebuild :
	rm -f $(BIN)/$*.$(ARCH)
	make $(DESTBIN)/$*

%.install:
	make $(DESTBIN)/$*

install:
	for i in $(INSTALL); do make $$i.install || exit; done
