David Dawes wrote:
On Wed, Mar 17, 2004 at 06:55:21PM -0800, Lee Olsen wrote:
  
Hello all;

I now have a handle on what is going on and why, and some proposed 
chasnges to fix it.
Here's a simplification of the install dependency chain from 
xc/lib/font/Makefile:

install:: lib$(LIBNAME).a

lib$(LIBNAME).a : $(SUBDIRS)

$(SUBDIRS) : FRC
       @echo "making all in $(CURRENT_DIR)/[EMAIL PROTECTED]"
       @$(MAKE) -C $@ $(MFLAGS) $(PARALLELMFLAGS) 
CDEBUGFLAGS="$(CDEBUGFLAGS)" LDSTRIPFLAGS="$(LDSTRIPFLAGS)" all

FRC :

Since FRC never exists, it gets remade, forcing $(SUBDIRS) to be remade, 
echoing
"making all in ..." and doing just that. To stop the rebuilding during 
an install, the
dependency chains must be separated. Removing all dependencies on 
install:: targets
does exactly that.
    

What is the rebuilding in $(SUBDIRS) causing to get rebuilt?  I see get
rebuilt is the symlinks to xc/exports for the font modules.  That can
be fixed by moving where the link creation is done, so that it isn't a
separate all:: target of its own.  (I'm testing a patch that does this
now.)

  
On a fat client, one that has compilers and development headers and libraries,
it's the link creations for libraries (100+) and drivers (30+) and the build.new stuff (1).
On a thin client, one without development tools, it's `Cannot find a rule to
build /usr/include/stdio.h' and similar failures during the dependency checks.
The only way I see to stop these is for `make install' to not do dependency checks.
If I'm blind and there are other choices, that's ok too.

The links get rebuild in an `all' step after the target they point to is created, so
I didn't consider that to be the problem. Only replacing them if they change
might be nice.

Enjoy
Lee

Reply via email to