On Mon, 07 Dec 2009 11:01:02 +0100
Thorsten Behrens <t...@openoffice.org> wrote:

> This is a circular argument. Correct dependencies and the underlying
> build/make system used are orthogonal. As an aside, I guess I'm only 
> questioning the rationale here, not the goal - getting rid of the 
> build.pl perl hell would be quite appreciated. ;)
This is not an issue of correctness of dependencies, its about
granularity of build.pl's dependencies. Build.pl dependencies are no
finer than a module -- and the smallest build unit it knows about is a
directory.

> Granted, quite some redundancy results out of OOo's inconsistency on
> many levels;
Jep. In the long run it would be a good idea to get rid of those and not
to work around them in build system.

> still, why not encoding that knowledge in one place,
> instead of spreading it over umpteen makefiles again? Actually the
> current libs.mk does a better job of encapsulating things, compared
> to the manual fetch of lib names via OOoLibrary_get*, RTLibrary_get*
> etc. 
That is open to discussion. However, having a centralized library name
registry is feeling just as wrong. (I remember saying that I wanted
ugly things to be ugly in the build system and not do any cosmetics on
them, so that they might be fixed at the root -- once you do cosmetics,
you quickly end up depending on the ugliness and thus will never get
rid of it.)

>  # loads cxxflags, weird sw include setup etc.
>  include sw_defaults 
Here you will either need to use dirty tricks or you will clash in a
global namespace, because you would like these defaults to be applied
to msword and others in sw, but not the others. What you could do is
something like this:
-- file inc_sw_defaults.mk
#include guards here
define set_sw_defaults
$$(eval $$(call gb_OOoLibrary_set_include,$(1),...))
...
endef
-- end file sw_defaults
-- file target_lib_msword.mk
include ....inc_sw_defaults.mk
$(eval $(call set_sw_defaults,msword))
....
end file

>  msword_linklibs=$(extractdeps $(msword_SOURCES))
>
> The last line may well be a pipe dream for the while, but at least
> in theory, one should be able to glean the needed libs from the
> #include statements ...
You share that pipe dream with Kay Ramme (and me too). But lets be
realistic -- we will have to learn to crawl before we try running.

> > So a generated project file might introduce subtle different builds,
> > is dependent on the version of the generator and is read-only.
> > Since you can "generate a project from existing code" trivially in
> > NetBeans, Visual Studio and others and just as well kick of a
> > makefile-based build in all modern IDEs, what exactly is gained by
> > generated project files?
> >
> If that gives the same developer experience - sure. I'd then be
> interested in some pointers inside the wiki's build guide. ;)
Will be considered. However, for the bigger modules like sw having just
one module (and headers from solver) in the IDE can be really slow.
Still, for stuff like renaming a method with a hard-to-grep/sed name
(hmmm, like "Update" or "Modify") it might be worth it.

> Would then be interesting to know how implicit rules are treated
> inside gnu make (i.e. whether each instantiation counts) - we'd be
> in that ballpark easily, with some 11k cxx files & what else comes
> on top.
Pattern rules definitely scale different than explicit rules for each
target. One thing I will have to watch out for are variable scopes.
However, we do not need a variable scope per cxx file -- in most cases
only the linking targets (the libraries) have a variable scope and those
are not so many that it would scare me. Still, I will do some
(synthetic) test on those too.

> Prior art:
> http://www2.parc.com/csl/groups/sda/publications/papers/Kiczales-IMSA92/for-web.pdf
Pfft, thats easy. There is always prior art at Xeroc PARC. ;-)

> And in fact inescapable, ~every implementation will leak under its
> abstractions. So I guess you're rather arguing for having only _one_
> implementation - which is not obtainable in a cross-platform,
> opensource project. ;)
No, I am all for (according to the Zen of Python):
"There should be one-- and preferably only one --obvious way to do it."

Best Regards,

Bjoern Michaelsen


-- 
===========================================================================
 Sitz der Gesellschaft:
 Sun Microsystems GmbH, Sonnenallee 1, D-85551 Kirchheim-Heimstetten
 Amtsgericht Muenchen: HRB 161028
 Geschaeftsfuehrer: Thomas Schroeder, Wolfgang Engels, Wolf Frenkel
 Vorsitzender des Aufsichtsrates: Martin Haering
===========================================================================


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tools.openoffice.org
For additional commands, e-mail: dev-h...@tools.openoffice.org

Reply via email to