#########################################################################
## Makefile to build EROS suivi (light-curves) files reading programs 
## These programs are linked with SOPHYA library (www.sophya.org)
## SOPHYABASE environment variable should be defined    
## AND  define the ANALCPATH  here 
##         C. Magneville - R. Ansari  July 2007 
#########################################################################
include $(SOPHYABASE)/include/sophyamake.inc

OBJ = ${ANALCPATH}/obj/
EXE = ${ANALCPATH}/exe/
LIB = ${ANALCPATH}/lib/

#  template instanciation repository for OSF1-cxx
CXXREP = -ptr $(OBJ)AnaLC_cxxrep/



FSVLIBLIST = $(OBJ)fsvcache.o $(OBJ)filecache.o $(OBJ)fsvst.o $(OBJ)transfost.o \
             $(OBJ)convlim.o  $(OBJ)nomfits.o  $(OBJ)nomfits2.o

FSVLIBLISTXX = $(OBJ)lcproc.o 

FSVINCLIST = convlim.h filecache.h fsvcache.h fsvst.h lcproc.h \
             nomfits2.h nomfits.h swapbytes.h transfost.h


NBSLIBLIST = $(OBJ)nbgene.o $(OBJ)filtccd.o $(OBJ)courbe_nb.o

NBSINCLIST = $(FSVINCLIST) nbsread.h nbgene.h filtccd.h courbe_nb.h

all : lib anafsv checkfsv chkfsv exeuser

lib : fsvlib nbslib

exeuser : nbsread_squel nbsread_ppf nbsread_base nbsread_bosse nbsread_db \
          nbsread_stlist

clean : cleanobj cleanlib cleanexe
	echo 'Done: clean'

cleanobj :
	rm -rf $(OBJ)AnaLC_cxxrep/
	rm -f $(FSVLIBLIST) $(FSVLIBLISTXX)
	rm -f $(NBSLIBLIST) $(OBJ)nbsread.o

cleanexe :
	rm -f $(OBJ)anafsv.o           $(EXE)anafsv
	rm -f $(OBJ)checkfsv.o         $(EXE)checkfsv
	rm -f $(OBJ)chkfsv.o           $(EXE)chkfsv
	rm -f $(OBJ)nbsreadu_squel.o   $(EXE)nbsread_squel
	rm -f $(OBJ)nbsreadu_ppf.o     $(EXE)nbsread_ppf
	rm -f $(OBJ)nbsreadu_base.o    $(EXE)nbsread_base
	rm -f $(OBJ)nbsreadu_bosse.o   $(EXE)nbsread_bosse
	rm -f $(OBJ)nbsreadu_db.o      $(EXE)nbsread_db
	rm -f $(OBJ)nbsreadu_stlist.o  $(EXE)nbsread_stlist

cleanlib :
	rm -f $(LIB)libfsv.a
	rm -f $(LIB)libfsv++.a
	rm -f $(LIB)libnbs.a

depend :
	mkdir $(OBJ)
	mkdir $(EXE)
	mkdir $(LIB)

########################
fsvlib :  $(LIB)libfsv.a $(LIB)libfsv++.a
	echo 'Done: libfsv.a libfsv++.a'

$(LIB)libfsv.a : $(FSVLIBLIST)
	$(AR) $(ARFLAGS) $@ $? 

$(OBJ)fsvcache.o : fsvcache.c  $(FSVINCLIST) 
	$(CCOMPILE) -o $(OBJ)fsvcache.o  fsvcache.c

$(OBJ)filecache.o : filecache.c  $(FSVINCLIST) 
	$(CCOMPILE) -o $(OBJ)filecache.o  filecache.c

$(OBJ)fsvst.o : fsvst.c  $(FSVINCLIST) 
	$(CCOMPILE) -o $(OBJ)fsvst.o  fsvst.c

$(OBJ)transfost.o : transfost.c  $(FSVINCLIST) 
	$(CCOMPILE) -o $(OBJ)transfost.o  transfost.c

$(OBJ)convlim.o : convlim.c  $(FSVINCLIST) 
	$(CCOMPILE) -o $(OBJ)convlim.o  convlim.c

$(OBJ)nomfits.o : nomfits.c  $(FSVINCLIST) 
	$(CCOMPILE) -o $(OBJ)nomfits.o  nomfits.c

