1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
#---------------------------------------------------------------------------
#
# Makefile for building the Yacs++ library and load module
# Author : A. Hebert (2018-5-10)
#
#---------------------------------------------------------------------------
#
ARCH = $(shell uname -m)
ifneq (,$(filter $(ARCH),aarch64 arm64))
nbit =
else
ifneq (,$(filter $(ARCH),i386 i686))
nbit = -m32
else
nbit = -m64
endif
endif
DIRNAME = $(shell uname -sm | sed 's/[ ]/_/')
OS = $(shell uname -s | cut -d"_" -f1)
opt = -O -g
ifeq ($(openmp),1)
COMP = -fopenmp
else
COMP =
endif
ifeq ($(intel),1)
ccompiler = icpc
else
ifeq ($(nvidia),1)
ccompiler = nvc++
else
ifeq ($(llvm),1)
ccompiler = clang++
else
ccompiler = gcc
endif
endif
endif
ifeq ($(OS),Darwin)
C = $(ccompiler) -std=c++11
FLAGS = -DLinux -DUnix
CFLAGS = -Wall $(nbit) -fPIC
else
ifeq ($(OS),Linux)
ifeq ($(nvidia),1)
C = $(ccompiler) -std=c++14
else
C = $(ccompiler) -std=c++17
endif
FLAGS = -DLinux -DUnix
CFLAGS = -Wall $(nbit) -fPIC
else
ifeq ($(OS),CYGWIN)
C = g++ -std=c++11
FLAGS = -DLinux -DUnix
CFLAGS = -Wall $(nbit) -fPIC
else
ifeq ($(OS),SunOS)
MAKE = gmake
C = cc
FLAGS = -DSunOS -DUnix
CFLAGS = $(nbit)
else
ifeq ($(OS),AIX)
opt = -O4
MAKE = gmake
DIRNAME = AIX
C = xlc
FLAGS = -DAIX -DUnix
CFLAGS = -qstrict
else
$(error $(OS) is not a valid OS)
endif
endif
endif
endif
endif
lib = ../lib/$(DIRNAME)
INCLUDE = -I../../Ganlib/src/ -I../../Skin++/src/
ifeq ($(hdf5),1)
CFLAGS += -L${HDF5_DIR}/lib -lhdf5
endif
SRCC = $(shell ls *.cxx)
OBJC = $(SRCC:.cxx=.o)
all : sub-make libYacs++.a
ifeq ($(openmp),1)
@echo 'Yacs++: openmp is defined'
endif
ifeq ($(intel),1)
@echo 'Yacs++: intel is defined'
endif
ifeq ($(nvidia),1)
@echo 'Yacs++: nvidia is defined'
endif
ifeq ($(llvm),1)
@echo 'Yacs++: llvm is defined'
endif
ifeq ($(hdf5),1)
@echo 'Yacs++: hdf5 is defined'
endif
sub-make:
$(MAKE) openmp=$(openmp) intel=$(intel) nvidia=$(nvidia) llvm=$(llvm) hdf5=$(hdf5) -C ../../Skin++/src
%.o : %.cxx
$(C) $(CFLAGS) $(FLAGS) $(opt) $(COMP) $(INCLUDE) -I$(BOOST_ROOT) -I$(SALOME_KERNEL)/include/salome/ -c $< -o $@
$(lib)/:
mkdir -p $(lib)/
libYacs++.a: $(OBJC) $(lib)/
ar r $@ $(OBJC)
cp $@ $(lib)/$@
clean:
$(MAKE) -C ../../Skin++/src clean
/bin/rm -f *.o *.a sub-make temp.
|