# include files defining compiler/linker options MODULECXXREPNAME := PI include Mgr/Makefile.h include Mgr/Makefile.slb LIBF = $(LIB)libBaseTools.a $(LIB)libSysTools.a $(LIB)libSUtils.a $(LIB)libTArray.a $(LIB)libNTools.a $(LIB)libHiStats.a $(LIB)libSkyMap.a $(LIB)libSamba.a $(LIB)libSkyT.a LIBS = -L$(LIB) -lBaseTools -lSysTools -lSUtils -lTArray -lNTools -lHiStats -lSkyMap -lSamba -lSkyT defaut: libs all: libs extlibs PI libs: cxxlibs extlibs: cxxextlibs cxxlibs: BaseTools SysTools SUtils TArray NTools HiStats SkyMap Samba SkyT cxxextlibs: FitsIOServer IFFTW LinAlg XAstroPack #--- Create directory and copy includes for install depend: ifdef SOPHYADEVREP ifdef SOPHYACXX @echo "Sophya will be installed under:" @echo " $(SOPHYADEVREP)/Include" @echo " $(SOPHYADEVREP)/`uname`-$(SOPHYACXX)" if [ -d Mgr ] ; then cd Mgr; \ ./crerep_sophya $(SOPHYADEVREP) `uname`-$(SOPHYACXX); \ ./makefileuser.csh; \ ./mkmflien -copy ; \ fi else @echo "Variable SOPHYACXX must be define with setenv" endif else @echo "Variable SOPHYADEVREP must be define with setenv" endif #-------------------------------------------------------------------- .PHONY: BaseTools BaseTools: if [ -d BaseTools ] ; then cd BaseTools ; $(MAKE) ; fi .PHONY: SysTools SysTools: if [ -d SysTools ] ; then cd SysTools ; $(MAKE) ; fi .PHONY: SUtils SUtils: if [ -d SUtils ] ; then cd SUtils ; $(MAKE) ; fi .PHONY: TArray TArray: if [ -d TArray ] ; then cd TArray ; $(MAKE) ; fi .PHONY: NTools NTools: if [ -d NTools ] ; then cd NTools ; $(MAKE) ; fi .PHONY: HiStats HiStats: if [ -d HiStats ] ; then cd HiStats ; $(MAKE) ; fi .PHONY: SkyMap SkyMap: if [ -d SkyMap ] ; then cd SkyMap ; $(MAKE) ; fi .PHONY: Samba Samba: if [ -d Samba ] ; then cd Samba ; $(MAKE) ; fi .PHONY: SkyT SkyT: if [ -d SkyT ] ; then cd SkyT ; $(MAKE) ; fi .PHONY: FitsIOServer FitsIOServer: if [ -d FitsIOServer ] ; then cd FitsIOServer ; $(MAKE) ; fi .PHONY: IFFTW IFFTW: if [ -d IFFTW ] ; then cd IFFTW ; $(MAKE) ; fi .PHONY: LinAlg LinAlg: if [ -d LinAlg ] ; then cd LinAlg ; $(MAKE) ; fi .PHONY: XAstroPack XAstroPack: if [ -d XAstroPack ] ; then cd XAstroPack ; $(MAKE) ; fi .PHONY: PI 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 = $(LIB)libBaseTools.a $(LIB)libSysTools.a $(LIB)libSUtils.a $(LIB)libTArray.a $(LIB)libNTools.a $(LIB)libHiStats.a $(LIB)libSkyMap.a $(LIB)libSamba.a $(LIB)libSkyT.a EXTPSLB = $(LIB)libFitsIOServer.a $(LIB)libIFFTW.a $(LIB)libLinAlg.a $(LIB)libXAstroPack.a PIPSLB = $(LIB)libPI.a $(LIB)libPIGcont.a $(LIB)libPIext.a # List of external library references EXTLIBL = -L$(EXTLIBPATH) -lcfitsio -lfftw -lrfftw -lxastro EXTSLBL = -L$(EXTSLBPATH) -lcfitsio -lfftw -lrfftw -lxastro # defining the other external libraries needed on different systems # On Linux lapack and blas and f2c/g2c are needed ifeq ($(MACHEROS),Linux) #EXTLIB = $(EXTLIBL) -llapack -lblas -lf2c #EXTSLB = $(EXTSLBL) -llapack -lblas -lf2c EXTLIB = $(EXTLIBL) -llapack -lblas -lg2c EXTSLB = $(EXTSLBL) -llapack -lblas -lg2c endif # On OSF1 libdxml contains part of Lapack, and the fortran support library is needed # (we still need to add liblapack.a to supply missing lapack routines in dxml) # (some OSF dxml versions are not OK, please use -lblas instead of -ldxml) ifeq ($(MACHEROS),OSF1) EXTLIB = $(EXTLIBL) -llapack -ldxml -lfor ###EXTLIB = $(EXTLIBL) -llapack -lblas -lfor EXTSLB = $(EXTSLBL) -llapack -ldxml -lfor ###EXTSLB = $(EXTSLBL) -llapack -lblas -lfor endif # On IRIX , complib.sgimath contains Lapack ifeq ($(MACHEROS),IRIX64) EXTLIB = $(EXTLIBL) -lcomplib.sgimath EXTSLB = $(EXTSLBL) -lcomplib.sgimath endif XPILIBS = $(LIBXPIPATH) $(LIBXPILIST) # main dependence list slball : slb slbext slbpi slb : $(SLB)libsophya.so slbext : $(SLB)libextsophya.so slbpi : $(SLB)libPI.so # List of .o files for each module OBJBaseTools = $(shell echo `cat ./BaseTools/BaseTools.o.list `) OBJSysTools = $(shell echo `cat ./SysTools/SysTools.o.list `) OBJSUtils = $(shell echo `cat ./SUtils/SUtils.o.list `) OBJTArray = $(shell echo `cat ./TArray/TArray.o.list `) OBJNTools = $(shell echo `cat ./NTools/NTools.o.list `) OBJHiStats = $(shell echo `cat ./HiStats/HiStats.o.list `) OBJSkyMap = $(shell echo `cat ./SkyMap/SkyMap.o.list `) OBJSamba = $(shell echo `cat ./Samba/Samba.o.list `) OBJSkyT = $(shell echo `cat ./SkyT/SkyT.o.list `) ALLOBJS = $(OBJBaseTools) $(OBJSysTools) $(OBJSUtils) $(OBJTArray) $(OBJNTools) $(OBJHiStats) $(OBJSkyMap) $(OBJSamba) $(OBJSkyT) # List of .o files modules with reference to external libraries OBJFitsIOServer = $(shell echo `cat ./FitsIOServer/FitsIOServer.o.list `) OBJIFFTW = $(shell echo `cat ./IFFTW/IFFTW.o.list `) OBJLinAlg = $(shell echo `cat ./LinAlg/LinAlg.o.list `) OBJXAstroPack = $(shell echo `cat ./XAstroPack/XAstroPack.o.list `) ALLEXTOBJS = $(OBJFitsIOServer) $(OBJIFFTW) $(OBJLinAlg) $(OBJXAstroPack) # List of .o files for PI modules OBJPI = $(shell echo `cat ./PI/PI.o.list `) OBJPIGcont = $(shell echo `cat ./PIGcont/PIGcont.o.list `) OBJPIext = $(shell echo `cat ./PIext/PIext.o.list `) ALLPIOBJS = $(OBJPI) $(OBJPIGcont) $(OBJPIext) # Building Sophya shared library $(SLB)libsophya.so : $(PSLB) $(CMDTILSHL) cd $(OBJ); \ $(CMDSHLCXX) -o $(SLB)libsophya.so \ $(FGSHLACXX) $(ALLOBJS) $(FGSHLNCXX)\ -L$(SLB) $(LIBLSHL) # Building ExtSophya shared library $(SLB)libextsophya.so : $(EXTPSLB) $(CMDTILSHL) cd $(OBJ); \ $(CMDSHLCXX) -o $(SLB)libextsophya.so \ $(FGSHLACXX) $(ALLEXTOBJS) $(FGSHLNCXX)\ -L$(SLB) -lsophya $(EXTLIB) $(LIBLSHL) # Building PI shared library $(SLB)libPI.so : $(PIPSLB) $(CMDTILSHL) cd $(OBJ); \ $(CMDSHLCXX) -o $(SLB)libPI.so \ $(FGSHLACXX) $(ALLPIOBJS) $(FGSHLNCXX) \ -L$(SLB) -lsophya -lextsophya $(EXTLIB) $(XPILIBS) $(LIBLSHL) clean: if [ -d $(LIB) ] ; then cd $(LIB)/. ; rm -f *.a ; fi if [ -d $(SLB) ] ; then cd $(SLB)/. ; rm -f *.so ; fi if [ -d $(OBJ) ] ; then cd $(OBJ)/. ; rm -f *.o rm -rf cxxrep* ; fi # if [ -d PI ] ; then cd PI/. ; $(MAKE) clean ; fi