$(OBJ)nomfits2.o : nomfits2.c  $(FSVINCLIST) 
	$(CCOMPILE) -o $(OBJ)nomfits2.o  nomfits2.c


$(LIB)libfsv++.a : $(FSVLIBLISTXX)
	$(AR) $(ARFLAGS) $@ $? 

$(OBJ)lcproc.o : lcproc.cc  $(FSVINCLIST) lcproc.h
	$(CXXCOMPILE) $(CXXREP) -o $(OBJ)lcproc.o  lcproc.cc

########################
nbslib :  $(LIB)libnbs.a $(OBJ)nbsread.o
	echo 'Done: libnbs.a'

$(LIB)libnbs.a : $(NBSLIBLIST)
	$(AR) $(ARFLAGS) $@ $? 

$(OBJ)nbgene.o : nbgene.cc $(NBSINCLIST)
	$(CXXCOMPILE) $(CXXREP) -o $(OBJ)nbgene.o nbgene.cc

$(OBJ)filtccd.o : filtccd.cc $(NBSINCLIST)
	$(CXXCOMPILE) $(CXXREP) -o $(OBJ)filtccd.o filtccd.cc

$(OBJ)courbe_nb.o : courbe_nb.cc $(NBSINCLIST)
	$(CXXCOMPILE) $(CXXREP) -o $(OBJ)courbe_nb.o courbe_nb.cc

########################
$(OBJ)nbsread.o : nbsread.cc nbsread.h $(NBSINCLIST)
	$(CXXCOMPILE) $(CXXREP) -o $(OBJ)nbsread.o  nbsread.cc

########################
#------------------------------
anafsv : $(EXE)anafsv
	echo 'Done: anafsv'

$(EXE)anafsv : $(OBJ)anafsv.o $(LIB)libfsv.a
	$(CXXLINK) $(CXXREP) -o $(EXE)anafsv $(OBJ)anafsv.o $(LIB)libfsv.a $(LIB)libfsv++.a $(SOPHYAEXTSLBLIST)

$(OBJ)anafsv.o : anafsv.cc  $(FSVINCLIST) lcproc.h
	$(CXXCOMPILE) $(CXXREP) -o $(OBJ)anafsv.o  anafsv.cc

#------------------------------
checkfsv : $(EXE)checkfsv
	echo 'Done: checkfsv'

$(EXE)checkfsv : $(OBJ)checkfsv.o $(LIB)libfsv.a
	$(CXXLINK) $(CXXREP) -o $(EXE)checkfsv $(OBJ)checkfsv.o $(LIB)libfsv.a $(SOPHYAEXTSLBLIST)

$(OBJ)checkfsv.o : checkfsv.cc  $(FSVINCLIST)
	$(CXXCOMPILE) $(CXXREP) -o $(OBJ)checkfsv.o  checkfsv.cc

#------------------------------
chkfsv : $(EXE)chkfsv
	echo 'Done: chkfsv'

$(EXE)chkfsv : $(OBJ)chkfsv.o $(LIB)libfsv.a
	$(CXXLINK) $(CXXREP) -o $(EXE)chkfsv $(OBJ)chkfsv.o $(LIB)libfsv.a $(SOPHYAEXTSLBLIST)

$(OBJ)chkfsv.o : chkfsv.cc  $(FSVINCLIST)
	$(CXXCOMPILE) $(CXXREP) -o $(OBJ)chkfsv.o  chkfsv.cc

################################################
#------------------------------
nbsread_squel : $(EXE)nbsread_squel
	echo 'done: nbsread_squel'

$(EXE)nbsread_squel : $(OBJ)nbsreadu_squel.o $(OBJ)nbsread.o $(LIB)libfsv.a $(LIB)libnbs.a
	$(CXXLINK) $(CXXREP) -o $(EXE)nbsread_squel $(OBJ)nbsread.o $(OBJ)nbsreadu_squel.o \
                      $(LIB)libnbs.a $(LIB)libfsv.a $(SOPHYAEXTSLBLIST)

$(OBJ)nbsreadu_squel.o : nbsreadu_squel.cc $(NBSINCLIST)
	$(CXXCOMPILE) $(CXXREP) -o $(OBJ)nbsreadu_squel.o  nbsreadu_squel.cc

