summaryrefslogtreecommitdiff
path: root/gi/Makefile.am
blob: 2b1dc8812bc6ab1d11270ada135ee94125beb4b0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
PLATFORM_VERSION = 3.0

SUBDIRS = \
	repository \
	overrides \
	_gobject

extension_cppflags = \
	$(PYTHON_INCLUDES) \
	-DPY_SSIZE_T_CLEAN

extension_ldflags = \
	-module \
	-avoid-version \
	-shrext $(PYTHON_SO)

if OS_WIN32
# Windows requires Python modules to be explicitly linked to libpython.
# Extension modules are shared libaries (.dll), but need to be
# called .pyd for Python to load it as an extension module.
extension_libadd = \
	$(PYTHON_LIBS)

extension_ldflags += \
	-no-undefined
endif

pkgincludedir = $(includedir)/pygobject-$(PLATFORM_VERSION)
if WITH_COMMON
pkginclude_HEADERS = pygobject.h
endif

pygidir = $(pyexecdir)/gi

pygi_LTLIBRARIES = _gi.la

include pygi-srcs.mak

_gi_la_SOURCES = $(pygi_module_sources)
_gi_la_CFLAGS = \
	$(extension_cppflags) \
	$(GLIB_CFLAGS) \
	$(GI_CFLAGS)
_gi_la_CPPFLAGS = \
	$(extension_cppflags)
_gi_la_LIBADD = \
	$(extension_libadd) \
	$(GLIB_LIBS) \
	$(GI_LIBS) \
	$(FFI_LIBS)
_gi_la_LDFLAGS = \
	$(extension_ldflags) \
	-export-symbols-regex "init_gi|PyInit__gi"

if ENABLE_CAIRO
pygi_LTLIBRARIES += _gi_cairo.la
endif

_gi_cairo_la_SOURCES = $(pygi_cairo_module_sources)
_gi_cairo_la_CFLAGS = \
	$(GI_CFLAGS) \
	$(CAIRO_CFLAGS) \
	$(PYCAIRO_CFLAGS)
_gi_cairo_la_CPPFLAGS = \
	$(extension_cppflags)
_gi_cairo_la_LIBADD = \
	$(extension_libadd) \
	$(GI_LIBS) \
	$(CAIRO_LIBS) \
	$(PYCAIRO_LIBS)
_gi_cairo_la_LDFLAGS = \
	$(extension_ldflags) \
	-export-symbols-regex "init_gi_cairo|PyInit__gi_cairo"


# This is to ensure we have a symlink to the .so in the
# build directory, which the Python interpreter can load
# directly without having to know how to parse .la files.
%$(PYTHON_SO): %.la
	$(LN_S) -f .libs/$@ $@

all-local: $(LTLIBRARIES:.la=$(PYTHON_SO))

check-local: $(LTLIBRARIES:.la=$(PYTHON_SO))
clean-local:
	rm -f $(LTLIBRARIES:.la=$(PYTHON_SO))