1ACLOCAL_AMFLAGS = -I m4
2AM_CFLAGS = @VKD3D_CFLAGS@
3AM_CPPFLAGS = -I$(srcdir)/include -I$(srcdir)/include/private -I$(builddir)/include/private
4AM_LDFLAGS = -no-undefined
5
6widl_headers = \
7	include/vkd3d_d3d12.h \
8	include/vkd3d_d3d12sdklayers.h \
9	include/vkd3d_d3dcommon.h \
10	include/vkd3d_dxgi.h \
11	include/vkd3d_dxgi1_2.h \
12	include/vkd3d_dxgi1_3.h \
13	include/vkd3d_dxgi1_4.h \
14	include/vkd3d_dxgibase.h \
15	include/vkd3d_dxgiformat.h \
16	include/vkd3d_dxgitype.h
17
18vkd3d_public_headers = \
19	include/vkd3d.h \
20	include/vkd3d_d3d12.h \
21	include/vkd3d_d3d12sdklayers.h \
22	include/vkd3d_d3dcommon.h \
23	include/vkd3d_dxgibase.h \
24	include/vkd3d_dxgiformat.h \
25	include/vkd3d_shader.h \
26	include/vkd3d_types.h \
27	include/vkd3d_utils.h \
28	include/vkd3d_windows.h
29
30vkd3d_demos_shaders = \
31	demos/gears.hlsl \
32	demos/gears_ps_flat.h \
33	demos/gears_ps_smooth.h \
34	demos/gears_vs.h \
35	demos/triangle.hlsl \
36	demos/triangle_ps.h \
37	demos/triangle_vs.h
38
39vkd3d_tests = \
40	tests/vkd3d_api \
41	tests/vkd3d_common \
42	tests/vkd3d_shader_api
43
44vkd3d_cross_tests = \
45	tests/d3d12 \
46	tests/d3d12_invalid_usage
47
48vkd3d_test_headers = \
49	tests/d3d12_crosstest.h \
50	tests/d3d12_test_utils.h
51
52vkd3d_demos = \
53	demos/gears \
54	demos/triangle
55
56vkd3d_demos_headers = \
57	demos/demo.h \
58	demos/demo_win32.h \
59	demos/demo_xcb.h
60
61BUILT_SOURCES = $(widl_headers) \
62	include/private/vkd3d_version.h
63
64noinst_LTLIBRARIES = libvkd3d-common.la
65libvkd3d_common_la_SOURCES = \
66	include/private/vkd3d_debug.h \
67	libs/vkd3d-common/debug.c \
68	libs/vkd3d-common/memory.c \
69	libs/vkd3d-common/utf8.c
70
71lib_LTLIBRARIES = libvkd3d-shader.la libvkd3d.la libvkd3d-utils.la
72
73libvkd3d_shader_la_SOURCES = \
74	include/private/list.h \
75	include/private/rbtree.h \
76	include/private/vkd3d_common.h \
77	include/private/vkd3d_debug.h \
78	include/private/vkd3d_memory.h \
79	include/vkd3d_shader.h \
80	libs/vkd3d-shader/checksum.c \
81	libs/vkd3d-shader/dxbc.c \
82	libs/vkd3d-shader/spirv.c \
83	libs/vkd3d-shader/trace.c \
84	libs/vkd3d-shader/vkd3d_shader.map \
85	libs/vkd3d-shader/vkd3d_shader_main.c \
86	libs/vkd3d-shader/vkd3d_shader_private.h
87libvkd3d_shader_la_CFLAGS = $(AM_CFLAGS) @SPIRV_TOOLS_CFLAGS@
88libvkd3d_shader_la_LDFLAGS = $(AM_LDFLAGS) -version-info 1:0:0
89libvkd3d_shader_la_LIBADD = libvkd3d-common.la @SPIRV_TOOLS_LIBS@
90if HAVE_LD_VERSION_SCRIPT
91libvkd3d_shader_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libs/vkd3d-shader/vkd3d_shader.map
92EXTRA_libvkd3d_shader_la_DEPENDENCIES = $(srcdir)/libs/vkd3d-shader/vkd3d_shader.map
93endif
94
95libvkd3d_la_SOURCES = \
96	include/private/vkd3d_common.h \
97	include/private/vkd3d_debug.h \
98	include/private/vkd3d_memory.h \
99	include/private/vkd3d_utf8.h \
100	include/private/vkd3d_test.h \
101	include/vkd3d_d3d12.idl \
102	include/vkd3d_d3dcommon.idl \
103	include/vkd3d_unknown.idl \
104	libs/vkd3d/command.c \
105	libs/vkd3d/device.c \
106	libs/vkd3d/resource.c \
107	libs/vkd3d/state.c \
108	libs/vkd3d/utils.c \
109	libs/vkd3d/vkd3d.map \
110	libs/vkd3d/vkd3d_main.c \
111	libs/vkd3d/vkd3d_private.h \
112	libs/vkd3d/vkd3d_shaders.h \
113	libs/vkd3d/vulkan_procs.h
114libvkd3d_la_LDFLAGS = $(AM_LDFLAGS) -version-info 3:0:2
115libvkd3d_la_LIBADD = libvkd3d-common.la libvkd3d-shader.la @DL_LIBS@ @PTHREAD_LIBS@
116if HAVE_LD_VERSION_SCRIPT
117libvkd3d_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libs/vkd3d/vkd3d.map
118EXTRA_libvkd3d_la_DEPENDENCIES = $(srcdir)/libs/vkd3d/vkd3d.map
119endif
120
121libvkd3d_utils_la_SOURCES = \
122	libs/vkd3d-utils/vkd3d_utils.map \
123	libs/vkd3d-utils/vkd3d_utils_main.c \
124	libs/vkd3d-utils/vkd3d_utils_private.h
125libvkd3d_utils_la_LDFLAGS = $(AM_LDFLAGS) -version-info 2:0:1
126libvkd3d_utils_la_LIBADD = libvkd3d-common.la libvkd3d.la @PTHREAD_LIBS@
127if HAVE_LD_VERSION_SCRIPT
128libvkd3d_utils_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libs/vkd3d-utils/vkd3d_utils.map
129EXTRA_libvkd3d_utils_la_DEPENDENCIES = $(srcdir)/libs/vkd3d-utils/vkd3d_utils.map
130endif
131
132EXTRA_DIST = ANNOUNCE LICENSE
133
134pkgconfigdir = $(libdir)/pkgconfig
135pkginclude_HEADERS = $(vkd3d_public_headers)
136nodist_pkgconfig_DATA = libvkd3d.pc libvkd3d-shader.pc libvkd3d-utils.pc
137CLEANFILES = libvkd3d.pc libvkd3d-shader.pc libvkd3d-utils.pc
138EXTRA_DIST += \
139	libs/vkd3d/libvkd3d.pc.in \
140	libs/vkd3d-shader/libvkd3d-shader.pc.in \
141	libs/vkd3d-utils/libvkd3d-utils.pc.in
142
143bin_PROGRAMS = vkd3d-compiler
144vkd3d_compiler_SOURCES = programs/vkd3d-compiler/main.c
145vkd3d_compiler_LDADD = libvkd3d-shader.la
146
147LDADD = libvkd3d.la libvkd3d-utils.la
148AM_DEFAULT_SOURCE_EXT = .c
149if BUILD_TESTS
150check_PROGRAMS = $(vkd3d_tests) $(vkd3d_cross_tests)
151TESTS = $(vkd3d_tests) $(vkd3d_cross_tests)
152tests_d3d12_LDADD = $(LDADD) @PTHREAD_LIBS@ @VULKAN_LIBS@
153tests_d3d12_invalid_usage_LDADD = $(LDADD) @VULKAN_LIBS@
154tests_vkd3d_api_LDADD = libvkd3d.la @VULKAN_LIBS@
155tests_vkd3d_shader_api_LDADD = libvkd3d-shader.la
156endif
157
158if BUILD_DEMOS
159DEMOS_LDADD = $(LDADD) libvkd3d-shader.la @XCB_LIBS@ @VULKAN_LIBS@
160DEMOS_CFLAGS = $(AM_CFLAGS) @XCB_CFLAGS@
161noinst_PROGRAMS = $(vkd3d_demos)
162
163demos_gears_CFLAGS = $(DEMOS_CFLAGS)
164demos_gears_LDADD = $(DEMOS_LDADD) -lm
165
166demos_triangle_CFLAGS = $(DEMOS_CFLAGS)
167demos_triangle_LDADD = $(DEMOS_LDADD)
168endif
169
170EXTRA_DIST += $(vkd3d_test_headers) $(vkd3d_demos_headers)
171
172VKD3D_V_WIDL = $(vkd3d_v_widl_@AM_V@)
173vkd3d_v_widl_ = $(vkd3d_v_widl_@AM_DEFAULT_V@)
174vkd3d_v_widl_0 = @echo "  WIDL    " $@;
175vkd3d_v_widl_1 =
176
177if HAVE_WIDL
178CLEANFILES += $(widl_headers)
179endif
180EXTRA_DIST += $(widl_headers) $(widl_headers:.h=.idl)
181$(widl_headers): %.h: %.idl
182if HAVE_WIDL
183	$(VKD3D_V_WIDL)$(WIDL) -h -o $@ $<
184else
185	@echo "widl is required to generate $@"
186endif
187
188EXTRA_DIST += $(vkd3d_demos_shaders)
189
190libvkd3d-utils.pc: $(srcdir)/libs/vkd3d-utils/libvkd3d-utils.pc.in Makefile
191	$(AM_V_GEN)$(SED) -e 's![@]prefix[@]!$(prefix)!g' \
192		-e 's![@]exec_prefix[@]!$(exec_prefix)!g' \
193		-e 's![@]includedir[@]!$(includedir)!g' \
194		-e 's![@]libdir[@]!$(libdir)!g' \
195		-e 's![@]PACKAGE_VERSION[@]!$(PACKAGE_VERSION)!g' \
196		$< > $@
197
198libvkd3d-shader.pc: $(srcdir)/libs/vkd3d-shader/libvkd3d-shader.pc.in Makefile
199	$(AM_V_GEN)$(SED) -e 's![@]prefix[@]!$(prefix)!g' \
200		-e 's![@]exec_prefix[@]!$(exec_prefix)!g' \
201		-e 's![@]includedir[@]!$(includedir)!g' \
202		-e 's![@]libdir[@]!$(libdir)!g' \
203		-e 's![@]PACKAGE_VERSION[@]!$(PACKAGE_VERSION)!g' \
204		$< > $@
205
206libvkd3d.pc: $(srcdir)/libs/vkd3d/libvkd3d.pc.in Makefile
207	$(AM_V_GEN)$(SED) -e 's![@]prefix[@]!$(prefix)!g' \
208		-e 's![@]exec_prefix[@]!$(exec_prefix)!g' \
209		-e 's![@]includedir[@]!$(includedir)!g' \
210		-e 's![@]libdir[@]!$(libdir)!g' \
211		-e 's![@]PACKAGE_VERSION[@]!$(PACKAGE_VERSION)!g' \
212		$< > $@
213
214include/private/vkd3d_version.h: dummy-vkd3d-version
215	@$(MKDIR_P) include/private
216	version=`(GIT_DIR=$(top_srcdir)/.git git rev-parse --short HEAD 2>/dev/null || echo '') \
217		| $(SED) -e 's!\(..*\)! (git \1)!' \
218		| $(SED) -n -e '$$s!\(.*\)!#define VKD3D_VCS_ID "\1"!p'` \
219		&& (echo $$version | cmp -s - $@) \
220		|| echo $$version >$@ || ($(RM) $@ && exit 1)
221.SILENT: include/private/vkd3d_version.h
222CLEANFILES += include/private/vkd3d_version.h
223
224.PHONY: dummy-vkd3d-version
225dummy-vkd3d-version:
226
227## Cross-compile tests
228cross_implibs = crosslibs/d3d12
229CROSS_CPPFLAGS = -I$(srcdir)/include -I$(srcdir)/include/private -I$(builddir)/include
230CROSS_CFLAGS = -g -O2 -Wall -municode ${CROSS_CPPFLAGS}
231EXTRA_DIST += $(cross_implibs:=.cross32.def) $(cross_implibs:=.cross64.def)
232
233if HAVE_CROSSTARGET32
234CROSS32_CC = @CROSSCC32@
235CROSS32_DLLTOOL = @CROSSTARGET32@-dlltool
236CROSS32_IMPLIBS = $(cross_implibs:=.cross32.a)
237CROSS32_EXEFILES = $(vkd3d_cross_tests:=.cross32.exe) $(vkd3d_demos:=.cross32.exe)
238CROSS32_FILES = $(CROSS32_IMPLIBS) $(CROSS32_EXEFILES)
239
240CLEANFILES += $(CROSS32_FILES)
241crosstest32: $(CROSS32_FILES)
242
243-include tests/$(DEPDIR)/*.cross32.Po
244-include demos/$(DEPDIR)/*.cross32.Po
245
246$(CROSS32_IMPLIBS): %.cross32.a: %.cross32.def
247	@${MKDIR_P} crosslibs
248	$(AM_V_GEN)$(CROSS32_DLLTOOL) -k -m i386 --as-flags=-32 -d $< -l $@
249
250$(CROSS32_EXEFILES): %.cross32.exe: %.c $(CROSS32_IMPLIBS) $(widl_headers)
251	$(AM_V_CCLD)depbase=`echo $@ | $(SED) 's![^/]*$$!$(DEPDIR)/&!;s!\.exe$$!!'`; \
252	$(CROSS32_CC) $(CROSS_CFLAGS) -MT $@ -MD -MP -MF $$depbase.Tpo -o $@ $< $(CROSS32_IMPLIBS) -ldxgi -lgdi32 && \
253	$(am__mv) $$depbase.Tpo $$depbase.Po
254else
255crosstest32:
256endif
257
258if HAVE_CROSSTARGET64
259CROSS64_CC = @CROSSCC64@
260CROSS64_DLLTOOL = @CROSSTARGET64@-dlltool
261CROSS64_IMPLIBS = $(cross_implibs:=.cross64.a)
262CROSS64_EXEFILES = $(vkd3d_cross_tests:=.cross64.exe) $(vkd3d_demos:=.cross64.exe)
263CROSS64_FILES = $(CROSS64_IMPLIBS) $(CROSS64_EXEFILES)
264
265CLEANFILES += $(CROSS64_FILES)
266crosstest64: $(CROSS64_FILES)
267
268-include tests/$(DEPDIR)/*.cross64.Po
269-include demos/$(DEPDIR)/*.cross64.Po
270
271$(CROSS64_IMPLIBS): %.cross64.a: %.cross64.def
272	@${MKDIR_P} crosslibs
273	$(AM_V_GEN)$(CROSS64_DLLTOOL) -k -m i386:x86-64 --as-flags=-64 -d $< -l $@
274
275$(CROSS64_EXEFILES): %.cross64.exe: %.c $(CROSS64_IMPLIBS) $(widl_headers)
276	$(AM_V_CCLD)depbase=`echo $@ | sed 's![^/]*$$!$(DEPDIR)/&!;s!\.exe$$!!'`; \
277	$(CROSS64_CC) $(CROSS_CFLAGS) -MT $@ -MD -MP -MF $$depbase.Tpo -o $@ $< $(CROSS64_IMPLIBS) -ldxgi -lgdi32 && \
278	$(am__mv) $$depbase.Tpo $$depbase.Po
279else
280crosstest64:
281endif
282
283.PHONY: crosstest crosstest32 crosstest64
284crosstest: crosstest32 crosstest64
285
286if BUILD_DOC
287@DX_RULES@
288all: doxygen-doc
289CLEANFILES += $(DX_CLEANFILES)
290endif
291