default: addstar
help:
	@echo "make options: addstar (default)"

include ../../Configure

HOME 	=	$(ROOT)/src/addstar
BIN	=	$(HOME)/bin
INC	= 	$(HOME)/include
SRC	=	$(HOME)/src
MAN	=	$(HOME)/doc
DESTBIN	=	$(LBIN)
DESTLIB	=	$(LLIB)
DESTINC	=	$(LINC)
DESTMAN	=	$(LMAN)

#  
INCS	= 	-I$(INC) -I$(LINC) -I$(XINC)
LIBS	= 	-L$(LLIB) -ldvo -lFITS -lohana -lz -lm
CFLAGS	=	$(INCS) -g
LFLAGS	=	$(LIBS) 

ADDSTAR = \
$(SRC)/addstar.$(ARCH).o \
$(SRC)/airmass.$(ARCH).o \
$(SRC)/args.$(ARCH).o \
$(SRC)/build_links.$(ARCH).o \
$(SRC)/calibrate.$(ARCH).o \
$(SRC)/check_permissions.$(ARCH).o \
$(SRC)/ConfigInit.$(ARCH).o \
$(SRC)/dump.$(ARCH).o \
$(SRC)/edge_check.$(ARCH).o \
$(SRC)/find_matches.$(ARCH).o \
$(SRC)/find_matches_closest.$(ARCH).o \
$(SRC)/find_matches_refstars.$(ARCH).o \
$(SRC)/find_subset.$(ARCH).o \
$(SRC)/gcatalog.$(ARCH).o \
$(SRC)/get2mass.$(ARCH).o \
$(SRC)/get2mass_as.$(ARCH).o \
$(SRC)/get2mass_dr2.$(ARCH).o \
$(SRC)/getgsc.$(ARCH).o \
$(SRC)/getusno.$(ARCH).o \
$(SRC)/gimages.$(ARCH).o \
$(SRC)/greference.$(ARCH).o \
$(SRC)/grefstars.$(ARCH).o \
$(SRC)/gregion_image.$(ARCH).o \
$(SRC)/gregion_match.$(ARCH).o \
$(SRC)/gregion_patch.$(ARCH).o \
$(SRC)/gregion_star.$(ARCH).o \
$(SRC)/gstars.$(ARCH).o \
$(SRC)/image-db.$(ARCH).o \
$(SRC)/in_image.$(ARCH).o \
$(SRC)/load_pt_catalog.$(ARCH).o \
$(SRC)/load_subpix.$(ARCH).o \
$(SRC)/mkcatalog.$(ARCH).o \
$(SRC)/opening_angle.$(ARCH).o \
$(SRC)/parse_time.$(ARCH).o \
$(SRC)/RegionOps.$(ARCH).o \
$(SRC)/replace_match.$(ARCH).o \
$(SRC)/SetSignals.$(ARCH).o \
$(SRC)/sort_lists.$(ARCH).o \
$(SRC)/update_coords.$(ARCH).o \
$(SRC)/wcatalog.$(ARCH).o \
$(SRC)/Shutdown.$(ARCH).o \
$(SRC)/rfits.$(ARCH).o \
$(SRC)/rtext.$(ARCH).o

MKACC-2MASS = \
$(SRC)/mkacc-2mass.$(ARCH).o \
$(SRC)/image-db.$(ARCH).o \
$(SRC)/check_permissions.$(ARCH).o \
$(SRC)/ConfigInit.$(ARCH).o \
$(SRC)/SetSignals.$(ARCH).o \
$(SRC)/conversions.$(ARCH).o \
$(SRC)/wimage.$(ARCH).o \
$(SRC)/get2mass_as.$(ARCH).o

EXTRA = \
$(SRC)/bracket.$(ARCH).o \
$(SRC)/find_proper.$(ARCH).o \
$(SRC)/gregion_match_glob.$(ARCH).o \
$(SRC)/gregions.$(ARCH).o \
$(SRC)/match_refstars.$(ARCH).o \

