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