#------------------------------
nbsread_ppf : $(EXE)nbsread_ppf
	echo 'done: nbsread_ppf'

$(EXE)nbsread_ppf : $(OBJ)nbsreadu_ppf.o $(OBJ)nbsread.o $(LIB)libfsv.a $(LIB)libnbs.a
	$(CXXLINK) $(CXXREP) -o $(EXE)nbsread_ppf $(OBJ)nbsread.o $(OBJ)nbsreadu_ppf.o \
                      $(LIB)libnbs.a $(LIB)libfsv.a $(SOPHYAEXTSLBLIST)

$(OBJ)nbsreadu_ppf.o : nbsreadu_ppf.cc $(NBSINCLIST)
	$(CXXCOMPILE) $(CXXREP) -o $(OBJ)nbsreadu_ppf.o  nbsreadu_ppf.cc

#------------------------------
nbsread_base : $(EXE)nbsread_base
	echo 'done: nbsread_base'

$(EXE)nbsread_base : $(OBJ)nbsreadu_base.o $(OBJ)nbsread.o $(LIB)libfsv.a $(LIB)libnbs.a
	$(CXXLINK) $(CXXREP) -o $(EXE)nbsread_base $(OBJ)nbsread.o $(OBJ)nbsreadu_base.o \
                      $(LIB)libnbs.a $(LIB)libfsv.a $(SOPHYAEXTSLBLIST)

$(OBJ)nbsreadu_base.o : nbsreadu_base.cc $(NBSINCLIST)
	$(CXXCOMPILE) $(CXXREP) -o $(OBJ)nbsreadu_base.o  nbsreadu_base.cc

#------------------------------
nbsread_bosse : $(EXE)nbsread_bosse
	echo 'done: nbsread_bosse'

$(EXE)nbsread_bosse : $(OBJ)nbsreadu_bosse.o $(OBJ)nbsread.o $(LIB)libfsv.a $(LIB)libnbs.a
	$(CXXLINK) $(CXXREP) -o $(EXE)nbsread_bosse $(OBJ)nbsread.o $(OBJ)nbsreadu_bosse.o \
                      $(LIB)libnbs.a $(LIB)libfsv.a $(SOPHYAEXTSLBLIST)

$(OBJ)nbsreadu_bosse.o : nbsreadu_bosse.cc $(NBSINCLIST)
	$(CXXCOMPILE) $(CXXREP) -o $(OBJ)nbsreadu_bosse.o  nbsreadu_bosse.cc

#------------------------------
nbsread_db : $(EXE)nbsread_db
	echo 'done: nbsread_db'

$(EXE)nbsread_db : $(OBJ)nbsreadu_db.o $(OBJ)nbsread.o $(LIB)libfsv.a $(LIB)libnbs.a
	$(CXXLINK) $(CXXREP) -o $(EXE)nbsread_db $(OBJ)nbsread.o $(OBJ)nbsreadu_db.o \
                      $(LIB)libnbs.a $(LIB)libfsv.a $(SOPHYAEXTSLBLIST)

$(OBJ)nbsreadu_db.o : nbsreadu_db.cc $(NBSINCLIST)
	$(CXXCOMPILE) $(CXXREP) -o $(OBJ)nbsreadu_db.o  nbsreadu_db.cc

#------------------------------
nbsread_stlist : $(EXE)nbsread_stlist
	echo 'done: nbsread_stlist'

$(EXE)nbsread_stlist : $(OBJ)nbsreadu_stlist.o $(OBJ)nbsread.o $(LIB)libfsv.a $(LIB)libnbs.a
	$(CXXLINK) $(CXXREP) -o $(EXE)nbsread_stlist $(OBJ)nbsread.o $(OBJ)nbsreadu_stlist.o \
                      $(LIB)libnbs.a $(LIB)libfsv.a $(SOPHYAEXTSLBLIST)

$(OBJ)nbsreadu_stlist.o : nbsreadu_stlist.cc $(NBSINCLIST)
	$(CXXCOMPILE) $(CXXREP) -o $(OBJ)nbsreadu_stlist.o  nbsreadu_stlist.cc
