diff --git a/py/Makefile b/py/Makefile new file mode 100644 index 0000000..c8e9ca3 --- /dev/null +++ b/py/Makefile @@ -0,0 +1,33 @@ +# Makefile for python interface for package gorrent. +# File is generated by gopy. Do not edit. +# gopy gen --output=py/gorrent gorrent + +GOCMD=go +GOBUILD=$(GOCMD) build -mod=mod +GOIMPORTS=goimports +PYTHON=/usr/bin/python +LIBEXT=.so + +# get the CC and flags used to build python: +GCC = $(shell $(GOCMD) env CC) +CFLAGS = $(shell python3-config --includes) +LDFLAGS = -L/usr/lib64 $(BOOST_ROOT)/stage/lib/libboost_python*.a -lpthread -ldl -lutil -lm -lm + +all: build + +build: + # build target builds the generated files -- this is what gopy build does.. + # this will otherwise be built during go build and may be out of date + - rm gorrent.c + # goimports is needed to ensure that the imports list is valid + $(GOIMPORTS) -w gorrent.go + # generate gorrent_go$(LIBEXT) from gorrent.go -- the cgo wrappers to go functions + $(GOBUILD) -buildmode=c-archive -o gorrent_go.a gorrent.go + # use pybindgen to build the gorrent.c file which are the CPython wrappers to cgo wrappers.. + # note: pip install pybindgen to get pybindgen if this fails + $(PYTHON) build.py + # build the _gorrent$(LIBEXT) library that contains the cgo and CPython wrappers + # generated gorrent.py python wrapper imports this c-code package + + $(GCC) gorrent.c gorrent_go.a -o _gorrent$(LIBEXT) $(CFLAGS) $(LDFLAGS) -fPIC --shared -w +