[PATCH] Provide dri shared library building and SDK installation.

Luc Verhaegen libv at skynet.be
Tue Mar 16 13:44:23 PDT 2010


Signed-off-by: Luc Verhaegen <libv at skynet.be>
---
 Makefile                                           |   13 +++
 src/mesa/Makefile                                  |   61 +++++++++++-
 src/mesa/drivers/dri/common/Makefile               |   80 +++++++++++++++
 src/mesa/drivers/dri/common/libmesadricommon.pc.in |    9 ++
 src/mesa/drivers/dri/swrast/Makefile               |   10 ++
 src/mesa/libmesadri.pc.in                          |    9 ++
 src/mesa/sources.mak                               |  103 ++++++++++++++++++++
 7 files changed, 283 insertions(+), 2 deletions(-)
 create mode 100644 src/mesa/drivers/dri/common/Makefile
 create mode 100644 src/mesa/drivers/dri/common/libmesadricommon.pc.in
 create mode 100644 src/mesa/libmesadri.pc.in

diff --git a/Makefile b/Makefile
index 411130b..5c20b77 100644
--- a/Makefile
+++ b/Makefile
@@ -15,6 +15,19 @@ default: $(TOP)/configs/current
 all: default
 
 
+dri-sdk:
+	cd src/mesa/ && $(MAKE) dri-sdk
+
+dri-sdk-install:
+	cd src/mesa/ && $(MAKE) dri-sdk-install
+
+dri-swrast:
+	cd src/mesa/drivers/dri/swrast && $(MAKE) dri-swrast
+
+dri-swrast-install:
+	cd src/mesa/drivers/dri/swrast && $(MAKE) dri-swrast-install
+
+
 doxygen:
 	cd doxygen && $(MAKE)
 
diff --git a/src/mesa/Makefile b/src/mesa/Makefile
index 8c0ebf8..9f5aec4 100644
--- a/src/mesa/Makefile
+++ b/src/mesa/Makefile
@@ -36,6 +36,17 @@ libmesa.a: $(MESA_OBJECTS) $(GLSL_LIBS)
 libmesagallium.a: $(MESA_GALLIUM_OBJECTS) $(GLSL_LIBS)
 	@ $(MKLIB) -o mesagallium -static $(MESA_GALLIUM_OBJECTS) $(GLSL_LIBS)
 
+libmesadri.so.$(MESA_VERSION): asm_subdirs glsl_builtin $(MESA_OBJECTS)
+	$(MKLIB) -major $(MESA_MAJOR) -minor $(MESA_MINOR) \
+	-patch $(MESA_TINY) -o mesadri $(MESA_OBJECTS)
+
+libmesadri: libmesadri.so.$(MESA_VERSION)
+
+libmesadricommon:
+	(cd drivers/dri/common && $(MAKE)) || exit 1
+
+dri-sdk: libmesadri libmesadricommon
+
 # Make archive of gl* API dispatcher functions only
 libglapi.a: $(GLAPI_OBJECTS)
 	@ $(MKLIB) -o glapi -static $(GLAPI_OBJECTS)
@@ -60,7 +71,17 @@ asm_subdirs:
 
 ######################################################################
 # GLSL built-in library
-glsl_builtin:
+
+../glsl/pp/libglslpp.a:
+	(cd ../glsl/pp/ && $(MAKE)) || exit 1 ;
+
+../glsl/cl/libglslcl.a:
+	(cd ../glsl/cl/ && $(MAKE)) || exit 1 ;
+
+../glsl/apps/compile: ../glsl/pp/libglslpp.a ../glsl/cl/libglslcl.a ../glsl/apps/compile.c
+	(cd ../glsl/apps/ && $(MAKE) compile) || exit 1 ;
+
+glsl_builtin: ../glsl/apps/compile
 	(cd shader/slang/library && $(MAKE)) || exit 1 ;
 
 
@@ -145,13 +166,49 @@ install-dri: default
 	cd drivers/dri && $(MAKE) install
 
 
