i965: Add script to gen code for OA counter queries
[mesa.git] / src / mesa / drivers / dri / i965 / Makefile.am
1
2
3 # Copyright © 2011 Intel Corporation
4 #
5 # Permission is hereby granted, free of charge, to any person obtaining a
6 # copy of this software and associated documentation files (the "Software"),
7 # to deal in the Software without restriction, including without limitation
8 # the rights to use, copy, modify, merge, publish, distribute, sublicense,
9 # and/or sell copies of the Software, and to permit persons to whom the
10 # Software is furnished to do so, subject to the following conditions:
11 #
12 # The above copyright notice and this permission notice (including the next
13 # paragraph) shall be included in all copies or substantial portions of the
14 # Software.
15 #
16 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19 # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
22 # IN THE SOFTWARE.
23
24 include Makefile.sources
25
26 AM_CFLAGS = \
27 -I$(top_srcdir)/include \
28 -I$(top_srcdir)/src/ \
29 -I$(top_srcdir)/src/mapi \
30 -I$(top_srcdir)/src/mesa/ \
31 -I$(top_srcdir)/src/gallium/include \
32 -I$(top_srcdir)/src/gallium/auxiliary \
33 -I$(top_builddir)/src/mesa/drivers/dri/common \
34 -I$(top_srcdir)/src/mesa/drivers/dri/common \
35 -I$(top_srcdir)/src/gtest/include \
36 -I$(top_builddir)/src/compiler/glsl \
37 -I$(top_builddir)/src/compiler/nir \
38 -I$(top_srcdir)/src/compiler/nir \
39 -I$(top_builddir)/src/intel \
40 -I$(top_srcdir)/src/intel \
41 $(DEFINES) \
42 $(VISIBILITY_CFLAGS) \
43 $(INTEL_CFLAGS)
44
45 AM_CXXFLAGS = $(AM_CFLAGS)
46
47 MKDIR_GEN = $(AM_V_at)$(MKDIR_P) $(@D)
48 brw_nir_trig_workarounds.c: brw_nir_trig_workarounds.py $(top_srcdir)/src/compiler/nir/nir_algebraic.py
49 $(MKDIR_GEN)
50 $(AM_V_GEN) PYTHONPATH=$(top_srcdir)/src/compiler/nir $(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/brw_nir_trig_workarounds.py > $@ || ($(RM) $@; false)
51
52 I965_PERGEN_LIBS = \
53 libi965_gen6.la \
54 libi965_gen7.la \
55 libi965_gen75.la \
56 libi965_gen8.la \
57 libi965_gen9.la
58
59 libi965_gen6_la_SOURCES = $(i965_gen6_FILES)
60 libi965_gen6_la_CFLAGS = $(AM_CFLAGS) -DGEN_VERSIONx10=60
61
62 libi965_gen7_la_SOURCES = $(i965_gen7_FILES)
63 libi965_gen7_la_CFLAGS = $(AM_CFLAGS) -DGEN_VERSIONx10=70
64
65 libi965_gen75_la_SOURCES = $(i965_gen75_FILES)
66 libi965_gen75_la_CFLAGS = $(AM_CFLAGS) -DGEN_VERSIONx10=75
67
68 libi965_gen8_la_SOURCES = $(i965_gen8_FILES)
69 libi965_gen8_la_CFLAGS = $(AM_CFLAGS) -DGEN_VERSIONx10=80
70
71 libi965_gen9_la_SOURCES = $(i965_gen9_FILES)
72 libi965_gen9_la_CFLAGS = $(AM_CFLAGS) -DGEN_VERSIONx10=90
73
74 noinst_LTLIBRARIES = \
75 libi965_dri.la \
76 libi965_compiler.la \
77 $(I965_PERGEN_LIBS)
78
79 libi965_dri_la_SOURCES = \
80 $(i965_FILES) \
81 $(i965_oa_GENERATED_FILES)
82 libi965_dri_la_LIBADD = \
83 $(top_builddir)/src/intel/common/libintel_common.la \
84 $(top_builddir)/src/intel/isl/libisl.la \
85 libi965_compiler.la \
86 $(top_builddir)/src/intel/blorp/libblorp.la \
87 $(I965_PERGEN_LIBS) \
88 $(INTEL_LIBS)
89
90 libi965_compiler_la_SOURCES = \
91 $(i965_compiler_FILES) \
92 $(i965_compiler_GENERATED_FILES)
93
94 BUILT_SOURCES = $(i965_compiler_GENERATED_FILES)
95 CLEANFILES = $(BUILT_SOURCES)
96
97 EXTRA_DIST = \
98 brw_nir_trig_workarounds.py \
99 brw_oa_hsw.xml \
100 brw_oa.py
101
102 TEST_LIBS = \
103 libi965_compiler.la \
104 $(I965_PERGEN_LIBS) \
105 $(top_builddir)/src/intel/common/libintel_common.la \
106 $(top_builddir)/src/compiler/nir/libnir.la \
107 $(top_builddir)/src/util/libmesautil.la \
108 $(top_builddir)/src/intel/isl/libisl.la \
109 $(PTHREAD_LIBS) \
110 $(DLOPEN_LIBS)
111
112 TESTS = \
113 test_fs_cmod_propagation \
114 test_fs_copy_propagation \
115 test_fs_saturate_propagation \
116 test_eu_compact \
117 test_eu_validate \
118 test_vf_float_conversions \
119 test_vec4_cmod_propagation \
120 test_vec4_copy_propagation \
121 test_vec4_register_coalesce
122
123 check_PROGRAMS = $(TESTS)
124
125 test_fs_cmod_propagation_SOURCES = \
126 test_fs_cmod_propagation.cpp
127 test_fs_cmod_propagation_LDADD = \
128 $(top_builddir)/src/gtest/libgtest.la \
129 $(TEST_LIBS)
130
131 test_fs_copy_propagation_SOURCES = \
132 test_fs_copy_propagation.cpp
133 test_fs_copy_propagation_LDADD = \
134 $(top_builddir)/src/gtest/libgtest.la \
135 $(TEST_LIBS)
136
137 test_fs_saturate_propagation_SOURCES = \
138 test_fs_saturate_propagation.cpp
139 test_fs_saturate_propagation_LDADD = \
140 $(top_builddir)/src/gtest/libgtest.la \
141 $(TEST_LIBS)
142
143 test_vf_float_conversions_SOURCES = \
144 test_vf_float_conversions.cpp
145 test_vf_float_conversions_LDADD = \
146 $(top_builddir)/src/gtest/libgtest.la \
147 $(TEST_LIBS)
148
149 test_vec4_register_coalesce_SOURCES = \
150 test_vec4_register_coalesce.cpp
151 test_vec4_register_coalesce_LDADD = \
152 $(top_builddir)/src/gtest/libgtest.la \
153 $(TEST_LIBS)
154
155 test_vec4_copy_propagation_SOURCES = \
156 test_vec4_copy_propagation.cpp
157 test_vec4_copy_propagation_LDADD = \
158 $(top_builddir)/src/gtest/libgtest.la \
159 $(TEST_LIBS)
160
161 test_vec4_cmod_propagation_SOURCES = \
162 test_vec4_cmod_propagation.cpp
163 test_vec4_cmod_propagation_LDADD = \
164 $(top_builddir)/src/gtest/libgtest.la \
165 $(TEST_LIBS)
166
167 test_eu_compact_SOURCES = \
168 test_eu_compact.c
169 nodist_EXTRA_test_eu_compact_SOURCES = dummy.cpp
170 test_eu_compact_LDADD = $(TEST_LIBS)
171
172 test_eu_validate_SOURCES = \
173 test_eu_validate.cpp
174 test_eu_validate_LDADD = \
175 $(top_builddir)/src/gtest/libgtest.la \
176 $(TEST_LIBS)
177
178 BUILT_SOURCES += $(i965_oa_GENERATED_FILES)
179
180 # Note: we avoid using a multi target rule here and outputting both the
181 # .c and .h files in one go so we don't hit problems with parallel
182 # make and multiple invocations of the same script trying to write
183 # to the same files.
184 brw_oa_%.h: brw_oa_%.xml brw_oa.py Makefile.am
185 $(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/brw_oa.py --header=$(builddir)/brw_oa_$(*).h --chipset="$(*)" $(srcdir)/brw_oa_$(*).xml
186 brw_oa_%.c: brw_oa_%.xml brw_oa.py Makefile.am
187 $(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/brw_oa.py --code=$(builddir)/brw_oa_$(*).c --chipset="$(*)" $(srcdir)/brw_oa_$(*).xml