blob: a052cbcea738ac37c943dcd8903e3c03f683ef3c (
plain)
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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
|
#---------------------------------------------------------------------------
#
# Makefile for building the PyGan extension modules with pip
# Author : A. Hebert (2024-1-7)
#
#---------------------------------------------------------------------------
#
OS = $(shell uname -s | cut -d"_" -f1)
ifeq ($(OS),AIX)
DIRNAME = AIX
else
DIRNAME = $(shell uname -sm | sed 's/[ ]/_/')
endif
ifeq ($(intel),1)
ifeq ($(INTELTOOLS),)
$(error INTELTOOLS is not set)
endif
COMPILER = INTELTOOLS
lib = ../lib/$(DIRNAME)_intel
libGan = ../../Ganlib/lib/$(DIRNAME)_intel
else
ifeq ($(nvidia),1)
ifeq ($(NVTOOLS),)
$(error NVTOOLS is not set)
endif
COMPILER = NVTOOLS
lib = ../lib/$(DIRNAME)_nvidia
libGan = ../../Ganlib/lib/$(DIRNAME)_nvidia
else
ifeq ($(llvm),1)
ifeq ($(LLVMTOOLS),)
$(error LLVMTOOLS is not set)
endif
COMPILER = LLVMTOOLS
lib = ../lib/$(DIRNAME)_llvm
libGan = ../../Ganlib/lib/$(DIRNAME)_llvm
else
ifeq ($(FORTRANPATH),)
$(error FORTRANPATH is not set)
endif
COMPILER = FORTRANPATH
lib = ../lib/$(DIRNAME)
libGan = ../../Ganlib/lib/$(DIRNAME)
endif
endif
endif
export COMPILER
all:
$(MAKE) donjon
checkPython: ; @which python3 > /dev/null
ganlib: clean sub-make-ganlib pygan-ganlib
ifdef openmp
@echo 'pygan_ganlib: openmp is defined'
endif
ifdef hdf5
@echo 'pygan_ganlib: hdf5 is defined'
endif
trivac: clean sub-make-trivac pygan-trivac
ifdef openmp
@echo 'pygan_trivac: openmp is defined'
endif
ifdef hdf5
@echo 'pygan_trivac: hdf5 is defined'
endif
dragon: clean sub-make-dragon pygan-dragon
ifdef openmp
@echo 'pygan_dragon: openmp is defined'
endif
ifdef hdf5
@echo 'pygan_dragon: hdf5 is defined'
endif
donjon: clean sub-make-donjon pygan-donjon
ifdef openmp
@echo 'pygan_donjon: openmp is defined'
endif
ifdef hdf5
@echo 'pygan_donjon: hdf5 is defined'
endif
sub-make-ganlib:
$(MAKE) openmp=$(openmp) -C ../../Utilib/src
$(MAKE) openmp=$(openmp) hdf5=$(hdf5) -C ../../Ganlib/src
sub-make-trivac: sub-make-ganlib
$(MAKE) openmp=$(openmp) hdf5=$(hdf5) -C ../../Trivac/src
sub-make-dragon: sub-make-trivac
$(MAKE) openmp=$(openmp) hdf5=$(hdf5) -C ../../Dragon/src
sub-make-donjon: sub-make-dragon
$(MAKE) openmp=$(openmp) hdf5=$(hdf5) -C ../../Donjon/src
libGanlib.a: $(lib)/ sub-make-ganlib
cp $(libGan)/libGanlib.a .
ar -d libGanlib.a xabort_c.o
mv libGanlib.a $(lib)
$(lib)/:
mkdir -p $(lib)/
pygan-ganlib: libGanlib.a sub-make-ganlib checkPython
mkdir -p $(DIRNAME)
cp *.[ch] $(DIRNAME)
cp *.py $(DIRNAME)
cd $(DIRNAME); ln -s setup_lcm.py setup.py; python3 -m pip install . --break-system-packages; rm setup.py
cd $(DIRNAME); ln -s setup_lifo.py setup.py; python3 -m pip install . --break-system-packages; rm setup.py
ifdef openmp
export CODE_EMBEDDED=GANLIB_OMP; cd $(DIRNAME); ln -s setup_cle2000.py setup.py; python3 -m pip install . --break-system-packages
else
export CODE_EMBEDDED=GANLIB; cd $(DIRNAME); ln -s setup_cle2000.py setup.py; python3 -m pip install . --break-system-packages
endif
/bin/rm -r $(DIRNAME)
pygan-trivac: libGanlib.a sub-make-trivac checkPython
mkdir -p $(DIRNAME)
cp *.[ch] $(DIRNAME)
cp *.py $(DIRNAME)
cd $(DIRNAME); ln -s setup_lcm.py setup.py; python3 -m pip install . --break-system-packages; rm setup.py
cd $(DIRNAME); ln -s setup_lifo.py setup.py; python3 -m pip install . --break-system-packages; rm setup.py
ifdef openmp
export CODE_EMBEDDED=TRIVAC_OMP; cd $(DIRNAME); ln -s setup_cle2000.py setup.py; python3 -m pip install . --break-system-packages
else
export CODE_EMBEDDED=TRIVAC; cd $(DIRNAME); ln -s setup_cle2000.py setup.py; python3 -m pip install . --break-system-packages
endif
/bin/rm -r $(DIRNAME)
pygan-dragon: libGanlib.a sub-make-dragon checkPython
mkdir -p $(DIRNAME)
cp *.[ch] $(DIRNAME)
cp *.py $(DIRNAME)
cd $(DIRNAME); ln -s setup_lcm.py setup.py; python3 -m pip install . --break-system-packages; rm setup.py
cd $(DIRNAME); ln -s setup_lifo.py setup.py; python3 -m pip install . --break-system-packages; rm setup.py
ifdef openmp
export CODE_EMBEDDED=DRAGON_OMP; cd $(DIRNAME); ln -s setup_cle2000.py setup.py; python3 -m pip install . --break-system-packages
else
export CODE_EMBEDDED=DRAGON; cd $(DIRNAME); ln -s setup_cle2000.py setup.py; python3 -m pip install . --break-system-packages
endif
/bin/rm -r $(DIRNAME)
pygan-donjon: libGanlib.a sub-make-donjon checkPython
mkdir -p $(DIRNAME)
cp *.[ch] $(DIRNAME)
cp *.py $(DIRNAME)
cd $(DIRNAME); ln -s setup_lcm.py setup.py; python3 -m pip install . --break-system-packages; rm setup.py
cd $(DIRNAME); ln -s setup_lifo.py setup.py; python3 -m pip install . --break-system-packages; rm setup.py
ifdef openmp
export CODE_EMBEDDED=DONJON_OMP; cd $(DIRNAME); ln -s setup_cle2000.py setup.py; python3 -m pip install . --break-system-packages
else
export CODE_EMBEDDED=DONJON; cd $(DIRNAME); ln -s setup_cle2000.py setup.py; python3 -m pip install . --break-system-packages
endif
/bin/rm -r $(DIRNAME)
clean:
@echo 'clean PyGan'
@echo '**********************************************'
@echo '*** You should also clean Dragon or Donjon ***'
@echo '**********************************************'
/bin/rm -r -f ../lib
/bin/rm -f sub-make*
|