automake: introduce install-gallium-links.mk
authorEmil Velikov <emil.l.velikov@gmail.com>
Sun, 2 Mar 2014 20:59:39 +0000 (20:59 +0000)
committerEmil Velikov <emil.l.velikov@gmail.com>
Tue, 11 Mar 2014 12:50:42 +0000 (12:50 +0000)
This helper script will be used to minimise the duplication
during link generation across all gallium targets.

v2:
 - Handle vdpau_LTLIBRARIES. Requested by Christian König.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Jon TURNEY <jon.turney@dronecode.org.uk>
install-gallium-links.mk [new file with mode: 0644]

diff --git a/install-gallium-links.mk b/install-gallium-links.mk
new file mode 100644 (file)
index 0000000..debfe6c
--- /dev/null
@@ -0,0 +1,23 @@
+# 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-gallium-links
+
+.libs/install-gallium-links : $(dri_LTLIBRARIES) $(vdpau_LTLIBRARIES) $(egl_LTLIBRARIES) $(lib_LTLIBRARIES)
+       $(AM_V_GEN)$(MKDIR_P) $(top_builddir)/$(LIB_DIR);       \
+       link_dir=$(top_builddir)/$(LIB_DIR)/gallium;            \
+       if test x$(egl_LTLIBRARIES) != x; then                  \
+               link_dir=$(top_builddir)/$(LIB_DIR)/egl;        \
+       fi;                                                     \
+       $(MKDIR_P) $$link_dir;                                  \
+       file_list=$(dri_LTLIBRARIES:%.la=.libs/%.so*);          \
+       file_list+=$(vdpau_LTLIBRARIES:%.la=.libs/%.so*);       \
+       file_list+=$(egl_LTLIBRARIES:%.la=.libs/%.so*);         \
+       file_list+=$(lib_LTLIBRARIES:%.la=.libs/%.so*);         \
+       for f in $$file_list; do                                \
+               if test -h .libs/$$f; then                      \
+                       cp -d $$f $$link_dir;                   \
+               else                                            \
+                       ln -f $$f $$link_dir;                   \
+               fi;                                             \
+       done && touch $@