xref: /linux/tools/testing/selftests/rseq/Makefile (revision 307797159ac25fe5a2048bf5c6a5718298edca57)
1# SPDX-License-Identifier: GPL-2.0+ OR MIT
2CFLAGS += -O2 -Wall -g -I./ -I../../../../usr/include/ -L./ -Wl,-rpath=./
3LDLIBS += -lpthread
4
5# Own dependencies because we only want to build against 1st prerequisite, but
6# still track changes to header files and depend on shared object.
7OVERRIDE_TARGETS = 1
8
9TEST_GEN_PROGS = basic_test basic_percpu_ops_test param_test \
10		param_test_benchmark param_test_compare_twice
11
12TEST_GEN_PROGS_EXTENDED = librseq.so
13
14TEST_PROGS = run_param_test.sh
15
16include ../lib.mk
17
18$(OUTPUT)/librseq.so: rseq.c rseq.h rseq-*.h
19	$(CC) $(CFLAGS) -shared -fPIC $< $(LDLIBS) -o $@
20
21$(OUTPUT)/%: %.c $(TEST_GEN_PROGS_EXTENDED) rseq.h rseq-*.h
22	$(CC) $(CFLAGS) $< $(LDLIBS) -lrseq -o $@
23
24$(OUTPUT)/param_test_benchmark: param_test.c $(TEST_GEN_PROGS_EXTENDED) \
25					rseq.h rseq-*.h
26	$(CC) $(CFLAGS) -DBENCHMARK $< $(LDLIBS) -lrseq -o $@
27
28$(OUTPUT)/param_test_compare_twice: param_test.c $(TEST_GEN_PROGS_EXTENDED) \
29					rseq.h rseq-*.h
30	$(CC) $(CFLAGS) -DRSEQ_COMPARE_TWICE $< $(LDLIBS) -lrseq -o $@
31