summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Stitcher <astitcher@apache.org>2011-11-03 22:11:11 +0000
committerAndrew Stitcher <astitcher@apache.org>2011-11-03 22:11:11 +0000
commita402b15351229196e87647fc777b7f2dc1670922 (patch)
tree6af0d0c6e863b0086de85e765ac1fb9200893713
parentdf5ccab61279c6a2efe61df5e9d0791e944e66b8 (diff)
downloadqpid-python-a402b15351229196e87647fc777b7f2dc1670922.tar.gz
QPID-3464: Build Improvements (autotools) [inspired by Jan-Marek Glogowski]
- Simplified the python binding build QPID-3458: Install compiled _cqpid.so for SWIG python bindings in site-packages directory - Put the generated .pyc/.pyo and native .so in the correct place in the install tree git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1197326 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/cpp/bindings/qmf/python/Makefile.am8
-rw-r--r--qpid/cpp/bindings/qmf2/python/Makefile.am8
-rw-r--r--qpid/cpp/bindings/qpid/python/Makefile.am8
-rw-r--r--qpid/cpp/configure.ac35
-rw-r--r--qpid/cpp/managementgen/Makefile.am4
5 files changed, 24 insertions, 39 deletions
diff --git a/qpid/cpp/bindings/qmf/python/Makefile.am b/qpid/cpp/bindings/qmf/python/Makefile.am
index 8abad32959..37efe59872 100644
--- a/qpid/cpp/bindings/qmf/python/Makefile.am
+++ b/qpid/cpp/bindings/qmf/python/Makefile.am
@@ -32,17 +32,17 @@ SWIG_FLAGS = -w362,401
$(generated_file_list): $(srcdir)/python.i $(srcdir)/../qmfengine.i
$(SWIG) -c++ -python $(SWIG_FLAGS) $(INCLUDES) $(QPID_CXXFLAGS) -I$(top_srcdir)/src/qmf -I/usr/include -o qmfengine.cpp $(srcdir)/python.i
-pylibdir = $(PYTHON_LIB)
+pylibdir = $(pyexecdir)
-lib_LTLIBRARIES = _qmfengine.la
-qenginedir = $(pyexecdir)
+pylib_LTLIBRARIES = _qmfengine.la
+qenginedir = $(pythondir)
qengine_PYTHON = qmfengine.py qmf.py
#_qmfengine_la_LDFLAGS = -avoid-version -module -shrext "$(PYTHON_SO)"
#_qmfengine_la_LDFLAGS = -avoid-version -module -shrext ".so"
_qmfengine_la_LDFLAGS = -avoid-version -module -shared
_qmfengine_la_LIBADD = $(PYTHON_LIBS) -L$(top_builddir)/src/.libs -lqpidclient $(top_builddir)/src/libqmf.la
-_qmfengine_la_CXXFLAGS = $(INCLUDES) -I$(srcdir)/qmf -I$(PYTHON_INC) -fno-strict-aliasing
+_qmfengine_la_CXXFLAGS = $(INCLUDES) -I$(srcdir)/qmf $(PYTHON_CFLAGS) -fno-strict-aliasing
nodist__qmfengine_la_SOURCES = qmfengine.cpp
CLEANFILES = $(generated_file_list)
diff --git a/qpid/cpp/bindings/qmf2/python/Makefile.am b/qpid/cpp/bindings/qmf2/python/Makefile.am
index 3dc04e832f..e33e6e00d1 100644
--- a/qpid/cpp/bindings/qmf2/python/Makefile.am
+++ b/qpid/cpp/bindings/qmf2/python/Makefile.am
@@ -32,15 +32,15 @@ SWIG_FLAGS = -w362,401
$(generated_file_list): $(srcdir)/python.i $(srcdir)/../qmf2.i $(srcdir)/../../swig_python_typemaps.i
$(SWIG) -c++ -python $(SWIG_FLAGS) $(INCLUDES) $(QPID_CXXFLAGS) -I/usr/include -o cqmf2.cpp $(srcdir)/python.i
-pylibdir = $(PYTHON_LIB)
+pylibdir = $(pyexecdir)
-lib_LTLIBRARIES = _cqmf2.la
-cqpiddir = $(pyexecdir)
+pylib_LTLIBRARIES = _cqmf2.la
+cqpiddir = $(pythondir)
cqpid_PYTHON = qmf2.py cqmf2.py
_cqmf2_la_LDFLAGS = -avoid-version -module -shared
_cqmf2_la_LIBADD = $(PYTHON_LIBS) -L$(top_builddir)/src/.libs $(top_builddir)/src/libqmf2.la
-_cqmf2_la_CXXFLAGS = $(INCLUDES) -I$(srcdir)/qmf -I$(PYTHON_INC) -fno-strict-aliasing
+_cqmf2_la_CXXFLAGS = $(INCLUDES) -I$(srcdir)/qmf $(PYTHON_CFLAGS) -fno-strict-aliasing
nodist__cqmf2_la_SOURCES = cqmf2.cpp
CLEANFILES = $(generated_file_list)
diff --git a/qpid/cpp/bindings/qpid/python/Makefile.am b/qpid/cpp/bindings/qpid/python/Makefile.am
index dd25f34829..432fe7e764 100644
--- a/qpid/cpp/bindings/qpid/python/Makefile.am
+++ b/qpid/cpp/bindings/qpid/python/Makefile.am
@@ -32,15 +32,15 @@ SWIG_FLAGS = -w362,401
$(generated_file_list): $(srcdir)/python.i $(srcdir)/../qpid.i $(srcdir)/../../swig_python_typemaps.i
$(SWIG) -c++ -python $(SWIG_FLAGS) $(INCLUDES) $(QPID_CXXFLAGS) -I$(top_srcdir)/src/qmf -I/usr/include -o cqpid.cpp $(srcdir)/python.i
-pylibdir = $(PYTHON_LIB)
+pylibdir = $(pyexecdir)
-lib_LTLIBRARIES = _cqpid.la
-cqpiddir = $(pyexecdir)
+pylib_LTLIBRARIES = _cqpid.la
+cqpiddir = $(pythondir)
cqpid_PYTHON = cqpid.py
_cqpid_la_LDFLAGS = -avoid-version -module -shared
_cqpid_la_LIBADD = $(PYTHON_LIBS) -L$(top_builddir)/src/.libs -lqpidmessaging -lqpidtypes $(top_builddir)/src/libqpidmessaging.la $(top_builddir)/src/libqpidtypes.la
-_cqpid_la_CXXFLAGS = $(INCLUDES) -I$(PYTHON_INC) -fno-strict-aliasing
+_cqpid_la_CXXFLAGS = $(INCLUDES) $(PYTHON_CFLAGS) -fno-strict-aliasing
nodist__cqpid_la_SOURCES = cqpid.cpp
CLEANFILES = $(generated_file_list)
diff --git a/qpid/cpp/configure.ac b/qpid/cpp/configure.ac
index 092694d56b..3fbd228f60 100644
--- a/qpid/cpp/configure.ac
+++ b/qpid/cpp/configure.ac
@@ -201,34 +201,19 @@ fi
AM_CONDITIONAL([HAVE_RUBY_DEVEL], [test -f $RUBY_INC/ruby.h && test -n "$SWIG"])
# Python bindings: To build python wrappers, the python-devel files must be present.
-
AM_PATH_PYTHON()
-if test -n "$PYTHON" ; then
- AC_MSG_CHECKING([$PYTHON include dir])
- if $PYTHON -c 'import distutils.sysconfig' 2>/dev/null ; then
- PYTHON_INC=`$PYTHON -c 'import os,distutils.sysconfig;print(distutils.sysconfig.get_python_inc().replace(os.sep,"/"))'`
- AC_SUBST(PYTHON_INC)
- else
+AS_IF([test -n "$PYTHON"], [
+ PKG_CHECK_MODULES([PYTHON], [python], [have_python_dev=yes],[
if test yes = "$with_python" ; then
- AC_MSG_ERROR([Couldn't import Python module distutils.sysconfig - you probably need to install a python-dev or python-devel package])
- else
- AC_MSG_WARN([Couldn't import Python module distutils.sysconfig - you probably don't have a python-dev or python-devel package installed])
- fi
- fi
- AC_MSG_RESULT([$PYTHON_INC])
- AC_MSG_CHECKING([for directory to install python bindings in])
- if test -z "$PYTHON_LIB" ; then
- PYTHON_LIB=`$PYTHON -c 'import os,distutils.sysconfig;print(distutils.sysconfig.get_python_lib(1).replace(os.sep,"/"))'`
- fi
- AC_MSG_RESULT([$PYTHON_LIB])
- AC_ARG_VAR(PYTHON_LIB, [Directory to install python bindings in])
-
- AC_MSG_CHECKING([for python libraries to link against])
- PYTHON_LIBS=`$PYTHON -c 'import os,sys;print("-L"+os.path.join(sys.path[[3]],"config")+" -lpython"+sys.version[[:3]])'`
+ AC_MSG_ERROR([Couldn't find Python developer libs - you probably need to install a python-dev or python-devel package])
+ else
+ AC_MSG_WARN([Couldn't find Python developer libs - you probably don't have a python-dev or python-devel package installed])
+ fi
+ ])
+ AC_SUBST(PYTHON_CFLAGS)
AC_SUBST(PYTHON_LIBS)
- AC_MSG_RESULT([$PYTHON_LIBS])
-fi
-AM_CONDITIONAL([HAVE_PYTHON_DEVEL], [test -f $PYTHON_INC/Python.h && test -n "$SWIG"])
+])
+AM_CONDITIONAL([HAVE_PYTHON_DEVEL], [test x$have_python_dev = xyes && test -n "$SWIG"])
# Perl bindings:
diff --git a/qpid/cpp/managementgen/Makefile.am b/qpid/cpp/managementgen/Makefile.am
index 4fc5edcad4..e7a9d87eab 100644
--- a/qpid/cpp/managementgen/Makefile.am
+++ b/qpid/cpp/managementgen/Makefile.am
@@ -20,14 +20,14 @@ qmfpythondir = $(pythondir)
dist_bin_SCRIPTS = \
qmf-gen
-pkgpyexec_qmfgendir = $(pyexecdir)/qmfgen
+pkgpyexec_qmfgendir = $(pythondir)/qmfgen
pkgpyexec_qmfgen_PYTHON = \
qmfgen/__init__.py \
qmfgen/generate.py \
qmfgen/schema.py \
qmfgen/management-types.xml
-pkgpyexec_qmfgentmpldir = $(pyexecdir)/qmfgen/templates
+pkgpyexec_qmfgentmpldir = $(pythondir)/qmfgen/templates
pkgpyexec_qmfgentmpl_PYTHON = \
qmfgen/templates/Args.h \
qmfgen/templates/Class.cpp \