Also build the debug python package, and more tweaks from Ubuntu's wx rules file.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_8_BRANCH@47782 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2007-07-28 16:54:01 +00:00
parent 6995f729d4
commit 96937739a9
2 changed files with 123 additions and 135 deletions

33
debian/control.in vendored
View File

@@ -1,10 +1,10 @@
Source: wxwidgets=V
Section: libs
Priority: optional
Build-Depends: debhelper (>=4.0), flex, bison, gettext, libgtk2.0-dev, =PY_BUILD_DEPS, zlib1g-dev, libjpeg62-dev, libpng12-dev, libtiff4-dev, libsm-dev, libgl1-mesa-dev | libgl-dev, libglu1-mesa-dev | libglu-dev, libesd0-dev, libgnomeprintui2.2-dev, libgconf2-dev, libgstreamer0.10-dev, libgstreamer-plugins-base0.10-dev
Build-Depends: debhelper (>=4.0), flex, bison, gettext, bc, libgtk2.0-dev, =PY_BUILD_DEPS, zlib1g-dev, libjpeg62-dev, libpng12-dev, libtiff4-dev, libsm-dev, libgl1-mesa-dev | libgl-dev, libglu1-mesa-dev | libglu-dev, libesd0-dev, libgnomeprintui2.2-dev, libgconf2-dev, libgstreamer0.10-dev, libgstreamer-plugins-base0.10-dev
Maintainer: wxWidgets dev-team <wx-dev@lists.wxwidgets.org>
XS-Python-Version: all
Standards-Version: 3.6.2.1
Standards-Version: 3.7.2.1
Package: libwxbase=SOV=U
Architecture: any
@@ -26,7 +26,7 @@ Description: wxBase library (runtime) - non-GUI support classes of wxWidgets too
Package: libwxbase=V=U-dev
Architecture: any
Section: libdevel
Depends: wx=V-headers (= ${Source-Version}), libwxbase=SOV=U (= ${Source-Version}), libc6-dev
Depends: wx=V-headers (= ${Source-Version}), libwxbase=SOV=U (= ${Source-Version}), libc6-dev | libc-dev
Suggests: wx=V-doc, gettext
Description: wxBase library (development) - non-GUI support classes of wxWidgets toolkit
wxBase is a collection of C++ classes providing basic data structures
@@ -76,7 +76,7 @@ Description: wxWidgets Cross-platform C++ GUI toolkit (GTK+ runtime)
Package: libwxgtk=V=U-dev
Architecture: any
Section: libdevel
Depends: wx=V-headers (= ${Source-Version}), libwxgtk=SOV=U (= ${Source-Version}), libwxbase=V=U-dev (= ${Source-Version}), libc6-dev
Depends: wx=V-headers (= ${Source-Version}), libwxgtk=SOV=U (= ${Source-Version}), libwxbase=V=U-dev (= ${Source-Version})
Suggests: wx-common, wx=V-doc, libstdc++-dev, gettext, xlibmesa-gl-dev | libgl-dev, xlibmesa-glu-dev | libglu-dev
Description: wxWidgets Cross-platform C++ GUI toolkit (GTK+ development)
wxWidgets (formerly known as wxWindows) is a class library for C++ providing
@@ -91,7 +91,7 @@ Package: libwxgtk=V=U-dbg
Architecture: any
Section: libdevel
Priority: extra
Depends: wx=V-headers (= ${Source-Version}), libwxbase=V=U-dbg (= ${Source-Version}), libc6-dev
Depends: wx=V-headers (= ${Source-Version}), libwxbase=V=U-dbg (= ${Source-Version})
Description: wxWidgets Cross-platform C++ GUI toolkit (GTK+ development)
wxWidgets (formerly known as wxWindows) is a class library for C++ providing
GUI components and other facilities on several popular platforms (and some
@@ -193,11 +193,12 @@ Description: Extra wxWidgets headers for mingw32msvc-cross
Package: python-wxgtk=V=U
Architecture: any
Section: python
Depends: python-wxversion, python, ${shlibs:Depends}
Depends: python-wxversion, ${python:Depends}, ${shlibs:Depends}
Suggests: wx=V-doc, wx=V-examples, python-xml
Conflicts: libwxgtk2.6-0-python, wxpython2.6-0
Replaces: libwxgtk2.6-0-python, wxpython2.6-0
XB-Python-Version: ${python:Versions}
Provides: ${python:Provides}
Description: wxWidgets Cross-platform C++ GUI toolkit (wxPython binding)
wxWidgets (formerly known as wxWindows) is a class library for C++ providing
GUI components and other facilities on several popular platforms (and some
@@ -208,28 +209,24 @@ Description: wxWidgets Cross-platform C++ GUI toolkit (wxPython binding)
need the python-xml package installed.
Package: python-wxgtk=V=U-dbg
Priority: extra
Architecture: any
Section: python
Depends: python-wxversion, python, ${shlibs:Depends}
Conflicts: python-wxgtk=V=U
Replaces: python-wxgtk=V=U
Provides: python-wxgtk=V=U
Depends: python-wxgtk=V=U (= ${Source-Version}), python-dbg, ${shlibs:Depends}
Suggests: python-xml-dbg
XB-Python-Version: ${python:Versions}
Description: wxWidgets Cross-platform C++ GUI toolkit (wxPython binding)
Description: wxWidgets Cross-platform C++ GUI toolkit (wxPython binding, debug version)
wxWidgets is a class library for C++ providing GUI (Graphical User
Interface) and other facilities on more than one platform. Version =V
currently supports subsets of GTK+, Motif, and MS Windows.
.
This package provides a Python binding to the wxGTK debug library.
It is useful for developers as many common errors may be caught, but
you should _never_ upload packages to Debian that depend upon this
package explicitly, use the python-wxgtk=V=U package instead.
.
If you wish to use xrc you'll also need the python-xml package installed.
This package contains the extensions built for the python debug interpreter.
Package: python-wxversion
Architecture: all
Section: python
Depends: ${python:Depends}
Conflicts: wxpython2.6-0
Replaces: wxpython2.6-0
XB-Python-Version: ${python:Versions}
@@ -244,7 +241,7 @@ Package: python-wxaddons
Architecture: all
Section: python
Conflicts: python-wxgtk2.6 (<< 2.6.4.0)
Replaces:
Depends: ${python:Depends}, python-wxgtk=V=U
XB-Python-Version: ${python:Versions}
Description: wxWidgets Cross-platform C++ GUI toolkit (wxPython add-on packages base)
wxWidgets (formerly known as wxWindows) is a class library for C++ providing
@@ -256,7 +253,7 @@ Description: wxWidgets Cross-platform C++ GUI toolkit (wxPython add-on packages
Package: python-wxtools
Architecture: all
Section: python
Depends: python-wxgtk=V=U
Depends: python-wxgtk=V=U, ${python:Depends}
Conflicts: wxpython2.6-0
Replaces: wxpython2.6-0, libwxgtk2.4-python, wxpython2.4-1
XB-Python-Version: ${python:Versions}

225
debian/rules vendored
View File

@@ -5,6 +5,9 @@
# variously stolen code :-)
# It makes copious use of the debhelper utilities written by
# Joey Hess and others.
#
# Significantly hacked up in July 2007 by Robin Dunn
#
#export DH_VERBOSE=1
export DH_OPTIONS
@@ -26,14 +29,14 @@ endif
# Find the python version(s) to build for
PYVERS = $(shell pyversions -vr)
PYVERS := $(shell pyversions -vr || pyversions -vs)
ifeq ($(strip $(PYVERS)),)
PYVERS := $(shell python -c 'import sys; print sys.version[:3]')
NO_PYCENTRAL = 1
PY_BUILD_DEPS = python$(PYVERS), python$(PYVERS)-dev
PY_BUILD_DEPS = python$(PYVERS), python$(PYVERS)-dbg, python$(PYVERS)-dev
else
DEB_PYTHON_SYSTEM=pycentral
PY_BUILD_DEPS = python-all, python-all-dev, python-central
PY_BUILD_DEPS = python-all, python-all-dbg, python-all-dev, python-central
endif
# If another source package is to supply the common binary packages
@@ -42,8 +45,7 @@ endif
# all if this is to be the default (or only) wx source package for the
# target release.
#
# for etch:
#DEBIAN_WX_DEFAULT_VERSION = 2.6
#DEBIAN_WX_DEFAULT_VERSION = 2.8
# This will extract a flavour out of the name of the source directory
@@ -187,8 +189,7 @@ package_msw_dbg := libwxmsw$(release)$(unicode_suffix)-dbg
package_headers_msw := wx$(release)-headers-msw
# The packages listed here will not be built by default.
extra_packages := $(package_gtk_dbg_py) \
$(package_msw_dev) $(package_msw_dbg) $(package_headers_msw)
extra_packages := $(package_msw_dev) $(package_msw_dbg) $(package_headers_msw)
ifdef DEBIAN_WX_DEFAULT_VERSION
extra_packages += $(common_packages)
@@ -233,7 +234,7 @@ objdirs := $(objdir_wxbase_shared) $(objdir_wxbase_debug) \
build_arch_stamps = build-wxbase-shared-stamp build-wxbase-debug-stamp \
build-gtk-shared-stamp build-gtk-shared-contrib-stamp \
build-gtk-debug-stamp build-gtk-debug-contrib-stamp \
build-i18n-stamp build-gtk-py-stamp
build-i18n-stamp build-gtk-py-stamp build-gtk-dbg-py-stamp
build_indep_stamps = build-examples-stamp build-doc-stamp
@@ -246,10 +247,9 @@ build_stamps := $(build_stamps_native) $(build_cross_stamps)
#---------------------------------------------------------------------------
# Install targets:
install_all_arch = install-wxbase-lib install-wxbase-dev install-wxbase-dbg \
install-gtk-lib install-gtk-dev install-gtk-dbg \
install-headers install-i18n \
install-gtk-py
install_all_arch = install-wxbase-lib install-wxbase-dev install-wxbase-dbg \
install-gtk-lib install-gtk-dev install-gtk-dbg \
install-headers install-i18n install-gtk-py install-gtk-dbg-py
ifndef DEBIAN_WX_DEFAULT_VERSION
install_all_arch += install-common
@@ -314,15 +314,6 @@ control-files-stamp: debian/control
< debian/python-wxgtk.$$f \
> debian/$(package_gtk_py_lib).$$f; \
done;
@for f in postinst prerm; do \
echo "generating control file $(package_gtk_dbg_py).$$f"; \
sed -e 's/=PYVERS/$(PYVERS)/g; '\
' s|=WXPYDIR|$(wxpydir)|g; '\
' s/=V/$(release)/g; '\
' s/=PRIO/$(alt_prio)/g' \
< debian/python-wxgtk-dbg.$$f \
> debian/$(package_gtk_dbg_py).$$f; \
done;
@echo "generating control file $(package_gtk_dbg_py).docs";
@cp debian/python-wxgtk.docs debian/$(package_gtk_dbg_py).docs;
@for f in docs doc-base; do \
@@ -527,13 +518,8 @@ py_wxconfig := wx-config $(PY_WX_CONFIG_OPTIONS) --debug=no
pyd_wxconfig := wx-config $(PY_WX_CONFIG_OPTIONS) --debug
purge-dbg-py:
@if [ ! -e build-gtk-py-stamp ]; then \
$(MAKE) -f debian/rules clean-py; \
fi
$(RM) build-gtk-dbg-py-stamp
build-gtk-py-stamp: build-gtk-shared-stamp purge-dbg-py $(PYVERS:%=build-gtk-py%-stamp)
build-gtk-py-stamp: build-gtk-shared-contrib-stamp $(PYVERS:%=build-gtk-py%-stamp)
touch $@
# Notice the make magic here with the % sign. In effect this
@@ -554,25 +540,21 @@ build-gtk-py%-stamp:
FLAVOUR=$(DEBIAN_WXFLAVOUR)
touch $@
# TODO: Do a proper package setup for a debug python build
# purge-release-py:
# @if [ ! -e build-gtk-dbg-py-stamp ]; then \
# $(MAKE) -f debian/rules clean-py; \
# fi
# $(RM) build-gtk-py-stamp
# build-gtk-dbg-py-stamp: build-gtk-debug-stamp purge-release-py
# dh_testdir
# touch docs/lgpl.txt
# cd wxPython && for PY in $(PYVERS); do \
# $$PY ./setup.py build \
# WX_CONFIG='$(wxconfig-dbg)' \
# WXPORT=$(pytoolkit) \
# $(PY_UNICODE) \
# $(PY_OPENGL) \
# FLAVOUR=$(addsuffix -,$(DEBIAN_WXFLAVOUR))dbg; \
# done
# touch $@
build-gtk-dbg-py-stamp: build-gtk-debug-contrib-stamp $(PYVERS:%=build-gtk-dbg-py%-stamp)
touch $@
build-gtk-dbg-py%-stamp:
dh_testdir
touch docs/lgpl.txt
cd wxPython && \
python$*-dbg ./setup.py build \
WX_CONFIG='$(wxconfig-dbg)' \
WXPORT=$(pytoolkit) \
$(PY_UNICODE) \
$(PY_OPENGL) \
FLAVOUR=$(DEBIAN_WXFLAVOUR)
touch $@
#---------------------------------------------------------------------------
@@ -660,6 +642,8 @@ clean: debian/control clean-py
rm -f debian/$(package_msw_dbg).*
rm -f debian/lintian-override
rm -f debian/unpack_examples.sh
find -name '*.py[co]' | xargs -r rm -f
rm -rf include/wx-$(release)
#---------------------------------------------------------------------------
@@ -775,6 +759,12 @@ install-headers: install-gtk-shared-stamp
# dh_movefiles --sourcedir=$(objdir_univ_install)
dh_install $(objdir_gtk_install)/include usr
# TODO: Should probably use setup.py's install of the wxPython headers...
mkdir -p debian/$(package_headers)/usr/include/wx-$(release)/wx/wxPython
cp -p wxPython/include/wx/wxPython/*.h \
debian/$(package_headers)/usr/include/wx-$(release)/wx/wxPython/
install-i18n: DH_OPTIONS=-p$(package_i18n)
install-i18n: build-i18n-stamp install-gtk-shared-stamp
dh_testdir
@@ -782,6 +772,7 @@ install-i18n: build-i18n-stamp install-gtk-shared-stamp
dh_clean -k
dh_install $(objdir_gtk_install)/share/locale usr/share
install-doc: DH_OPTIONS=-p$(package_doc)
install-doc: build-doc-stamp
dh_testdir
@@ -794,6 +785,7 @@ install-doc: build-doc-stamp
dh_link usr/share/doc/$(package_doc)/wx-manual.html/wx-$(release)-manual_contents.html \
usr/share/doc/$(package_doc)/wx-manual.html/index.html
install-examples: DH_OPTIONS=-p$(package_examples)
install-examples: build-examples-stamp
dh_testdir
@@ -909,33 +901,30 @@ endif
install-gtk-py: install-gtk-py-tools
# TODO: redo the python-dbg stuff
install-gtk-dbg-py: DH_OPTIONS=-p$(package_gtk_dbg_py)
install-gtk-dbg-py: build-gtk-dbg-py-stamp install-gtk-dbg-py-prereq $(PYVERS:%=install-gtk-dbg-py%)
# install-gtk-dbg-py: DH_OPTIONS=-p$(package_gtk_dbg_py)
# install-gtk-dbg-py: build-gtk-dbg-py-stamp
# dh_testdir
# dh_testroot
# dh_clean -k
# for PY in $(PYVERS); do \
# dh_installdirs usr/lib/wx/$$PY; \
# cd wxPython; \
# $$PY ./setup.py install \
# --prefix=`pwd`/../debian/$(package_gtk_dbg_py_lib)/usr \
# WX_CONFIG='$(wxconfig-dbg)' \
# SYS_WX_CONFIG='$(pyd_wxconfig)' \
# WXPORT=$(pytoolkit) \
# $(PY_UNICODE) \
# $(PY_OPENGL) \
# FLAVOUR=$(DEBIAN_WXFLAVOUR)dbg; \
# cd -; \
# done
# for PY in $(PYVERS); do \
# mv debian/$(package_gtk_py_lib)/usr/lib/$$PY/site-packages/wx.pth \
# debian/$(package_gtk_py_lib)/usr/lib/wx/$$PY/wx$(release)-dbg.pth; \
# find debian/$(package_gtk_dbg__py_lib)/usr/lib/$$PY/site-packages \
# -name '*.py?' -exec rm '{}' ';'; \
# rm -f debian/$(package_gtk_dbg_py_lib)/usr/lib/$$PY/site-packages/$(wxpydir)/wx/tools/XRCed/license.txt; \
# done
install-gtk-dbg-py-prereq:
dh_testdir
dh_testroot
dh_clean -k
install-gtk-dbg-py%:
dh_installdirs usr/lib/wx/pythnon$*
cd wxPython && \
python$*-dbg ./setup.py install \
--prefix=`pwd`/../debian/$(package_gtk_dbg_py)/usr \
WX_CONFIG='$(wxconfig-dbg)' \
SYS_WX_CONFIG='$(pyd_wxconfig)' \
WXPORT=$(pytoolkit) \
$(PY_UNICODE) \
$(PY_OPENGL) \
FLAVOUR=$(DEBIAN_WXFLAVOUR)
# Remove all files but the *_d.so
find debian/$(package_gtk_dbg_py) \
! -type d ! \( -name '*_d.so' -o -name '*.h' \) | xargs rm -f
find debian/$(package_gtk_dbg_py) -depth -empty -exec rmdir {} \;
#---------------------------------------------------------------------------
@@ -1009,57 +998,65 @@ install-headers-msw:
#---------------------------------------------------------------------------
# Tying it all together
binary-common:
dh_testdir
dh_testroot
dh_installdocs
dh_installchangelogs
dh_installexamples
dh_installmenu
dh_link
@# Don't strip debug libs at all, and strip cross libs elsewhere
@# with the cross host tools until dh_strip gets smarter.
dh_strip -N$(package_gtk_dbg) -N$(package_wxbase_dbg) \
-N$(package_msw_dev) -N$(package_msw_dbg)
binary-indep: build_all install
dh_testdir -i
dh_testroot -i
dh_installdocs -i
dh_installchangelogs -i
dh_installexamples -i
dh_installmenu -i
ifdef NO_PYCENTRAL
dh_python -i
else
dh_pycentral -i
endif
dh_link -i
dh_compress -i
dh_fixperms -i
dh_installdeb -i
dh_gencontrol -i
dh_md5sums -i
dh_builddeb -i
dh_compress
dh_fixperms
@# Don't do this for the dbg-py special build because dh_makeshlibs
@# will crap out if it is called with no packages to act on.
@if [ "x$(DH_OPTIONS)" != "-p$(package_gtk_dbg_py)" ]; then \
echo "dh_makeshlibs -N$(package_gtk_py_lib) -V"; \
dh_makeshlibs -N$(package_gtk_py_lib) -V; \
fi
binary-arch: build_arch install_arch
dh_testdir -a
dh_testroot -a
dh_installdocs -a
dh_installchangelogs -a
dh_installexamples -a
dh_installmenu -a
rm -rf debian/$(package_gtk_dbg_py)/usr/share/doc/$(package_gtk_dbg_py)
ln -s $(package_gtk_py_lib) debian/$(package_gtk_dbg_py)/usr/share/doc/$(package_gtk_dbg_py)
ifdef NO_PYCENTRAL
dh_python
dh_python -a
else
dh_pycentral
dh_pycentral -a
endif
dh_installdeb
# Don't strip debug libs at all, and strip cross libs elsewhere
# with the cross host tools until dh_strip gets smarter.
dh_strip -p$(package_gtk_py_lib) --dbg-package=$(package_gtk_dbg_py)
dh_strip -N$(package_gtk_dbg) -N$(package_wxbase_dbg) \
-N$(package_msw_dev) -N$(package_msw_dbg) \
-N$(package_gtk_py_lib) -N$(package_gtk_dbg_py)
dh_link -a
dh_compress -a
dh_fixperms -a
dh_makeshlibs -N$(package_gtk_py_lib) -N$(package_gtk_dbg_py) -V
dh_installdeb -a
dh_shlibdeps -ldebian/$(package_wxbase_lib)/usr/lib:debian/$(package_wxbase_dbg)/usr/lib:debian/$(package_gtk_lib)/usr/lib:debian/$(package_gtk_dbg)/usr/lib
dh_gencontrol
dh_md5sums
dh_builddeb
dh_gencontrol -a
dh_md5sums -a
dh_builddeb -a
# Build architecture-independent files here.
# Note that you currently can't build the indep packages without first
# building the arch specific package files needed to create them.
binary-indep: build_all install
$(MAKE) -f debian/rules \
DH_OPTIONS="-i $(addprefix -N,$(extra_packages))" \
binary-common
# Build just the architecture-dependent files here.
binary-arch: build_arch install_arch
$(MAKE) -f debian/rules \
DH_OPTIONS="-a $(addprefix -N,$(extra_packages))" \
binary-common
# Build all packages target.
binary: binary-arch binary-indep
binary: binary-indep binary-arch
@@ -1074,12 +1071,6 @@ binary-cross: control-files-stamp $(install_all_cross)
binary-common
# Build wxPython against libwxgtk-dbg. This package will conflict
# with the release build one, but may be useful to some people.
binary-dbg-py: control-files-stamp install-gtk-dbg-py
$(MAKE) -f debian/rules DH_OPTIONS="-p$(package_gtk_dbg_py)" binary-common
############################################################################
#
# Some rules to build a subset of the complete list of packages that can be