OSDN Git Service

radv: automake: list shared libraries after the static ones
[android-x86/external-mesa.git] / src / amd / vulkan / Makefile.am
1 # Copyright © 2016 Red Hat
2 #
3 # Permission is hereby granted, free of charge, to any person obtaining a
4 # copy of this software and associated documentation files (the "Software"),
5 # to deal in the Software without restriction, including without limitation
6 # the rights to use, copy, modify, merge, publish, distribute, sublicense,
7 # and/or sell copies of the Software, and to permit persons to whom the
8 # Software is furnished to do so, subject to the following conditions:
9 #
10 # The above copyright notice and this permission notice (including the next
11 # paragraph) shall be included in all copies or substantial portions of the
12 # Software.
13 #
14 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
17 # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
19 # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
20 # IN THE SOFTWARE.
21
22 include Makefile.sources
23
24 noinst_HEADERS = \
25         $(top_srcdir)/include/vulkan/vk_platform.h \
26         $(top_srcdir)/include/vulkan/vulkan.h
27
28 lib_LTLIBRARIES = libvulkan_radeon.la
29
30 # The gallium includes are for the util/u_math.h include from main/macros.h
31
32 AM_CPPFLAGS = \
33         -I$(top_srcdir)/include \
34         -I$(top_builddir)/src \
35         -I$(top_srcdir)/src \
36         -I$(top_srcdir)/src/vulkan/wsi \
37         -I$(top_builddir)/src/vulkan/util \
38         -I$(top_srcdir)/src/vulkan/util \
39         -I$(top_srcdir)/src/amd \
40         -I$(top_srcdir)/src/amd/common \
41         -I$(top_builddir)/src/compiler \
42         -I$(top_builddir)/src/compiler/nir \
43         -I$(top_srcdir)/src/compiler \
44         -I$(top_srcdir)/src/mapi \
45         -I$(top_srcdir)/src/mesa \
46         -I$(top_srcdir)/src/mesa/drivers/dri/common \
47         -I$(top_srcdir)/src/gallium/auxiliary \
48         -I$(top_srcdir)/src/gallium/include \
49         $(AMDGPU_CFLAGS) \
50         $(VALGRIND_CFLAGS) \
51         $(DEFINES)
52
53 AM_CFLAGS = \
54         $(VISIBILITY_CFLAGS) \
55         $(PTHREAD_CFLAGS) \
56         $(LLVM_CFLAGS)
57
58 VULKAN_SOURCES = \
59         $(VULKAN_GENERATED_FILES) \
60         $(VULKAN_FILES)
61
62 VULKAN_LIB_DEPS = \
63         libvulkan_common.la \
64         $(top_builddir)/src/vulkan/libvulkan_util.la \
65         $(top_builddir)/src/vulkan/libvulkan_wsi.la \
66         $(top_builddir)/src/amd/common/libamd_common.la \
67         $(top_builddir)/src/amd/addrlib/libamdgpu_addrlib.la \
68         $(top_builddir)/src/compiler/nir/libnir.la \
69         $(top_builddir)/src/util/libmesautil.la \
70         $(LLVM_LIBS) \
71         $(LIBELF_LIBS) \
72         $(PTHREAD_LIBS) \
73         $(AMDGPU_LIBS) \
74         $(LIBDRM_LIBS) \
75         $(PTHREAD_LIBS) \
76         $(DLOPEN_LIBS) \
77         -lm
78
79 if HAVE_PLATFORM_X11
80 AM_CPPFLAGS += \
81         $(XCB_DRI3_CFLAGS) \
82         -DVK_USE_PLATFORM_XCB_KHR \
83         -DVK_USE_PLATFORM_XLIB_KHR
84
85 VULKAN_SOURCES += $(VULKAN_WSI_X11_FILES)
86
87 VULKAN_LIB_DEPS += $(XCB_DRI3_LIBS)
88 endif
89
90
91 if HAVE_PLATFORM_WAYLAND
92 AM_CPPFLAGS += \
93         $(WAYLAND_CFLAGS) \
94         -DVK_USE_PLATFORM_WAYLAND_KHR
95
96 VULKAN_SOURCES += $(VULKAN_WSI_WAYLAND_FILES)
97
98 VULKAN_LIB_DEPS += \
99         $(WAYLAND_LIBS)
100 endif
101
102 noinst_LTLIBRARIES = libvulkan_common.la
103 libvulkan_common_la_SOURCES = $(VULKAN_SOURCES)
104
105 nodist_EXTRA_libvulkan_radeon_la_SOURCES = dummy.cpp
106 libvulkan_radeon_la_SOURCES = $(VULKAN_GEM_FILES)
107
108 vulkan_api_xml = $(top_srcdir)/src/vulkan/registry/vk.xml
109
110 radv_entrypoints.h : radv_entrypoints_gen.py $(vulkan_api_xml)
111         $(AM_V_GEN) cat $(vulkan_api_xml) |\
112         $(PYTHON2) $(srcdir)/radv_entrypoints_gen.py header > $@
113
114 radv_entrypoints.c : radv_entrypoints_gen.py $(vulkan_api_xml)
115         $(AM_V_GEN) cat $(vulkan_api_xml) |\
116         $(PYTHON2) $(srcdir)/radv_entrypoints_gen.py code > $@
117
118 vk_format_table.c: vk_format_table.py \
119                    vk_format_parse.py \
120                    vk_format_layout.csv
121         $(PYTHON2) $(srcdir)/vk_format_table.py $(srcdir)/vk_format_layout.csv > $@
122
123 BUILT_SOURCES = $(VULKAN_GENERATED_FILES)
124 CLEANFILES = $(BUILT_SOURCES) dev_icd.json radeon_icd.@host_cpu@.json
125 EXTRA_DIST = \
126         $(top_srcdir)/include/vulkan/vk_icd.h \
127         dev_icd.json.in \
128         radeon_icd.json.in \
129         radv_entrypoints_gen.py \
130         vk_format_layout.csv \
131         vk_format_parse.py \
132         vk_format_table.py
133
134 libvulkan_radeon_la_LIBADD = $(VULKAN_LIB_DEPS)
135
136 libvulkan_radeon_la_LDFLAGS = \
137         -shared \
138         -module \
139         -no-undefined \
140         -avoid-version \
141         $(BSYMBOLIC) \
142         $(LLVM_LDFLAGS) \
143         $(GC_SECTIONS) \
144         $(LD_NO_UNDEFINED)
145
146
147 icdconfdir = @VULKAN_ICD_INSTALL_DIR@
148 icdconf_DATA = radeon_icd.@host_cpu@.json
149 # The following is used for development purposes, by setting VK_ICD_FILENAMES.
150 noinst_DATA = dev_icd.json
151
152 dev_icd.json : dev_icd.json.in
153         $(AM_V_GEN) $(SED) \
154                 -e "s#@build_libdir@#${abs_top_builddir}/${LIB_DIR}#" \
155                 < $(srcdir)/dev_icd.json.in > $@
156
157 radeon_icd.@host_cpu@.json : radeon_icd.json.in
158         $(AM_V_GEN) $(SED) \
159                 -e "s#@install_libdir@#${libdir}#" \
160                 < $(srcdir)/radeon_icd.json.in > $@
161
162 include $(top_srcdir)/install-lib-links.mk