-=| 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