On 2/15/08, José Fonseca <[EMAIL PROTECTED]> wrote:
> Just to let you know that the first step, file shuffling, is finished.
>
> The rest will take more time but changes are less pervasive. Once you
> update any private branches to the new directory layout, you should be
> able to keep working as usual.
>
> Here's a quick summary of the changes you might need to do:
>  - move your source files to the directory layout described below;
>  - update the TOP dirs in your Makefiles;
>  - update the include paths, replacing "-I src/mesa/pipe" to "-I
> src/gallium/include -I src/gallium/drivers -I src/gallium/aux";
>  - remove "pipe/" prefix from from all includes *except* "pipe/p_*.h"
> includes.

I've now splitted gallium and mesa Makefiles (i.e., don't build
src/gallium/* source files inside src/mesa/* makefiles, and
vice-versa). I did my best to not break cell and llvm builds, but in
case I missed something, a summary of the changes follows.

There are now a few gallium-specific config variables (in configs/default):
- GALLIUM_AUXILIARY_DIRS: subdirs of src/gallium/auxiliary to build
- GALLIUM_AUXILIARIES: list of auxiliary libraries to link (computed
automatically from GALLIUM_AUXILIARY_DIRS)
- GALLIUM_DRIVER_DIRS: subdirs of src/gallium/drivers to build
-GALLIUM_DRIVERS: list of drivers to link (also computed automatically
from GALLIUM_DRIVERS)
-GALLIUM_WINSYS_DIRS = list of subdirs of src/winsys to build (e.g.,
xlib, dri, etc.)

So all gallium variants should extend the above variables to build
additional auxiliary modules (e.g., llvm) or drivers (e.g., cell), or
dri drivers.

One thing to be aware now is that the gallium source files are not
being linked in the monolithic src/mesa/Makefile as many object files
but built as many little libraries. So the order as all the gallium
libraries are passed to the linker is relevant (at least for the gcc
linker), and circular dependencies will result in missing symbols. To
quickly avoid this problem I've enclosed all gallium libraries inside
-start-group and --end-group linker flags. If you encounter these kind
of problems, make sure these flags are being passed to the linker.

Concerning out-of-tree drivers, I think that with some path
manipulation and gnu make magic it should be possible to easily
support out-of-tree drivers with the current makefiles by accepting in
GALLIUM_AUXILIARY_DIRS, GALLIUM_DRIVER_DIRS, GALLIUM_WINSYS_DIRS
variables not only relative dirs, but also absolute directories. (Note
-- I'm still commited to get scons to replace the makefiles, but the
sooner we get this the better.)

Jose

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to