| 1 | # ####################### ArchTOIPipe ###########################
 | 
|---|
| 2 | # ##### LAL (Orsay) / IN2P3-CNRS  DAPNIA/SPP (Saclay) / CEA #####
 | 
|---|
| 3 | # ###############################################################
 | 
|---|
| 4 | #   Top level makefile to build ArchTOIPipe library with SOPHYA
 | 
|---|
| 5 | # Usage : make -f SMakefile mkmf
 | 
|---|
| 6 | #         make -f SMakefile libs
 | 
|---|
| 7 | #         make -f SMakefile slb 
 | 
|---|
| 8 | # ###############################################################
 | 
|---|
| 9 | 
 | 
|---|
| 10 | # include files defining compiler/linker options 
 | 
|---|
| 11 | include SMakefile.h
 | 
|---|
| 12 | include ${DPCBASEREP}/Include/Makefile.slb
 | 
|---|
| 13 | 
 | 
|---|
| 14 | LIBF =  $(MYLIB)libKernel.a $(MYLIB)libProcessors.a $(MYLIB)libProcWSophya.a
 | 
|---|
| 15 | 
 | 
|---|
| 16 | defaut: libs
 | 
|---|
| 17 | 
 | 
|---|
| 18 | all: libs slb
 | 
|---|
| 19 | 
 | 
|---|
| 20 | 
 | 
|---|
| 21 | libs: archlibs
 | 
|---|
| 22 | slb: archslb
 | 
|---|
| 23 | 
 | 
|---|
| 24 | archlibs: Kernel Processors ProcWSophya
 | 
|---|
| 25 | 
 | 
|---|
| 26 | #--- Create directory and copy includes for install
 | 
|---|
| 27 | depend:
 | 
|---|
| 28 | ifdef ARCHPDEVREP
 | 
|---|
| 29 | ifdef EROSCXX
 | 
|---|
| 30 |         @echo "ArchTOIPipe will be installed under:"
 | 
|---|
| 31 |         @echo "  $(ARCHPDEVREP)/Include" 
 | 
|---|
| 32 |         @echo "  $(ARCHPDEVREP)/`uname`-$(EROSCXX)" 
 | 
|---|
| 33 |         ./crerep_pipe $(ARCHPDEVREP) `uname`-$(EROSCXX); \
 | 
|---|
| 34 | #       ./makefileuser.csh; \
 | 
|---|
| 35 |         ./mkmflien -copy ; \
 | 
|---|
| 36 | else
 | 
|---|
| 37 |         @echo "Variable EROSCXX must be define with setenv"
 | 
|---|
| 38 | endif
 | 
|---|
| 39 | else
 | 
|---|
| 40 |         @echo "Variable ARCHPDEVREP must be define with setenv"
 | 
|---|
| 41 | endif
 | 
|---|
| 42 | #--------------------------------------------------------------------
 | 
|---|
| 43 | 
 | 
|---|
| 44 | #--- Create library module Makefiles
 | 
|---|
| 45 | mkmf:
 | 
|---|
| 46 |         @echo 'Running ./smkmf'
 | 
|---|
| 47 |         ./smkmf
 | 
|---|
| 48 | #--------------------------------------------------------------------
 | 
|---|
| 49 | 
 | 
|---|
| 50 | .PHONY:  Kernel
 | 
|---|
| 51 | Kernel:
 | 
|---|
| 52 |         if [ -d Kernel ] ; then cd  Kernel ; $(MAKE) ; fi
 | 
|---|
| 53 | 
 | 
|---|
| 54 | .PHONY:  Processors
 | 
|---|
| 55 | Processors:
 | 
|---|
| 56 |         if [ -d Processors ] ; then cd  Processors ; $(MAKE) ; fi
 | 
|---|
| 57 | 
 | 
|---|
| 58 | .PHONY:  ProcWSophya
 | 
|---|
| 59 | ProcWSophya:
 | 
|---|
| 60 |         if [ -d ProcWSophya ] ; then cd  ProcWSophya ; $(MAKE) ; fi
 | 
|---|
| 61 | 
 | 
|---|
| 62 | #  Shared library creation part of the Makefile
 | 
|---|
| 63 |  
 | 
|---|
| 64 | #  List of libraries (.a)
 | 
|---|
| 65 | PSLB =  $(MYLIB)libKernel.a $(MYLIB)libProcessors.a $(MYLIB)libProcWSophya.a
 | 
|---|
| 66 | 
 | 
|---|
| 67 | #  List of external library references
 | 
|---|
| 68 | EXTLIBL  = -L$(EXTLIBPATH) -lcfitsio -lfftw -lrfftw -lxastro
 | 
|---|
| 69 | EXTSLBL  = -L$(EXTSLBPATH) -lcfitsio -lfftw -lrfftw -lxastro
 | 
