/usr/share/cdbs/1/class/waf.mk is in cdbs 0.4.130ubuntu2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 | # -*- mode: makefile; coding: utf-8 -*-
# Copyright © 2010 Rémi Thebault <remi.thebault@gmail.com>
# Copyright © 2011 Jonas Smedegaard <dr@jones.dk>
# Description: A class to configure and build Waf based packages
#
# 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, see <http://www.gnu.org/licenses/>.
####
#
# Here is how to use this class in debian/rules:
# include /usr/share/cdbs/1/class/waf.mk
#
# General variables implemented by this class file:
#
# DEB_WAF_OPTIONS
# Options that will be appended to every WAF call
#
# DEB_WAF_CONFIGURE_OPTIONS
# Options that will be appended to the WAF configure target
#
# DEB_WAF_ENV
# Environment variables to be passed to every WAF invocation
_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_waf
_cdbs_class_waf = 1
include $(_cdbs_rules_path)/buildcore.mk$(_cdbs_makefile_suffix)
include $(_cdbs_class_path)/langcore.mk$(_cdbs_makefile_suffix)
DEB_WAF_PREFIX ?= /usr
cdbs_waf_options = $(call cdbs_expand_curvar,DEB_WAF_OPTIONS)
cdbs_waf_configure_options = $(call cdbs_expand_curvar,DEB_WAF_CONFIGURE_OPTIONS)
cdbs_waf_env = $(call cdbs_expand_curvar,DEB_WAF_ENV)
cdbs_waf_parallel = $(and $(DEB_BUILD_PARALLEL),$(DEB_PARALLEL_JOBS),--jobs $(DEB_PARALLEL_JOBS))
cdbs_waf_invoke = cd $(DEB_SRCDIR) && $(cdbs_waf_env) ./waf $(cdbs_waf_parallel)
cdbs_waf_configure_env = $(call cdbs_set_nondefaultvars,CC CXX) CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" CPPFLAGS="$(CPPFLAGS)" LINKFLAGS="$(LDFLAGS)"
cdbs_waf_configure_invoke = cd $(DEB_SRCDIR) && $(cdbs_waf_configure_env) $(cdbs_waf_env) ./waf $(cdbs_waf_parallel)
cdbs_waf_configure_target := configure
cdbs_waf_clean_target := distclean
cdbs_waf_build_target := build
cdbs_waf_install_target := install
# ensure waf is executable and wscript is present
testsanity::
test -f $(DEB_SRCDIR)/waf
test -x $(DEB_SRCDIR)/waf
test -f $(DEB_SRCDIR)/wscript
# and that waf fit the checksum in debian/waf.sha1sum
cdbs-waf-checksum:
$(if $(DEB_WAF_SKIP_CHECKSUM),\
$(call cdbs_warn,\
waf file is executed without prior inspection! \
This might be unsafe - you have been warned...!),\
$(call cdbs_info,\
Will now checksum the waf file with debian/waf.sha1sum)\
$(if $(shell if test -f debian/waf.sha1sum; then echo something; fi),\
,\
$(error ERROR: \
debian/waf.sha1sum is absent))\
$(if $(shell grep waf debian/waf.sha1sum),\
,\
$(error ERROR: \
debian/waf.sha1sum is present \
but doesn't actually test waf))\
$(if $(shell if sha1sum --check --status debian/waf.sha1sum; then echo something; fi),\
$(call cdbs_info,\
waf checksum is OK),\
$(call cdbs_warn,\
waf calculated checksum is \
$(firstword $(shell sha1sum ./waf)))\
$(info $(shell $(_cdbs_scripts_path)/waf-unpack --waf ./waf --dest debian/waf-unpacked)) \
$(error ERROR: \
waf checksum doesn't \
fit debian/waf.sha1sum. \
Inspect unpacked waf in \
debian/waf-unpacked, \
and if ok store above \
calculated checksum as \
debian/waf.sha1sum \
and delete \
debian/waf-unpacked)))
common-configure-arch common-configure-indep:: common-configure-impl
common-configure-impl:: debian/stamp-waf-configure
debian/stamp-waf-configure:
$(cdbs_waf_configure_invoke) $(cdbs_waf_configure_target) --prefix=$(DEB_WAF_PREFIX) $(cdbs_waf_options) $(cdbs_waf_configure_options)
touch $@
common-build-arch common-build-indep:: common-build-impl
common-build-impl:: debian/stamp-waf-build
debian/stamp-waf-build:
$(cdbs_waf_invoke) $(cdbs_waf_build_target) $(cdbs_waf_options)
touch $@
clean:: cdbs-waf-clean
cdbs-waf-clean:
$(cdbs_waf_invoke) $(cdbs_waf_clean_target) $(cdbs_waf_options)
rm -rf debian/stamp-waf-*
common-install-arch common-install-indep:: common-install-impl
common-install-impl::
$(cdbs_waf_invoke) $(cdbs_waf_install_target) --destdir=$(cdbs_curdestdir) $(cdbs_waf_options)
CDBS_BUILD_DEPENDS_class_waf ?= python, cdbs (>= 0.4.90~)
CDBS_BUILD_DEPENDS += , $(CDBS_BUILD_DEPENDS_class_waf)
DEB_PHONY_RULES += cdbs-waf-clean
endif
|