include $(SOPHYABASE)/include/sophyamake.inc

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

# all : traidio  tmtfft tstminifits tbrpaq tpciew tmtacq tstrdfits mfits2spec tsok 
# all : traidio  tmtfft tstminifits tmtacq tstrdfits mfits2spec tsok mcrd
all :  mfacq vismfib tmtacq mfits2spec mcrd svv2mtx tsok traidio tstminifits tbrpaq

clean :
	rm -f $(OBJ)*.o $(EXE)*

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

########################################################

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

$(EXE)mfacq : $(OBJ)mfacq.o $(OBJ)brparam.o $(OBJ)racqumem.o $(OBJ)racqurw.o $(OBJ)racquproc.o \
               $(OBJ)brpaqu.o $(OBJ)pciewrap.o $(OBJ)minifits.o
	$(CXXLINK) -o $(EXE)mfacq $(OBJ)mfacq.o $(OBJ)brparam.o $(OBJ)racqumem.o $(OBJ)racqurw.o \
	      $(OBJ)racquproc.o $(OBJ)brpaqu.o $(OBJ)pciewrap.o $(OBJ)minifits.o $(SOPHYAALLSLBLIST)

$(OBJ)mfacq.o : mfacq.cc brparam.h racquproc.h racqurw.h racqumem.h brpaqu.h
	$(CXXCOMPILE) -c -DNOPCIECARD -o $(OBJ)mfacq.o mfacq.cc 


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

$(EXE)tmtacq : $(OBJ)tmtacq.o  $(OBJ)brparam.o $(OBJ)racqumem.o $(OBJ)racqurw.o $(OBJ)racquproc.o \
               $(OBJ)brpaqu.o $(OBJ)pciewrap.o $(OBJ)minifits.o
	$(CXXLINK) -o $(EXE)tmtacq $(OBJ)tmtacq.o $(OBJ)brparam.o $(OBJ)racqumem.o $(OBJ)racqurw.o \
	       $(OBJ)racquproc.o $(OBJ)brpaqu.o $(OBJ)pciewrap.o $(OBJ)minifits.o $(SOPHYAALLSLBLIST)

$(OBJ)tmtacq.o : tmtacq.cc racquproc.h racqurw.h racqumem.h brpaqu.h
	$(CXXCOMPILE) -c -DNOPCIECARD -o $(OBJ)tmtacq.o tmtacq.cc 

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

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

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

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

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

$(EXE)vismfib : $(OBJ)vismfib.o  $(OBJ)brparam.o $(OBJ)racqumem.o $(OBJ)brfitsrd.o $(OBJ)brproc.o $(OBJ)brbaseproc.o $(OBJ)racquproc.o $(OBJ)brpaqu.o \
             $(OBJ)racqurw.o $(OBJ)pciewrap.o $(OBJ)minifits.o
	$(CXXLINK) -o $(EXE)vismfib $(OBJ)vismfib.o $(OBJ)brparam.o  $(OBJ)racqumem.o $(OBJ)brfitsrd.o $(OBJ)brproc.o $(OBJ)brbaseproc.o $(OBJ)racquproc.o \
                      $(OBJ)brpaqu.o $(OBJ)racqurw.o $(OBJ)pciewrap.o $(OBJ)minifits.o $(SOPHYAALLSLBLIST)

$(OBJ)vismfib.o : vismfib.cc brfitsrd.h racqumem.h brproc.h brbaseproc.h racqurw.h
	$(CXXCOMPILE) -c  -o $(OBJ)vismfib.o vismfib.cc 

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

$(EXE)mcrd : $(OBJ)mcrd.o  $(OBJ)brparam.o $(OBJ)racqumem.o $(OBJ)brfitsrd.o $(OBJ)brproc.o $(OBJ)brbaseproc.o $(OBJ)racquproc.o $(OBJ)brpaqu.o \
             $(OBJ)racqurw.o $(OBJ)pciewrap.o $(OBJ)minifits.o
	$(CXXLINK) -o $(EXE)mcrd $(OBJ)mcrd.o $(OBJ)brparam.o  $(OBJ)racqumem.o $(OBJ)brfitsrd.o $(OBJ)brproc.o $(OBJ)brbaseproc.o $(OBJ)racquproc.o \
                      $(OBJ)brpaqu.o $(OBJ)racqurw.o $(OBJ)pciewrap.o $(OBJ)minifits.o $(SOPHYAALLSLBLIST)

$(OBJ)mcrd.o : mcrd.cc brfitsrd.h racqumem.h brproc.h brbaseproc.h racqurw.h
	$(CXXCOMPILE) -c  -o $(OBJ)mcrd.o mcrd.cc 

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

$(OBJ)brproc.o : brproc.cc brproc.h  brbaseproc.h racqumem.h brpaqu.h
	$(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 

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

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

$(OBJ)svv2mtx.o : svv2mtx.cc 
	$(CXXCOMPILE) -o $(OBJ)svv2mtx.o svv2mtx.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

##   --------------  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 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

##   -------------- 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
