[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: aggregate makefile not working correctly (make install)
From: |
Nicola Pero |
Subject: |
Re: aggregate makefile not working correctly (make install) |
Date: |
Fri, 10 Jan 2003 14:36:23 +0000 (GMT) |
> > One trick which can be helpful is to make sure that the tools are
> > compiling and linking against the non-installed versions of the
> > libraries.
> >
> > It seems your problem is that the tools are built against the installed
> > versions of the libraries (then, of course, you need to install the new
> > libraries first before being able to use them).
> >
> > In the GNUmakefile for the tools, you can add something like -
> >
> > ADDITIONAL_INCLUDE_DIRS += -I../Source
> > ADDITIONAL_LIB_DIRS += -L../Source/obj
>
> This is a bit cumbersome since I have to specify one directory for each
> library I want to link against.
Hint: it's quite possible that you could put all the flags in a top-level
GNUmakefile fragment (a file called, say, GNUmakefile.libraries), then
include that file in the GNUmakefiles of all the aggregate projects below
(by using 'include ../GNUmakefile.libraries'). Then, you have the flags
in a single location, and can easily manage them, and it's no longer
cumbersome.
> Why can't the make package simply
> perform "make install" for all projects in the aggregate in the given
> order instead of doing make for all projects first? This seems to be the
> cleanest solutions fr the problem for me. Am I missing anything?
Thanks for the suggestion.
At the moment if you have aggregate projects A and B, and if you type
'make install' at top-level, the following operations are done:
make in A
make in B
make install in A
make install in B
If I understand you correctly, you are suggesting that we change the order
to -
make in A
make install in A
make in B
make install in B
It's a clever suggestion :-) I like it (but can't use it, as I'll
explain).
I don't think it would solve your problem though, because what happens if
you type just 'make' (not 'make install') ? Then make would execute again
make in A
make in B
without any install, so if you don't add the appropriate -I, -L flags,
this wouldn't work anyway. You could only do a 'make install', not a
'make'.
That might not be a problem for you, but in general it is a very serious
problem - I can't really change the order in gnustep-make without
implicitly encouraging writing GNUmakefiles where 'make install' works,
but 'make' doesn't work, and that's not an option.