include $(SOPHYABASE)/include/sophyamake.inc

OBJ = ./Objs/
EXE = ./Objs/

PKGHLIST = bracqvers.h branap.h brparam.h racqumem.h brpaqu.h brtypes.h \
           brdiskw.h brfitsrd.h minifits.h brviscalc.h brbaseproc.h brproc.h brprocGain.h\
           mfacq.h  tmtacq.h racqueth.h  racquproc.h racqurw.h pciewrap.h  \
           swrapsock.h burawstream.h sockrawstream.h tmtacq.h

PKGOLIST = $(OBJ)branap.o  $(OBJ)brparam.o $(OBJ)racqumem.o $(OBJ)brpaqu.o \
           $(OBJ)brfitsrd.o $(OBJ)brdiskw.o  $(OBJ)minifits.o \
           $(OBJ)brbaseproc.o $(OBJ)brproc.o $(OBJ)brprocGain.o $(OBJ)brviscalc.o \
           $(OBJ)racqueth.o $(OBJ)racquproc.o $(OBJ)racqurw.o  $(OBJ)pciewrap.o \
           $(OBJ)swrapsock.o $(OBJ)sockrawstream.o $(OBJ)burawstream.o

EXELIST = $(EXE)mfacq $(EXE)vismfib $(EXE)specmfib $(EXE)treadmfib $(EXE)tmtacq \
          $(EXE)mfits2spec $(EXE)mcrd $(EXE)svv2mtx $(EXE)svv2mtx2 \
          $(EXE)chanum_1210 $(EXE)svv2mtx2_1210 \
          $(EXE)tsok $(EXE)traidio $(EXE)tstminifits $(EXE)tbrpaq

EXEOLIST = $(EXE)mfacq.o $(EXE)vismfib.o $(EXE)specmfib.o $(EXE)treadmfib.o $(EXE)tmtacq.o \
           $(EXE)mfits2spec.o $(EXE)mcrd.o $(EXE)svv2mtx.o $(EXE)svv2mtx2.o \
           $(EXE)chanum_1210.o $(EXE)svv2mtx2_1210.o \
           $(EXE)tsok.o $(EXE)traidio.o $(EXE)tstminifits.o $(EXE)tbrpaq.o

# all : traidio  tmtfft tstminifits tbrpaq tpciew tmtacq tstrdfits mfits2spec tsok 
# all : traidio  tmtfft tstminifits tmtacq tstrdfits mfits2spec tsok mcrd
all :  mfacq vismfib specmfib treadmfib tmtacq mfits2spec mcrd svv2mtx svv2mtx2 chanum_1210 svv2mtx2_1210 tsok traidio tstminifits tbrpaq

clean :
	rm -f $(PKGOLIST) $(EXELIST) $(EXEOLIST)

