build: Share the all-local rule for linking libraries into the build dir
authorKristian Høgsberg <krh@bitplanet.net>
Wed, 29 Jan 2014 19:40:25 +0000 (11:40 -0800)
committerKristian Høgsberg <krh@bitplanet.net>
Wed, 29 Jan 2014 20:58:13 +0000 (12:58 -0800)
This consolidates how we link the libraries into the build directory.
It works for lib_LTLIBRARIES but not custom shared libraries like DRI
drivers or gallium state trackers which needs special casing (cf dri
mega drivers, for example)

Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
Reviewed-by: Matt Turner <mattst88@gmail.com>
install-lib-links.mk [new file with mode: 0644]
src/egl/main/Makefile.am
src/gbm/Makefile.am
src/glx/Makefile.am
src/mapi/es1api/Makefile.am
src/mapi/es2api/Makefile.am
src/mapi/shared-glapi/Makefile.am
src/mapi/vgapi/Makefile.am

diff --git a/install-lib-links.mk b/install-lib-links.mk
new file mode 100644 (file)
index 0000000..73d9e14
--- /dev/null
@@ -0,0 +1,14 @@
+# 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.
+
+all-local : .libs/install-mesa-links
+
+.libs/install-mesa-links : $(lib_LTLIBRARIES)
+       $(MKDIR_P) $(top_builddir)/$(LIB_DIR)
+       for f in $(lib_LTLIBRARIES:%.la=.libs/%.so*); do        \
+               if test -h .libs/$$f; then                      \
+                       cp -d $$f $(top_builddir)/$(LIB_DIR);   \
+               else                                            \
+                       ln -f $$f $(top_builddir)/$(LIB_DIR);   \
+               fi;                                             \
+       done && touch $@
index e12aeae59b9161bcd257cba9836b6c52274bc810..4c20d1215ee0467b2c169282363b59b34255fd01 100644 (file)
@@ -115,12 +115,7 @@ libEGL_la_LIBADD += ../drivers/dri2/libegl_dri2.la
 libEGL_la_LIBADD += $(DLOPEN_LIBS) $(LIBDRM_LIBS)
 endif
 
-# 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.
-all-local: libEGL.la
-       $(MKDIR_P) $(top_builddir)/$(LIB_DIR);
-       ln -f .libs/libEGL.so.1.0.0 $(top_builddir)/$(LIB_DIR)/libEGL.so.1
-       ln -sf libEGL.so.1 $(top_builddir)/$(LIB_DIR)/libEGL.so
+include $(top_srcdir)/install-lib-links.mk
 
 pkgconfigdir = $(libdir)/pkgconfig
 
index de5126c02433dc54add9b52010090955ce4a90f4..eacb96a38e6ac037bc2fad414503d274be8c1d18 100644 (file)
@@ -47,7 +47,4 @@ libgbm_la_LIBADD += \
        libgbm_dri.la $(top_builddir)/src/mapi/shared-glapi/libglapi.la $(LIBDRM_LIBS)
 endif
 
-all-local: libgbm.la
-       $(MKDIR_P) $(top_builddir)/$(LIB_DIR);
-       ln -f .libs/libgbm.so.1.0.0 $(top_builddir)/$(LIB_DIR)/libgbm.so
-       ln -f .libs/libgbm.so.1.0.0 $(top_builddir)/$(LIB_DIR)/libgbm.so.1
+include $(top_srcdir)/install-lib-links.mk
index 54a0cc027da0b07ae12b7c0aa0edc05f5fe708f4..c8dfb8651b68ea6401ff14db8327f13f3ce60cee 100644 (file)
@@ -118,9 +118,4 @@ lib@GL_LIB@_la_SOURCES =
 lib@GL_LIB@_la_LIBADD = $(GL_LIBS)
 lib@GL_LIB@_la_LDFLAGS = $(GL_LDFLAGS)
 
