From: Stefano Zacchiroli Date: Sat, 16 Sep 2006 14:06:54 +0000 (+0000) Subject: ship CDBS class for ocaml related packages X-Git-Tag: archive/raspbian/4.08.1-4+rpi1~3^2~613^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=0d616ad3ce35682a731bf6669d69dd87e1d4ad6c;p=ocaml.git ship CDBS class for ocaml related packages --- diff --git a/debian/cdbs/ocaml-vars.mk b/debian/cdbs/ocaml-vars.mk new file mode 100644 index 00000000..0629e52a --- /dev/null +++ b/debian/cdbs/ocaml-vars.mk @@ -0,0 +1,48 @@ +# +# Description: Useful CDBS variables for OCaml related packages +# +# Copyright © 2006 Stefano Zacchiroli +# +# This program is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free Software +# Foundation; either version 2, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 51 +# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# +# $Id: ocaml-vars.mk 3110 2006-09-13 13:40:53Z zack $ + +_cdbs_scripts_path ?= /usr/lib/cdbs +_cdbs_rules_path ?= /usr/share/cdbs/1/rules +_cdbs_class_path ?= /usr/share/cdbs/1/class + +ifndef _cdbs_class_ocaml_vars +_cdbs_class_ocaml = 1 + +# current OCaml ABI version (ATM 3.09.2). +# Used internally by ocaml.mk, may be useful to debian/rules writers as well +OCAML_ABI := $(shell /usr/bin/ocamlc -version) + +# OCaml standard library location. +# For debian/rules writers. +OCAML_STDLIB_DIR := $(shell /usr/bin/ocamlc -where) + +# list of .in files contained (non-recursively) in debian/ that requires +# pre-build filling. +# Used internally by ocaml.mk. +# debian/rules writers might need to add stuff to this list: +# e.g.: OCAML_IN_FILES += debian/patches/foo.in +OCAML_IN_FILES := $(filter-out debian/control,$(patsubst %.in,%,$(wildcard debian/*.in))) + +# 'yes' if native code compilation is available on the build architecture, 'no' otherwise. +# For debian/rules writers. +OCAML_HAVE_OCAMLOPT := $(shell if test -x /usr/bin/ocamlopt ; then echo "yes" ; else echo "no" ; fi) + +endif + diff --git a/debian/cdbs/ocaml.mk b/debian/cdbs/ocaml.mk new file mode 100644 index 00000000..d7d82639 --- /dev/null +++ b/debian/cdbs/ocaml.mk @@ -0,0 +1,50 @@ +# +# Description: CDBS class for OCaml related packages +# +# Copyright © 2006 Stefano Zacchiroli +# +# This program is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free Software +# Foundation; either version 2, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 51 +# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# +# $Id: ocaml.mk 3110 2006-09-13 13:40:53Z zack $ + +_cdbs_scripts_path ?= /usr/lib/cdbs +_cdbs_rules_path ?= /usr/share/cdbs/1/rules +_cdbs_class_path ?= /usr/share/cdbs/1/class + +ifndef _cdbs_class_ocaml +_cdbs_class_ocaml = 1 + +# to ensure invocations and tests on /usr/bin/ocaml* are meaningful +CDBS_BUILD_DEPENDS := $(CDBS_BUILD_DEPENDS), ocaml-nox + +# import OCAML_* make variables +include $(_cdbs_class_path)/ocaml-vars.mk$(_cdbs_makefile_suffix) + +# ensure dpkg-gencontrol will fill F:OCamlABI fields with the proper value +ifdef _cdbs_rules_debhelper +DEB_DH_GENCONTROL_ARGS += -- -VF:OCamlABI="$(OCAML_ABI)" +endif + +# generate .in files counterpars before building, substituting @OCamlABI@ +# markers with the proper value; clean stamps after building +pre-build:: ocamlinit +ocamlinit: ocamlinit-stamp +ocamlinit-stamp: + for f in $(OCAML_IN_FILES); do sed -e 's/@OCamlABI@/$(OCAML_ABI)/g' $$f.in > $$f; done + touch $@ +clean:: + rm -f ocamlinit-stamp + +endif + diff --git a/debian/cdbs/samples/gnome.mk b/debian/cdbs/samples/gnome.mk new file mode 100644 index 00000000..7cc3d696 --- /dev/null +++ b/debian/cdbs/samples/gnome.mk @@ -0,0 +1,51 @@ +# -*- mode: makefile; coding: utf-8 -*- +# Copyright © 2002 Colin Walters +# Description: A class for GNOME packages; sets up gconf variables, etc +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2, or (at +# your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +# 02111-1307 USA. + +_cdbs_scripts_path ?= /usr/lib/cdbs +_cdbs_rules_path ?= /usr/share/cdbs/1/rules +_cdbs_class_path ?= /usr/share/cdbs/1/class + +ifndef _cdbs_class_gnome +_cdbs_class_gnome = 1 + +# for dh_desktop +CDBS_BUILD_DEPENDS := $(CDBS_BUILD_DEPENDS), debhelper (>= 4.2.21) + +include $(_cdbs_class_path)/autotools.mk$(_cdbs_makefile_suffix) +ifndef _cdbs_rules_debhelper +include $(_cdbs_class_path)/docbookxml.mk$(_cdbs_makefile_suffix) +endif + +DEB_MAKE_ENVVARS += GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 + +# Most GNOME upstreams don't bother to fix this. +clean:: + cd $(DEB_BUILDDIR) && \ + rm -f intltool-extract intltool-merge intltool-update po/.intltool-merge-cache; \ + if test -d doc; then find doc -name '*.omf.out' -exec rm -f \{\} \; ; fi; \ + if test -d help; then find help -name '*.omf.out' -exec rm -f \{\} \; ; fi + +ifdef _cdbs_rules_debhelper +$(patsubst %,binary-install/%,$(DEB_PACKAGES)) :: binary-install/%: + dh_scrollkeeper -p$(cdbs_curpkg) $(DEB_DH_SCROLLKEEPER_ARGS) + $(if $(wildcard /usr/bin/dh_gconf),dh_gconf -p$(cdbs_curpkg) $(DEB_DH_GCONF_ARGS)) + $(if $(wildcard /usr/bin/dh_desktop),dh_desktop -p$(cdbs_curpkg) $(DEB_DH_DESKTOP_ARGS)) +endif + +endif diff --git a/debian/cdbs/samples/perlmodule-vars.mk b/debian/cdbs/samples/perlmodule-vars.mk new file mode 100644 index 00000000..d0101ccd --- /dev/null +++ b/debian/cdbs/samples/perlmodule-vars.mk @@ -0,0 +1,45 @@ +# -*- mode: makefile; coding: utf-8 -*- +# Copyright © 2003 Colin Walters and Jonas +# Smedegaard +# Description: Defines useful variables for Perl modules +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2, or (at +# your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +# 02111-1307 USA. + +_cdbs_scripts_path ?= /usr/lib/cdbs +_cdbs_rules_path ?= /usr/share/cdbs/1/rules +_cdbs_class_path ?= /usr/share/cdbs/1/class + +ifndef _cdbs_class_perlmodule_vars +_cdbs_class_perlmodule_vars = 1 + +include $(_cdbs_class_path)/makefile-vars.mk$(_cdbs_makefile_suffix) + +# Override optimizations to follow Perl Policy 3.3 +DEB_MAKE_INVOKE = $(DEB_MAKE_ENVVARS) $(MAKE) -C $(DEB_BUILDDIR) OPTIMIZE="$(CFLAGS)" + +# Install into first listed package by default. +# Unset for standard debhelper rules (use debian/tmp if multiple packages). +DEB_MAKEMAKER_PACKAGE := $(firstword $(shell $(_cdbs_scripts_path)/list-packages)) + +DEB_MAKEMAKER_INVOKE = /usr/bin/perl Makefile.PL INSTALLDIRS=vendor + +# Set some MakeMaker defaults +DEB_MAKE_BUILD_TARGET = all +DEB_MAKE_CLEAN_TARGET = distclean +DEB_MAKE_CHECK_TARGET = test +DEB_MAKE_INSTALL_TARGET = install PREFIX=$(if $(DEB_MAKEMAKER_PACKAGE),$(CURDIR)/debian/$(DEB_MAKEMAKER_PACKAGE)/usr,$(DEB_DESTDIR)/usr) + +endif diff --git a/debian/cdbs/samples/perlmodule.mk b/debian/cdbs/samples/perlmodule.mk new file mode 100644 index 00000000..cd5ae3d9 --- /dev/null +++ b/debian/cdbs/samples/perlmodule.mk @@ -0,0 +1,50 @@ +# -*- mode: makefile; coding: utf-8 -*- +# Copyright © 2003 Colin Walters and Jonas +# Smedegaard +# Description: Configures, builds, and cleans Perl modules +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2, or (at +# your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +# 02111-1307 USA. + +_cdbs_scripts_path ?= /usr/lib/cdbs +_cdbs_rules_path ?= /usr/share/cdbs/1/rules +_cdbs_class_path ?= /usr/share/cdbs/1/class + +ifndef _cdbs_class_perlmodule +_cdbs_class_perlmodule = 1 + +# Make sure that CDBS_BUILD_DEPENDS is initialised +include $(_cdbs_rules_path)/buildvars.mk$(_cdbs_makefile_suffix) + +# Dependency according to Perl policy 4.3 +# (contrary to common misunderstanding a tighter dependency on perl 5.8 +# was only temporarily needed when 5.8 was introduced into Debian sid.) +CDBS_BUILD_DEPENDS := $(CDBS_BUILD_DEPENDS), perl (>= 5.6.0-16) + +include $(_cdbs_class_path)/perlmodule-vars.mk$(_cdbs_makefile_suffix) + +include $(_cdbs_class_path)/makefile.mk$(_cdbs_makefile_suffix) + +DEB_MAKEMAKER_PACKAGE ?= tmp + +ifneq ($(DEB_BUILDDIR),$(DEB_SRCDIR)) +$(error DEB_BUILDDIR and DEB_SRCDIR must be the same for Perl builds.) +endif + +common-configure-arch common-configure-indep:: Makefile +Makefile: + (cd $(DEB_BUILDDIR) && $(DEB_MAKEMAKER_INVOKE) $(DEB_MAKEMAKER_USER_FLAGS) ) + +endif diff --git a/debian/cdbs/samples/python-distutils.mk b/debian/cdbs/samples/python-distutils.mk new file mode 100644 index 00000000..236c1530 --- /dev/null +++ b/debian/cdbs/samples/python-distutils.mk @@ -0,0 +1,272 @@ +# -*- mode: makefile; coding: utf-8 -*- +# Copyright © 2003 Colin Walters +# Copyright © 2006 Marc Dequènes (Duck) +# +# Description: manage Python public modules build +# This class is designed to work with Python packages using the +# 'distutils' build system and comply to the new policy established +# during summer 2006. Use of the debhelper class to make use of the +# new dh_python is strongly advised. (This is still left as optional +# in line with CDBS' flexible behavior.) +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2, or (at +# your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +# 02111-1307 USA. +# + +# This class provides rules for old and new Python policy. Leaving +# DEB_PYTHON_SYSTEM unset selects the old behavior. The pysupport and +# pycentral methods are available to comply with new policy. Don't forget +# to update your 'debian/control'. (Build-Depends are correctly generated +# if you are using the auto control generation feature.) + +# Once all old-style packages are removed before etch, some of the old +# can be refactored or removed. + + +_cdbs_scripts_path ?= /usr/lib/cdbs +_cdbs_rules_path ?= /usr/share/cdbs/1/rules +_cdbs_class_path ?= /usr/share/cdbs/1/class + +ifndef _cdbs_class_python_distutils +_cdbs_class_python_distutils = 1 + +include $(_cdbs_rules_path)/buildcore.mk$(_cdbs_makefile_suffix) +include $(_cdbs_class_path)/langcore.mk$(_cdbs_makefile_suffix) + + +# check python system +cdbs_use_xs_field := $(shell grep -q "^XS-Python-Version:" debian/control && echo yes) +cdbs_selected_pycompat := $(shell if [ -e debian/pycompat ]; then cat debian/pycompat; fi) +cdbs_pycompat = $(cdbs_selected_pycompat) +ifeq (pysupport, $(DEB_PYTHON_SYSTEM)) + cdbs_python_support_path = usr/share/python-support/$(DEB_PYTHON_MODULE_PACKAGE) + ifeq (, $(cdbs_selected_pycompat)) + cdbs_pycompat = 2 + endif # use pycompat + # warning pysupport compatibility mode + ifneq (, $(cdbs_use_xs_field)) + $(warning Use of XS-Python-Version and XB-Python-Version fields in 'debian/control' is deprecated with pysupport method, use 'debian/pyversions' if you need to specify specific versions) + endif # use XS field (compat) +else + ifeq (pycentral, $(DEB_PYTHON_SYSTEM)) + ifeq (, $(cdbs_selected_pycompat)) + cdbs_pycompat = 2 + endif # use pycompat + else + ifneq (, $(DEB_PYTHON_SYSTEM)) + $(error unsupported Python system: $(DEB_PYTHON_SYSTEM) (select either pysupport or pycentral)) + else + ifneq (, $(cdbs_use_xs_field)) + $(error Your package uses the new Python policy; you must set DEB_PYTHON_SYSTEM to "pysupport" or "pycentral".) + endif + ifneq (, $(cdbs_selected_pycompat)) + ifeq (yes, $(shell expr $(cdbs_selected_pycompat) \> 1 >/dev/null && echo yes)) + $(error Your package uses the new Python policy; you must set DEB_PYTHON_SYSTEM to "pysupport" or "pycentral".) + endif + endif # use pycompat + endif # unknown method + endif # pycentral +endif # pysupport + + +ifndef DEB_PYTHON_SYSTEM +DEB_PYTHON_COMPILE_VERSION = +DEB_PYTHON_VERSIONS = 2.1 2.2 2.3 2.4 2.5 +else +# default package is the first one declared in 'debian/control' +# (override if necessary) +DEB_PYTHON_MODULE_PACKAGE = $(firstword $(filter-out %-doc %-dev %-common, $(DEB_PACKAGES))) +DEB_PYTHON_PRIVATE_MODULES_DIRS = +endif + +# common variables +DEB_PYTHON_SETUP_CMD = setup.py +DEB_PYTHON_CLEAN_ARGS = -a +DEB_PYTHON_BUILD_ARGS = --build-base="$(CURDIR)/$(DEB_BUILDDIR)/build" +DEB_PYTHON_INSTALL_ARGS_ALL = --no-compile -O0 + + +ifndef DEB_PYTHON_SYSTEM +########################### old policy method ########################### + +$(warning ########################################################) +$(warning Your package does not conform to the new Python policy.) +$(warning Please consider updating. Here is some documentation:) +$(warning http://wiki.debian.org/DebianPython/NewPolicy) +$(warning http://wiki.debian.org/DebianPythonFAQ) +$(warning ########################################################) + +# make: *** No rule to make target `voodoo'. Stop. +DEB_PYTHON_REAL_LIB_PACKAGES = $(strip $(filter $(patsubst %,python%%,$(DEB_PYTHON_VERSIONS)),$(filter-out $(DEB_PYTHON_PACKAGES_EXCLUDE),$(DEB_ALL_PACKAGES)))) +# If no versioned python library packages found, grab all simpler ones +ifeq (,$(DEB_PYTHON_REAL_LIB_PACKAGES)) +DEB_PYTHON_SIMPLE_PACKAGES = $(strip $(filter python-%,$(filter-out $(DEB_PYTHON_PACKAGES_EXCLUDE),$(DEB_ALL_PACKAGES)))) +endif + +cdbs_python_ver = $(filter-out -%,$(subst -, -,$(patsubst python%,%,$(cdbs_curpkg)))) + +common-build-arch common-build-indep:: common-build-impl +common-build-impl:: + cd $(DEB_SRCDIR) && python$(DEB_PYTHON_COMPILE_VERSION) $(DEB_PYTHON_SETUP_CMD) build $(DEB_PYTHON_BUILD_ARGS) + + +# See if this package doesn't appear to need to be compiled by multiple +# Python versions. +ifeq (,$(DEB_PYTHON_REAL_LIB_PACKAGES)) +common-install-arch common-install-indep:: common-install-impl +common-install-impl:: + cd $(DEB_SRCDIR) && /usr/bin/python$(DEB_PYTHON_COMPILE_VERSION) $(DEB_PYTHON_SETUP_CMD) install --root=$(DEB_DESTDIR) $(DEB_PYTHON_INSTALL_ARGS_ALL) $(DEB_PYTHON_INSTALL_ARGS_$(cdbs_curpkg)) +else +$(patsubst %,install/%,$(DEB_PYTHON_REAL_LIB_PACKAGES)) :: install/% : + cd $(DEB_SRCDIR) && /usr/bin/python$(cdbs_python_ver) $(DEB_PYTHON_SETUP_CMD) install --root=$(CURDIR)/debian/$(cdbs_curpkg) $(DEB_PYTHON_INSTALL_ARGS_ALL) $(DEB_PYTHON_INSTALL_ARGS_$(cdbs_curpkg)) +endif + +$(patsubst %,install/%,$(DEB_PYTHON_SIMPLE_PACKAGES)) :: install/% : + cd $(DEB_SRCDIR) && python $(DEB_PYTHON_SETUP_CMD) install --root=$(CURDIR)/debian/$(cdbs_curpkg) $(DEB_PYTHON_INSTALL_ARGS_ALL) $(DEB_PYTHON_INSTALL_ARGS_$(cdbs_curpkg)) + +# This class can optionally utilize debhelper's "dh_python" command. Just +# be sure you include debhelper.mk before including this file. +ifdef _cdbs_rules_debhelper + +DEB_DH_PYTHON_ARGS = $(addprefix -V ,$(DEB_PYTHON_COMPILE_VERSION)) $(DEB_DH_PYTHON_ARGS_ALL) $(DEB_DH_PYTHON_ARGS_$(cdbs_curpkg)) + +$(patsubst %,binary-install/%,$(DEB_PACKAGES)) :: binary-install/%: + dh_python -p$(cdbs_curpkg) $(DEB_DH_PYTHON_ARGS) +endif + + +# Ignore errors from this rule. In a tarball build, the file may not +# exist. +ifeq (,$(DEB_PYTHON_REAL_LIB_PACKAGES)) +clean:: + -python$(DEB_PYTHON_COMPILE_VERSION) $(DEB_PYTHON_SETUP_CMD) clean $(DEB_PYTHON_CLEAN_ARGS) +else +clean:: $(patsubst %,python-cleanbuilddir/%,$(DEB_PYTHON_REAL_LIB_PACKAGES)) + +$(patsubst %,python-cleanbuilddir/%,$(DEB_PYTHON_REAL_LIB_PACKAGES)) :: python-cleanbuilddir/% : + -python$(cdbs_python_ver) $(DEB_PYTHON_SETUP_CMD) clean $(DEB_PYTHON_CLEAN_ARGS) +endif + +else +########################## new policy methods ########################### + +# Calculate cdbs_python_build_versions +cdbs_python_module_arch := $(strip $(shell perl -e '$$/=""; $$_=(grep {/^Package: $(DEB_PYTHON_MODULE_PACKAGE)$$/m;} (<>))[0]; /^Architecture: (.*)$$/m && print $$1' debian/control)) +cdbs_python_current_version := $(shell pyversions -vd) +ifeq (all, $(cdbs_python_module_arch)) + # check if current is in build versions + ifneq ($(cdbs_python_current_version), $(filter $(cdbs_python_current_version), $(shell pyversions -vr))) + cdbs_python_compile_version := $(firstword $(strip $(sort $(shell pyversions -vr)))) + cdbs_python_build_versions := $(cdbs_python_compile_version) + else + cdbs_python_build_versions := $(cdbs_python_current_version) + endif +else +cdbs_python_build_versions := $(shell pyversions -vr) +endif # archall + +# check if build is possible +ifeq (, $(cdbs_python_build_versions)) +ifeq (pysupport, $(DEB_PYTHON_SYSTEM)) +$(error invalid setting in 'debian/pyversions') +else +$(error invalid setting for XS-Python-Version) +endif # system selected +endif # build versions empty + + +# Declare Build-Deps for packages using this file +CDBS_BUILD_DEPENDS := $(CDBS_BUILD_DEPENDS), debhelper (>= 5.0.37.2), cdbs (>= 0.4.43) +ifeq (all, $(cdbs_python_module_arch)) + ifneq (, $(cdbs_python_compile_version)) + CDBS_BUILD_DEPENDS := $(CDBS_BUILD_DEPENDS), python$(cdbs_python_compile_version)-dev, python (>= 2.3.5-11) + else + CDBS_BUILD_DEPENDS := $(CDBS_BUILD_DEPENDS), python-dev (>= 2.3.5-11) + endif +else +CDBS_BUILD_DEPENDS := $(CDBS_BUILD_DEPENDS), python-all-dev (>= 2.3.5-11) +endif +ifeq (pysupport, $(DEB_PYTHON_SYSTEM)) +CDBS_BUILD_DEPENDS := $(CDBS_BUILD_DEPENDS), python-support (>= 0.3.2) +else +CDBS_BUILD_DEPENDS := $(CDBS_BUILD_DEPENDS), python-central (>= 0.5.0) +endif + + +# build stage +common-build-arch common-build-indep:: $(addprefix python-build-stamp-, $(cdbs_python_build_versions)) +python-build-stamp-%: +ifeq (all, $(cdbs_python_module_arch)) + cd $(DEB_SRCDIR) && python$(cdbs_python_compile_version) $(DEB_PYTHON_SETUP_CMD) build $(DEB_PYTHON_BUILD_ARGS) +else + cd $(DEB_SRCDIR) && python$* $(DEB_PYTHON_SETUP_CMD) build $(DEB_PYTHON_BUILD_ARGS) +endif # archall detection + touch $@ + + +# install stage +ifeq (all, $(cdbs_python_module_arch)) +common-install-arch common-install-indep:: python-install-py +python-install-py: + cd $(DEB_SRCDIR) && python$(cdbs_python_compile_version) $(DEB_PYTHON_SETUP_CMD) install --root=$(DEB_DESTDIR) $(DEB_PYTHON_INSTALL_ARGS_ALL) +else +common-install-arch common-install-indep:: $(addprefix python-install-, $(cdbs_python_build_versions)) +python-install-%: + cd $(DEB_SRCDIR) && python$* $(DEB_PYTHON_SETUP_CMD) install --root=$(DEB_DESTDIR) $(DEB_PYTHON_INSTALL_ARGS_ALL) +endif # archall detection + + +# This class can optionally use debhelper's commands. Just +# be sure you include debhelper.mk before including this file. +ifdef _cdbs_rules_debhelper + +DEB_DH_PYTHON_ARGS = $(DEB_DH_PYTHON_ARGS_ALL) $(DEB_DH_PYTHON_ARGS_$(cdbs_curpkg)) $(DEB_PYTHON_PRIVATE_MODULES_DIRS) + +$(patsubst %,binary-install/%,$(DEB_PACKAGES)) :: binary-install/%: +ifeq (pysupport, $(DEB_PYTHON_SYSTEM)) + dh_pysupport -p$(cdbs_curpkg) $(DEB_PYTHON_PRIVATE_MODULES_DIRS) +else + dh_pycentral -p$(cdbs_curpkg) +endif + dh_python -p$(cdbs_curpkg) $(DEB_DH_PYTHON_ARGS) +endif + + +# clean stage +clean:: $(addprefix python-clean-, $(cdbs_python_build_versions)) +python-clean-%: +ifeq (all, $(cdbs_python_module_arch)) + -cd $(DEB_SRCDIR) && python$(cdbs_python_compile_version) $(DEB_PYTHON_SETUP_CMD) clean $(DEB_PYTHON_CLEAN_ARGS) +else + -cd $(DEB_SRCDIR) && python$* $(DEB_PYTHON_SETUP_CMD) clean $(DEB_PYTHON_CLEAN_ARGS) +endif # archall detection + +clean:: +ifeq (, $(cdbs_selected_pycompat)) + echo "$(cdbs_pycompat)" >debian/pycompat +endif # use pycompat + rm -f python-build-stamp-* + +endif + + +########################## all policy methods ########################### + +# Calling setup.py clean may create .pyc files, so we need a final cleanup +# pass here. +clean:: + find . -name '*.pyc' -exec rm '{}' ';' + +endif diff --git a/ocaml-vars.mk b/ocaml-vars.mk deleted file mode 100644 index 0629e52a..00000000 --- a/ocaml-vars.mk +++ /dev/null @@ -1,48 +0,0 @@ -# -# Description: Useful CDBS variables for OCaml related packages -# -# Copyright © 2006 Stefano Zacchiroli -# -# This program is free software; you can redistribute it and/or modify it under -# the terms of the GNU General Public License as published by the Free Software -# Foundation; either version 2, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -# details. -# -# You should have received a copy of the GNU General Public License along with -# this program; if not, write to the Free Software Foundation, Inc., 51 -# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -# -# $Id: ocaml-vars.mk 3110 2006-09-13 13:40:53Z zack $ - -_cdbs_scripts_path ?= /usr/lib/cdbs -_cdbs_rules_path ?= /usr/share/cdbs/1/rules -_cdbs_class_path ?= /usr/share/cdbs/1/class - -ifndef _cdbs_class_ocaml_vars -_cdbs_class_ocaml = 1 - -# current OCaml ABI version (ATM 3.09.2). -# Used internally by ocaml.mk, may be useful to debian/rules writers as well -OCAML_ABI := $(shell /usr/bin/ocamlc -version) - -# OCaml standard library location. -# For debian/rules writers. -OCAML_STDLIB_DIR := $(shell /usr/bin/ocamlc -where) - -# list of .in files contained (non-recursively) in debian/ that requires -# pre-build filling. -# Used internally by ocaml.mk. -# debian/rules writers might need to add stuff to this list: -# e.g.: OCAML_IN_FILES += debian/patches/foo.in -OCAML_IN_FILES := $(filter-out debian/control,$(patsubst %.in,%,$(wildcard debian/*.in))) - -# 'yes' if native code compilation is available on the build architecture, 'no' otherwise. -# For debian/rules writers. -OCAML_HAVE_OCAMLOPT := $(shell if test -x /usr/bin/ocamlopt ; then echo "yes" ; else echo "no" ; fi) - -endif - diff --git a/ocaml.mk b/ocaml.mk deleted file mode 100644 index d7d82639..00000000 --- a/ocaml.mk +++ /dev/null @@ -1,50 +0,0 @@ -# -# Description: CDBS class for OCaml related packages -# -# Copyright © 2006 Stefano Zacchiroli -# -# This program is free software; you can redistribute it and/or modify it under -# the terms of the GNU General Public License as published by the Free Software -# Foundation; either version 2, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -# details. -# -# You should have received a copy of the GNU General Public License along with -# this program; if not, write to the Free Software Foundation, Inc., 51 -# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -# -# $Id: ocaml.mk 3110 2006-09-13 13:40:53Z zack $ - -_cdbs_scripts_path ?= /usr/lib/cdbs -_cdbs_rules_path ?= /usr/share/cdbs/1/rules -_cdbs_class_path ?= /usr/share/cdbs/1/class - -ifndef _cdbs_class_ocaml -_cdbs_class_ocaml = 1 - -# to ensure invocations and tests on /usr/bin/ocaml* are meaningful -CDBS_BUILD_DEPENDS := $(CDBS_BUILD_DEPENDS), ocaml-nox - -# import OCAML_* make variables -include $(_cdbs_class_path)/ocaml-vars.mk$(_cdbs_makefile_suffix) - -# ensure dpkg-gencontrol will fill F:OCamlABI fields with the proper value -ifdef _cdbs_rules_debhelper -DEB_DH_GENCONTROL_ARGS += -- -VF:OCamlABI="$(OCAML_ABI)" -endif - -# generate .in files counterpars before building, substituting @OCamlABI@ -# markers with the proper value; clean stamps after building -pre-build:: ocamlinit -ocamlinit: ocamlinit-stamp -ocamlinit-stamp: - for f in $(OCAML_IN_FILES); do sed -e 's/@OCamlABI@/$(OCAML_ABI)/g' $$f.in > $$f; done - touch $@ -clean:: - rm -f ocamlinit-stamp - -endif - diff --git a/samples/gnome.mk b/samples/gnome.mk deleted file mode 100644 index 7cc3d696..00000000 --- a/samples/gnome.mk +++ /dev/null @@ -1,51 +0,0 @@ -# -*- mode: makefile; coding: utf-8 -*- -# Copyright © 2002 Colin Walters -# Description: A class for GNOME packages; sets up gconf variables, etc -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation; either version 2, or (at -# your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -# 02111-1307 USA. - -_cdbs_scripts_path ?= /usr/lib/cdbs -_cdbs_rules_path ?= /usr/share/cdbs/1/rules -_cdbs_class_path ?= /usr/share/cdbs/1/class - -ifndef _cdbs_class_gnome -_cdbs_class_gnome = 1 - -# for dh_desktop -CDBS_BUILD_DEPENDS := $(CDBS_BUILD_DEPENDS), debhelper (>= 4.2.21) - -include $(_cdbs_class_path)/autotools.mk$(_cdbs_makefile_suffix) -ifndef _cdbs_rules_debhelper -include $(_cdbs_class_path)/docbookxml.mk$(_cdbs_makefile_suffix) -endif - -DEB_MAKE_ENVVARS += GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 - -# Most GNOME upstreams don't bother to fix this. -clean:: - cd $(DEB_BUILDDIR) && \ - rm -f intltool-extract intltool-merge intltool-update po/.intltool-merge-cache; \ - if test -d doc; then find doc -name '*.omf.out' -exec rm -f \{\} \; ; fi; \ - if test -d help; then find help -name '*.omf.out' -exec rm -f \{\} \; ; fi - -ifdef _cdbs_rules_debhelper -$(patsubst %,binary-install/%,$(DEB_PACKAGES)) :: binary-install/%: - dh_scrollkeeper -p$(cdbs_curpkg) $(DEB_DH_SCROLLKEEPER_ARGS) - $(if $(wildcard /usr/bin/dh_gconf),dh_gconf -p$(cdbs_curpkg) $(DEB_DH_GCONF_ARGS)) - $(if $(wildcard /usr/bin/dh_desktop),dh_desktop -p$(cdbs_curpkg) $(DEB_DH_DESKTOP_ARGS)) -endif - -endif diff --git a/samples/perlmodule-vars.mk b/samples/perlmodule-vars.mk deleted file mode 100644 index d0101ccd..00000000 --- a/samples/perlmodule-vars.mk +++ /dev/null @@ -1,45 +0,0 @@ -# -*- mode: makefile; coding: utf-8 -*- -# Copyright © 2003 Colin Walters and Jonas -# Smedegaard -# Description: Defines useful variables for Perl modules -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation; either version 2, or (at -# your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -# 02111-1307 USA. - -_cdbs_scripts_path ?= /usr/lib/cdbs -_cdbs_rules_path ?= /usr/share/cdbs/1/rules -_cdbs_class_path ?= /usr/share/cdbs/1/class - -ifndef _cdbs_class_perlmodule_vars -_cdbs_class_perlmodule_vars = 1 - -include $(_cdbs_class_path)/makefile-vars.mk$(_cdbs_makefile_suffix) - -# Override optimizations to follow Perl Policy 3.3 -DEB_MAKE_INVOKE = $(DEB_MAKE_ENVVARS) $(MAKE) -C $(DEB_BUILDDIR) OPTIMIZE="$(CFLAGS)" - -# Install into first listed package by default. -# Unset for standard debhelper rules (use debian/tmp if multiple packages). -DEB_MAKEMAKER_PACKAGE := $(firstword $(shell $(_cdbs_scripts_path)/list-packages)) - -DEB_MAKEMAKER_INVOKE = /usr/bin/perl Makefile.PL INSTALLDIRS=vendor - -# Set some MakeMaker defaults -DEB_MAKE_BUILD_TARGET = all -DEB_MAKE_CLEAN_TARGET = distclean -DEB_MAKE_CHECK_TARGET = test -DEB_MAKE_INSTALL_TARGET = install PREFIX=$(if $(DEB_MAKEMAKER_PACKAGE),$(CURDIR)/debian/$(DEB_MAKEMAKER_PACKAGE)/usr,$(DEB_DESTDIR)/usr) - -endif diff --git a/samples/perlmodule.mk b/samples/perlmodule.mk deleted file mode 100644 index cd5ae3d9..00000000 --- a/samples/perlmodule.mk +++ /dev/null @@ -1,50 +0,0 @@ -# -*- mode: makefile; coding: utf-8 -*- -# Copyright © 2003 Colin Walters and Jonas -# Smedegaard -# Description: Configures, builds, and cleans Perl modules -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation; either version 2, or (at -# your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -# 02111-1307 USA. - -_cdbs_scripts_path ?= /usr/lib/cdbs -_cdbs_rules_path ?= /usr/share/cdbs/1/rules -_cdbs_class_path ?= /usr/share/cdbs/1/class - -ifndef _cdbs_class_perlmodule -_cdbs_class_perlmodule = 1 - -# Make sure that CDBS_BUILD_DEPENDS is initialised -include $(_cdbs_rules_path)/buildvars.mk$(_cdbs_makefile_suffix) - -# Dependency according to Perl policy 4.3 -# (contrary to common misunderstanding a tighter dependency on perl 5.8 -# was only temporarily needed when 5.8 was introduced into Debian sid.) -CDBS_BUILD_DEPENDS := $(CDBS_BUILD_DEPENDS), perl (>= 5.6.0-16) - -include $(_cdbs_class_path)/perlmodule-vars.mk$(_cdbs_makefile_suffix) - -include $(_cdbs_class_path)/makefile.mk$(_cdbs_makefile_suffix) - -DEB_MAKEMAKER_PACKAGE ?= tmp - -ifneq ($(DEB_BUILDDIR),$(DEB_SRCDIR)) -$(error DEB_BUILDDIR and DEB_SRCDIR must be the same for Perl builds.) -endif - -common-configure-arch common-configure-indep:: Makefile -Makefile: - (cd $(DEB_BUILDDIR) && $(DEB_MAKEMAKER_INVOKE) $(DEB_MAKEMAKER_USER_FLAGS) ) - -endif diff --git a/samples/python-distutils.mk b/samples/python-distutils.mk deleted file mode 100644 index 236c1530..00000000 --- a/samples/python-distutils.mk +++ /dev/null @@ -1,272 +0,0 @@ -# -*- mode: makefile; coding: utf-8 -*- -# Copyright © 2003 Colin Walters -# Copyright © 2006 Marc Dequènes (Duck) -# -# Description: manage Python public modules build -# This class is designed to work with Python packages using the -# 'distutils' build system and comply to the new policy established -# during summer 2006. Use of the debhelper class to make use of the -# new dh_python is strongly advised. (This is still left as optional -# in line with CDBS' flexible behavior.) -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation; either version 2, or (at -# your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02111-1307 USA. -# - -# This class provides rules for old and new Python policy. Leaving -# DEB_PYTHON_SYSTEM unset selects the old behavior. The pysupport and -# pycentral methods are available to comply with new policy. Don't forget -# to update your 'debian/control'. (Build-Depends are correctly generated -# if you are using the auto control generation feature.) - -# Once all old-style packages are removed before etch, some of the old -# can be refactored or removed. - - -_cdbs_scripts_path ?= /usr/lib/cdbs -_cdbs_rules_path ?= /usr/share/cdbs/1/rules -_cdbs_class_path ?= /usr/share/cdbs/1/class - -ifndef _cdbs_class_python_distutils -_cdbs_class_python_distutils = 1 - -include $(_cdbs_rules_path)/buildcore.mk$(_cdbs_makefile_suffix) -include $(_cdbs_class_path)/langcore.mk$(_cdbs_makefile_suffix) - - -# check python system -cdbs_use_xs_field := $(shell grep -q "^XS-Python-Version:" debian/control && echo yes) -cdbs_selected_pycompat := $(shell if [ -e debian/pycompat ]; then cat debian/pycompat; fi) -cdbs_pycompat = $(cdbs_selected_pycompat) -ifeq (pysupport, $(DEB_PYTHON_SYSTEM)) - cdbs_python_support_path = usr/share/python-support/$(DEB_PYTHON_MODULE_PACKAGE) - ifeq (, $(cdbs_selected_pycompat)) - cdbs_pycompat = 2 - endif # use pycompat - # warning pysupport compatibility mode - ifneq (, $(cdbs_use_xs_field)) - $(warning Use of XS-Python-Version and XB-Python-Version fields in 'debian/control' is deprecated with pysupport method, use 'debian/pyversions' if you need to specify specific versions) - endif # use XS field (compat) -else - ifeq (pycentral, $(DEB_PYTHON_SYSTEM)) - ifeq (, $(cdbs_selected_pycompat)) - cdbs_pycompat = 2 - endif # use pycompat - else - ifneq (, $(DEB_PYTHON_SYSTEM)) - $(error unsupported Python system: $(DEB_PYTHON_SYSTEM) (select either pysupport or pycentral)) - else - ifneq (, $(cdbs_use_xs_field)) - $(error Your package uses the new Python policy; you must set DEB_PYTHON_SYSTEM to "pysupport" or "pycentral".) - endif - ifneq (, $(cdbs_selected_pycompat)) - ifeq (yes, $(shell expr $(cdbs_selected_pycompat) \> 1 >/dev/null && echo yes)) - $(error Your package uses the new Python policy; you must set DEB_PYTHON_SYSTEM to "pysupport" or "pycentral".) - endif - endif # use pycompat - endif # unknown method - endif # pycentral -endif # pysupport - - -ifndef DEB_PYTHON_SYSTEM -DEB_PYTHON_COMPILE_VERSION = -DEB_PYTHON_VERSIONS = 2.1 2.2 2.3 2.4 2.5 -else -# default package is the first one declared in 'debian/control' -# (override if necessary) -DEB_PYTHON_MODULE_PACKAGE = $(firstword $(filter-out %-doc %-dev %-common, $(DEB_PACKAGES))) -DEB_PYTHON_PRIVATE_MODULES_DIRS = -endif - -# common variables -DEB_PYTHON_SETUP_CMD = setup.py -DEB_PYTHON_CLEAN_ARGS = -a -DEB_PYTHON_BUILD_ARGS = --build-base="$(CURDIR)/$(DEB_BUILDDIR)/build" -DEB_PYTHON_INSTALL_ARGS_ALL = --no-compile -O0 - - -ifndef DEB_PYTHON_SYSTEM -########################### old policy method ########################### - -$(warning ########################################################) -$(warning Your package does not conform to the new Python policy.) -$(warning Please consider updating. Here is some documentation:) -$(warning http://wiki.debian.org/DebianPython/NewPolicy) -$(warning http://wiki.debian.org/DebianPythonFAQ) -$(warning ########################################################) - -# make: *** No rule to make target `voodoo'. Stop. -DEB_PYTHON_REAL_LIB_PACKAGES = $(strip $(filter $(patsubst %,python%%,$(DEB_PYTHON_VERSIONS)),$(filter-out $(DEB_PYTHON_PACKAGES_EXCLUDE),$(DEB_ALL_PACKAGES)))) -# If no versioned python library packages found, grab all simpler ones -ifeq (,$(DEB_PYTHON_REAL_LIB_PACKAGES)) -DEB_PYTHON_SIMPLE_PACKAGES = $(strip $(filter python-%,$(filter-out $(DEB_PYTHON_PACKAGES_EXCLUDE),$(DEB_ALL_PACKAGES)))) -endif - -cdbs_python_ver = $(filter-out -%,$(subst -, -,$(patsubst python%,%,$(cdbs_curpkg)))) - -common-build-arch common-build-indep:: common-build-impl -common-build-impl:: - cd $(DEB_SRCDIR) && python$(DEB_PYTHON_COMPILE_VERSION) $(DEB_PYTHON_SETUP_CMD) build $(DEB_PYTHON_BUILD_ARGS) - - -# See if this package doesn't appear to need to be compiled by multiple -# Python versions. -ifeq (,$(DEB_PYTHON_REAL_LIB_PACKAGES)) -common-install-arch common-install-indep:: common-install-impl -common-install-impl:: - cd $(DEB_SRCDIR) && /usr/bin/python$(DEB_PYTHON_COMPILE_VERSION) $(DEB_PYTHON_SETUP_CMD) install --root=$(DEB_DESTDIR) $(DEB_PYTHON_INSTALL_ARGS_ALL) $(DEB_PYTHON_INSTALL_ARGS_$(cdbs_curpkg)) -else -$(patsubst %,install/%,$(DEB_PYTHON_REAL_LIB_PACKAGES)) :: install/% : - cd $(DEB_SRCDIR) && /usr/bin/python$(cdbs_python_ver) $(DEB_PYTHON_SETUP_CMD) install --root=$(CURDIR)/debian/$(cdbs_curpkg) $(DEB_PYTHON_INSTALL_ARGS_ALL) $(DEB_PYTHON_INSTALL_ARGS_$(cdbs_curpkg)) -endif - -$(patsubst %,install/%,$(DEB_PYTHON_SIMPLE_PACKAGES)) :: install/% : - cd $(DEB_SRCDIR) && python $(DEB_PYTHON_SETUP_CMD) install --root=$(CURDIR)/debian/$(cdbs_curpkg) $(DEB_PYTHON_INSTALL_ARGS_ALL) $(DEB_PYTHON_INSTALL_ARGS_$(cdbs_curpkg)) - -# This class can optionally utilize debhelper's "dh_python" command. Just -# be sure you include debhelper.mk before including this file. -ifdef _cdbs_rules_debhelper - -DEB_DH_PYTHON_ARGS = $(addprefix -V ,$(DEB_PYTHON_COMPILE_VERSION)) $(DEB_DH_PYTHON_ARGS_ALL) $(DEB_DH_PYTHON_ARGS_$(cdbs_curpkg)) - -$(patsubst %,binary-install/%,$(DEB_PACKAGES)) :: binary-install/%: - dh_python -p$(cdbs_curpkg) $(DEB_DH_PYTHON_ARGS) -endif - - -# Ignore errors from this rule. In a tarball build, the file may not -# exist. -ifeq (,$(DEB_PYTHON_REAL_LIB_PACKAGES)) -clean:: - -python$(DEB_PYTHON_COMPILE_VERSION) $(DEB_PYTHON_SETUP_CMD) clean $(DEB_PYTHON_CLEAN_ARGS) -else -clean:: $(patsubst %,python-cleanbuilddir/%,$(DEB_PYTHON_REAL_LIB_PACKAGES)) - -$(patsubst %,python-cleanbuilddir/%,$(DEB_PYTHON_REAL_LIB_PACKAGES)) :: python-cleanbuilddir/% : - -python$(cdbs_python_ver) $(DEB_PYTHON_SETUP_CMD) clean $(DEB_PYTHON_CLEAN_ARGS) -endif - -else -########################## new policy methods ########################### - -# Calculate cdbs_python_build_versions -cdbs_python_module_arch := $(strip $(shell perl -e '$$/=""; $$_=(grep {/^Package: $(DEB_PYTHON_MODULE_PACKAGE)$$/m;} (<>))[0]; /^Architecture: (.*)$$/m && print $$1' debian/control)) -cdbs_python_current_version := $(shell pyversions -vd) -ifeq (all, $(cdbs_python_module_arch)) - # check if current is in build versions - ifneq ($(cdbs_python_current_version), $(filter $(cdbs_python_current_version), $(shell pyversions -vr))) - cdbs_python_compile_version := $(firstword $(strip $(sort $(shell pyversions -vr)))) - cdbs_python_build_versions := $(cdbs_python_compile_version) - else - cdbs_python_build_versions := $(cdbs_python_current_version) - endif -else -cdbs_python_build_versions := $(shell pyversions -vr) -endif # archall - -# check if build is possible -ifeq (, $(cdbs_python_build_versions)) -ifeq (pysupport, $(DEB_PYTHON_SYSTEM)) -$(error invalid setting in 'debian/pyversions') -else -$(error invalid setting for XS-Python-Version) -endif # system selected -endif # build versions empty - - -# Declare Build-Deps for packages using this file -CDBS_BUILD_DEPENDS := $(CDBS_BUILD_DEPENDS), debhelper (>= 5.0.37.2), cdbs (>= 0.4.43) -ifeq (all, $(cdbs_python_module_arch)) - ifneq (, $(cdbs_python_compile_version)) - CDBS_BUILD_DEPENDS := $(CDBS_BUILD_DEPENDS), python$(cdbs_python_compile_version)-dev, python (>= 2.3.5-11) - else - CDBS_BUILD_DEPENDS := $(CDBS_BUILD_DEPENDS), python-dev (>= 2.3.5-11) - endif -else -CDBS_BUILD_DEPENDS := $(CDBS_BUILD_DEPENDS), python-all-dev (>= 2.3.5-11) -endif -ifeq (pysupport, $(DEB_PYTHON_SYSTEM)) -CDBS_BUILD_DEPENDS := $(CDBS_BUILD_DEPENDS), python-support (>= 0.3.2) -else -CDBS_BUILD_DEPENDS := $(CDBS_BUILD_DEPENDS), python-central (>= 0.5.0) -endif - - -# build stage -common-build-arch common-build-indep:: $(addprefix python-build-stamp-, $(cdbs_python_build_versions)) -python-build-stamp-%: -ifeq (all, $(cdbs_python_module_arch)) - cd $(DEB_SRCDIR) && python$(cdbs_python_compile_version) $(DEB_PYTHON_SETUP_CMD) build $(DEB_PYTHON_BUILD_ARGS) -else - cd $(DEB_SRCDIR) && python$* $(DEB_PYTHON_SETUP_CMD) build $(DEB_PYTHON_BUILD_ARGS) -endif # archall detection - touch $@ - - -# install stage -ifeq (all, $(cdbs_python_module_arch)) -common-install-arch common-install-indep:: python-install-py -python-install-py: - cd $(DEB_SRCDIR) && python$(cdbs_python_compile_version) $(DEB_PYTHON_SETUP_CMD) install --root=$(DEB_DESTDIR) $(DEB_PYTHON_INSTALL_ARGS_ALL) -else -common-install-arch common-install-indep:: $(addprefix python-install-, $(cdbs_python_build_versions)) -python-install-%: - cd $(DEB_SRCDIR) && python$* $(DEB_PYTHON_SETUP_CMD) install --root=$(DEB_DESTDIR) $(DEB_PYTHON_INSTALL_ARGS_ALL) -endif # archall detection - - -# This class can optionally use debhelper's commands. Just -# be sure you include debhelper.mk before including this file. -ifdef _cdbs_rules_debhelper - -DEB_DH_PYTHON_ARGS = $(DEB_DH_PYTHON_ARGS_ALL) $(DEB_DH_PYTHON_ARGS_$(cdbs_curpkg)) $(DEB_PYTHON_PRIVATE_MODULES_DIRS) - -$(patsubst %,binary-install/%,$(DEB_PACKAGES)) :: binary-install/%: -ifeq (pysupport, $(DEB_PYTHON_SYSTEM)) - dh_pysupport -p$(cdbs_curpkg) $(DEB_PYTHON_PRIVATE_MODULES_DIRS) -else - dh_pycentral -p$(cdbs_curpkg) -endif - dh_python -p$(cdbs_curpkg) $(DEB_DH_PYTHON_ARGS) -endif - - -# clean stage -clean:: $(addprefix python-clean-, $(cdbs_python_build_versions)) -python-clean-%: -ifeq (all, $(cdbs_python_module_arch)) - -cd $(DEB_SRCDIR) && python$(cdbs_python_compile_version) $(DEB_PYTHON_SETUP_CMD) clean $(DEB_PYTHON_CLEAN_ARGS) -else - -cd $(DEB_SRCDIR) && python$* $(DEB_PYTHON_SETUP_CMD) clean $(DEB_PYTHON_CLEAN_ARGS) -endif # archall detection - -clean:: -ifeq (, $(cdbs_selected_pycompat)) - echo "$(cdbs_pycompat)" >debian/pycompat -endif # use pycompat - rm -f python-build-stamp-* - -endif - - -########################## all policy methods ########################### - -# Calling setup.py clean may create .pyc files, so we need a final cleanup -# pass here. -clean:: - find . -name '*.pyc' -exec rm '{}' ';' - -endif