vk: Add needed builddir subdirectories to the include path
[mesa.git] / src / vulkan / Makefile.am
index ec670c00f6a4926eacdcd3374aa36fdebe8ec0fe..5651f661e0538418452392820e82986246b24c04 100644 (file)
 # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
 # IN THE SOFTWARE.
 
+SUBDIRS = . tests
 
 vulkan_includedir = $(includedir)/vulkan
 
 vulkan_include_HEADERS =                               \
        $(top_srcdir)/include/vulkan/vk_platform.h      \
        $(top_srcdir)/include/vulkan/vulkan.h           \
-       $(top_srcdir)/include/vulkan/vulkan_intel.h     \
-       $(top_srcdir)/include/vulkan/vk_wsi_lunarg.h
+       $(top_srcdir)/include/vulkan/vulkan_intel.h
+
+# Used when generating entrypoints to filter out unwanted extensions
+VULKAN_ENTRYPOINT_CPPFLAGS = \
+   -I$(top_srcdir)/include/vulkan \
+   -DVK_USE_PLATFORM_XCB_KHR \
+   -DVK_USE_PLATFORM_WAYLAND_KHR
 
 lib_LTLIBRARIES = libvulkan.la
 
+check_LTLIBRARIES = libvulkan-test.la
+
+PER_GEN_LIBS = \
+   libanv-gen7.la \
+   libanv-gen75.la \
+   libanv-gen8.la \
+   libanv-gen9.la
+
+noinst_LTLIBRARIES = $(PER_GEN_LIBS)
+
 # The gallium includes are for the util/u_math.h include from main/macros.h
 
 AM_CPPFLAGS = \
@@ -38,61 +54,141 @@ AM_CPPFLAGS = \
        $(DEFINES) \
        -I$(top_srcdir)/include \
        -I$(top_srcdir)/src \
+       -I$(top_srcdir)/src/glsl/nir \
        -I$(top_srcdir)/src/mapi \
        -I$(top_srcdir)/src/mesa \
        -I$(top_srcdir)/src/mesa/drivers/dri/common \
        -I$(top_srcdir)/src/mesa/drivers/dri/i965 \
        -I$(top_srcdir)/src/gallium/auxiliary \
        -I$(top_srcdir)/src/gallium/include \
+       -I$(top_builddir)/src \
+       -I$(top_builddir)/src/glsl/nir \
        -I$(top_builddir)/src/vulkan
 
 libvulkan_la_CFLAGS =                                                  \
-       -Wall -Wextra -Wno-unused-parameter -fvisibility=hidden -O0 -g  \
+       -Wall -Wno-unused-parameter -fvisibility=hidden -O0 -g          \
        -Wstrict-prototypes -Wmissing-prototypes -Wno-override-init
 
