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