[Mesa-dev] Is the pure-make build system still supported?

Brad King brad.king at kitware.com
Fri Jun 1 06:32:38 PDT 2012


Hi Folks,

Since commit 0ce0f7c0 (mesa: Remove the generated glapi from source
control, and just build it, 2012-05-15) I get this:

 $ make linux-x86-64
 ...
 make[3]: Entering directory `.../src/mapi/glapi'
 make[3]: *** No rule to make target `depend', needed by `default'.  Stop.
 make[3]: Leaving directory `.../src/mapi/glapi'
 make[2]: *** [subdirs] Error 1
 make[2]: Leaving directory `.../src'
 make[1]: *** [default] Error 1
 make[1]: Leaving directory `...'

It's easily addressed by the first patch below, but the build later
fails with

 make[5]: Entering directory `.../src/gallium/auxiliary/pipe-loader'
 make[5]: *** No rule to make target `default'.  Stop.
 make[5]: Leaving directory `.../src/gallium/auxiliary/pipe-loader'

All I really need is GL and GLU so after applying the patch I can
build using the command

 $ bin/extract_git_sha1 &&
   ln -s linux-x86-64 configs/current &&
   (cd src/glsl && make default) &&
   (cd src/mapi/glapi/gen && make all) &&
   (cd src/mapi/glapi && make default) &&
   (cd src/mesa && make default) &&
   (cd src/glu/sgi && make default) &&
   true

However, later commit 7d7fe1b0 (automake: Rename variables in
sources.mak to be automake compatible, 2012-05-16) renamed many
Makefile variables but did not update configs/* accordingly.  The
result drops config-specific sources from pure-make builds.  For
example on x86_64 when linking to Mesa GL I get:

 undefined reference to `_mesa_x86_64_transform_points4_3d'
 undefined reference to `_mesa_3dnow_transform_points4_perspective'
 undefined reference to `_mesa_x86_64_transform_points4_identity'
 undefined reference to `_mesa_x86_64_transform_points4_general'
 undefined reference to `_mesa_3dnow_transform_points4_2d'
 undefined reference to `_mesa_x86_64_cpuid'
 undefined reference to `_mesa_3dnow_transform_points4_2d_no_rot'
 undefined reference to `_mesa_3dnow_transform_points4_3d_no_rot'

The second patch below fixes this particular issue but there are
probably many more cases.

FYI, the reason I use the pure-make build with the above command
sequence is to achieve a minimal build of just GL and GLU.  I use
it to run a nightly build of Mesa so I can run the VTK test suite
against it to catch any Mesa regressions VTK exposes.  Occasionally
Mesa fails to build in sources unrelated to GL and GLU which then
prevents that version from being tested, so I want to build only
the minimal part needed.

Thanks,
-Brad


diff --git a/configs/default b/configs/default
index 40fa5e3..ca9ac71 100644
--- a/configs/default
+++ b/configs/default
@@ -99,7 +99,7 @@ MOTIF_CFLAGS = -I/usr/include/Motif1.2

 # Directories to build
 LIB_DIR = lib
-SRC_DIRS = glsl mapi/glapi mapi/vgapi mesa \
+SRC_DIRS = glsl mapi/glapi/gen mapi/glapi mapi/vgapi mesa \
        gallium egl gallium/winsys gallium/targets glu
 GLU_DIRS = sgi
 DRIVER_DIRS = x11 osmesa

diff --git a/configs/linux-x86-64 b/configs/linux-x86-64
index c2441e0..81bb36b 100644
--- a/configs/linux-x86-64
+++ b/configs/linux-x86-64
@@ -6,7 +6,7 @@ CONFIG_NAME = linux-x86-64

 ARCH_FLAGS = -m64

-MESA_ASM_SOURCES = $(X86-64_SOURCES)
+MESA_ASM_FILES = $(X86_64_FILES)
 GLAPI_ASM_SOURCES = $(X86-64_API)
 ASM_FLAGS = -DUSE_X86_64_ASM




More information about the mesa-dev mailing list