+libmesadri_pcedit = sed \
+	-e 's, at INSTALL_DIR@,$(INSTALL_DIR),' \
+	-e 's, at INSTALL_LIB_DIR@,$(INSTALL_LIB_DIR),' \
+	-e 's, at INSTALL_INC_DIR@,$(INSTALL_INC_DIR),' \
+	-e 's, at VERSION@,$(MESA_MAJOR).$(MESA_MINOR).$(MESA_TINY),'
+
+libmesadri.pc: libmesadri.pc.in
+	$(libmesadri_pcedit) $< > $@
+
+install-libmesadricommon:
+	cd drivers/dri/common && $(MAKE) install
+
+$(DESTDIR)$(INSTALL_INC_DIR)/mesa/%: $(subst $(DESTDIR)$(INSTALL_INC_DIR)/mesa/,,$@)
+	$(INSTALL) -d $(dir $@)
+	$(INSTALL) -m 644 $(subst $(DESTDIR)$(INSTALL_INC_DIR)/mesa/,,$(dir $@))$(notdir $@) $(dir $@)
+
+install-libmesadri-headers: $(addprefix $(DESTDIR)$(INSTALL_INC_DIR)/mesa/,$(LIBMESADRI_HEADERS))
+	# since glproto's internal/glcore.h is vastly out of sync anyway.
+	$(INSTALL) -d $(DESTDIR)$(INSTALL_INC_DIR)/GL
+	$(INSTALL) -d $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal
+	$(INSTALL) -m 644 $(TOP)/include/GL/internal/glcore.h $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal
+
+install-libmesadri: libmesadri.so libmesadri.pc install-libmesadri-headers
+	$(INSTALL) -d $(DESTDIR)$(INSTALL_LIB_DIR)
+	$(INSTALL) -d $(DESTDIR)$(INSTALL_LIB_DIR)/pkgconfig
+	$(MINSTALL) libmesadri.so.$(MESA_VERSION) $(DESTDIR)$(INSTALL_LIB_DIR)
+	$(MINSTALL) libmesadri.so.$(MESA_MAJOR) $(DESTDIR)$(INSTALL_LIB_DIR)
+	$(MINSTALL) libmesadri.so $(DESTDIR)$(INSTALL_LIB_DIR)
+	$(INSTALL) -m 644 libmesadri.pc $(DESTDIR)$(INSTALL_LIB_DIR)/pkgconfig
+
+dri-sdk-install: install-libmesadri install-libmesadricommon
 
 # Emacs tags
 tags:
 	etags `find . -name \*.[ch]` $(TOP)/include/GL/*.h
 
 
-clean:
+libmesadri-clean:
+	-rm -f libmesadri.so*
+	-rm -f libmesadri.pc
+	cd drivers/dri/common && $(MAKE) clean
+
+clean: libmesadri-clean
 	-rm -f */*.o
 	-rm -f */*/*.o
 	-rm -f depend depend.bak libmesa.a libglapi.a libmesagallium.a
diff --git a/src/mesa/drivers/dri/common/Makefile b/src/mesa/drivers/dri/common/Makefile
new file mode 100644
index 0000000..c4db042
--- /dev/null
+++ b/src/mesa/drivers/dri/common/Makefile
@@ -0,0 +1,80 @@
+TOP = ../../../../..
+include $(TOP)/configs/current
+
+DRIVER_DEFINES = -DIN_DRI_DRIVER
+
+COMMON_SOURCES = \
+	utils.c \
+	texmem.c \
+	vblank.c \
+	dri_util.c \
+	xmlconfig.c \
+	drirenderbuffer.c \
+	dri_metaops.c \
+	../../common/driverfuncs.c
+
+LIBMESADRICOMMON_HEADERS = \
+	drivers/common/driverfuncs.h \
+	drivers/common/meta.h \
+	drivers/dri/common/depthtmp.h \
+	drivers/dri/common/dri_metaops.h \
+	drivers/dri/common/drirenderbuffer.h \
+	drivers/dri/common/dri_util.h \
+	drivers/dri/common/mmio.h \
+	drivers/dri/common/spantmp2.h \
+	drivers/dri/common/spantmp_common.h \
+	drivers/dri/common/spantmp.h \
+	drivers/dri/common/stenciltmp.h \
+	drivers/dri/common/texmem.h \
+	drivers/dri/common/utils.h \
+	drivers/dri/common/vblank.h \
+	drivers/dri/common/xmlconfig.h \
+	drivers/dri/common/xmlpool.h \
+	drivers/dri/common/xmlpool/options.h
+
+COMMON_OBJECTS = $(COMMON_SOURCES:.c=.o)
+
+INCLUDES = \
+	-I. \
+	-I$(TOP)/include \
+	-I$(TOP)/src/mesa \
+	-I/usr/include/drm
+
+.c.o:
+	$(CC) -c $(INCLUDES) $(CFLAGS) $(DRIVER_DEFINES) $< -o $@
+
+libmesadricommon.so: $(COMMON_OBJECTS)
+	$(MKLIB) -major $(MESA_MAJOR) -minor $(MESA_MINOR) \
+        -patch $(MESA_TINY) -o mesadricommon $(COMMON_OBJECTS)
+
+pcedit = sed \
+	-e 's, at INSTALL_DIR@,$(INSTALL_DIR),' \
+	-e 's, at INSTALL_LIB_DIR@,$(INSTALL_LIB_DIR),' \
+	-e 's, at INSTALL_INC_DIR@,$(INSTALL_INC_DIR),' \
+	-e 's, at VERSION@,$(MESA_MAJOR).$(MESA_MINOR).$(MESA_TINY),' \
+	-e 's, at DRI_DRIVER_DIR@,$(DRI_DRIVER_INSTALL_DIR),' \
+	-e 's, at DRI_PC_REQ_PRIV@,$(DRI_PC_REQ_PRIV),'
+
+libmesadricommon.pc: libmesadricommon.pc.in
+	$(pcedit) $< > $@
+
+default: libmesadricommon.so
+
+install: libmesadricommon.so libmesadricommon.pc install-libmesadricommon-headers
+	$(INSTALL) -d $(DESTDIR)$(INSTALL_LIB_DIR)
+	$(INSTALL) -d $(DESTDIR)$(INSTALL_LIB_DIR)/pkgconfig
+	$(MINSTALL) libmesadricommon.so.$(MESA_VERSION) $(DESTDIR)$(INSTALL_LIB_DIR)
+	$(MINSTALL) libmesadricommon.so.$(MESA_MAJOR) $(DESTDIR)$(INSTALL_LIB_DIR)
+	$(MINSTALL) libmesadricommon.so $(DESTDIR)$(INSTALL_LIB_DIR)
+	$(INSTALL) -m 644 libmesadricommon.pc $(DESTDIR)$(INSTALL_LIB_DIR)/pkgconfig
+
+$(DESTDIR)$(INSTALL_INC_DIR)/mesa/%: $(subst $(DESTDIR)$(INSTALL_INC_DIR)/mesa/drivers/,../../,$@)
+	$(INSTALL) -d $(dir $@)
+	$(INSTALL) -m 644 $(subst $(DESTDIR)$(INSTALL_INC_DIR)/mesa/drivers/,../../,$(dir $@))$(notdir $@) $(dir $@)
+
+install-libmesadricommon-headers: $(addprefix $(DESTDIR)$(INSTALL_INC_DIR)/mesa/,$(LIBMESADRICOMMON_HEADERS))
+
+clean:
+	-rm -f *.o
+	-rm -f libmesadricommon.so*
+	-rm -f libmesadricommon.pc
diff --git a/src/mesa/drivers/dri/common/libmesadricommon.pc.in b/src/mesa/drivers/dri/common/libmesadricommon.pc.in
new file mode 100644
index 0000000..3a752af
--- /dev/null
+++ b/src/mesa/drivers/dri/common/libmesadricommon.pc.in
@@ -0,0 +1,9 @@
+prefix=@INSTALL_DIR@
+libdir=@INSTALL_LIB_DIR@
+includedir=@INSTALL_INC_DIR@
+
+Name: libmesadricommon
+Description: Common dri driver infrastructure for Mesa/dri.
+Version: @VERSION@
+Libs: -L${libdir} -lmesadricommon -lexpat
+Cflags: -I${includedir}/mesa -I${includedir}/mesa/drivers/dri/common
diff --git a/src/mesa/drivers/dri/swrast/Makefile b/src/mesa/drivers/dri/swrast/Makefile
index d2cf6db..c6c400a 100644
--- a/src/mesa/drivers/dri/swrast/Makefile
+++ b/src/mesa/drivers/dri/swrast/Makefile
@@ -24,3 +24,13 @@ SWRAST_COMMON_SOURCES = \
 
 include ../Makefile.template
 
+
+dri-swrast: $(OBJECTS)
+	$(MKLIB) -major $(MESA_MAJOR) -minor $(MESA_MINOR) -patch $(MESA_TINY) \
+		-o swrast_dri.so -noprefix $(OBJECTS) -lmesadri \
+		$(EXTRA_MODULES) $(DRI_LIB_DEPS)
+
+dri-swrast-install: dri-swrast
+	$(INSTALL) -d $(DESTDIR)$(INSTALL_LIB_DIR)
+	$(INSTALL) -d $(DESTDIR)$(INSTALL_LIB_DIR)/dri
+	$(MINSTALL) swrast_dri.so $(DESTDIR)$(INSTALL_LIB_DIR)/dri
diff --git a/src/mesa/libmesadri.pc.in b/src/mesa/libmesadri.pc.in
new file mode 100644
index 0000000..0cab4b2
--- /dev/null
+++ b/src/mesa/libmesadri.pc.in
@@ -0,0 +1,9 @@
+prefix=@INSTALL_DIR@
+libdir=@INSTALL_LIB_DIR@
+includedir=@INSTALL_INC_DIR@
+
+Name: libmesadri
+Description: Core library for Mesa/dri.
+Version: @VERSION@
+Libs: -L${libdir} -lmesadri -lpthread
+Cflags: -I${includedir}/mesa -DPTHREADS
diff --git a/src/mesa/sources.mak b/src/mesa/sources.mak
index f6d52b8..319d303 100644
--- a/src/mesa/sources.mak
+++ b/src/mesa/sources.mak
@@ -384,3 +384,106 @@ INCLUDE_DIRS = \
 	-I$(TOP)/src/mesa \
 	-I$(TOP)/src/gallium/include \
 	-I$(TOP)/src/gallium/auxiliary
+
+LIBMESADRI_HEADERS = \
+	glapi/glapidispatch.h \
+	glapi/glapi.h \
+	glapi/glapioffsets.h \
+	glapi/glapitable.h \
+	glapi/glthread.h \
+	main/api_arrayelt.h \
+	main/api_noop.h \
+	main/attrib.h \
+	main/bitset.h \
+	main/blend.h \
+	main/bufferobj.h \
+	main/buffers.h \
+	main/clip.h \
+	main/colormac.h \
+	main/colortab.h \
+	main/compiler.h \
+	main/config.h \
+	main/context.h \
+	main/convolve.h \
+	main/dd.h \
+	main/depth.h \
+	main/dispatch.h \
+	main/enable.h \
+	main/enums.h \
+	main/extensions.h \
+	main/fbobject.h \
+	main/formats.h \
+	main/framebuffer.h \
+	main/glheader.h \
+	main/hash.h \
+	main/image.h \
+	main/imports.h \
+	main/light.h \
+	main/macros.h \
+	main/matrix.h \
+	main/mfeatures.h \
+	main/mipmap.h \
+	main/mm.h \
+	main/mtypes.h \
+	main/pixelstore.h \
+	main/points.h \
+	main/polygon.h \
+	main/remap.h \
+	main/remap_helper.h \
+	main/renderbuffer.h \
+	main/simple_list.h \
+	main/state.h \
+	main/texcompress.h \
+	main/texenv.h \
+	main/texformat.h \
+	main/texgetimage.h \
+	main/teximage.h \
+	main/texobj.h \
+	main/texparam.h \
+	main/texrender.h \
+	main/texstate.h \
+	main/texstore.h \
+	main/varray.h \
+	main/viewport.h \
+	math/m_matrix.h \
+	math/m_translate.h \
+	math/m_vector.h \
+	math/m_xform.h \
+	shader/arbprogram.h \
+	shader/atifragshader.h \
+	shader/prog_execute.h \
+	shader/prog_instruction.h \
+	shader/prog_optimize.h \
+	shader/prog_parameter.h \
+	shader/prog_print.h \
+	shader/program.h \
+	shader/programopt.h \
+	shader/prog_statevars.h \
+	shader/shader_api.h \
+	swrast/s_context.h \
+	swrast_setup/ss_context.h \
+	swrast_setup/swrast_setup.h \
+	swrast/s_fog.h \
+	swrast/s_span.h \
+	swrast/swrast.h \
+	tnl_dd/t_dd_dmatmp2.h \
+	tnl_dd/t_dd_dmatmp.h \
+	tnl_dd/t_dd_rendertmp.h \
+	tnl_dd/t_dd_triemit.h \
+	tnl_dd/t_dd_tritmp.h \
+	tnl_dd/t_dd_unfilled.h \
+	tnl_dd/t_dd_vb.c \
+	tnl_dd/t_dd_vbtmp.h \
+	tnl_dd/t_dd_vertex.h \
+	tnl/t_context.h \
+	tnl/tnl.h \
+	tnl/t_pipeline.h \
+	tnl/t_vb_rendertmp.h \
+	tnl/t_vertex.h \
+	tnl/t_vp_build.h \
+	vbo/vbo_attrib.h \
+	vbo/vbo_context.h \
+	vbo/vbo_exec.h \
+	vbo/vbo.h \
+	vbo/vbo_save.h \
+	vbo/vbo_split.h
-- 
1.6.0.2


--2fHTh5uZTiUOsy+g--


More information about the dri-devel mailing list