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