include ../../Configure

HOME 	=	$(ROOT)/src/libdvo
AUTO	=	$(ROOT)/src/libautocode
ASRC	=	$(AUTO)/src
ADEF	=	$(AUTO)/def
LIB	= 	$(HOME)/lib
SRC	=	$(HOME)/src
MAN	=	$(HOME)/doc
INC	=	$(HOME)/include
DESTBIN	=	$(LBIN)
DESTLIB	=	$(LLIB)
DESTINC	=	$(LINC)
DESTMAN	=	$(LMAN)

CFLAGS	=	-I$(LINC) -D$(ARCH)

default: install

install: $(DESTLIB)/libdvo.a

libdvo: $(LIB)/libdvo.$(ARCH).a 

INCS = $(DESTINC)/dvo.h $(DESTINC)/autocode.h

OBJS = \
$(SRC)/coordops.$(ARCH).o	 \
$(SRC)/LoadPhotcodes.$(ARCH).o   \
$(SRC)/imreg_datatypes.$(ARCH).o \
$(SRC)/mosaic_astrom.$(ARCH).o   \
$(SRC)/fits_db.$(ARCH).o	 \
$(SRC)/photfits.$(ARCH).o        \
$(SRC)/dvo_image.$(ARCH).o       \
$(SRC)/dvo_image_raw.$(ARCH).o   \
$(SRC)/dvo_catalog.$(ARCH).o     \
$(SRC)/dvo_catalog_raw.$(ARCH).o       \
$(SRC)/dvo_catalog_mef.$(ARCH).o       \
$(SRC)/dvo_catalog_split.$(ARCH).o     \
$(SRC)/dvo_convert.$(ARCH).o           \
$(SRC)/dvo_convert_elixir.$(ARCH).o    \
$(SRC)/dvo_convert_loneos.$(ARCH).o    \
$(SRC)/dvo_convert_panstarrs.$(ARCH).o \
$(SRC)/dvo_convert_pmtest.$(ARCH).o \
$(SRC)/skyregion_io.$(ARCH).o    \
$(SRC)/skyregion_gsc.$(ARCH).o    \
$(SRC)/skyregion_ops.$(ARCH).o

AOBJ = \
$(ASRC)/coords.$(ARCH).o \
$(ASRC)/average.$(ARCH).o \
$(ASRC)/average-loneos.$(ARCH).o \
$(ASRC)/average-elixir.$(ARCH).o \
$(ASRC)/average-panstarrs.$(ARCH).o \
$(ASRC)/average-pmtest.$(ARCH).o \
$(ASRC)/secfilt.$(ARCH).o \
$(ASRC)/secfilt-loneos.$(ARCH).o \
$(ASRC)/secfilt-elixir.$(ARCH).o \
$(ASRC)/secfilt-panstarrs.$(ARCH).o \
$(ASRC)/measure.$(ARCH).o \
$(ASRC)/measure-loneos.$(ARCH).o \
$(ASRC)/measure-elixir.$(ARCH).o \
$(ASRC)/measure-panstarrs.$(ARCH).o \
$(ASRC)/missing.$(ARCH).o \
$(ASRC)/photcode.$(ARCH).o \
$(ASRC)/image.$(ARCH).o \
$(ASRC)/image-loneos.$(ARCH).o \
$(ASRC)/image-elixir.$(ARCH).o \
$(ASRC)/image-panstarrs.$(ARCH).o \
$(ASRC)/regimage.$(ARCH).o \
$(ASRC)/detreg.$(ARCH).o \
$(ASRC)/photreg.$(ARCH).o \
$(ASRC)/photreg-old.$(ARCH).o \
$(ASRC)/smpdata.$(ARCH).o \
$(ASRC)/spectrum.$(ARCH).o \
$(ASRC)/spectrum-ascii.$(ARCH).o \
$(ASRC)/Stars.$(ARCH).o \
$(ASRC)/GSCRegion.$(ARCH).o \
$(ASRC)/AddstarClientOptions.$(ARCH).o \
$(ASRC)/SkyRegion.$(ARCH).o

ACOM = $(ADEF)/autocode.c $(ADEF)/autocode.h $(ADEF)/common.h

$(OBJS): $(INCS) $(AOBJ)

$(AOBJ): $(ASRC)/%.$(ARCH).o : $(ADEF)/%.d $(ACOM)
	cd $(AUTO) && make install

$(DESTINC)/autocode.h:
	cd $(AUTO) && make install

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

$(LIB)/libdvo.$(ARCH).a: $(AOBJ) $(OBJS)
	@if [ ! -d $(LIB) ]; then mkdir -p $(LIB); fi
	rm -f $(LIB)/libdvo.$(ARCH).a
	ar rcv $(LIB)/libdvo.$(ARCH).a $(AOBJ) $(OBJS)
	$(RANLIB) $(LIB)/libdvo.$(ARCH).a

$(DESTINC)/%: $(INC)/%
	@if [ ! -d $(DESTINC) ]; then mkdir -p $(DESTINC); fi
	rm -f $(DESTINC)/$*
	cp $(INC)/$* $(DESTINC)/

tabletest: install
	gcc -L$(LLIB) -I$(LINC) -o tabletest $(SRC)/tabletest.c -ldvo -lFITS -lohana -lm

clean:
	rm -f */*~
	rm -f */#*
	rm -f */*.o
	rm -f */*.a
	cd $(AUTO) && make clean

dist: clean

.SUFFIXES: .$(ARCH).o

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