SERVER = \
$(SRC)/SocketOps.$(ARCH).o \
$(SRC)/ConfigInit.$(ARCH).o \
$(SRC)/args_server.$(ARCH).o \
$(SRC)/CheckPassword.$(ARCH).o \
$(SRC)/UpdateDatabase_Image.$(ARCH).o \
$(SRC)/UpdateDatabase_Reflist.$(ARCH).o \
$(SRC)/UpdateDatabase_Refcat.$(ARCH).o \
$(SRC)/airmass.$(ARCH).o \
$(SRC)/build_links.$(ARCH).o \
$(SRC)/calibrate.$(ARCH).o \
$(SRC)/find_matches.$(ARCH).o \
$(SRC)/find_matches_closest.$(ARCH).o \
$(SRC)/find_matches_refstars.$(ARCH).o \
$(SRC)/find_subset.$(ARCH).o \
$(SRC)/get2mass.$(ARCH).o \
$(SRC)/get2mass_as.$(ARCH).o \
$(SRC)/get2mass_dr2.$(ARCH).o \
$(SRC)/getgsc.$(ARCH).o \
$(SRC)/getusno.$(ARCH).o \
$(SRC)/greference.$(ARCH).o \
$(SRC)/gcatalog.$(ARCH).o \
$(SRC)/gimages.$(ARCH).o \
$(SRC)/gregion_image.$(ARCH).o \
$(SRC)/gregion_match.$(ARCH).o \
$(SRC)/gregion_patch.$(ARCH).o \
$(SRC)/gregion_star.$(ARCH).o \
$(SRC)/image-db.$(ARCH).o \
$(SRC)/in_image.$(ARCH).o \
$(SRC)/load_pt_catalog.$(ARCH).o \
$(SRC)/load_subpix.$(ARCH).o \
$(SRC)/mkcatalog.$(ARCH).o \
$(SRC)/RegionOps.$(ARCH).o \
$(SRC)/replace_match.$(ARCH).o \
$(SRC)/SetSignals.$(ARCH).o \
$(SRC)/sort_lists.$(ARCH).o \
$(SRC)/update_coords.$(ARCH).o \
$(SRC)/wcatalog.$(ARCH).o \
$(SRC)/Shutdown.$(ARCH).o \
$(SRC)/edge_check.$(ARCH).o \
$(SRC)/check_permissions.$(ARCH).o \
$(SRC)/opening_angle.$(ARCH).o \
$(SRC)/NewImage.$(ARCH).o \
$(SRC)/NewReflist.$(ARCH).o \
$(SRC)/NewRefcat.$(ARCH).o 

CLIENT = \
$(SRC)/SocketOps.$(ARCH).o \
$(SRC)/ConfigInit.$(ARCH).o \
$(SRC)/gstars.$(ARCH).o \
$(SRC)/grefstars.$(ARCH).o \
$(SRC)/load_subpix.$(ARCH).o \
$(SRC)/rfits.$(ARCH).o \
$(SRC)/parse_time.$(ARCH).o \
$(SRC)/rtext.$(ARCH).o \
$(SRC)/Shutdown.$(ARCH).o \
$(SRC)/SetSignals.$(ARCH).o \
$(SRC)/args_client.$(ARCH).o

default: $(PROGRAM)

ADDSTARC = $(SRC)/addstarc.$(ARCH).o $(CLIENT)
ADDSTARD = $(SRC)/addstard.$(ARCH).o $(SERVER)

$(ADDSTARC) : $(INC)/addstar.h
$(ADDSTARD) : $(INC)/addstar.h
$(ADDSTAR)  : $(INC)/addstar.h

addstar                : $(BIN)/addstar.$(ARCH)
$(BIN)/addstar.$(ARCH) : $(ADDSTAR)

addstard                : $(BIN)/addstard.$(ARCH)
$(BIN)/addstard.$(ARCH) : $(ADDSTARD)

addstarc                : $(BIN)/addstarc.$(ARCH)
$(BIN)/addstarc.$(ARCH) : $(ADDSTARC)

gztest                  : $(BIN)/gztest.$(ARCH)

mkacc-2mass                : $(BIN)/mkacc-2mass.$(ARCH)
$(BIN)/mkacc-2mass.$(ARCH) : $(MKACC-2MASS)
mkacc-2mass.install        : $(DESTBIN)/mkacc-2mass

INSTALL = addstar

# dependancy rules for binary code #########################
.PRECIOUS: %.$(ARCH).o
.PRECIOUS: $(BIN)/%.$(ARCH)

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

$(BIN)/%.$(ARCH) : $(SRC)/%.$(ARCH).o
	@if [ ! -d $(BIN) ]; then mkdir -p $(BIN); fi
	$(CC) $^ -o $@ $(LFLAGS)

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

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

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

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

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

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

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