1########################################################################
2# Housekeeping
3########################################################################
4
5SUBDIRS = ddb
6
7EXTRA_PROGRAMS =
8check_PROGRAMS =
9TESTS =
10INSTALL_TESTS =
11noinst_PROGRAMS =
12
13
14########################################################################
15# Set up test environment
16########################################################################
17
18# Now that we build all the camlibs in one directory, we can run our checks
19# with CAMLIBS set to the camlib build directory.
20TESTS_ENVIRONMENT = env \
21	CAMLIBS="$(top_builddir)/camlibs"
22
23# After installation, this will be CAMLIBS = $(DESTDIR)$(camlibdir)
24INSTALL_TESTS_ENVIRONMENT = env \
25	CAMLIBS="$(DESTDIR)$(camlibdir)" \
26	LD_LIBRARY_PATH="$(DESTDIR)$(libdir)$${LD_LIBRARY_PATH+:$${LD_LIBRARY_PATH}}"
27
28
29########################################################################
30# Define test programs
31########################################################################
32
33
34# Default CPPFLAGS to use
35AM_CPPFLAGS += -I$(top_srcdir) -I$(top_builddir)  -I$(top_srcdir)/libgphoto2_port -I$(top_srcdir)/libgphoto2 -I$(top_builddir)/libgphoto2
36
37
38# Test endianness conversions
39TESTS              += test-endian
40check_PROGRAMS     += test-endian
41test_endian_SOURCES = test-endian.c
42test_endian_LDADD   = \
43	$(top_builddir)/libgphoto2/libgphoto2.la \
44	$(top_builddir)/libgphoto2_port/libgphoto2_port/libgphoto2_port.la \
45	$(LIBLTDL) \
46	$(LIBEXIF_LIBS) \
47	$(INTLLIBS)
48
49
50# Print the libgphoto2 version information for this libgphoto2 build
51noinst_PROGRAMS                 += print-libgphoto2-version
52print_libgphoto2_version_SOURCES = print-libgphoto2-version.c
53print_libgphoto2_version_LDADD   =
54print_libgphoto2_version_LDADD  += $(top_builddir)/libgphoto2/libgphoto2.la
55print_libgphoto2_version_LDADD  += $(top_builddir)/libgphoto2_port/libgphoto2_port/libgphoto2_port.la
56print_libgphoto2_version_LDADD  += $(LIBLTDL)
57print_libgphoto2_version_LDADD  += $(LIBEXIF_LIBS)
58print_libgphoto2_version_LDADD  += $(INTLLIBS)
59
60
61# Test basic libgphoto2 functionality
62noinst_PROGRAMS     += test-gphoto2
63test_gphoto2_SOURCES = test-gphoto2.c
64test_gphoto2_LDADD   = \
65	$(top_builddir)/libgphoto2/libgphoto2.la \
66	$(top_builddir)/libgphoto2_port/libgphoto2_port/libgphoto2_port.la \
67	$(LIBLTDL) \
68	$(LIBEXIF_LIBS) \
69	$(INTLLIBS)
70
71
72# Test gp_filesystem_* functions
73noinst_PROGRAMS    += test-filesys
74test_filesys_SOURCES = test-filesys.c
75test_filesys_LDADD   = \
76	$(top_builddir)/libgphoto2/libgphoto2.la \
77	$(top_builddir)/libgphoto2_port/libgphoto2_port/libgphoto2_port.la \
78	$(LIBLTDL) \
79	$(LIBEXIF_LIBS) \
80	$(INTLLIBS)
81
82
83# Print a list of all cameras supported by this build of libgphoto2
84TESTS          += test-camera-list
85INSTALL_TESTS  += test-camera-list
86check_PROGRAMS         += test-camera-list
87test_camera_list_SOURCES = test-camera-list.c
88test_camera_list_LDADD   = \
89	$(top_builddir)/libgphoto2/libgphoto2.la \
90	$(top_builddir)/libgphoto2_port/libgphoto2_port/libgphoto2_port.la \
91	$(LIBLTDL) \
92	$(LIBEXIF_LIBS) \
93	$(INTLLIBS)
94
95
96########################################################################
97# Old pedantic compilation test
98########################################################################
99
100if HAVE_GCC
101PEDANTIC_CFLAGS   = -std=c99 -pedantic-errors -W -Wall -Wextra -Werror
102PEDANTIC_CXXFLAGS = -std=c++98 -pedantic-errors -W -Wall -Wextra -Werror
103else
104PEDANTIC_CFLAGS   =
105PEDANTIC_CXXFLAGS =
106endif
107
108TESTS += test-pedantic-c
109check_PROGRAMS += test-pedantic-c
110test_pedantic_c_SOURCES = test-pedantic-compilation.c
111test_pedantic_c_CPPFLAGS = \
112	$(AM_CPPFLAGS) $(CPPFLAGS) \
113	-U_GPHOTO2_INTERNAL_CODE
114test_pedantic_c_CFLAGS = \
115	$(AM_CFLAGS) $(PEDANTIC_CFLAGS) $(CFLAGS) \
116	-U_GPHOTO2_INTERNAL_CODE
117test_pedantic_c_LDADD = \
118	$(top_builddir)/libgphoto2/libgphoto2.la \
119	$(top_builddir)/libgphoto2_port/libgphoto2_port/libgphoto2_port.la \
120	$(LIBLTDL) \
121	$(LIBEXIF_LIBS) \
122	$(INTLLIBS)
123
124
125if HAVE_CXX
126check_PROGRAMS += test-pedantic-cxx
127TESTS += test-pedantic-cxx
128else
129EXTRA_PROGRAMS += test-pedantic-cxx
130endif
131test_pedantic_cxx_SOURCES = test-pedantic-compilation.cxx
132test_pedantic_cxx_CPPFLAGS = \
133	$(AM_CPPFLAGS) $(CPPFLAGS) \
134	-U_GPHOTO2_INTERNAL_CODE
135test_pedantic_cxx_CXXFLAGS = \
136	$(AM_CXXFLAGS) $(PEDANTIC_CXXFLAGS) $(CXXFLAGS) \
137	-U_GPHOTO2_INTERNAL_CODE
138test_pedantic_cxx_LDADD = \
139	$(top_builddir)/libgphoto2/libgphoto2.la \
140	$(top_builddir)/libgphoto2_port/libgphoto2_port/libgphoto2_port.la \
141	$(LIBLTDL) \
142	$(LIBEXIF_LIBS) \
143	$(INTLLIBS)
144
145
146########################################################################
147# Test pendantic compilation for multiple language standard
148########################################################################
149
150generic_pedantic_cppflags =
151generic_pedantic_cppflags += -I$(top_srcdir)/libgphoto2_port
152generic_pedantic_cppflags += -I$(top_srcdir)
153
154if GP_HAVE_PEDANTIC_FLAGS_C90
155TESTS                     += test-pedantic-c90
156check_PROGRAMS            += test-pedantic-c90
157test_pedantic_c90_SOURCES  = test-pedantic-compilation.c
158test_pedantic_c90_CPPFLAGS = $(generic_pedantic_cppflags)
159test_pedantic_c90_CFLAGS   = $(GP_PEDANTIC_CFLAGS_C90)
160test_pedantic_c90_LDADD    =
161test_pedantic_c90_LDFLAGS  =
162endif
163
164if GP_HAVE_PEDANTIC_FLAGS_C99
165TESTS                     += test-pedantic-c99
166check_PROGRAMS            += test-pedantic-c99
167test_pedantic_c99_SOURCES  = test-pedantic-compilation.c
168test_pedantic_c99_CPPFLAGS = $(generic_pedantic_cppflags)
169test_pedantic_c99_CFLAGS   = $(GP_PEDANTIC_CFLAGS_C99)
170test_pedantic_c99_LDADD    =
171test_pedantic_c99_LDFLAGS  =
172endif
173
174if GP_HAVE_PEDANTIC_FLAGS_C11
175TESTS                     += test-pedantic-c11
176check_PROGRAMS            += test-pedantic-c11
177test_pedantic_c11_SOURCES  = test-pedantic-compilation.c
178test_pedantic_c11_CPPFLAGS = $(generic_pedantic_cppflags)
179test_pedantic_c11_CFLAGS   = $(GP_PEDANTIC_CFLAGS_C11)
180test_pedantic_c11_LDADD    =
181test_pedantic_c11_LDFLAGS  =
182endif
183
184if GP_HAVE_PEDANTIC_FLAGS_CXX98
185if HAVE_CXX
186TESTS                       += test-pedantic-cxx98
187check_PROGRAMS              += test-pedantic-cxx98
188else
189EXTRA_PROGRAMS              += test-pedantic-cxx98
190endif
191test_pedantic_cxx98_SOURCES  = test-pedantic-compilation.cxx
192test_pedantic_cxx98_CPPFLAGS = $(generic_pedantic_cppflags)
193test_pedantic_cxx98_CXXFLAGS = $(GP_PEDANTIC_CXXFLAGS_CXX98)
194test_pedantic_cxx98_LDADD    =
195test_pedantic_cxx98_LDFLAGS  =
196endif
197
198if GP_HAVE_PEDANTIC_FLAGS_CXX11
199if HAVE_CXX
200TESTS                       += test-pedantic-cxx11
201check_PROGRAMS              += test-pedantic-cxx11
202else
203EXTRA_PROGRAMS              += test-pedantic-cxx11
204endif
205test_pedantic_cxx11_SOURCES  = test-pedantic-compilation.cxx
206test_pedantic_cxx11_CPPFLAGS = $(generic_pedantic_cppflags)
207test_pedantic_cxx11_CXXFLAGS = $(GP_PEDANTIC_CXXFLAGS_CXX11)
208test_pedantic_cxx11_LDADD    =
209test_pedantic_cxx11_LDFLAGS  =
210endif
211
212if GP_HAVE_PEDANTIC_FLAGS_CXX14
213if HAVE_CXX
214TESTS                       += test-pedantic-cxx14
215check_PROGRAMS              += test-pedantic-cxx14
216else
217EXTRA_PROGRAMS              += test-pedantic-cxx14
218endif
219test_pedantic_cxx14_SOURCES  = test-pedantic-compilation.cxx
220test_pedantic_cxx14_CPPFLAGS = $(generic_pedantic_cppflags)
221test_pedantic_cxx14_CXXFLAGS = $(GP_PEDANTIC_CXXFLAGS_CXX14)
222test_pedantic_cxx14_LDADD    =
223test_pedantic_cxx14_LDFLAGS  =
224endif
225
226if GP_HAVE_PEDANTIC_FLAGS_CXX17
227if HAVE_CXX
228TESTS                       += test-pedantic-cxx17
229check_PROGRAMS              += test-pedantic-cxx17
230else
231EXTRA_PROGRAMS              += test-pedantic-cxx17
232endif
233test_pedantic_cxx17_SOURCES  = test-pedantic-compilation.cxx
234test_pedantic_cxx17_CPPFLAGS = $(generic_pedantic_cppflags)
235test_pedantic_cxx17_CXXFLAGS = $(GP_PEDANTIC_CXXFLAGS_CXX17)
236test_pedantic_cxx17_LDADD    =
237test_pedantic_cxx17_LDFLAGS  =
238endif
239
240
241########################################################################
242# Implement the checks for the installed library
243########################################################################
244
245include $(top_srcdir)/installcheck.mk
246