automake: rework VL dependency tracking
[mesa.git] / src / gallium / targets / vdpau / Makefile.am
1 include $(top_srcdir)/src/gallium/Automake.inc
2
3 AM_CFLAGS = \
4 $(VL_CFLAGS) \
5 $(GALLIUM_TARGET_CFLAGS)
6
7 vdpaudir = $(VDPAU_LIB_INSTALL_DIR)
8 vdpau_LTLIBRARIES = libvdpau_gallium.la
9
10 nodist_EXTRA_libvdpau_gallium_la_SOURCES = dummy.cpp
11 libvdpau_gallium_la_SOURCES = \
12 $(top_srcdir)/src/gallium/auxiliary/vl/vl_winsys_dri.c
13
14 libvdpau_gallium_la_LDFLAGS = \
15 -shared \
16 -module \
17 -no-undefined \
18 -version-number $(VDPAU_MAJOR):$(VDPAU_MINOR) \
19 $(GC_SECTIONS) \
20 $(LD_NO_UNDEFINED)
21
22 if HAVE_LD_VERSION_SCRIPT
23 libvdpau_gallium_la_LDFLAGS += \
24 -Wl,--version-script=$(top_srcdir)/src/gallium/targets/vdpau/vdpau.sym
25 endif # HAVE_LD_VERSION_SCRIPT
26
27 if HAVE_LD_DYNAMIC_LIST
28 libvdpau_gallium_la_LDFLAGS += \
29 -Wl,--dynamic-list=$(top_srcdir)/src/gallium/targets/dri-vdpau.dyn
30 endif # HAVE_LD_DYNAMIC_LIST
31
32 # NOTE: libvdpau_gallium does not use(link against) libvdpau
33 libvdpau_gallium_la_LIBADD = \
34 $(top_builddir)/src/gallium/state_trackers/vdpau/libvdpautracker.la \
35 $(top_builddir)/src/gallium/auxiliary/libgallium.la \
36 $(top_builddir)/src/util/libmesautil.la \
37 $(VL_LIBS) \
38 $(LIBDRM_LIBS) \
39 $(GALLIUM_COMMON_LIB_DEPS)
40
41 EXTRA_libvdpau_gallium_la_DEPENDENCIES = \
42 vdpau.sym \
43 $(top_srcdir)/src/gallium/targets/dri-vdpau.dyn
44
45 TARGET_DRIVERS =
46 TARGET_CPPFLAGS =
47 TARGET_LIB_DEPS = $(top_builddir)/src/loader/libloader.la
48
49 include $(top_srcdir)/src/gallium/drivers/nouveau/Automake.inc
50
51 include $(top_srcdir)/src/gallium/drivers/r300/Automake.inc
52 include $(top_srcdir)/src/gallium/drivers/r600/Automake.inc
53 include $(top_srcdir)/src/gallium/drivers/radeonsi/Automake.inc
54
55 if HAVE_GALLIUM_STATIC_TARGETS
56
57 libvdpau_gallium_la_SOURCES += target.c
58 libvdpau_gallium_la_CPPFLAGS = $(TARGET_CPPFLAGS) -DGALLIUM_STATIC_TARGETS=1
59 libvdpau_gallium_la_LIBADD += $(TARGET_LIB_DEPS) \
60 $(TARGET_RADEON_WINSYS) $(TARGET_RADEON_COMMON)
61
62 else # HAVE_GALLIUM_STATIC_TARGETS
63
64 libvdpau_gallium_la_CPPFLAGS = \
65 $(GALLIUM_PIPE_LOADER_DEFINES) \
66 -DPIPE_SEARCH_DIR=\"$(libdir)/gallium-pipe\"
67
68 libvdpau_gallium_la_LIBADD += \
69 $(top_builddir)/src/gallium/auxiliary/pipe-loader/libpipe_loader.la \
70 $(GALLIUM_PIPE_LOADER_WINSYS_LIBS) \
71 $(GALLIUM_PIPE_LOADER_LIBS)
72
73 endif # HAVE_GALLIUM_STATIC_TARGETS
74
75 if HAVE_MESA_LLVM
76 libvdpau_gallium_la_LIBADD += $(LLVM_LIBS)
77 libvdpau_gallium_la_LDFLAGS += $(LLVM_LDFLAGS)
78 endif
79
80 if HAVE_COMPAT_SYMLINKS
81 # Add a link to allow setting VDPAU_DRIVER_PATH to /lib/gallium of the build tree.
82 all-local: $(vdpau_LTLIBRARIES)
83 $(AM_V_GEN)link_dir=$(top_builddir)/$(LIB_DIR)/gallium; \
84 $(MKDIR_P) $${link_dir}; \
85 for i in $(TARGET_DRIVERS); do \
86 j=libvdpau_gallium.$(LIB_EXT); \
87 k=libvdpau_$${i}.$(LIB_EXT); \
88 l=$${k}.$(VDPAU_MAJOR).$(VDPAU_MINOR).0; \
89 ln -f .libs/$${j}.$(VDPAU_MAJOR).$(VDPAU_MINOR).0 \
90 $${link_dir}/$${l}; \
91 ln -sf $${l} \
92 $${link_dir}/$${k}.$(VDPAU_MAJOR).$(VDPAU_MINOR); \
93 ln -sf $${l} \
94 $${link_dir}/$${k}.$(VDPAU_MAJOR); \
95 ln -sf $${l} \
96 $${link_dir}/$${k}; \
97 done
98 endif
99
100 # hardlink each megadriver instance, but don't actually have
101 # libvdpau_gallium.so in the set of final installed files.
102 install-data-hook:
103 $(AM_V_GEN)dest_dir=$(DESTDIR)/$(vdpaudir); \
104 for i in $(TARGET_DRIVERS); do \
105 j=libvdpau_gallium.$(LIB_EXT); \
106 k=libvdpau_$${i}.$(LIB_EXT); \
107 l=$${k}.$(VDPAU_MAJOR).$(VDPAU_MINOR).0; \
108 ln -f $${dest_dir}/$${j}.$(VDPAU_MAJOR).$(VDPAU_MINOR).0 \
109 $${dest_dir}/$${l}; \
110 ln -sf $${l} \
111 $${dest_dir}/$${k}.$(VDPAU_MAJOR).$(VDPAU_MINOR); \
112 ln -sf $${l} \
113 $${dest_dir}/$${k}.$(VDPAU_MAJOR); \
114 ln -sf $${l} \
115 $${dest_dir}/$${k}; \
116 done; \
117 $(RM) -f $${dest_dir}/libvdpau_gallium.*