summaryrefslogtreecommitdiff
path: root/tests/ddb/Makefile.am
blob: ca9133d54a9c8aba4f1e53b5979beb39b1c38ea4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
if HAVE_FLEX_BISON
flexbison_PROGRAMS_ = test-ddb
flexbison_check_SCRIPTS_ = check-ddb.sh
flexbison_BUILT_SOURCES_ = ddb-txt.tab.c ddb-txt.tab.h ddb-txt.yy.c
flexbison_CLEANFILES_ = ddb-txt.output
endif

check_PROGRAMS = $(flexbison_PROGRAMS_)

check_SCRIPTS = \
	$(flexbison_check_SCRIPTS_)

EXTRA_DIST = \
	README.ddb \
	check-ddb.in \
	ddb-txt.l \
	ddb-txt.y

# FIXME: Only run this if not cross-compiling
installcheck-local: $(check_SCRIPTS)
	@export CAMLIBS="$(DESTDIR)$(camlibdir)"; \
	total=0; failed=0; success=0; \
	echo "Running \"installcheck\" test cases..."; \
	for script in $(check_SCRIPTS); do \
		echo "Test case: $$script"; \
		total="$$(expr $$total + 1)"; \
		if "./$$script"; then \
			echo "SUCCEEDED: $$script"; \
			success="$$(expr $$success + 1)"; \
		else \
			s="$$?"; \
			echo "FAILED (return code $$s): $$script"; \
			failed="$$(expr $$failed + 1)"; \
		fi; \
	done; \
	echo "Test summary: $$success succeeded, $$failed failed, $$total in total."; \
	if test "$$failed" -gt 0; then \
		echo "Error: One or more \"installcheck\" testcases have failed."; \
		exit 1; \
	fi

# TESTS = $(check_SCRIPTS)

BUILT_SOURCES = $(flexbison_BUILT_SOURCES_)
CLEANFILES = $(check_SCRIPTS) $(BUILT_SOURCES) $(flexbison_CLEANFILES_) gp2ddb.txt

#if HAVE_FLEX_BISON
test_ddb_SOURCES = $(flexbison_BUILT_SOURCES_) test-ddb.c ddb-common.c ddb-common.h
test_ddb_LDADD = \
	-lfl \
	$(top_builddir)/libgphoto2/libgphoto2.la \
	$(top_builddir)/libgphoto2_port/libgphoto2_port/libgphoto2_port.la \
	$(LIBEXIF_LIBS) \
	$(INTLLIBS)

ddb-txt.yy.c: ddb-txt.l ddb-txt.tab.h
	$(FLEX) -o$@ $<

ddb-txt.tab.h: ddb-txt.tab.c
ddb-txt.tab.c ddb-txt.tab.h: ddb-txt.y
	$(BISON) -v $<
#endif

clean-local:
	rm -f *.s *.i

.in.sh:
	@echo "Creating $@"
	@sed \
		-e 's|@top_builddir\@|$(top_builddir)|g' \
		-e 's|@camlibdir\@|$(camlibdir)|g' \
		< "$<" > "$@"
	@chmod +x $@

check-ddb.sh: check-ddb.in $(top_builddir)/packaging/generic/print-camera-list test-ddb

$(top_builddir)/packaging/generic/print-camera-list:
	cd $(top_builddir)/packaging/generic && $(MAKE) print-camera-list