default: install
help:
	@echo "make options: install libdvo clean dist"

include ../../Makefile.System
HOME 	=	$(ROOT)/src/libdvo
AUTO	=	$(ROOT)/src/libautocode
LIB	= 	$(HOME)/lib
SRC	=	$(HOME)/src
MAN	=	$(HOME)/doc
INC	=	$(HOME)/include
ASRC	=	$(AUTO)/src
AINC	=	$(AUTO)/include
ADEF	=	$(AUTO)/def
include ../../Makefile.Common

# programs may add their own internal requirements here
FULL_CFLAGS   = $(BASE_CFLAGS) -fPIC
FULL_CPPFLAGS = $(BASE_CPPFLAGS)
FULL_LDFLAGS  = $(BASE_LDFLAGS)

default: install
install: $(DESTLIB)/libdvo.a $(DESTLIB)/libdvo.$(DLLTYPE)
libdvo: $(LIB)/libdvo.$(ARCH).a $(LIB)/libdvo.$(ARCH).$(DLLTYPE)

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

OBJS = \
$(SRC)/version.$(ARCH).o	 \
$(SRC)/coordops.$(ARCH).o	 \
$(SRC)/dvo_photcode_ops.$(ARCH).o \
$(SRC)/LoadPhotcodes.$(ARCH).o   \
$(SRC)/LoadPhotcodesText.$(ARCH).o   \
$(SRC)/LoadPhotcodesFITS.$(ARCH).o   \
$(SRC)/SavePhotcodesText.$(ARCH).o   \
$(SRC)/SavePhotcodesFITS.$(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_catalog_create.$(ARCH).o    \
$(SRC)/dvo_catalog_chipcoords.$(ARCH).o \
$(SRC)/dvo_convert.$(ARCH).o           \
$(SRC)/dvo_convert_elixir.$(ARCH).o    \
$(SRC)/dvo_convert_loneos.$(ARCH).o    \
$(SRC)/dvo_convert_panstarrs_DEV_0.$(ARCH).o \
$(SRC)/skyregion_io.$(ARCH).o    \
$(SRC)/skyregion_gsc.$(ARCH).o    \
$(SRC)/skyregion_ops.$(ARCH).o

# $(SRC)/dvo_convert_panstarrs.$(ARCH).o \
# $(SRC)/dvo_convert_pmtest.$(ARCH).o \

include ../libautocode/Makefile.Targets

$(OBJS): $(INCS)
$(AOBJS): $(ADEF)/autocode.c $(ADEF)/autocode.h $(AINC)/autocode.h

$(AINC)/autocode.h: $(AINCS)

$(DESTINC)/autocode.h: $(AINC)/autocode.h
	@if [ ! -d $(DESTINC) ]; then mkdir -p $(DESTINC); fi
	rm -f $@
	cp $< $@

bar: $(DESTINC)/autocode.h

foo:
	@echo $(DESTINC)/autocode.h
	@echo $(AINC)/autocode.h
	@echo $(AINCS)

$(LIB)/libdvo.$(ARCH).a:  $(AOBJS) $(OBJS)
$(LIB)/libdvo.$(ARCH).$(DLLTYPE): $(AOBJS) $(OBJS)

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

$(ASRC)/%.$(ARCH).o : $(ADEF)/%.d
	echo "make $@ from $^"
	cd $(AUTO) && make $@

$(AINC)/%.h : $(ADEF)/%.d
	echo "make $@ from $^"
	cd $(AUTO) && make $@

$(AINC)/autocode.h: $(AINCS) $(ADEF)/common.h
	echo "make $@ from $^"
	cd $(AUTO) && make $@

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

clean: cleandef
cleandef:
	cd $(AUTO) && make clean
