[Mesa-dev] [PATCH 2/2] (hack) build libgallium against libdricore
Maarten Lankhorst
maarten.lankhorst at canonical.com
Mon Mar 18 07:49:11 PDT 2013
This is a hack ubuntu uses to reduce the size of mesa, it links libgallium against libmesagallium and libdricore.
I think it's too ugly to commit in its current form, but it works with the flags ubuntu passes to configure.
On 9.0 branch I had a similar patch, without shared libgallium and without this
hack, the stripped build was 36 mb. With just shared gallium it was 25 mb,
and with both applied it was 12 mb.
libmesagallium had to be moved to a subdir, to force the correct build order.
>8---
Not-signed-off-by: Maarten Lankhorst <maarten.lankhorst at canonical.com>
--- a/src/mesa/libdricore/Makefile.am
+++ b/src/mesa/libdricore/Makefile.am
@@ -42,6 +42,7 @@
libdricore at VERSION@_la_LDFLAGS = -version-number 1:0
libdricore at VERSION@_la_LIBADD = \
../program/libdricore_program.la \
+ $(top_builddir)/src/mapi/shared-glapi/libglapi.la
$()
if HAVE_X86_ASM
@@ -65,8 +66,10 @@
-I$(top_srcdir)/src/mesa/sparc
endif
+lib_LTLIBRARIES =
+
if HAVE_DRI
-lib_LTLIBRARIES = libdricore at VERSION@.la
+lib_LTLIBRARIES += libdricore at VERSION@.la
# Provide compatibility with scripts for the old Mesa build system for
# a while by putting a link to the driver into /lib of the build tree.
@@ -76,6 +79,17 @@
ln -sf libdricore at VERSION@.so.1 $(top_builddir)/$(LIB_DIR)/libdricore at VERSION@.so
endif
+libmesagallium_la_SOURCES = \
+ $(STATETRACKER_FILES)
+libmesagallium_la_CFLAGS = @LLVM_CFLAGS@
+libmesagallium_la_CXXFLAGS = @LLVM_CXXFLAGS@
+libmesagallium_la_LIBADD = libdricore at VERSION@.la $(LLVM_LIBS)
+
+if HAVE_GALLIUM
+noinst_LTLIBRARIES = libmesagallium.la
+endif
+
+
CLEANFILES = \
$(top_builddir)/$(LIB_DIR)/libdricore at VERSION@.so.1 \
$(top_builddir)/$(LIB_DIR)/libdricore at VERSION@.so
--- a/configure.ac
+++ b/configure.ac
@@ -928,6 +928,8 @@
AC_SUBST([GLESv2_PC_LIB_PRIV])
DRI_LIB_DEPS="\$(top_builddir)/src/mesa/libdricore/libdricore${VERSION}.la"
+MESAGALLIUM_LIBS="${DRI_LIB_DEPS}"
+AC_SUBST([MESAGALLIUM_LIBS], ${MESAGALLIUM_LIBS})
AC_SUBST([HAVE_XF86VIDMODE])
--- a/src/gallium/targets/dri-i915/Makefile.am
+++ b/src/gallium/targets/dri-i915/Makefile.am
@@ -49,7 +49,7 @@
i915_dri_la_LDFLAGS = -module -avoid-version -shared -no-undefined
i915_dri_la_LIBADD = \
- $(top_builddir)/src/mesa/libmesagallium.la \
+ @MESAGALLIUM_LIBS@ \
$(top_builddir)/src/gallium/auxiliary/libgallium.la \
$(top_builddir)/src/gallium/state_trackers/dri/drm/libdridrm.la \
$(top_builddir)/src/gallium/winsys/i915/drm/libi915drm.la \
--- a/src/gallium/targets/dri-nouveau/Makefile.am
+++ b/src/gallium/targets/dri-nouveau/Makefile.am
@@ -48,7 +48,7 @@
nouveau_dri_la_LDFLAGS = -module -avoid-version -shared -no-undefined
nouveau_dri_la_LIBADD = \
- $(top_builddir)/src/mesa/libmesagallium.la \
+ @MESAGALLIUM_LIBS@ \
$(top_builddir)/src/gallium/auxiliary/libgallium.la \
$(top_builddir)/src/gallium/state_trackers/dri/drm/libdridrm.la \
$(top_builddir)/src/gallium/winsys/nouveau/drm/libnouveaudrm.la \
--- a/src/gallium/targets/dri-r300/Makefile.am
+++ b/src/gallium/targets/dri-r300/Makefile.am
@@ -49,7 +49,7 @@
r300_dri_la_LDFLAGS = -module -avoid-version -shared -no-undefined
r300_dri_la_LIBADD = \
- $(top_builddir)/src/mesa/libmesagallium.la \
+ @MESAGALLIUM_LIBS@ \
$(top_builddir)/src/gallium/auxiliary/libgallium.la \
$(top_builddir)/src/gallium/state_trackers/dri/drm/libdridrm.la \
$(top_builddir)/src/gallium/winsys/radeon/drm/libradeonwinsys.la \
--- a/src/gallium/targets/dri-r600/Makefile.am
+++ b/src/gallium/targets/dri-r600/Makefile.am
@@ -48,7 +48,7 @@
r600_dri_la_LDFLAGS = -module -avoid-version -shared -no-undefined
r600_dri_la_LIBADD = \
- $(top_builddir)/src/mesa/libmesagallium.la \
+ @MESAGALLIUM_LIBS@ \
$(top_builddir)/src/gallium/auxiliary/libgallium.la \
$(top_builddir)/src/gallium/drivers/r600/libr600.la \
$(top_builddir)/src/gallium/state_trackers/dri/drm/libdridrm.la \
--- a/src/gallium/targets/dri-radeonsi/Makefile.am
+++ b/src/gallium/targets/dri-radeonsi/Makefile.am
@@ -49,7 +49,7 @@
radeonsi_dri_la_LDFLAGS = -module -avoid-version -shared -no-undefined
radeonsi_dri_la_LIBADD = \
- $(top_builddir)/src/mesa/libmesagallium.la \
+ @MESAGALLIUM_LIBS@ \
$(top_builddir)/src/gallium/auxiliary/libgallium.la \
$(top_builddir)/src/gallium/drivers/radeonsi/libradeonsi.la \
$(top_builddir)/src/gallium/state_trackers/dri/drm/libdridrm.la \
--- a/src/gallium/targets/dri-swrast/Makefile.am
+++ b/src/gallium/targets/dri-swrast/Makefile.am
@@ -49,7 +49,7 @@
swrast_dri_la_LDFLAGS = -module -avoid-version -shared -no-undefined
swrast_dri_la_LIBADD = \
- $(top_builddir)/src/mesa/libmesagallium.la \
+ @MESAGALLIUM_LIBS@ \
$(top_builddir)/src/gallium/auxiliary/libgallium.la \
$(top_builddir)/src/gallium/state_trackers/dri/sw/libdrisw.la \
$(top_builddir)/src/gallium/winsys/sw/dri/libswdri.la \
--- a/src/gallium/targets/dri-vmwgfx/Makefile.am
+++ b/src/gallium/targets/dri-vmwgfx/Makefile.am
@@ -48,7 +48,7 @@
vmwgfx_dri_la_LDFLAGS = -module -avoid-version -shared -no-undefined
vmwgfx_dri_la_LIBADD = \
- $(top_builddir)/src/mesa/libmesagallium.la \
+ @MESAGALLIUM_LIBS@ \
$(top_builddir)/src/gallium/auxiliary/libgallium.la \
$(top_builddir)/src/gallium/state_trackers/dri/drm/libdridrm.la \
$(top_builddir)/src/gallium/winsys/svga/drm/libsvgadrm.la \
--- a/src/gallium/targets/egl-static/Makefile.am
+++ b/src/gallium/targets/egl-static/Makefile.am
@@ -104,7 +104,7 @@
$(API_DEFINES)
egl_gallium_la_LIBADD += \
- $(top_builddir)/src/mesa/libmesagallium.la
+ @MESAGALLIUM_LIBS@
# make st/mesa built-in when there is a single glapi provider
if HAVE_SHARED_GLAPI
egl_gallium_la_LIBADD += \
--- a/src/mesa/Makefile.am
+++ b/src/mesa/Makefile.am
@@ -75,9 +75,6 @@
else
check_LTLIBRARIES = libmesa.la
endif
-if HAVE_GALLIUM
-noinst_LTLIBRARIES += libmesagallium.la
-endif
SRCDIR = $(top_srcdir)/src/mesa/
BUILDDIR = $(top_builddir)/src/mesa/
@@ -119,15 +116,6 @@
$()
libmesa_la_LDFLAGS =
-libmesagallium_la_SOURCES = \
- $(MESA_GALLIUM_FILES) \
- $(MESA_ASM_FILES_FOR_ARCH)
-
-libmesagallium_la_LIBADD = \
- $(top_builddir)/src/glsl/libglsl.la \
- $(top_builddir)/src/mesa/program/libprogram.la \
- $()
-
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = gl.pc
--- a/src/gallium/auxiliary/Makefile.am
+++ b/src/gallium/auxiliary/Makefile.am
@@ -34,14 +34,14 @@
AM_CXXFLAGS += -fno-rtti
-libgallium_la_LIBADD = $(LLVM_LIBS)
-
endif
libgallium_la_SOURCES += \
$(GALLIVM_SOURCES) \
$(GALLIVM_CPP_SOURCES)
+libgallium_la_LIBADD = ../../mesa/libdricore/libmesagallium.la $(LLVM_LIBS) $(GALLIUM_DRI_LIB_DEPS)
+
endif
indices/u_indices_gen.c: $(srcdir)/indices/u_indices_gen.py
More information about the mesa-dev
mailing list