1 # Copyright 2015 Intel Corporation 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 # Due to a what seems like a autoconf bug, we must ensure that the genaration 23 # rules must be outside of any AM_CONDITIONALs. Otherwise they will be commented 24 # out and we'll fail at `make dist' 25 vulkan_api_xml = $(top_srcdir)/src/vulkan/registry/vk.xml 26 vk_android_native_buffer_xml = $(top_srcdir)/src/vulkan/registry/vk_android_native_buffer.xml 27 28 vulkan/anv_entrypoints.c: vulkan/anv_entrypoints_gen.py \ 29 vulkan/anv_extensions.py \ 30 $(vulkan_api_xml) \ 31 $(vk_android_native_buffer_xml) 32 $(MKDIR_GEN) 33 $(AM_V_GEN)$(PYTHON2) $(srcdir)/vulkan/anv_entrypoints_gen.py \ 34 --xml $(vulkan_api_xml) \ 35 --xml $(vk_android_native_buffer_xml) \ 36 --outdir $(builddir)/vulkan 37 vulkan/anv_entrypoints.h: vulkan/anv_entrypoints.c 38 39 vulkan/anv_extensions.c: vulkan/anv_extensions_gen.py \ 40 vulkan/anv_extensions.py \ 41 $(vulkan_api_xml) \ 42 $(vk_android_native_buffer_xml) 43 $(MKDIR_GEN) 44 $(AM_V_GEN)$(PYTHON2) $(srcdir)/vulkan/anv_extensions_gen.py \ 45 --xml $(vulkan_api_xml) \ 46 --xml $(vk_android_native_buffer_xml) \ 47 --out-c $@ 48 49 vulkan/anv_extensions.h: vulkan/anv_extensions_gen.py \ 50 vulkan/anv_extensions.py \ 51 $(vulkan_api_xml) \ 52 $(vk_android_native_buffer_xml) 53 $(MKDIR_GEN) 54 $(AM_V_GEN)$(PYTHON2) $(srcdir)/vulkan/anv_extensions_gen.py \ 55 --xml $(vulkan_api_xml) \ 56 --xml $(vk_android_native_buffer_xml) \ 57 --out-h $@ 58 59 BUILT_SOURCES += $(VULKAN_GENERATED_FILES) 60 CLEANFILES += \ 61 $(VULKAN_GENERATED_FILES) \ 62 vulkan/dev_icd.json \ 63 vulkan/intel_icd.@host_cpu@.json 64 65 EXTRA_DIST += \ 66 $(top_srcdir)/include/vulkan/vk_icd.h \ 67 vulkan/anv_entrypoints_gen.py \ 68 vulkan/anv_extensions_gen.py \ 69 vulkan/anv_extensions.py \ 70 vulkan/anv_icd.py \ 71 vulkan/TODO 72 73 vulkan/dev_icd.json : vulkan/anv_extensions.py vulkan/anv_icd.py 74 $(AM_V_GEN)$(PYTHON2) $(srcdir)/vulkan/anv_icd.py \ 75 --lib-path="${abs_top_builddir}/${LIB_DIR}" --out $@ 76 77 vulkan/intel_icd.@host_cpu@.json : vulkan/anv_extensions.py vulkan/anv_icd.py 78 $(AM_V_GEN)$(PYTHON2) $(srcdir)/vulkan/anv_icd.py \ 79 --lib-path="${libdir}" --out $@ 80 81 if HAVE_INTEL_VULKAN 82 83 vulkan_includedir = $(includedir)/vulkan 84 85 noinst_HEADERS += \ 86 $(top_srcdir)/include/vulkan/vk_platform.h \ 87 $(top_srcdir)/include/vulkan/vulkan.h 88 89 vulkan_include_HEADERS = \ 90 $(top_srcdir)/include/vulkan/vulkan_intel.h 91 92 lib_LTLIBRARIES += vulkan/libvulkan_intel.la 93 94 check_LTLIBRARIES += vulkan/libvulkan-test.la 95 96 VULKAN_PER_GEN_LIBS = \ 97 vulkan/libanv-gen7.la \ 98 vulkan/libanv-gen75.la \ 99 vulkan/libanv-gen8.la \ 100 vulkan/libanv-gen9.la \ 101 vulkan/libanv-gen10.la 102 103 noinst_LTLIBRARIES += $(VULKAN_PER_GEN_LIBS) 104 105 VULKAN_CFLAGS = \ 106 $(AM_CFLAGS) \ 107 -msse2 108 109 VULKAN_CPPFLAGS = \ 110 -I$(top_srcdir)/src/compiler \ 111 -I$(top_srcdir)/src/intel/compiler \ 112 -I$(top_srcdir)/include/drm-uapi \ 113 -I$(top_builddir)/src/intel/vulkan \ 114 -I$(top_srcdir)/src/intel/vulkan \ 115 -I$(top_srcdir)/src/vulkan/wsi \ 116 -I$(top_builddir)/src/vulkan/util \ 117 -I$(top_srcdir)/src/vulkan/util \ 118 $(AM_CPPFLAGS) \ 119 $(LIBDRM_CFLAGS) 120 121 vulkan_libanv_gen7_la_CFLAGS = $(VULKAN_CFLAGS) 122 vulkan_libanv_gen7_la_CPPFLAGS = $(VULKAN_CPPFLAGS) -DGEN_VERSIONx10=70 123 vulkan_libanv_gen7_la_SOURCES = $(VULKAN_GEN7_FILES) 124 125 vulkan_libanv_gen75_la_CFLAGS = $(VULKAN_CFLAGS) 126 vulkan_libanv_gen75_la_CPPFLAGS = $(VULKAN_CPPFLAGS) -DGEN_VERSIONx10=75 127 vulkan_libanv_gen75_la_SOURCES = $(VULKAN_GEN75_FILES) 128 129 vulkan_libanv_gen8_la_CFLAGS = $(VULKAN_CFLAGS) 130 vulkan_libanv_gen8_la_CPPFLAGS = $(VULKAN_CPPFLAGS) -DGEN_VERSIONx10=80 131 vulkan_libanv_gen8_la_SOURCES = $(VULKAN_GEN8_FILES) 132 133 vulkan_libanv_gen9_la_CFLAGS = $(VULKAN_CFLAGS) 134 vulkan_libanv_gen9_la_CPPFLAGS = $(VULKAN_CPPFLAGS) -DGEN_VERSIONx10=90 135 vulkan_libanv_gen9_la_SOURCES = $(VULKAN_GEN9_FILES) 136 137 vulkan_libanv_gen10_la_CFLAGS = $(VULKAN_CFLAGS) 138 vulkan_libanv_gen10_la_CPPFLAGS = $(VULKAN_CPPFLAGS) -DGEN_VERSIONx10=100 139 vulkan_libanv_gen10_la_SOURCES = $(VULKAN_GEN10_FILES) 140 141 VULKAN_SOURCES = \ 142 $(VULKAN_GENERATED_FILES) \ 143 $(VULKAN_FILES) 144 145 VULKAN_LIB_DEPS = \ 146 vulkan/libvulkan_common.la \ 147 $(VULKAN_PER_GEN_LIBS) \ 148 compiler/libintel_compiler.la \ 149 common/libintel_common.la \ 150 isl/libisl.la \ 151 blorp/libblorp.la \ 152 $(top_builddir)/src/vulkan/libvulkan_util.la \ 153 $(top_builddir)/src/vulkan/libvulkan_wsi.la \ 154 $(top_builddir)/src/compiler/nir/libnir.la \ 155 $(top_builddir)/src/util/libmesautil.la \ 156 $(LIBDRM_LIBS) \ 157 $(PTHREAD_LIBS) \ 158 $(DLOPEN_LIBS) \ 159 -lm 160 161 if HAVE_PLATFORM_ANDROID 162 VULKAN_CPPFLAGS += $(ANDROID_CPPFLAGS) 163 VULKAN_CFLAGS += $(ANDROID_CFLAGS) 164 VULKAN_LIB_DEPS += $(ANDROID_LIBS) 165 VULKAN_SOURCES += $(VULKAN_ANDROID_FILES) 166 endif 167 168 if HAVE_PLATFORM_X11 169 VULKAN_CPPFLAGS += \ 170 $(XCB_DRI3_CFLAGS) \ 171 -DVK_USE_PLATFORM_XCB_KHR \ 172 -DVK_USE_PLATFORM_XLIB_KHR 173 174 VULKAN_SOURCES += $(VULKAN_WSI_X11_FILES) 175 176 VULKAN_LIB_DEPS += $(XCB_DRI3_LIBS) 177 endif 178 179 180 if HAVE_PLATFORM_WAYLAND 181 VULKAN_CPPFLAGS += \ 182 $(WAYLAND_CLIENT_CFLAGS) \ 183 -DVK_USE_PLATFORM_WAYLAND_KHR 184 185 VULKAN_SOURCES += $(VULKAN_WSI_WAYLAND_FILES) 186 187 VULKAN_LIB_DEPS += $(WAYLAND_CLIENT_LIBS) 188 endif 189 190 noinst_LTLIBRARIES += vulkan/libvulkan_common.la 191 vulkan_libvulkan_common_la_SOURCES = $(VULKAN_SOURCES) 192 vulkan_libvulkan_common_la_CFLAGS = $(VULKAN_CFLAGS) 193 vulkan_libvulkan_common_la_CPPFLAGS = $(VULKAN_CPPFLAGS) 194 195 nodist_EXTRA_vulkan_libvulkan_intel_la_SOURCES = dummy.cpp 196 vulkan_libvulkan_intel_la_SOURCES = $(VULKAN_GEM_FILES) 197 vulkan_libvulkan_intel_la_LIBADD = $(VULKAN_LIB_DEPS) 198 vulkan_libvulkan_intel_la_CFLAGS = $(VULKAN_CFLAGS) 199 vulkan_libvulkan_intel_la_CPPFLAGS = $(VULKAN_CPPFLAGS) 200 201 vulkan_libvulkan_intel_la_LDFLAGS = \ 202 -shared \ 203 -module \ 204 -no-undefined \ 205 -avoid-version \ 206 -Wl,--build-id=sha1 \ 207 $(BSYMBOLIC) \ 208 $(GC_SECTIONS) \ 209 $(LD_NO_UNDEFINED) 210 211 icdconfdir = @VULKAN_ICD_INSTALL_DIR@ 212 icdconf_DATA = vulkan/intel_icd.@host_cpu@.json 213 # The following is used for development purposes, by setting VK_ICD_FILENAMES. 214 noinst_DATA += vulkan/dev_icd.json 215 216 # Libvulkan with dummy gem. Used for unit tests. 217 vulkan_libvulkan_test_la_SOURCES = $(VULKAN_GEM_STUB_FILES) 218 vulkan_libvulkan_test_la_LIBADD = $(VULKAN_LIB_DEPS) 219 vulkan_libvulkan_test_la_CFLAGS = $(VULKAN_CFLAGS) 220 vulkan_libvulkan_test_la_CPPFLAGS = $(VULKAN_CPPFLAGS) 221 222 include $(top_srcdir)/install-lib-links.mk 223 224 noinst_HEADERS += \ 225 vulkan/tests/state_pool_test_helper.h 226 227 VULKAN_TESTS = \ 228 vulkan/tests/block_pool_no_free \ 229 vulkan/tests/state_pool_no_free \ 230 vulkan/tests/state_pool_free_list_only \ 231 vulkan/tests/state_pool 232 233 VULKAN_TEST_LDADD = \ 234 vulkan/libvulkan-test.la \ 235 $(PTHREAD_LIBS) -lm -lstdc++ 236 237 check_PROGRAMS += $(VULKAN_TESTS) 238 TESTS += $(VULKAN_TESTS) 239 240 vulkan_tests_block_pool_no_free_CPPFLAGS = $(VULKAN_CPPFLAGS) 241 vulkan_tests_block_pool_no_free_LDADD = $(VULKAN_TEST_LDADD) 242 243 vulkan_tests_state_pool_no_free_CPPFLAGS = $(VULKAN_CPPFLAGS) 244 vulkan_tests_state_pool_no_free_LDADD = $(VULKAN_TEST_LDADD) 245 246 vulkan_tests_state_pool_free_list_only_CPPFLAGS = $(VULKAN_CPPFLAGS) 247 vulkan_tests_state_pool_free_list_only_LDADD = $(VULKAN_TEST_LDADD) 248 249 vulkan_tests_state_pool_CPPFLAGS = $(VULKAN_CPPFLAGS) 250 vulkan_tests_state_pool_LDADD = $(VULKAN_TEST_LDADD) 251 252 endif 253