mirror of
ssh://git.janware.com/srv/git/janware/proj/jw-pkg
synced 2026-01-15 12:03:31 +01:00
swig.mk: Add swig.mk
Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
parent
f52d90b14f
commit
f510a995dc
1 changed files with 129 additions and 0 deletions
129
make/swig.mk
Normal file
129
make/swig.mk
Normal file
|
|
@ -0,0 +1,129 @@
|
|||
include $(MODDIR)/make/defs.mk
|
||||
|
||||
ifeq ($(SWIG_TARGET),php)
|
||||
|
||||
SWIG_LANG ?= php
|
||||
SWIG_TARGET_EXT ?= php
|
||||
SWIG_OPTS ?= -php5
|
||||
SWIG_MODULE_TARGET_DIR = $(ENV_PREFIX)/usr/share/php5
|
||||
|
||||
SWIG_PHP_INCLUDE_DIR = /usr/include/php5
|
||||
SWIG_PHP_INCLUDE_SUBDIRS = . main TSRM Zend
|
||||
SWIG_PHP_MODULE_INI = $(SWIG_MODULE).ini
|
||||
SWIG_PHP_MODULE_INI_DIR = $(ENV_PREFIX)/etc/php5/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)
|
||||
|
||||
INCLUDE += $(addprefix -I$(SWIG_PHP_INCLUDE_DIR)/,$(SWIG_PHP_INCLUDE_SUBDIRS))
|
||||
INSTALL_LIBDIR = $(ENV_PREFIX)/usr/lib64/php5/extensions
|
||||
LOCAL_CFLAGS += -Wno-unused-label -Wno-unused-function
|
||||
LOCAL_CPPFLAGS += -Wno-unused-label -Wno-unused-function
|
||||
|
||||
all:
|
||||
|
||||
$(SWIG_PHP_MODULE_INI_DIR)/%.ini: %.ini
|
||||
$(INSTALL) -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)
|
||||
|
||||
PYTHON_VERSION ?= $(basename $(lastword $(shell python --version 2>&1)))
|
||||
PYTHON_MAJOR_VERSION ?= $(basename $(PYTHON_VERSION))
|
||||
PYTHON_MINOR_VERSION ?= $(patsubst .%,%,$(suffix $(PYTHON_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_SO ?= _$(SWIG_MODULE).so
|
||||
SWIG_CLEAN += $(wildcard *.pyc)
|
||||
|
||||
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)
|
||||
|
||||
INCLUDE += $(shell pkg-config --cflags python)
|
||||
BUILD_LDFLAGS += $(shell pkg-config --libs python)
|
||||
|
||||
INSTALL_LIBDIR = $(SWIG_MODULE_TARGET_DIR)
|
||||
|
||||
all:
|
||||
|
||||
%.pyc: %.py
|
||||
python -m py_compile $<
|
||||
|
||||
else
|
||||
|
||||
$(error SWIG_TARGET=$(SWIG_TARGET) undefined or unknown)
|
||||
|
||||
endif
|
||||
|
||||
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))
|
||||
SWIG_INSTALLED_MODULE_TARGET = $(addprefix $(SWIG_MODULE_TARGET_DIR)/,$(SWIG_MODULE_TARGET))
|
||||
|
||||
# for depend.mk
|
||||
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) $(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) $(INCLUDE) $(SWIG_OPTS) -o $@ $<
|
||||
$(SWIG_POSTPROCESS)
|
||||
|
||||
$(SWIG_MODULE_SO): $(SWIG_OBJ)
|
||||
$(CPP) $^ -shared $(BUILD_LDFLAGS) -o $@
|
||||
|
||||
$(SWIG_MODULE_TARGET_DIR)/%: %
|
||||
$(INSTALL) -o $(SWIG_TARGETOWNER) -g $(SWIG_TARGETGROUP) -m $(SWIG_TARGETMODE) $< $@
|
||||
|
||||
clean.generated:
|
||||
rm -f $(SWIG_MODULE_WRAP_C) $(SWIG_OBJ) $(SWIG_MODULE_SO) $(SWIG_MODULE_TARGET) $(SWIG_CLEAN) $(SWIG_WRAPPER_DEP_MK)
|
||||
|
||||
include $(MODDIR)/make/rules.mk
|
||||
include $(MODDIR)/make/depend.mk
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue