Matthieu (and Matthias),


Matthias Scheler wrote:


On Thu, Sep 18, 2003 at 10:58:19PM +0200, Matthieu Herrb wrote:

It seems to me that the C langage version of ucs2any.pl developped by
Ben Collver and other NetBSD developpers is now stable enough to be
included in XFree86.


Two comments:
1.) While it is stable enough it is quite slow due to excessive and
    ineffecient use of regular expressions.
2.) A while ago I reported the fonts get build twice. We could confirm
    that problem in the meantime and found out that it was related
    to using a C version of "ucs2any". Tatoku Ogaito finally fixed
    it by adding "includes :: ucs2any" to "xc/fonts/util/Imakefile".

Fonts get built twice on Cygwin as well. In fact, they probably get built twice on all platforms.


The xc/fonts/util/Imakefile already has "includes:: ucs2any" in it in the version that I am compiling; yet, ucs2any is still run for each font during both the "includes" step and later during the "all" step.

It seems that Tatoku Ogaito's patch (if his patch was to add the includes:: dependency) was included but it does not fix the problem.

The root problem here is that ucs2any is being deleted and rebuilt, because of its dependencies, during the "all" stage of compilation.


It breaks down like this: ========================= 1) ucs2any is built using SimpleProgramTarget

2) SimpleProgramTarget calls ComplexProgramTarget

3) ComplexProgramTarget calls ProgramTargetHelper as such:

ProgramTargetHelper(program,SRCS,OBJS,DEPLIBS,$(LOCAL_LIBRARIES),NullParameter)

4) ProgramTargetHelper sets up the dependencies as follows:

ProgramTargetName(program): $(objs) $(deplib)

4) DEPLIBS is, in this case:
        $(DEPXAWLIB) $(DEPXMULIB) $(DEPXTOOLLIB) $(DEPXLIB)

5) The DEPLIBS have not yet been built during the "includes" stage. Why ucs2any is still built when its dependencies have not been built is sort of a mystery to me. In any case, ucs2any is built and run during the "includes" stage.

6) The DEPLIBS are built during "all" and upon return to the font/util directory during "all", ucs2any is deleted and rebuilt since the DEPLIBS have a more recent timestamp.

7) All of the bdf files are thus rebuilt since the ucs2any timestamp has been updated.


Building the fonts takes a really long time. Maybe my opinion doesn't matter, but I think that this patch needs to be corrected so that the fonts aren't built twice. I can think of at least one way to do this, which would be to call AllTarget and ProgramTargetHelper directly from xc/fonts/util/Imakefile, passing nothing as DEPLIBS.



Harold


_______________________________________________
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel

Reply via email to