Update README.md

Signed-off-by: David Rotermund <54365609+davrot@users.noreply.github.com>
This commit is contained in:
David Rotermund 2024-01-03 14:34:50 +01:00 committed by GitHub
parent ba2900b2cd
commit 98f3657934
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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)
```