2022-03-21 23:48:54 +03:00
|
|
|
# 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
|
2022-03-22 14:25:17 +03:00
|
|
|
PYTHON=env python3
|
2022-03-21 23:48:54 +03:00
|
|
|
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
|
2022-03-24 00:58:39 +03:00
|
|
|
- rm -f gorrent.c
|
2022-03-21 23:48:54 +03:00
|
|
|
# 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
|
|
|
|
|