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' 25vulkan_api_xml = $(top_srcdir)/src/vulkan/registry/vk.xml 26vk_android_native_buffer_xml = $(top_srcdir)/src/vulkan/registry/vk_android_native_buffer.xml 27 28vulkan/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 37vulkan/anv_entrypoints.h: vulkan/anv_entrypoints.c 38 39vulkan/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 49vulkan/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 59BUILT_SOURCES += $(VULKAN_GENERATED_FILES) 60CLEANFILES += \ 61 $(VULKAN_GENERATED_FILES) \ 62 vulkan/dev_icd.json \ 63 vulkan/intel_icd.@host_cpu@.json 64 65EXTRA_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 73vulkan/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 77vulkan/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 81if HAVE_INTEL_VULKAN 82 83vulkan_includedir = $(includedir)/vulkan 84 85noinst_HEADERS += \ 86 $(top_srcdir)/include/vulkan/vk_platform.h \ 87 $(top_srcdir)/include/vulkan/vulkan.h 88 89vulkan_include_HEADERS = \ 90 $(top_srcdir)/include/vulkan/vulkan_intel.h 91 92lib_LTLIBRARIES += vulkan/libvulkan_intel.la 93 94check_LTLIBRARIES += vulkan/libvulkan-test.la 95 96VULKAN_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 103noinst_LTLIBRARIES += $(VULKAN_PER_GEN_LIBS) 104 105VULKAN_CFLAGS = \ 106 $(AM_CFLAGS) \ 107 -msse2 108 109VULKAN_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 121vulkan_libanv_gen7_la_CFLAGS = $(VULKAN_CFLAGS) 122vulkan_libanv_gen7_la_CPPFLAGS = $(VULKAN_CPPFLAGS) -DGEN_VERSIONx10=70 123vulkan_libanv_gen7_la_SOURCES = $(VULKAN_GEN7_FILES) 124 125vulkan_libanv_gen75_la_CFLAGS = $(VULKAN_CFLAGS) 126vulkan_libanv_gen75_la_CPPFLAGS = $(VULKAN_CPPFLAGS) -DGEN_VERSIONx10=75 127vulkan_libanv_gen75_la_SOURCES = $(VULKAN_GEN75_FILES) 128 129vulkan_libanv_gen8_la_CFLAGS = $(VULKAN_CFLAGS) 130vulkan_libanv_gen8_la_CPPFLAGS = $(VULKAN_CPPFLAGS) -DGEN_VERSIONx10=80 131vulkan_libanv_gen8_la_SOURCES = $(VULKAN_GEN8_FILES) 132 133vulkan_libanv_gen9_la_CFLAGS = $(VULKAN_CFLAGS) 134vulkan_libanv_gen9_la_CPPFLAGS = $(VULKAN_CPPFLAGS) -DGEN_VERSIONx10=90 135vulkan_libanv_gen9_la_SOURCES = $(VULKAN_GEN9_FILES) 136 137vulkan_libanv_gen10_la_CFLAGS = $(VULKAN_CFLAGS) 138vulkan_libanv_gen10_la_CPPFLAGS = $(VULKAN_CPPFLAGS) -DGEN_VERSIONx10=100 139vulkan_libanv_gen10_la_SOURCES = $(VULKAN_GEN10_FILES) 140 141VULKAN_SOURCES = \ 142 $(VULKAN_GENERATED_FILES) \ 143 $(VULKAN_FILES) 144 145VULKAN_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 161if HAVE_PLATFORM_ANDROID 162VULKAN_CPPFLAGS += $(ANDROID_CPPFLAGS) 163VULKAN_CFLAGS += $(ANDROID_CFLAGS) 164VULKAN_LIB_DEPS += $(ANDROID_LIBS) 165VULKAN_SOURCES += $(VULKAN_ANDROID_FILES) 166endif 167 168if HAVE_PLATFORM_X11 169VULKAN_CPPFLAGS += \ 170 $(XCB_DRI3_CFLAGS) \ 171 -DVK_USE_PLATFORM_XCB_KHR \ 172 -DVK_USE_PLATFORM_XLIB_KHR 173 174VULKAN_SOURCES += $(VULKAN_WSI_X11_FILES) 175 176VULKAN_LIB_DEPS += $(XCB_DRI3_LIBS) 177endif 178 179 180if HAVE_PLATFORM_WAYLAND 181VULKAN_CPPFLAGS += \ 182 $(WAYLAND_CLIENT_CFLAGS) \ 183 -DVK_USE_PLATFORM_WAYLAND_KHR 184 185VULKAN_SOURCES += $(VULKAN_WSI_WAYLAND_FILES) 186 187VULKAN_LIB_DEPS += $(WAYLAND_CLIENT_LIBS) 188endif 189 190noinst_LTLIBRARIES += vulkan/libvulkan_common.la 191vulkan_libvulkan_common_la_SOURCES = $(VULKAN_SOURCES) 192vulkan_libvulkan_common_la_CFLAGS = $(VULKAN_CFLAGS) 193vulkan_libvulkan_common_la_CPPFLAGS = $(VULKAN_CPPFLAGS) 194 195nodist_EXTRA_vulkan_libvulkan_intel_la_SOURCES = dummy.cpp 196vulkan_libvulkan_intel_la_SOURCES = $(VULKAN_GEM_FILES) 197vulkan_libvulkan_intel_la_LIBADD = $(VULKAN_LIB_DEPS) 198vulkan_libvulkan_intel_la_CFLAGS = $(VULKAN_CFLAGS) 199vulkan_libvulkan_intel_la_CPPFLAGS = $(VULKAN_CPPFLAGS) 200 201vulkan_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 211icdconfdir = @VULKAN_ICD_INSTALL_DIR@ 212icdconf_DATA = vulkan/intel_icd.@host_cpu@.json 213# The following is used for development purposes, by setting VK_ICD_FILENAMES. 214noinst_DATA += vulkan/dev_icd.json 215 216# Libvulkan with dummy gem. Used for unit tests. 217vulkan_libvulkan_test_la_SOURCES = $(VULKAN_GEM_STUB_FILES) 218vulkan_libvulkan_test_la_LIBADD = $(VULKAN_LIB_DEPS) 219vulkan_libvulkan_test_la_CFLAGS = $(VULKAN_CFLAGS) 220vulkan_libvulkan_test_la_CPPFLAGS = $(VULKAN_CPPFLAGS) 221 222include $(top_srcdir)/install-lib-links.mk 223 224noinst_HEADERS += \ 225 vulkan/tests/state_pool_test_helper.h 226 227VULKAN_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 233VULKAN_TEST_LDADD = \ 234 vulkan/libvulkan-test.la \ 235 $(PTHREAD_LIBS) -lm -lstdc++ 236 237check_PROGRAMS += $(VULKAN_TESTS) 238TESTS += $(VULKAN_TESTS) 239 240vulkan_tests_block_pool_no_free_CPPFLAGS = $(VULKAN_CPPFLAGS) 241vulkan_tests_block_pool_no_free_LDADD = $(VULKAN_TEST_LDADD) 242 243vulkan_tests_state_pool_no_free_CPPFLAGS = $(VULKAN_CPPFLAGS) 244vulkan_tests_state_pool_no_free_LDADD = $(VULKAN_TEST_LDADD) 245 246vulkan_tests_state_pool_free_list_only_CPPFLAGS = $(VULKAN_CPPFLAGS) 247vulkan_tests_state_pool_free_list_only_LDADD = $(VULKAN_TEST_LDADD) 248 249vulkan_tests_state_pool_CPPFLAGS = $(VULKAN_CPPFLAGS) 250vulkan_tests_state_pool_LDADD = $(VULKAN_TEST_LDADD) 251 252endif 253