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*))) SWIG_OPTS ?= -$(PHP) -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/^ $@.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_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 --cflags python$(PYTHON_VERSION)) FINAL_LDFLAGS += $(shell pkg-config --libs python$(PYTHON_VERSION)) INSTALL_LIBDIR = $(SWIG_MODULE_TARGET_DIR) all: ifneq ($(PYTHON_VERSION),3) %.pyc: %.py else __pycache__/%.$(PY_CPYTHON_PREFIX).pyc: %.py endif $(PYTHON) -c "import py_compile; py_compile.compile(\"$<\", doraise=True)" ifeq ($(PYTHON_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)) SWIG_INSTALLED_MODULE_TARGET = $(addprefix $(SWIG_MODULE_TARGET_DIR)/,$(SWIG_MODULE_TARGET)) 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