include $(SOPHYABASE)/include/sophyamake.inc

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

clean :
	rm -f *.o traidio tmtfft tstminifits tpciew tbrpaq tmtacq tstrdfits mfits2spec mcrd svv2mtx
	rm -f mfits2spec tsok *.ppf *.fits 

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

##   --------------
tmtacq : tmtacq.o  racqumem.o racqurw.o racquproc.o brpaqu.o pciewrap.o minifits.o
	$(CXXLINK) -o tmtacq tmtacq.o  racqumem.o racqurw.o racquproc.o brpaqu.o pciewrap.o minifits.o $(SOPHYAALLSLBLIST)

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

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

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

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

## Lecture / traitement minifits multi-thread
##   --------------
mcrd : mcrd.o  racqumem.o brfitsrd.o brproc.o racquproc.o brpaqu.o racqurw.o pciewrap.o minifits.o
	$(CXXLINK) -o mcrd mcrd.o  racqumem.o brfitsrd.o brproc.o racquproc.o brpaqu.o racqurw.o pciewrap.o minifits.o $(SOPHYAALLSLBLIST)

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

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

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

##   --------------
svv2mtx : svv2mtx.o 
	$(CXXLINK) -o svv2mtx svv2mtx.o  $(SOPHYAEXTSLBLIST)

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

##   --------------
tbrpaq : tbrpaq.o brpaqu.o racqumem.o racqurw.o racquproc.o  
	$(CXXLINK) -o tbrpaq tbrpaq.o brpaqu.o  $(SOPHYAALLSLBLIST)

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

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

##   --------------
tpciew : tpciew.o pciewrap.o
	$(CXXLINK) -o tpciew  tpciew.o pciewrap.o $(SOPHYAEXTSLBLIST)

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

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

##   --------------

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

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

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

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

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

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

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

##   --------------
traidio : traidio.o 
	$(CXXLINK) -o traidio traidio.o $(SOPHYAEXTSLBLIST)

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

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

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


##   -------------- Ex.repertoire Remote ---------

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

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

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

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

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