Home | History | Annotate | Download | only in intel
      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