File: Makefile.am

package info (click to toggle)
libevdev 1.5.6%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 2,184 kB
  • ctags: 1,594
  • sloc: ansic: 8,764; sh: 4,195; makefile: 204; python: 171
file content (159 lines) | stat: -rw-r--r-- 3,835 bytes parent folder | download
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
build_tests = test-compile-pedantic test-link

if ENABLE_STATIC_LINK_TEST
build_tests += test-static-link
endif

noinst_PROGRAMS = $(build_tests)

AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/include -I$(top_builddir)/libevdev
AM_LDFLAGS =

test_compile_pedantic_SOURCES = test-compile-pedantic.c
test_compile_pedantic_CFLAGS = $(AM_CPPFLAGS) -pedantic -Werror -std=c89

test_link_SOURCES = test-link.c
test_link_CFLAGS = -I$(top_srcdir)
test_link_LDADD = $(top_builddir)/libevdev/libevdev.la

test_static_link_SOURCES = test-link.c
test_static_link_CFLAGS = -I$(top_srcdir)
test_static_link_LDADD = $(top_builddir)/libevdev/libevdev.la
test_static_link_LDFLAGS = $(AM_LDFLAGS) -static

check_local_deps =
clean_local_deps =

if ENABLE_RUNTIME_TESTS
run_tests = test-libevdev test-kernel

.NOTPARALLEL:

noinst_PROGRAMS += $(run_tests)

if RUN_TESTS
TESTS = $(run_tests)
endif

libevdev_sources = $(top_srcdir)/libevdev/libevdev.c \
		   $(top_srcdir)/libevdev/libevdev.h \
		   $(top_srcdir)/libevdev/libevdev-names.c \
		   $(top_srcdir)/libevdev/libevdev-uinput.h \
		   $(top_srcdir)/libevdev/libevdev-uinput.c \
		   $(top_srcdir)/libevdev/libevdev-uinput-int.h \
		   $(top_srcdir)/libevdev/libevdev-util.h \
		   $(top_srcdir)/libevdev/libevdev-int.h
common_sources = $(libevdev_sources) \
		 test-common-uinput.c \
		 test-common-uinput.h \
		 test-common.c \
		 test-common.h

# include builddir for event-names.h
AM_CPPFLAGS += $(CHECK_CFLAGS) $(GCOV_CFLAGS)
AM_LDFLAGS += $(GCOV_LDFLAGS)

test_libevdev_SOURCES = \
			test-main.c \
			test-event-names.c \
			test-event-codes.c \
			test-libevdev-init.c \
			test-libevdev-has-event.c \
			test-int-queue.c \
			test-libevdev-events.c \
			test-uinput.c \
			$(common_sources)

test_libevdev_LDADD =  $(CHECK_LIBS)

test_kernel_SOURCES = \
		      test-kernel.c \
		      $(common_sources)
test_kernel_CFLAGS = -I$(top_srcdir)
test_kernel_LDADD = $(CHECK_LIBS)

if HAVE_VALGRIND
VALGRIND_FLAGS=--leak-check=full \
		--quiet \
		--error-exitcode=3 \
		--suppressions=$(srcdir)/valgrind.suppressions

valgrind:
	        $(MAKE) check-TESTS LOG_COMPILER="$(VALGRIND)" LOG_FLAGS="$(VALGRIND_FLAGS)"

check_local_deps += valgrind

endif

EXTRA_DIST = valgrind.suppressions

if GCOV_ENABLED

CLEANFILES = gcov-report.txt

gcov-clean:
	@rm -f *.gcov

gcov-report.txt: gcov-clean check-TESTS
	$(AM_V_GEN)(rm -rf $@; \
		echo "========== coverage report ========" >> $@; \
		for file in `find $(top_srcdir)/libevdev -name "*.c" -printf "%P\n"`; do \
			gcov $$file > /dev/null; \
			if test -f $$file.gcov; then \
				total=`grep -v " -:" $$file.gcov | wc -l`; \
				missing=`grep "#####" $$file.gcov | wc -l`; \
				hit=$$((total - missing)); \
				echo -e "$$file: total lines: $$total not tested: $$missing ($$((($$hit * 100)/$$total))%)"; \
			fi \
		done >> $@; \
		echo "========== =============== ========" >> $@; \
	)

gcov: gcov-report.txt
	@cat gcov-report.txt

check_local_deps += gcov
clean_local_deps += gcov-clean

else

gcov-report.txt:
	@true

gcov:
	@true

gcov-clean:
	@true

endif # HAVE_VALGRIND

.PHONY: gcov gcov-clean gcov-report.txt

endif # ENABLE_RUNTIME_TESTS

if ENABLE_STATIC_SYMBOL_LEAKS_TEST
# Hack to check for leaking symbols in the static library.
# See https://bugs.freedesktop.org/show_bug.cgi?id=82785
# Note the spaces in the expressions! After the first grep, each line
# is " T symbol_name"
static-symbol-leaks: test-static-link
	$(AM_V_GEN)(\
		$(NM) --extern-only $(builddir)/test-static-link | \
			grep -o -e " T .*" | \
			grep -v -e " main$$" \
				-e " atexit" \
				-e " *gcov.*" \
				-e " _.*" \
				-e " libevdev_*" && \
				echo "Leaking symbols found" && \
				exit 1 || exit 0 \
	)

check_local_deps += static-symbol-leaks
endif # HAVE_NM

check-local: $(check_local_deps)

clean-local: $(clean_local_deps)
	rm -f *.gcno *.gcda