diff options
| author | stainer_t <thomas.stainer@oecd-nea.org> | 2025-09-08 13:48:49 +0200 |
|---|---|---|
| committer | stainer_t <thomas.stainer@oecd-nea.org> | 2025-09-08 13:48:49 +0200 |
| commit | 7dfcc480ba1e19bd3232349fc733caef94034292 (patch) | |
| tree | 03ee104eb8846d5cc1a981d267687a729185d3f3 /PyGan/src/Makefile_pip | |
Initial commit from Polytechnique Montreal
Diffstat (limited to 'PyGan/src/Makefile_pip')
| -rw-r--r-- | PyGan/src/Makefile_pip | 150 |
1 files changed, 150 insertions, 0 deletions
diff --git a/PyGan/src/Makefile_pip b/PyGan/src/Makefile_pip new file mode 100644 index 0000000..a052cbc --- /dev/null +++ b/PyGan/src/Makefile_pip @@ -0,0 +1,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* |
