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