-# 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.
-all-local: lib@GL_LIB@.la
-       $(MKDIR_P) $(top_builddir)/$(LIB_DIR);
-       ln -f .libs/lib@GL_LIB@.so.1.2.0 $(top_builddir)/$(LIB_DIR)/lib@GL_LIB@.so.1
-       ln -sf lib@GL_LIB@.so.1 $(top_builddir)/$(LIB_DIR)/lib@GL_LIB@.so
+include $(top_srcdir)/install-lib-links.mk
index eb98f165aa99335c4743f8ec3246694462412990..b61f9cb1f6656f8d736b1f1c2b793507763f9266 100644 (file)
@@ -57,10 +57,4 @@ glapi_mapi_tmp.h: ../glapi/gen/gl_and_es_API.xml $(glapi_gen_mapi_deps)
 BUILT_SOURCES = glapi_mapi_tmp.h
 CLEANFILES = $(BUILT_SOURCES)
 
-# 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.
-all-local: libGLESv1_CM.la
-       $(MKDIR_P) $(top_builddir)/$(LIB_DIR);
-       ln -f .libs/libGLESv1_CM.so $(top_builddir)/$(LIB_DIR)/libGLESv1_CM.so
-       ln -f .libs/libGLESv1_CM.so.1 $(top_builddir)/$(LIB_DIR)/libGLESv1_CM.so.1
-       ln -f .libs/libGLESv1_CM.so.1.1.0 $(top_builddir)/$(LIB_DIR)/libGLESv1_CM.so.1.1.0
+include $(top_srcdir)/install-lib-links.mk
index c6b0ca4ac3c81b9d3fcf432d10ad6fbd5d59feaa..a94449375059e56c65c7990739cfce2dd1294285 100644 (file)
@@ -61,10 +61,4 @@ glapi_mapi_tmp.h: ../glapi/gen/gl_and_es_API.xml $(glapi_gen_mapi_deps)
 BUILT_SOURCES = glapi_mapi_tmp.h
 CLEANFILES = $(BUILT_SOURCES)
 
-# 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.
-all-local: libGLESv2.la
-       $(MKDIR_P) $(top_builddir)/$(LIB_DIR);
-       ln -f .libs/libGLESv2.so $(top_builddir)/$(LIB_DIR)/libGLESv2.so
-       ln -f .libs/libGLESv2.so.2 $(top_builddir)/$(LIB_DIR)/libGLESv2.so.2
-       ln -f .libs/libGLESv2.so.2.0.0 $(top_builddir)/$(LIB_DIR)/libGLESv2.so.2.0.0
+include $(top_srcdir)/install-lib-links.mk
index e18c30a22718c2ce35cfbbb62eebbe7a9037dea7..b4703be010dc6ca9ba8895223ca7d8399d7b1647 100644 (file)
@@ -27,8 +27,4 @@ AM_CPPFLAGS =                                                 \
        -DMAPI_MODE_GLAPI                                       \
        -DMAPI_ABI_HEADER=\"shared-glapi/glapi_mapi_tmp.h\"
 
-all-local: libglapi.la
-       $(MKDIR_P) $(top_builddir)/$(LIB_DIR)
-       ln -f .libs/libglapi.so.0.0.0 $(top_builddir)/$(LIB_DIR)/libglapi.so.0.0.0
-       ln -sf libglapi.so.0.0.0 $(top_builddir)/$(LIB_DIR)/libglapi.so.0
-       ln -sf libglapi.so.0 $(top_builddir)/$(LIB_DIR)/libglapi.so
+include $(top_srcdir)/install-lib-links.mk
index 0af7115eb70ec9c6e3a985aa1332ea702b8b1230..8952df01af3838553a3b976cfc804386df2e41c1 100644 (file)
@@ -52,10 +52,4 @@ vgapi_tmp.h: $(srcdir)/vgapi.csv $(top_srcdir)/src/mapi/mapi_abi.py
 BUILT_SOURCES = vgapi_tmp.h
 CLEANFILES = $(BUILT_SOURCES)
 
-# 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.
-all-local: libOpenVG.la
-       $(MKDIR_P) $(top_builddir)/$(LIB_DIR);
-       ln -f .libs/libOpenVG.so $(top_builddir)/$(LIB_DIR)/libOpenVG.so
-       ln -f .libs/libOpenVG.so.1 $(top_builddir)/$(LIB_DIR)/libOpenVG.so.1
-       ln -f .libs/libOpenVG.so.1.0.0 $(top_builddir)/$(LIB_DIR)/libOpenVG.so.1.0.0
+include $(top_srcdir)/install-lib-links.mk