cleanold :
	rm -f *.o traidio tmtfft tstminifits tpciew tbrpaq tmtacq tstrdfits mfits2spec mcrd svv2mtx svv2mtx2 chanum_1210 svv2mtx2_1210
	rm -f Objs/* *.ppf *.fits 
########################################################

##   --------------
mfacq : $(EXE)mfacq
	echo '---mfacq made'

$(EXE)mfacq : $(OBJ)mfacq.o $(PKGOLIST)
	$(CXXLINK) -o $(EXE)mfacq $(OBJ)mfacq.o $(PKGOLIST) $(SOPHYAALLSLBLIST)

$(OBJ)mfacq.o : mfacq.cc $(PKGHLIST)
	$(CXXCOMPILE) -c -DNOPCIECARD -o $(OBJ)mfacq.o mfacq.cc 


tmtacq : $(EXE)tmtacq
	echo '---tmtacq made'

$(EXE)tmtacq : $(OBJ)tmtacq.o  $(PKGOLIST)
	$(CXXLINK) -o $(EXE)tmtacq $(OBJ)tmtacq.o $(PKGOLIST) $(SOPHYAALLSLBLIST)

$(OBJ)tmtacq.o : tmtacq.cc $(PKGHLIST)
	$(CXXCOMPILE) -c -DNOPCIECARD -o $(OBJ)tmtacq.o tmtacq.cc 

$(OBJ)brparam.o : brparam.cc $(PKGHLIST)
	$(CXXCOMPILE) -c -o $(OBJ)brparam.o brparam.cc 

$(OBJ)racqumem.o : racqumem.cc $(PKGHLIST)
	$(CXXCOMPILE) -c -o $(OBJ)racqumem.o racqumem.cc 

$(OBJ)racqurw.o : racqurw.cc $(PKGHLIST)
	$(CXXCOMPILE) -c -o $(OBJ)racqurw.o racqurw.cc 

$(OBJ)racqueth.o : racqueth.cc $(PKGHLIST)
	$(CXXCOMPILE) -c -o $(OBJ)racqueth.o racqueth.cc 

$(OBJ)racquproc.o : racquproc.cc $(PKGHLIST)
	$(CXXCOMPILE) -c -o $(OBJ)racquproc.o racquproc.cc 

## Lecture / traitement minifits multi-thread
##   --------------
vismfib : $(EXE)vismfib
	echo '---vismfib made'

$(EXE)vismfib : $(OBJ)vismfib.o $(PKGOLIST)
	$(CXXLINK) -o $(EXE)vismfib $(OBJ)vismfib.o $(PKGOLIST) $(SOPHYAALLSLBLIST)

$(OBJ)vismfib.o : vismfib.cc $(PKGHLIST)
	$(CXXCOMPILE) -c  -o $(OBJ)vismfib.o vismfib.cc 

#......
specmfib : $(EXE)specmfib
	echo '---specmfib made'

$(EXE)specmfib : $(OBJ)specmfib.o $(PKGOLIST)
	$(CXXLINK) -o $(EXE)specmfib $(OBJ)specmfib.o $(PKGOLIST) $(SOPHYAALLSLBLIST)

$(OBJ)specmfib.o : specmfib.cc $(PKGHLIST)
	$(CXXCOMPILE) -c  -o $(OBJ)specmfib.o specmfib.cc 

#......
treadmfib : $(EXE)treadmfib
	echo '---treadmfib made'

$(EXE)treadmfib : $(OBJ)treadmfib.o  $(PKGOLIST)
	$(CXXLINK) -o $(EXE)treadmfib $(OBJ)treadmfib.o $(PKGOLIST) $(SOPHYAALLSLBLIST)

$(OBJ)treadmfib.o : treadmfib.cc $(PKGHLIST)
	$(CXXCOMPILE) -c  -o $(OBJ)treadmfib.o treadmfib.cc 

$(OBJ)branap.o : branap.cc $(PKGHLIST)
	$(CXXCOMPILE) -c  -o $(OBJ)branap.o branap.cc 

$(OBJ)brdiskw.o : brdiskw.cc $(PKGHLIST)
	$(CXXCOMPILE) -c  -o $(OBJ)brdiskw.o brdiskw.cc 

$(OBJ)brfitsrd.o : brfitsrd.cc $(PKGHLIST)
	$(CXXCOMPILE) -c -o $(OBJ)brfitsrd.o brfitsrd.cc 

$(OBJ)brviscalc.o : brviscalc.cc $(PKGHLIST)
	$(CXXCOMPILE) -c  -o $(OBJ)brviscalc.o brviscalc.cc 

$(OBJ)brprocGain.o : brprocGain.cc $(PKGHLIST)
	$(CXXCOMPILE) -c  -o $(OBJ)brprocGain.o brprocGain.cc 

$(OBJ)brproc.o : brproc.cc $(PKGHLIST)
	$(CXXCOMPILE) -c  -o $(OBJ)brproc.o brproc.cc 

$(OBJ)brbaseproc.o : brbaseproc.cc brbaseproc.h racqumem.h brpaqu.h
	$(CXXCOMPILE) -c  -o $(OBJ)brbaseproc.o brbaseproc.cc 

##   --------------
mcrd : $(EXE)mcrd
	echo '---mcrd made'

$(EXE)mcrd : $(OBJ)mcrd.o  $(PKGOLIST)
	$(CXXLINK) -o $(EXE)mcrd $(OBJ)mcrd.o $(PKGOLIST) $(SOPHYAALLSLBLIST)

$(OBJ)mcrd.o : mcrd.cc $(PKGHLIST)
	$(CXXCOMPILE) -c  -o $(OBJ)mcrd.o mcrd.cc 

##   --------------
svv2mtx : $(EXE)svv2mtx
	echo '---svv2mtx made'

$(EXE)svv2mtx : $(OBJ)svv2mtx.o   $(PKGOLIST)
	$(CXXLINK) -o $(EXE)svv2mtx $(OBJ)svv2mtx.o  $(SOPHYAEXTSLBLIST)

$(OBJ)svv2mtx.o : svv2mtx.cc  $(PKGHLIST)
	$(CXXCOMPILE) -o $(OBJ)svv2mtx.o svv2mtx.cc

svv2mtx2 : $(EXE)svv2mtx2
	echo '---svv2mtx2 made'

$(EXE)svv2mtx2 : $(OBJ)svv2mtx2.o   $(PKGOLIST)
	$(CXXLINK) -o $(EXE)svv2mtx2 $(OBJ)svv2mtx2.o  $(SOPHYAEXTSLBLIST)

$(OBJ)svv2mtx2.o : svv2mtx2.cc  $(PKGHLIST)
	$(CXXCOMPILE) -o $(OBJ)svv2mtx2.o svv2mtx2.cc

chanum_1210 : $(EXE)chanum_1210
	echo '---chanum_1210 made'

$(EXE)chanum_1210 : $(OBJ)chanum_1210.o   $(PKGOLIST)
	$(CXXLINK) -o $(EXE)chanum_1210 $(OBJ)chanum_1210.o  $(SOPHYAEXTSLBLIST)

$(OBJ)chanum_1210.o : chanum_1210.cc  $(PKGHLIST)
	$(CXXCOMPILE) -o $(OBJ)chanum_1210.o chanum_1210.cc

svv2mtx2_1210 : $(EXE)svv2mtx2_1210
	echo '---svv2mtx2_1210 made'

$(EXE)svv2mtx2_1210 : $(OBJ)svv2mtx2_1210.o   $(PKGOLIST)
	$(CXXLINK) -o $(EXE)svv2mtx2_1210 $(OBJ)svv2mtx2_1210.o  $(SOPHYAEXTSLBLIST)

$(OBJ)svv2mtx2_1210.o : svv2mtx2_1210.cc  $(PKGHLIST)
	$(CXXCOMPILE) -o $(OBJ)svv2mtx2_1210.o svv2mtx2_1210.cc

visfits2dt : $(EXE)visfits2dt
	echo '---visfits2dt made'

$(EXE)visfits2dt : $(OBJ)visfits2dt.o   $(PKGOLIST)
	$(CXXLINK) -o $(EXE)visfits2dt $(OBJ)visfits2dt.o  $(SOPHYAEXTSLBLIST)

$(OBJ)visfits2dt.o : visfits2dt.cc  $(PKGHLIST)
	$(CXXCOMPILE) -o $(OBJ)visfits2dt.o visfits2dt.cc

##   --------------  Lecture minifits et calcul de spectre 
mfits2spec : $(EXE)mfits2spec
	echo '---mfits2spec made'

$(EXE)mfits2spec : $(OBJ)mfits2spec.o $(OBJ)minifits.o $(OBJ)brpaqu.o 
	$(CXXLINK) -o $(EXE)mfits2spec $(OBJ)mfits2spec.o $(OBJ)minifits.o $(OBJ)brpaqu.o $(SOPHYAEXTSLBLIST)

$(OBJ)mfits2spec.o : mfits2spec.cc minifits.h brpaqu.h 
	$(CXXCOMPILE) -o $(OBJ)mfits2spec.o mfits2spec.cc

##   --------------  Tests minifits 
tstrdfits : $(EXE)tstrdfits
	echo '---tstrdfits made'

$(EXE)tstrdfits : $(OBJ)tstrdfits.o $(OBJ)minifits.o
	$(CXXLINK) -o $(OBJ)tstrdfits $(OBJ)tstrdfits.o $(OBJ)minifits.o  $(SOPHYAEXTSLBLIST)

$(OBJ)tstrdfits.o : tstrdfits.cc minifits.h
	$(CXXCOMPILE) -o $(OBJ)tstrdfits.o tstrdfits.cc

tstminifits : $(EXE)tstminifits
	echo '---tstrdfits made'

$(EXE)tstminifits : $(OBJ)tstminifits.o $(OBJ)minifits.o
	$(CXXLINK) -o $(EXE)tstminifits $(OBJ)tstminifits.o $(OBJ)minifits.o  $(SOPHYAEXTSLBLIST)

$(OBJ)tstminifits.o : tstminifits.cc minifits.h
	$(CXXCOMPILE) -o $(OBJ)tstminifits.o tstminifits.cc

$(OBJ)minifits.o : minifits.cc minifits.h
	$(CXXCOMPILE) -o $(OBJ)minifits.o minifits.cc



##   --------------
tbrpaq : $(EXE)tbrpaq
	echo '---tbrpaq made'

$(EXE)tbrpaq : $(OBJ)tbrpaq.o $(OBJ)brpaqu.o 
	$(CXXLINK) -o $(EXE)tbrpaq $(OBJ)tbrpaq.o $(OBJ)brpaqu.o  $(SOPHYAALLSLBLIST)

$(OBJ)tbrpaq.o : tbrpaq.cc brpaqu.h
	$(CXXCOMPILE) -c -o $(OBJ)tbrpaq.o tbrpaq.cc 

$(OBJ)brpaqu.o : brpaqu.cc brpaqu.h
	$(CXXCOMPILE) -c -o $(OBJ)brpaqu.o brpaqu.cc 

##   --------------
tpciew : $(EXE)tpciew
	echo '---tpciew made'

$(EXE)tpciew : $(OBJ)tpciew.o $(OBJ)pciewrap.o
	$(CXXLINK) -o $(EXE)tpciew  $(OBJ)tpciew.o $(OBJ)pciewrap.o $(SOPHYAEXTSLBLIST)

$(OBJ)tpciew.o : tpciew.cc pciewrap.h
	$(CXXCOMPILE) -o $(OBJ)tpciew.o tpciew.cc

$(OBJ)pciewrap.o : pciewrap.cc pciewrap.h
	$(CXXCOMPILE) -o $(OBJ)pciewrap.o pciewrap.cc


##   -------------- Tests performances I/O et FFT multi-threads
traidio : $(EXE)traidio
	echo '---traidio made'

$(EXE)traidio : $(OBJ)traidio.o 
	$(CXXLINK) -o $(EXE)traidio $(OBJ)traidio.o $(SOPHYAEXTSLBLIST)

$(OBJ)traidio.o : traidio.cc
	$(CXXCOMPILE) -o $(OBJ)traidio.o traidio.cc

tmtfft : $(EXE)tmtfft
	echo '---tmtfft made'

$(EXE)tmtfft : $(OBJ)tmtfft.o 
	$(CXXLINK) -o $(EXE)tmtfft $(OBJ)tmtfft.o $(SOPHYAEXTSLBLIST)

$(OBJ)tmtfft.o : tmtfft.cc
	$(CXXCOMPILE) -o $(OBJ)tmtfft.o tmtfft.cc


##   -------------- Ex.repertoire Remote ---------
##    Classes de serveur et client TCP/IP 
tsok : $(EXE)tsok
	echo '---tsok made'

$(EXE)tsok : $(OBJ)tsok.o  $(OBJ)swrapsock.o $(OBJ)sockrawstream.o $(OBJ)burawstream.o 
	$(CXXLINK) -o $(EXE)tsok $(OBJ)tsok.o $(OBJ)swrapsock.o $(OBJ)sockrawstream.o \
	$(OBJ)burawstream.o $(SOPHYASLBLIST)

$(OBJ)tsok.o : tsok.cc swrapsock.h sockrawstream.h  
	$(CXXCOMPILE) -o $(OBJ)tsok.o tsok.cc

$(OBJ)swrapsock.o : swrapsock.cc swrapsock.h 
	$(CXXCOMPILE) -o $(OBJ)swrapsock.o swrapsock.cc

$(OBJ)sockrawstream.o : sockrawstream.cc sockrawstream.h 
	$(CXXCOMPILE) -o $(OBJ)sockrawstream.o sockrawstream.cc

$(OBJ)burawstream.o : burawstream.cc burawstream.h 
	$(CXXCOMPILE) -o $(OBJ)burawstream.o burawstream.cc
