-=| Martín Ferrari, Mon, Jan 07, 2008 at 08:13:38AM -0200 |=-
> On Jan 7, 2008 7:32 AM, Damyan Ivanov <dmn@debian.org> wrote:
> > * revamping the build approach: discussions/prototyping/rants/cdbs vs.
> > anti-cdbs flames
>
> This will surely be an interesting real-life flamewar :)
>
> Speaking of which, after Friday's marathon, I threw the makefiles and
> haven't touched them again (make is _very_ frustrating). But I'd like
> to know if anyone had the opportunity to take a look at them and has
> any opinion.
I looked at the "short and simple" one and even if I had some dislikes,
it was at least mostly readable. I've committed it in scripts/supmbs.mk
in svn as a possible exploration direction. ("simple unified perl module
build system"; better name wanted)
The current approach tries to be all-in-one, which may be a bit
overreaching. Perhaps we can provide two files for arch-indep and
arch-dep modules, and one common that is included from both.
I am also a bit worried that some properties of the makefile are
controlled by the presence of some files/dirs. I'd make it
varriable-driven. I mean - patch system used, build method (MakeMaker
vs. Module::Build). Imagine a dpatch named "series" or a quilt patch
named "00list" -- confusing for everyone. It is also common for
Module::Build-using modules to also provide Makefile.PL for backwards
compatibility.
I also dislike that dh_install* calls are driven by the presence of
debian/$pkg.* files. I just prefer to review one file (debian/rules)
instead of many. This can be avoided at the cost of some uglification by
using variables. For example
SUPMBS_DOCS := auto # default, let dh_installdocs look for debian/docs
:= README # generates "dh_installdocs README"
SUPMBS_LINKS := <empty> # default; omit the call to dh_link
I also understand that this approach currently supports extension via
the makefile target:: syntax, which means adding to the targets, i.e.
clean::
rm some/forgotten/file
I am not sure how to improve this (and if it is worth it):
pre-clean: # empty by default
clean: pre-clean
# simplified. Build.PL...
[ ! -e Makefile ] || $(MAKE) distclean
With this, one could extend pre-clean:: to put something before the
"standard" clean
Too bad that makefiles don't have user-defined functions :(
Finally, I am not sure how will this work for more complicated,
multi-binary packages. Even if it doesn't, simplifying mass-changes to
the majort part of our packages would be a huge benefit.
--
dam JabberID: dam@jabber.minus273.org
Attachment:
signature.asc
Description: Digital signature