-libvulkan_la_CXXFLAGS =                                                        \
-       -Wall -Wextra -Wno-unused-parameter -fvisibility=hidden -O0 -g
-
-libvulkan_la_SOURCES =                         \
-       private.h                               \
-       gem.c                                   \
-       device.c                                \
-       aub.c                                   \
-       allocator.c                             \
-       util.c                                  \
-       pipeline.c                              \
-       image.c                                 \
-       meta.c                                  \
-       intel.c                                 \
-       entrypoints.c                           \
-       entrypoints.h                           \
-       x11.c                                   \
-       formats.c                               \
-       compiler.cpp
-
-BUILT_SOURCES =                                        \
-       entrypoints.h                           \
-       entrypoints.c                           \
-       meta-spirv.h                            \
-       vk-spirv.h
-
-entrypoints.h : vk_gen.py $(vulkan_include_HEADERS)
-       $(AM_V_GEN)cat $(vulkan_include_HEADERS) | $(PYTHON2) $< header > $@
-
-entrypoints.c : vk_gen.py $(vulkan_include_HEADERS)
-       $(AM_V_GEN)cat $(vulkan_include_HEADERS) | $(PYTHON2) $< code > $@
-
-%-spirv.h: %.c glsl_scraper.py
-       $(AM_V_GEN) $(PYTHON2) $(srcdir)/glsl_scraper.py --glsl-only -o $@ $<
-
-CLEANFILES = entrypoints.h entrypoints.c
-
-bin_PROGRAMS = vk
-
-vk_SOURCES = vk.c
-vk_LDADD = libvulkan.la -lpng16
-
-libvulkan_la_LIBADD = -lxcb -lxcb-dri3 \
-       $(top_builddir)/src/mesa/drivers/dri/i965/libi965_compiler.la
+VULKAN_SOURCES =                                        \
+       anv_allocator.c                                 \
+       anv_cmd_buffer.c                                \
+       anv_batch_chain.c                               \
+       anv_descriptor_set.c                            \
+       anv_device.c                                    \
+        anv_dump.c                                      \
+       anv_entrypoints.c                               \
+       anv_entrypoints.h                               \
+       anv_formats.c                                   \
+       anv_image.c                                     \
+       anv_intel.c                                     \
+       anv_meta.c                                      \
+       anv_meta_clear.c                                \
+       anv_nir_apply_dynamic_offsets.c                 \
+       anv_nir_apply_pipeline_layout.c                 \
+       anv_nir_lower_push_constants.c                  \
+       anv_pass.c                                      \
+       anv_pipeline.c                                  \
+       anv_private.h                                   \
+       anv_query.c                                     \
+       anv_util.c                                      \
+       anv_wsi.c                                       \
+       anv_wsi_x11.c                                   \
+       isl.c                                           \
+       isl_format_layout.c                             \
+       isl_gen4.c                                      \
+       isl_gen4.h                                      \
+       isl_gen6.c                                      \
+       isl_gen6.h                                      \
+       isl_gen7.c                                      \
+       isl_gen7.h                                      \
+       isl_gen8.c                                      \
+       isl_gen8.h                                      \
+       isl_gen9.c                                      \
+       isl_gen9.h                                      \
+       $(NULL)
+
+BUILT_SOURCES =                                         \
+       anv_entrypoints.h                               \
+       anv_entrypoints.c                               \
+       isl_format_layout.c
+
+libanv_gen7_la_SOURCES =                                \
+       genX_cmd_buffer.c                               \
+       gen7_cmd_buffer.c                               \
+       gen7_pipeline.c                                 \
+       gen7_state.c
+libanv_gen7_la_CFLAGS = $(libvulkan_la_CFLAGS) -DANV_GENx10=70
+
+libanv_gen75_la_SOURCES =                               \
+       genX_cmd_buffer.c                               \
+       gen7_cmd_buffer.c                               \
+       gen7_pipeline.c                                 \
+       gen7_state.c
+libanv_gen75_la_CFLAGS = $(libvulkan_la_CFLAGS) -DANV_GENx10=75
+
+libanv_gen8_la_SOURCES =                                       \
+       genX_cmd_buffer.c                               \
+       gen8_cmd_buffer.c                               \
+       gen8_pipeline.c                                 \
+       gen8_state.c
+libanv_gen8_la_CFLAGS = $(libvulkan_la_CFLAGS) -DANV_GENx10=80
+
+libanv_gen9_la_SOURCES =                                       \
+       genX_cmd_buffer.c                               \
+       gen8_cmd_buffer.c                               \
+       gen8_pipeline.c                                 \
+       gen8_state.c
+libanv_gen9_la_CFLAGS = $(libvulkan_la_CFLAGS) -DANV_GENx10=90
+
+if HAVE_EGL_PLATFORM_WAYLAND
+BUILT_SOURCES += \
+       wayland-drm-protocol.c \
+       wayland-drm-client-protocol.h
+
+%-protocol.c : $(top_srcdir)/src/egl/wayland/wayland-drm/%.xml
+       $(AM_V_GEN)$(WAYLAND_SCANNER) code < $< > $@
+
+%-client-protocol.h : $(top_srcdir)/src/egl/wayland/wayland-drm/%.xml
+       $(AM_V_GEN)$(WAYLAND_SCANNER) client-header < $< > $@
+
+AM_CPPFLAGS += -I$(top_srcdir)/src/egl/wayland/wayland-drm
+VULKAN_SOURCES += \
+       wayland-drm-protocol.c \
+       anv_wsi_wayland.c
+libvulkan_la_CFLAGS += -DHAVE_WAYLAND_PLATFORM
+endif
+
+libvulkan_la_SOURCES =                                  \
+       $(VULKAN_SOURCES)                               \
+       anv_gem.c
+
+anv_entrypoints.h : anv_entrypoints_gen.py $(vulkan_include_HEADERS)
+       $(AM_V_GEN) cat $(vulkan_include_HEADERS) | $(CPP) $(VULKAN_ENTRYPOINT_CPPFLAGS) - | $(PYTHON2) $< header > $@
+
+anv_entrypoints.c : anv_entrypoints_gen.py $(vulkan_include_HEADERS)
+       $(AM_V_GEN) cat $(vulkan_include_HEADERS) | $(CPP) $(VULKAN_ENTRYPOINT_CPPFLAGS) - | $(PYTHON2) $< code > $@
+
+isl_format_layout.c: isl_format_layout_gen.bash \
+                     isl_format_layout.csv
+       $(AM_V_GEN)$(srcdir)/isl_format_layout_gen.bash \
+           <$(srcdir)/isl_format_layout.csv >$@
+
+CLEANFILES = $(BUILT_SOURCES)
+
+libvulkan_la_LIBADD = $(WAYLAND_LIBS) -lxcb -lxcb-dri3 \
+       $(top_builddir)/src/mesa/drivers/dri/i965/libi965_compiler.la \
+       ../mesa/libmesa.la \
+       ../mesa/drivers/dri/common/libdri_test_stubs.la \
+       -lpthread -ldl -lstdc++ \
+        $(PER_GEN_LIBS)
+
+# Libvulkan with dummy gem. Used for unit tests.
+
+libvulkan_test_la_SOURCES =                             \
+       $(VULKAN_SOURCES)                               \
+       anv_gem_stubs.c
+
+libvulkan_test_la_CFLAGS = $(libvulkan_la_CFLAGS)
+libvulkan_test_la_LIBADD = $(libvulkan_la_LIBADD)
 
 include $(top_srcdir)/install-lib-links.mk