diff options
Diffstat (limited to 'project/extras.mk')
-rw-r--r-- | project/extras.mk | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/project/extras.mk b/project/extras.mk index 8962e1b..dcac128 100644 --- a/project/extras.mk +++ b/project/extras.mk @@ -23,3 +23,27 @@ else COMMON_SRCS += $(DYNLOAD_SRCS) CFLAGS_CONFIG += -DHAVE_DYNAMIC_LOADING -DSOABI=\"$(PYTHON_SOABI)\" endif + +# extension objects +pyext/obj/%.lo: $(SOURCE_DIR)/Modules/%.c $(ALL_HEADERS) host.tag tree.tag config.tag + $(CC) -c -o $@ $< $(CFLAGS_SHARED) + +pyext/obj/%.o: $(SOURCE_DIR)/Modules/%.c $(ALL_HEADERS) host.tag tree.tag config.tag + $(CC) -c -o $@ $< $(CFLAGS_STATIC) + +# dynamically loaded extension module +pyext/%$(PYTHON_SOEXT): LDFLAGS_SONAME = +pyext/%$(PYTHON_SOEXT): LDFLAGS_DSOEXT = -Wl,-soname -Wl,$(subst pyext/,,$@) +pyext/%$(PYTHON_SOEXT): LDFLAGS_DYNEXT = $(LDFLAGS_DSOEXT) $(LDFLAGS_PYEXT) + +pyext/%$(PYTHON_SOEXT): $(DSO_REF_SOLINK) + $(CC) -shared -o $@ $^ $(LDFLAGS_SHARED) $(LDFLAGS_DYNEXT) \ + -l$(PACKAGE) $(LDFLAGS_DEPS) + +# statically linked extensions +pyext/%$(OS_ARCHIVE_EXT): + rm -f $@ + $(AR) rcs $@ $^ + +# build rules for python's extension modules +include $(PROJECT_DIR)/project/pyexts.mk |