[Build-common-hackers] Re: cdbs and Build-Depends-Indep

Colin Walters walters@debian.org
15 Jun 2003 04:27:55 -0400


On Sun, 2003-06-15 at 01:28, Chris Hanson wrote:
> Hi Colin,
> 
> Thanks for the changes to cdbs, but...  

I reverted those changes actually.  I think since policy says
Build-Depends and Build-Depends-Indep must be installed for 'build',
it's safe to have 'build' just always depend on build-arch and
build-indep.

> I'm still unable to make
> binary-arch without also partly making the arch-independent packages.
> The reason is the following three rules from "buildcore.mk":
> 
> common-build:: testdir $(patsubst %,configure/%,$(DEB_ALL_PACKAGES))
> common-post-build:: common-build $(patsubst %,build/%,$(DEB_ALL_PACKAGES)) 
> common-binary:: testdir testroot $(patsubst %,install/%,$(DEB_ALL_PACKAGES)) common-install
> 
> As you can see, these rules force configure, build, and install of
> arch-independent packages, even if the original target is binary-arch,
> as it is in this case.  I'm not sure what the right fix is.  But this
> is getting very complicated.

Ah...right.  Hm.  I think we'll need to split those into
common-build-arch and common-build indep.  Actually this will require a
lot of splits.  

[most of the rest below is for build-common-hackers]...

I just did some of this work in the cdbs CVS.  It passes the regression
test suite, but I think more thought is necessary.  A lot of classes
used the common-blah targets; e.g. python-distutils.mk does:

common-build::
	cd $(DEB_SRCDIR) && python $(DEB_PYTHON_SETUP_CMD) build $(DEB_PYTHON_BUILD_ARGS)

I think we'll have to change this to look something like:

common-build-arch common-build-indep:: common-build
common-build::
	cd $(DEB_SRCDIR) && python $(DEB_PYTHON_SETUP_CMD) build $(DEB_PYTHON_BUILD_ARGS)

Then we'll have to make common-build just a dummy target in buildcore.mk
(currently it depends on build-arch build-indep).  I'm going to try this
tomorrow and run tests/pbuilder-all.sh to see if there's any
regressions.  Ideas welcome though.

BTW, I think this ties in with some of the stuff on TODO about compiling
with multiple flags, etc.  I know at least one package wants to pass
different ./configure flags for an arch vs. an indep build.