|
|
fb1cbdd |
diff -up libsemanage-2.0.46/src/Makefile.support-multiple-python-builds libsemanage-2.0.46/src/Makefile
|
|
|
fb1cbdd |
--- libsemanage-2.0.46/src/Makefile.support-multiple-python-builds 2010-12-21 16:30:25.000000000 -0500
|
|
|
fb1cbdd |
+++ libsemanage-2.0.46/src/Makefile 2010-12-30 10:29:56.436647017 -0500
|
|
|
fb1cbdd |
@@ -1,11 +1,39 @@
|
|
|
fc28aa8 |
+# Support building the Python bindings multiple times, against various Python
|
|
|
fc28aa8 |
+# runtimes (e.g. Python 2 vs Python 3) by optionally prefixing the build
|
|
|
fc28aa8 |
+# targets with "PYPREFIX":
|
|
|
fc28aa8 |
+PYTHON ?= python
|
|
|
fc28aa8 |
+PYPREFIX ?=
|
|
|
fc28aa8 |
+
|
|
|
fb1cbdd |
+# PEP 3149 (in Python 3.2) complicates this by changing the extension for
|
|
|
fb1cbdd |
+# Python modules and the path for Python headers; it now must be queried from
|
|
|
fb1cbdd |
+# the python version in question (e.g. via "python3-config --extension-suffix")
|
|
|
fb1cbdd |
+# Unfortunately, earlier versions of python don't support the
|
|
|
fb1cbdd |
+# "--extension-suffix" option to their -config tools
|
|
|
fb1cbdd |
+PY_DSO_SUFFIX ?= .so
|
|
|
fb1cbdd |
+
|
|
|
fc28aa8 |
# Installation directories.
|
|
|
fc28aa8 |
PREFIX ?= $(DESTDIR)/usr
|
|
|
fc28aa8 |
LIBDIR ?= $(PREFIX)/lib
|
|
|
fc28aa8 |
SHLIBDIR ?= $(PREFIX)/lib
|
|
|
fc28aa8 |
INCLUDEDIR ?= $(PREFIX)/include
|
|
|
fc28aa8 |
-PYLIBVER ?= $(shell python -c 'import sys;print "python%d.%d" % sys.version_info[0:2]')
|
|
|
fb1cbdd |
+
|
|
|
fc28aa8 |
+PYLIBVER ?= $(shell $(PYTHON) -c 'import sys;print("python%d.%d" % sys.version_info[0:2])')
|
|
|
fc28aa8 |
PYINC ?= /usr/include/${PYLIBVER}
|
|
|
fb1cbdd |
+
|
|
|
fb1cbdd |
+# PEP 3149 means that the path for Python headers might be something like:
|
|
|
fb1cbdd |
+# /usr/include/python3.2mu
|
|
|
fb1cbdd |
+# and the libraries might be named:
|
|
|
fb1cbdd |
+# libpython3.2mu.so.1.0
|
|
|
fb1cbdd |
+# Support invoking the Makefile in this way:
|
|
|
fb1cbdd |
+# make \
|
|
|
fb1cbdd |
+# PY_INCLUDE_FLAGS="$(python-config --includes)" \
|
|
|
fb1cbdd |
+# PY_LD_FLAGS="$(python-config --libs)" \
|
|
|
fb1cbdd |
+# pywrap
|
|
|
fb1cbdd |
+#
|
|
|
fb1cbdd |
+PY_INCLUDE_FLAGS ?= -I ${PYINC}
|
|
|
fc28aa8 |
PYLIBDIR ?= $(LIBDIR)/${PYLIBVER}
|
|
|
fb1cbdd |
+PY_LD_FLAGS ?= -l$(PYLIBVER)
|
|
|
fb1cbdd |
+
|
|
|
fc28aa8 |
RUBYLIBVER ?= $(shell ruby -e 'print RUBY_VERSION.split(".")[0..1].join(".")')
|
|
|
fb1cbdd |
RUBYPLATFORM ?= $(shell ruby -e 'print RUBY_PLATFORM')
|
|
|
fb1cbdd |
RUBYINC ?= $(LIBDIR)/ruby/$(RUBYLIBVER)/$(RUBYPLATFORM)
|
|
|
fb1cbdd |
@@ -34,9 +62,9 @@ SWIGIF= semanageswig_python.i
|
|
|
fc28aa8 |
SWIGRUBYIF= semanageswig_ruby.i
|
|
|
fc28aa8 |
SWIGCOUT= semanageswig_wrap.c
|
|
|
fc28aa8 |
SWIGRUBYCOUT= semanageswig_ruby_wrap.c
|
|
|
fc28aa8 |
-SWIGLOBJ:= $(patsubst %.c,%.lo,$(SWIGCOUT))
|
|
|
fc28aa8 |
+SWIGLOBJ:= $(patsubst %.c,$(PYPREFIX)%.lo,$(SWIGCOUT))
|
|
|
fc28aa8 |
SWIGRUBYLOBJ:= $(patsubst %.c,%.lo,$(SWIGRUBYCOUT))
|
|
|
fc28aa8 |
-SWIGSO=_semanage.so
|
|
|
fb1cbdd |
+SWIGSO=$(PYPREFIX)_semanage$(PY_DSO_SUFFIX)
|
|
|
fc28aa8 |
SWIGFILES=$(SWIGSO) semanage.py
|
|
|
fc28aa8 |
SWIGRUBYSO=_rubysemanage.so
|
|
|
fc28aa8 |
LIBSO=$(TARGET).$(LIBVERSION)
|
|
|
fb1cbdd |
@@ -63,13 +91,13 @@ pywrap: all $(SWIGLOBJ) $(SWIGSO)
|
|
|
fb1cbdd |
rubywrap: all $(SWIGRUBYSO)
|
|
|
fb1cbdd |
|
|
|
fb1cbdd |
$(SWIGLOBJ): $(SWIGCOUT)
|
|
|
fb1cbdd |
- $(CC) $(filter-out -Werror, $(CFLAGS)) -I$(PYINC) -fPIC -DSHARED -c -o $@ $<
|
|
|
fb1cbdd |
+ $(CC) $(filter-out -Werror, $(CFLAGS)) $(PY_INCLUDE_FLAGS) -fPIC -DSHARED -c -o $@ $<
|
|
|
fb1cbdd |
|
|
|
fb1cbdd |
$(SWIGRUBYLOBJ): $(SWIGRUBYCOUT)
|
|
|
fb1cbdd |
$(CC) $(filter-out -Werror,$(CFLAGS)) -I$(RUBYINC) -fPIC -DSHARED -c -o $@ $<
|
|
|
fb1cbdd |
|
|
|
fb1cbdd |
$(SWIGSO): $(SWIGLOBJ)
|
|
|
fb1cbdd |
- $(CC) $(CFLAGS) $(LDFLAGS) -shared -o $@ $< -L. -lsemanage -l$(PYLIBVER) -L$(LIBDIR) -Wl,-soname,$@,-z,defs
|
|
|
fb1cbdd |
+ $(CC) $(CFLAGS) $(LDFLAGS) -shared -o $@ $< -L. -lsemanage $(PY_LD_FLAGS) -L$(LIBDIR) -Wl,-soname,$@,-z,defs
|
|
|
fb1cbdd |
|
|
|
fb1cbdd |
$(SWIGRUBYSO): $(SWIGRUBYLOBJ)
|
|
|
fb1cbdd |
$(CC) $(CFLAGS) $(LDFLAGS) -shared -o $@ $^ -L. -lsemanage -L$(LIBDIR) -Wl,-soname,$@
|
|
|
fb1cbdd |
@@ -132,7 +160,9 @@ install: all
|
|
|
fc28aa8 |
|
|
|
fc28aa8 |
install-pywrap: pywrap
|
|
|
fc28aa8 |
test -d $(PYLIBDIR)/site-packages || install -m 755 -d $(PYLIBDIR)/site-packages
|
|
|
fc28aa8 |
- install -m 755 $(SWIGFILES) $(PYLIBDIR)/site-packages
|
|
|
fb1cbdd |
+ install -m 755 $(SWIGSO) $(PYLIBDIR)/site-packages/_semanage$(PY_DSO_SUFFIX)
|
|
|
fc28aa8 |
+ install -m 755 semanage.py $(PYLIBDIR)/site-packages
|
|
|
fc28aa8 |
+
|
|
|
fc28aa8 |
|
|
|
fc28aa8 |
install-rubywrap: rubywrap
|
|
|
fc28aa8 |
test -d $(RUBYINSTALL) || install -m 755 -d $(RUBYINSTALL)
|