mirror of
ssh://git.janware.com/srv/git/janware/proj/jw-pkg
synced 2026-01-15 12:03:31 +01:00
- There's no -php8 option in swig, so stay with -php7, which
supports "8 and above" according to the documentation
- No <module>.php stub is generated anylonger, so don't try to
install it
Signed-off-by: Jan Lindemann <jan@janware.com>
209 lines
8.3 KiB
Makefile
209 lines
8.3 KiB
Makefile
include $(JWBDIR)/make/defs.mk
|
|
include $(JWBDIR)/make/defs-cpp.mk
|
|
include $(JWBDIR)/make/dev-utils.mk
|
|
|
|
ifeq ($(SWIG_TARGET),php)
|
|
|
|
SWIG_LANG ?= php
|
|
SWIG_TARGET_EXT ?= php
|
|
ifeq ($(OS_NAME),ubuntu)
|
|
PHP_MAJOR ?= 5
|
|
else
|
|
PHP_MAJOR ?= $(shell php-config --version | cut -d. -f1)
|
|
endif
|
|
PHP ?= php$(PHP_MAJOR)
|
|
#PHP ?= $(firstword $(notdir $(wildcard /usr/share/php*)))
|
|
# Funny: swig --help states -php7 is for PHP8 and later
|
|
SWIG_OPTS ?= -php7 -DJW_PHP_MAJOR=$(PHP_MAJOR)
|
|
SWIG_MODULE_TARGET_DIR = $(ENV_PREFIX)/usr/share/$(PHP)
|
|
|
|
#SWIG_PHP_INCLUDE_DIR = /usr/include/$(PHP)
|
|
#SWIG_PHP_INCLUDE_SUBDIRS = . main TSRM Zend
|
|
SWIG_PHP_MODULE_INI = $(SWIG_MODULE).ini
|
|
SWIG_PHP_MODULE_INI_DIR = $(ENV_PREFIX)/etc/$(PHP)/conf.d
|
|
#SWIG_PHP_NAMESPACE ?= $(SWIG_MODULE)
|
|
|
|
SWIG_GENERATED_EXTRA += $(SWIG_PHP_MODULE_INI)
|
|
SWIG_INSTALLED_EXTRA = $(SWIG_PHP_MODULE_INI_DIR)/$(SWIG_PHP_MODULE_INI)
|
|
ifneq ($(SWIG_PHP_NAMESPECE),)
|
|
SWIG_POSTPROCESS += sed -i -e "s/^<?php/<?php namespace $(SWIG_PHP_NAMESPACE);/" $(SWIG_MODULE_TARGET)
|
|
endif
|
|
SWIG_CLEAN += php_$(SWIG_MODULE_H) $(SWIG_PHP_MODULE_INI)
|
|
|
|
FINAL_INCLUDE += $(shell php-config --includes)
|
|
INSTALL_LIBDIR = $(ENV_PREFIX)/usr/$(SYSTEM_LIBDIR_NAME)/$(PHP)/extensions
|
|
FINAL_CFLAGS += -Wno-unused-label -Wno-unused-function
|
|
FINAL_CXXFLAGS += -Wno-unused-label -Wno-unused-function
|
|
|
|
all:
|
|
|
|
$(SWIG_PHP_MODULE_INI_DIR)/%.ini: %.ini
|
|
mkdir -p $(dir $@)
|
|
$(INSTALL) -p -o $(APACHE_CONFOWNER) -g $(APACHE_CONFGROUP) -m $(APACHE_CONFMODE) $< $@
|
|
|
|
%.ini:
|
|
echo extension=$*.so > $@.tmp
|
|
mv $@.tmp $@
|
|
|
|
else ifeq ($(SWIG_TARGET),android)
|
|
|
|
SWIG_LANG ?= android
|
|
SWIG_TARGET_EXT ?= java
|
|
SWIG_OPTS ?= -android
|
|
|
|
else ifeq ($(SWIG_TARGET),python)
|
|
|
|
include $(JWBDIR)/make/py-defs.mk # for $(PYTHON), $(PY_SITE_PACKAGES_PATH)
|
|
|
|
PYTHON_FULL_VERSION ?= $(basename $(lastword $(shell $(PYTHON) --version 2>&1)))
|
|
PYTHON_MAJOR_VERSION ?= $(basename $(PYTHON_FULL_VERSION))
|
|
PYTHON_MINOR_VERSION ?= $(patsubst .%,%,$(suffix $(PYTHON_FULL_VERSION)))
|
|
|
|
SWIG_LANG ?= python
|
|
SWIG_TARGET_EXT ?= py
|
|
SWIG_OPTS ?= -python
|
|
#SWIG_MODULE_TARGET_DIR = $(ENV_PREFIX)$(SYSTEM_LIBDIR)/python$(PYTHON_MAJOR_VERSION).$(PYTHON_MINOR_VERSION)/site-packages
|
|
SWIG_MODULE_TARGET_DIR = $(ENV_PREFIX)$(PY_SITE_PACKAGES_PATH)
|
|
SWIG_MODULE_SO ?= _$(SWIG_MODULE).so
|
|
|
|
ifneq ($(PYTHON_MAJOR_VERSION),3)
|
|
SWIG_CLEAN += $(wildcard *.pyc)
|
|
SWIG_PY_MODULE_PYC ?= $(patsubst %.py,%.pyc,$(SWIG_MODULE_TARGET))
|
|
else
|
|
SWIG_CLEAN += $(wildcard __pycache__)
|
|
SWIG_PY_MODULE_PYC ?= $(patsubst %.py,__pycache__/%.$(PY_CPYTHON_PREFIX).pyc,$(SWIG_MODULE_TARGET))
|
|
endif
|
|
SWIG_GENERATED_EXTRA += $(SWIG_PY_MODULE_PYC)
|
|
SWIG_INSTALLED_EXTRA += $(SWIG_MODULE_TARGET_DIR)/$(SWIG_PY_MODULE_PYC)
|
|
|
|
FINAL_INCLUDE += $(shell $(PKG_CONFIG_EXE) --cflags python-$(PYTHON_VERSION))
|
|
FINAL_LDFLAGS += $(shell $(PKG_CONFIG_EXE) --libs python-$(PYTHON_VERSION))
|
|
|
|
INSTALL_LIBDIR = $(SWIG_MODULE_TARGET_DIR)
|
|
|
|
all:
|
|
|
|
ifneq ($(PYTHON_MAJOR_VERSION),3)
|
|
%.pyc: %.py
|
|
else
|
|
__pycache__/%.$(PY_CPYTHON_PREFIX).pyc: %.py
|
|
endif
|
|
$(PYTHON) -c "import py_compile; py_compile.compile(\"$<\", doraise=True)"
|
|
|
|
ifeq ($(PYTHON_MAJOR_VERSION),3)
|
|
$(SWIG_MODULE_TARGET_DIR)/__pycache__/%.$(PY_CPYTHON_PREFIX).pyc: __pycache__/%.$(PY_CPYTHON_PREFIX).pyc
|
|
mkdir -p $(dir $@)
|
|
else
|
|
$(SWIG_MODULE_TARGET_DIR)/%.pyc: %.pyc
|
|
endif
|
|
$(INSTALL) -p -m $(SWIG_TARGETMODE) -o $(SWIG_TARGETOWNER) -g $(SWIG_TARGETGROUP) $< $@
|
|
|
|
else ifeq ($(SWIG_TARGET),java)
|
|
|
|
JAVA_VERSION ?= $(basename $(lastword $(shell java -version 2>&1 | sed '/version/ !d')))
|
|
JAVA_MAJOR_VERSION ?= $(basename $(JAVA_VERSION))
|
|
JAVA_MINOR_VERSION ?= $(patsubst .%,%,$(suffix $(JAVA_VERSION)))
|
|
|
|
SWIG_LANG ?= java
|
|
SWIG_TARGET_EXT ?= java
|
|
SWIG_OPTS ?= -java
|
|
SWIG_MODULE_TARGET_DIR = /usr/share/java
|
|
SWIG_MODULE_SO ?= $(SWIG_MODULE).so
|
|
SWIG_CLEAN += $(wildcard *.java)
|
|
|
|
#SWIG_PY_MODULE_PYC ?= $(patsubst %.py,%.pyc,$(SWIG_MODULE_TARGET))
|
|
#SWIG_GENERATED_EXTRA += $(SWIG_PY_MODULE_PYC)
|
|
#SWIG_INSTALLED_EXTRA += $(SWIG_MODULE_TARGET_DIR)/$(SWIG_PY_MODULE_PYC)
|
|
|
|
FINAL_INCLUDE += -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux
|
|
#FINAL_LDFLAGS +=
|
|
|
|
INSTALL_LIBDIR = $(SWIG_MODULE_TARGET_DIR)
|
|
|
|
else ifeq ($(SWIG_TARGET),perl)
|
|
|
|
PERL ?= perl
|
|
SWIG_LANG ?= perl
|
|
SWIG_TARGET_EXT ?= pm
|
|
SWIG_OPTS ?= -perl
|
|
PERL_VERSION ?= $(patsubst v%,%,$(shell $(PERL) -e 'print $$^V;'))
|
|
# /usr/lib/perl is a symlink to /usr/lib/perl5 for yocto, so give this a preference
|
|
PERL_BASE_DIR ?= $(firstword $(wildcard $(addprefix $(BUILD_LIBS_PREFIX),/usr/lib64/perl5 /usr/lib/perl /usr/lib/perl5 /usr/lib/perl-native/perl)))
|
|
PERL_CORE_DIR ?= $(firstword $(wildcard $(addprefix $(PERL_BASE_DIR)/,$(PERL_VERSION)/$(ARCH)-linux-thread-multi/CORE $(PERL_VERSION)/CORE CORE)))
|
|
PERL_VENDOR_DIR ?= $(PERL_BASE_DIR)/vendor_perl/$(PERL_VERSION)/$(ARCH)-linux-thread-multi
|
|
FINAL_INCLUDE += -I$(PERL_CORE_DIR)
|
|
SWIG_CLEAN += $(wildcard *.$(SWIG_TARGET_EXT))
|
|
INSTALL_LIBDIR = $(ENV_PREFIX)$(PERL_VENDOR_DIR)/auto/$(SWIG_MODULE)
|
|
SWIG_MODULE_TARGET_DIR = $(ENV_PREFIX)$(PERL_VENDOR_DIR)
|
|
|
|
else
|
|
|
|
$(error SWIG_TARGET=$(SWIG_TARGET) undefined or unknown)
|
|
|
|
endif
|
|
|
|
SWIG_INCLUDE ?= $(filter-out -iquote .,$(FINAL_INCLUDE))
|
|
|
|
SWIG_USE_CPP ?= true
|
|
ifeq ($(SWIG_USE_CPP),true)
|
|
SWIG_SOURCE_EXT ?= cpp
|
|
SWIG_OPTS += -c++
|
|
else
|
|
SWIG_SOURCE_EXT ?= c
|
|
endif
|
|
SWIG ?= swig
|
|
SWIG_INTERFACE_I ?= $(wildcard *.i)
|
|
#SWIG_MODULE ?= $(SWIG_TARGET_EXT)_$(firstword $(shell sed '/^%module/ !d; s/^ *%module *//' $(SWIG_INTERFACE_I)))
|
|
SWIG_MODULE ?= $(firstword $(shell sed '/^%module/ !d; s/^ *%module *//' $(SWIG_INTERFACE_I)))
|
|
SWIG_MODULE_SO ?= $(SWIG_MODULE).so
|
|
SWIG_MODULE_H ?= $(SWIG_MODULE).h
|
|
SWIG_MODULE_WRAP_C ?= $(SWIG_MODULE)_wrap.$(SWIG_SOURCE_EXT)
|
|
SWIG_MODULE_TARGET ?= $(SWIG_MODULE).$(SWIG_TARGET_EXT)
|
|
SWIG_SRC_C ?= $(sort $(SWIG_MODULE_WRAP_C) $(wildcard *.c *.cpp))
|
|
SWIG_OBJ ?= $(patsubst %.cpp,%.o,$(patsubst %.c,%.o,$(sort $(SWIG_SRC_C))))
|
|
SWIG_TARGETOWNER ?= root
|
|
SWIG_TARGETGROUP ?= root
|
|
SWIG_TARGETMODE ?= 0644
|
|
SWIG_WRAPPER_DEP_MK = swig.dep.mk
|
|
|
|
SWIG_INSTALLED_SO = $(addprefix $(INSTALL_LIBDIR)/,$(SWIG_MODULE_SO))
|
|
ifneq ($(SWIG_TARGET),php)
|
|
SWIG_INSTALLED_MODULE_TARGET = $(addprefix $(SWIG_MODULE_TARGET_DIR)/,$(SWIG_MODULE_TARGET))
|
|
endif
|
|
|
|
SWIG_DEFINES += -DNON_C_BINDING
|
|
SWIG_OPTS += $(SWIG_DEFINES)
|
|
FINAL_CFLAGS += $(SWIG_DEFINES)
|
|
FINAL_CXXFLAGS += $(SWIG_DEFINES)
|
|
|
|
# for depend.mk
|
|
BUILD_OBJ = $(SWIG_OBJ)
|
|
DEPEND_MK += $(SWIG_WRAPPER_DEP_MK)
|
|
|
|
all: $(SWIG_MODULE_SO) $(SWIG_GENERATED_EXTRA)
|
|
install: $(SWIG_INSTALLED_SO) $(SWIG_INSTALLED_MODULE_TARGET) $(SWIG_INSTALLED_EXTRA)
|
|
clean: clean.generated
|
|
distclean: clean
|
|
|
|
$(SWIG_WRAPPER_DEP_MK): $(SWIG_INTERFACE_I)
|
|
$(SWIG) -M -oh $(SWIG_MODULE_H) -module $(SWIG_MODULE) $(SWIG_INCLUDE) $(SWIG_OPTS) -MT $(SWIG_MODULE_WRAP_C) $< > $@.tmp
|
|
mv $@.tmp $@
|
|
|
|
$(SWIG_MODULE_WRAP_C): $(SWIG_INTERFACE_I)
|
|
$(SWIG) -oh $(SWIG_MODULE_H) -module $(SWIG_MODULE) $(SWIG_INCLUDE) $(SWIG_OPTS) -o $@ $<
|
|
$(SWIG_POSTPROCESS)
|
|
|
|
$(SWIG_MODULE_SO): $(SWIG_OBJ)
|
|
$(CXX) $^ -shared $(FINAL_LDFLAGS) -o $@
|
|
|
|
$(SWIG_MODULE_TARGET_DIR):
|
|
mkdir -p $@
|
|
|
|
$(SWIG_MODULE_TARGET_DIR)/%: % | $(SWIG_MODULE_TARGET_DIR)
|
|
$(INSTALL) -p -o $(SWIG_TARGETOWNER) -g $(SWIG_TARGETGROUP) -m $(SWIG_TARGETMODE) $< $@
|
|
|
|
clean.generated:
|
|
$(RM) -rf $(SWIG_MODULE_WRAP_C) $(SWIG_OBJ) $(SWIG_MODULE_SO) $(SWIG_MODULE_TARGET) $(SWIG_CLEAN) $(SWIG_WRAPPER_DEP_MK)
|
|
|
|
include $(JWBDIR)/make/rules.mk
|
|
include $(JWBDIR)/make/depend.mk
|