|---|
| 70 | 
 | 
|---|
| 71 | # defining the other external libraries needed on different systems
 | 
|---|
| 72 | 
 | 
|---|
| 73 | # On Linux   lapack and blas and f2c/g2c ere needed
 | 
|---|
| 74 | ifeq ($(MACHEROS),Linux)
 | 
|---|
| 75 | #EXTLIB = $(EXTLIBL) -llapack -lblas -lf2c
 | 
|---|
| 76 | #EXTSLB = $(EXTSLBL) -llapack -lblas -lf2c
 | 
|---|
| 77 | EXTLIB = $(EXTLIBL) -llapack -lblas -lg2c
 | 
|---|
| 78 | EXTSLB = $(EXTSLBL) -llapack -lblas -lg2c
 | 
|---|
| 79 | endif
 | 
|---|
| 80 | 
 | 
|---|
| 81 | # On OSF1 libdxml contains Lapack, but the fortran support library is needed
 | 
|---|
| 82 | ifeq ($(MACHEROS),OSF1)
 | 
|---|
| 83 | EXTLIB = $(EXTLIBL) -ldxml -lfor
 | 
|---|
| 84 | EXTSLB = $(EXTSLBL) -ldxml -lfor
 | 
|---|
| 85 | endif
 | 
|---|
| 86 | 
 | 
|---|
| 87 | # On IRIX , complib.sgimath contains Lapack
 | 
|---|
| 88 | ifeq ($(MACHEROS),IRIX64)
 | 
|---|
| 89 | EXTLIB = $(EXTLIBL) -lcomplib.sgimath 
 | 
|---|
| 90 | EXTSLB = $(EXTSLBL) -lcomplib.sgimath 
 | 
|---|
| 91 | endif
 | 
|---|
| 92 | 
 | 
|---|
| 93 | 
 | 
|---|
| 94 | 
 | 
|---|
| 95 | # XPILIBS = $(LIBXPIPATH) $(LIBXPILIST)
 | 
|---|
| 96 | 
 | 
|---|
| 97 | # --- Shared lib name (extension) depending on OS 
 | 
|---|
| 98 | SLBNAME = $(MYSLB)libpipe.so
 | 
|---|
| 99 | ifeq ($(MACHEROS),Darwin)
 | 
|---|
| 100 | SLBNAME = $(MYSLB)libpipe.dylib
 | 
|---|
| 101 | endif
 | 
|---|
| 102 |  
 | 
|---|
| 103 | #  main dependence list
 | 
|---|
| 104 | archslb : $(SLBNAME) 
 | 
|---|
| 105 | 
 | 
|---|
| 106 | # List of .o files for each module
 | 
|---|
| 107 | # OBJKernel = $(shell echo `cat ./Kernel/objlist.list `)
 | 
|---|
| 108 | # OBJProcessors = $(shell echo `cat ./Processors/objlist.list `)
 | 
|---|
| 109 | # OBJProcWSophya = $(shell echo `cat ./ProcWSophya/objlist.list `)
 | 
|---|
| 110 | OBJKernel = $(shell echo `cat ./Kernel/Kernel.o.list `)
 | 
|---|
| 111 | OBJProcessors = $(shell echo `cat ./Processors/Processors.o.list `)
 | 
|---|
| 112 | OBJProcWSophya = $(shell echo `cat ./ProcWSophya/ProcWSophya.o.list `)
 | 
|---|
| 113 | 
 | 
|---|
| 114 | ALLOBJS = $(OBJKernel) $(OBJProcessors) $(OBJProcWSophya) 
 | 
|---|
| 115 |  
 | 
|---|
| 116 | # Building ArchTOIPipe shared library
 | 
|---|
| 117 | $(SLBNAME) : $(PSLB)
 | 
|---|
| 118 |         cd  $(OBJ); \
 | 
|---|
| 119 |         $(CMDSHLCXX) -o $(SLBNAME)  \
 | 
|---|
| 120 |         $(FGSHLACXX) $(ALLOBJS)  $(FGSHLNCXX)\
 | 
|---|
| 121 |         -L$(SLB) -lsophya -lextsophya $(EXTLIB) $(LIBLSHL)
 | 
|---|
| 122 |  
 | 
|---|
| 123 |  
 | 
|---|
| 124 | 
 | 
|---|
| 125 | clean:
 | 
|---|
| 126 |         if [ -d $(MYLIB) ] ; then cd $(MYLIB)/. ; rm -f *.a  ; fi
 | 
|---|
| 127 |         if [ -d $(MYSLB) ] ; then cd $(MYSLB)/. ; rm -f *.so ; fi
 | 
|---|
| 128 |         if [ -d $(OBJ) ] ; then cd $(OBJ)/. ; rm -f *.o  rm -rf cxxrep* ; fi
 | 
|---|
| 129 | 
 | 
|---|