include sophyamake.inc

defaut: libs

all: libs extlibs PI

libs: cxxlibs
	echo '*DBG* Building libs'

extlibs : cxxextlibs
	echo '*DBG* Building extlibs'


cxxlibs:: 
	if [ -d ../BaseTools ] ; then cd  ../BaseTools ; $(MAKE) ; fi
	if [ -d ../SysTools ] ; then cd  ../SysTools ; $(MAKE) ; fi
	if [ -d ../SUtils ] ; then cd  ../SUtils ; $(MAKE) ; fi
	if [ -d ../TArray ] ; then cd  ../TArray ; $(MAKE) ; fi
	if [ -d ../NTools ] ; then cd  ../NTools ; $(MAKE) ; fi
	if [ -d ../HiStats ] ; then cd  ../HiStats ; $(MAKE) ; fi
	if [ -d ../SkyMap ] ; then cd  ../SkyMap ; $(MAKE) ; fi
	if [ -d ../Samba ] ; then cd  ../Samba ; $(MAKE) ; fi
	if [ -d ../SkyT ] ; then cd  ../SkyT ; $(MAKE) ; fi

cxxextlibs::  
	if [ -d ../FitsIOServer ] ; then cd  ../FitsIOServer ; $(MAKE) ; fi
	if [ -d ../IFFTW ] ; then cd  ../IFFTW ; $(MAKE) ; fi
	if [ -d ../LinAlg ] ; then cd  ../LinAlg ; $(MAKE) ; fi
	if [ -d ../XAstroPack ] ; then cd  ../XAstroPack ; $(MAKE) ; fi
 
PI::
	if [ -d ../PI ] ; then cd ../PI ; $(MAKE) ; fi
	if [ -d ../PIGcont ] ; then cd ../PIGcont ; $(MAKE) ; fi
	if [ -d ../PIext ] ; then cd ../PIext ; $(MAKE) ; fi

#  Shared library creation part of the Makefile
 
#  List of libraries (.a)
PSLB =  $(SOPHYALIBP)libBaseTools.a $(SOPHYALIBP)libSysTools.a $(SOPHYALIBP)libSUtils.a $(SOPHYALIBP)libTArray.a $(SOPHYALIBP)libNTools.a $(SOPHYALIBP)libHiStats.a $(SOPHYALIBP)libSkyMap.a $(SOPHYALIBP)libSamba.a $(SOPHYALIBP)libSkyT.a
EXTPSLB =  $(SOPHYALIBP)libFitsIOServer.a $(SOPHYALIBP)libIFFTW.a $(SOPHYALIBP)libLinAlg.a $(SOPHYALIBP)libXAstroPack.a
EXTPSLB =  $(SOPHYALIBP)libFitsIOServer.a $(SOPHYALIBP)libIFFTW.a $(SOPHYALIBP)libLinAlg.a 
PIPSLB =  $(SOPHYALIBP)libPI.a $(SOPHYALIBP)libPIGcont.a $(SOPHYALIBP)libPIext.a


#  main dependence list
slball : slb slbext slbpi 
slb : $(SOPHYASLBP)libsophya.$(SLEXT)
slbext : $(SOPHYASLBP)libextsophya.$(SLEXT)    
slbpi : $(SOPHYASLBP)libPI.$(SLEXT)
 
# List of .o files for SOPHYA  module
ALLOBJSF = $(SOPHYAINCP)/SophyaConfInfo/libsophya.objlist
 
# List of .o files modules with reference to external libraries
ALLEXTOBJSF = $(SOPHYAINCP)/SophyaConfInfo/libextsophya.objlist

# List of .o files for PI modules 
ALLPIOBJSF = $(SOPHYAINCP)/SophyaConfInfo/libPI.objlist
 
# Building Sophya shared library
$(SOPHYASLBP)libsophya.$(SLEXT) : $(PSLB)
	echo `cat $(ALLOBJSF)` ; \
	cd  $(SOPHYAOBJP); \
	$(CMDSHLCXX) -o $@  `cat $(ALLOBJSF) ` $(SOPBASELIBS)
 
# Building ExtSophya shared library
$(SOPHYASLBP)libextsophya.$(SLEXT) : $(EXTPSLB)
	echo `cat $(ALLEXTOBJSF)` ; \
	cd  $(SOPHYAOBJP); \
	$(CMDSHLCXX) -o $@  `cat $(ALLEXTOBJSF) ` \
	$(SOPHYASLBLIST) $(SOPEXTLIBS)

# Building PI shared library
$(SOPHYASLBP)libPI.$(SLEXT) : $(PIPSLB)
	echo `cat $(ALLPIOBJSF)` ; \
	cd  $(SOPHYAOBJP); \
	$(CMDSHLCXX) -o $@ `cat $(ALLPIOBJSF) ` \
	$(SOPHYAEXTSLBLIST) $(PILIBS)

clean:
	if [ -d $(SOPHYALIBP) ] ; then cd $(SOPHYALIBP)/. ; rm -f *.a  ; fi
	if [ -d $(SOPHYASLBP) ] ; then cd $(SOPHYASLBP)/. ; rm -f *.so ; fi
	if [ -d $(SOPHYAOBJP) ] ; then cd $(SOPHYAOBJP)/. ; rm -f *.o  rm -rf cxxrep* ; fi

