Add clTerminateContextKHR in testsuite
[ocl-icd] / Makefile.am
1
2 ACLOCAL_AMFLAGS = -I m4
3
4 SUBDIRS = . doc tests
5
6 RUBY=ruby
7 AM_CPPFLAGS = -Wall -Werror
8
9 pkgconfigdir = $(libdir)/pkgconfig
10 pkgconfig_DATA= OpenCL.pc ocl-icd.pc
11
12 EXTRA_DIST=icd_generator.rb ocl_interface.yaml bootstrap \
13         $(TESTFILES)
14
15 ##################################################################
16 # Main OpenCL ICD Loader library
17 lib_LTLIBRARIES = libOpenCL.la
18 nodist_include_HEADERS = ocl_icd.h
19 pkgexampledir = $(docdir)/examples
20 pkgexample_DATA = ocl_icd_loader.map ocl_icd_bindings.c
21
22 FILES_FROM_DATABASE = ocl_icd.h ocl_icd_loader.h \
23         ocl_icd_loader_gen.c ocl_icd_bindings.c \
24         ocl_icd_loader.map
25 BUILT_SOURCES = $(FILES_FROM_DATABASE)
26 CLEANFILES = $(FILES_FROM_DATABASE) stamp-generator
27
28 # Generate sources and headers from the database
29 stamp-generator: ocl_interface.yaml
30 $(FILES_FROM_DATABASE): stamp-generator
31 stamp-generator: icd_generator.rb
32         $(RUBY) $< --mode database --file $(srcdir)/ocl_interface.yaml
33         echo "timestamp" > $@
34
35 # ignore the warning in OpenCL headers when using old interface
36 libOpenCL_la_CFLAGS= $(NO_DEPRECATED_DECLARATIONS_FLAGS) \
37         $(AM_CFLAGS) $(PTHREAD_CFLAGS)
38
39 libOpenCL_la_SOURCES = ocl_icd_loader.c ocl_icd_debug.h
40 nodist_libOpenCL_la_SOURCES = ocl_icd_loader_gen.c ocl_icd.h
41 libOpenCL_la_LDFLAGS = -version-info 1:0:0 $(PTHREAD_CFLAGS)
42 libOpenCL_la_LIBADD = $(PTHREAD_LIBS)
43 if USE_MAP
44 libOpenCL_la_LDFLAGS += -Wl,--version-script,ocl_icd_loader.map
45 libOpenCL_la_DEPENDS = ocl_icd_loader.map
46 endif
47
48 ####################################
49 # A very small program test
50 check_PROGRAMS=ocl_test ocl_test_icdl
51 ocl_test_SOURCES = ocl_test.c
52 ocl_test_LDADD = libOpenCL.la
53 ocl_test_icdl_SOURCES = ocl_test_icdl.c
54 ocl_test_icdl_LDADD = libOpenCL.la
55
56 check_DATA = vendors/dummycl.icd vendors/dummycl-noext.icd
57 CLEANFILES += vendors/dummycl.icd vendors/dummycl-noext.icd
58 vendors/dummycl.icd:
59         $(MKDIR_P) vendors
60         echo "$(CURDIR)/.libs/libdummycl.so" > $@
61
62 vendors/dummycl-noext.icd:
63         $(MKDIR_P) vendors
64         echo "$(CURDIR)/.libs/libdummycl-noext.so" > $@
65
66 clean-local: mostlyclean-generic clean-generic
67         -rmdir vendors
68
69 ##################################################################
70 # dummy OpenCL ICD
71 FILES_FROM_GENERATOR = run_dummy_icd_gen.c run_dummy_icd_weak.c \
72         libdummy_icd_gen.c libdummy_icd_gen.h
73 BUILT_SOURCES += $(FILES_FROM_GENERATOR)
74 CLEANFILES += $(FILES_FROM_GENERATOR) stamp-generator-dummy
75
76 # Generate sources and headers from OpenCL installed headers
77 $(FILES_FROM_GENERATOR): stamp-generator-dummy
78 stamp-generator-dummy: icd_generator.rb
79 stamp-generator-dummy: icd_generator.rb
80         $(RUBY) $< --mode generate --file $(srcdir)/ocl_interface.yaml
81         echo "timestamp" > $@
82
83 # noinst_LTLIBRARIES would be the correct thing but then libtool
84 # only built non shared version :-( So, declaring the libs as
85 # pkglib_LTLIBRARIES and using an install hook to remove them.
86 pkglib_LTLIBRARIES = libdummycl.la libdummycl-noext.la
87 install-exec-hook::
88         $(RM) -r $(DESTDIR)$(pkglibdir)
89 libdummycl_la_SOURCES = libdummy_icd.c libdummy_icd.h
90 nodist_libdummycl_la_SOURCES = libdummy_icd_gen.c libdummy_icd_gen.h
91 libdummycl_noext_la_SOURCES = $(libdummycl_la_SOURCES)
92 nodist_libdummycl_noext_la_SOURCES = $(nodist_libdummycl_la_SOURCES)
93 libdummycl_noext_la_CPPFLAGS = $(AM_CPPFLAGS) -DICD_WITHOUT_EXTENSION
94
95 noinst_PROGRAMS=run_dummy_icd_through_our_ICDL
96 run_dummy_icd_through_our_ICDL_SOURCES = run_dummy_icd.c
97 nodist_run_dummy_icd_through_our_ICDL_SOURCES = \
98         run_dummy_icd_gen.c run_dummy_icd_weak.c
99 # ignore the warning in OpenCL headers when using old interface
100 run_dummy_icd_through_our_ICDL_CFLAGS= $(NO_DEPRECATED_DECLARATIONS_FLAGS) $(AM_CFLAGS)
101 # we want to link to our implementation here
102 run_dummy_icd_through_our_ICDL_LDADD = libOpenCL.la
103
104 ##################################################################
105 # rules to update the database from an already installed ICD Loader
106 if UPDATE_DATABASE
107
108 noinst_PROGRAMS += run_dummy_icd
109 run_dummy_icd_SOURCES = \
110         $(run_dummy_icd_through_our_ICDL_SOURCES)
111 nodist_run_dummy_icd_SOURCES = \
112         $(nodist_run_dummy_icd_through_our_ICDL_SOURCES)
113 run_dummy_icd_CFLAGS= \
114         $(run_dummy_icd_through_our_ICDL_CFLAGS)
115 # we do not want to link to our implementation here
116 run_dummy_icd_LDADD = -lOpenCL
117 run_dummy_icd_LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
118
119 # run the test program and update the database
120 .PHONY: update-database
121 update-database: icd_generator.rb libdummycl.la run_dummy_icd install_test_lib
122         $(RUBY) $< --mode finalize --file $(srcdir)/ocl_interface.yaml
123
124 .PHONY: install_test_lib uninstall_test_lib
125 install_test_lib:
126         sudo bash -c 'echo "$(CURDIR)/.libs/libdummycl.so" > /etc/OpenCL/vendors/dummycl.icd'
127
128 uninstall_test_lib:
129         sudo rm -f /etc/OpenCL/vendors/dummycl.icd
130
131 else
132 .PHONY: update-database
133 update-database:
134         @echo You need to reconfigure this software with --enable-update-database
135         @exit 1
136 endif
137 ##################################################################