From 98f3657934351aa3bfcd932cb7ffd1c68a273f89 Mon Sep 17 00:00:00 2001 From: David Rotermund <54365609+davrot@users.noreply.github.com> Date: Wed, 3 Jan 2024 14:34:50 +0100 Subject: [PATCH] Update README.md Signed-off-by: David Rotermund <54365609+davrot@users.noreply.github.com> --- PyBind11/basics/README.md | 71 +++++++++++++++++++++++++++------------ 1 file changed, 49 insertions(+), 22 deletions(-) diff --git a/PyBind11/basics/README.md b/PyBind11/basics/README.md index aca2836..bcadf46 100644 --- a/PyBind11/basics/README.md +++ b/PyBind11/basics/README.md @@ -11,30 +11,57 @@ Questions to [David Rotermund](mailto:davrot@uni-bremen.de) +### .env file + +**Change the directories and parameters according you system.** + ```Makefile -PYBIN=~/P3.9/bin/ -COMPILER=clang +PYBIN=~/P3.11/bin/ +CC=/usr/lib64/ccache/clang++ +NVCC=/usr/local/cuda-12/bin/nvcc -allow-unsupported-compiler -PYBIND11INCLUDE=`$(PYBIN)python3 -m pybind11 --includes` +PARAMETERS_O_CPU = -O3 -std=c++14 -fPIC -Wall -fopenmp=libomp +PARAMETERS_Linker_CPU = -shared -lm -lomp -lstdc++ -Wall -PARAMETERS= -O3 -std=c++14 -fPIC $(PYBIND11INCLUDE) -Wall +PARAMETERS_O_GPU= -O3 -std=c++14 -ccbin=$(CC) \ + -Xcompiler "-fPIC -Wall -fopenmp=libomp" +PARAMETERS_Linker_GPU=-Xcompiler "-shared -lm -lomp -lstdc++ -Wall" -THEMODULENAME=themodule`$(PYBIN)python3-config --extension-suffix` - -all: themodule - -MyModule.o: MyModule.h MyModule.cpp - $(COMPILER) $(PARAMETERS) -c MyModule.cpp -o MyModule.o - -themodule.o: MyModule.h themodule.cpp - $(COMPILER) $(PARAMETERS) -c themodule.cpp -o themodule.o - -themodule: MyModule.o themodule.o - $(COMPILER) -shared -o themodule MyModule.o themodule.o -lm -lstdc++ -Wall - cp themodule $(THEMODULENAME) - -clean: - rm -f $(THEMODULENAME) - rm -f themodule - rm -f *.o +O_DIRS = o/ +``` + +### Makefile +```Makefile +include .env +export + +name = MyModule +type = CPU + +PYPOSTFIX := $(shell $(PYBIN)python3-config --extension-suffix) +PYBIND11INCLUDE := $(shell $(PYBIN)python3 -m pybind11 --includes) +PARAMETERS_O = $(PARAMETERS_O_CPU) $(PYBIND11INCLUDE) +PARAMETERS_Linker = $(PARAMETERS_Linker_CPU) + +so_file = Py$(name)$(type)$(PYPOSTFIX) +pyi_file = Py$(name)$(type).pyi +all: ../$(so_file) + +$(O_DIRS)$(name)$(type).o: $(name)$(type).h $(name)$(type).cpp + mkdir -p $(O_DIRS) + $(CC) $(PARAMETERS_O) -c $(name)$(type).cpp -o $(O_DIRS)$(name)$(type).o + +$(O_DIRS)Py$(name)$(type).o: $(name)$(type).h Py$(name)$(type).cpp + mkdir -p $(O_DIRS) + $(CC) $(PARAMETERS_O) -c Py$(name)$(type).cpp -o $(O_DIRS)Py$(name)$(type).o + +../$(so_file): $(O_DIRS)$(name)$(type).o $(O_DIRS)Py$(name)$(type).o + $(CC) $(PARAMETERS_Linker) -o ../$(so_file) $(O_DIRS)$(name)$(type).o $(O_DIRS)Py$(name)$(type).o + + +####################### +clean: + rm -rf $(O_DIRS) + rm -f ../$(so_file) + rm -f ../$(pyi_file) ```