1 # SPDX-License-Identifier: GPL-2.0+ OR MIT
3 ifneq ($(shell $(CC
) --version
2>&1 | head
-n
1 | grep clang
),)
4 CLANG_FLAGS
+= -no-integrated-as
7 top_srcdir
= ..
/..
/..
/..
9 CFLAGS
+= -O2
-Wall
-g
-I.
/ $(KHDR_INCLUDES
) -L
$(OUTPUT
) -Wl
,-rpath
=.
/ \
10 $(CLANG_FLAGS
) -I
$(top_srcdir
)/tools
/include
11 LDLIBS
+= -lpthread
-ldl
13 # Own dependencies because we only want to build against 1st prerequisite, but
14 # still track changes to header files and depend on shared object.
17 TEST_GEN_PROGS
= basic_test basic_percpu_ops_test basic_percpu_ops_mm_cid_test param_test \
18 param_test_benchmark param_test_compare_twice param_test_mm_cid \
19 param_test_mm_cid_benchmark param_test_mm_cid_compare_twice
21 TEST_GEN_PROGS_EXTENDED
= librseq.so
23 TEST_PROGS
= run_param_test.sh
25 TEST_FILES
:= settings
29 $(OUTPUT
)/librseq.so
: rseq.c rseq.h rseq-
*.h
30 $(CC
) $(CFLAGS
) -shared
-fPIC
$< $(LDLIBS
) -o
$@
32 $(OUTPUT
)/%: %.c
$(TEST_GEN_PROGS_EXTENDED
) rseq.h rseq-
*.h
33 $(CC
) $(CFLAGS
) $< $(LDLIBS
) -lrseq
-o
$@
35 $(OUTPUT
)/basic_percpu_ops_mm_cid_test
: basic_percpu_ops_test.c
$(TEST_GEN_PROGS_EXTENDED
) rseq.h rseq-
*.h
36 $(CC
) $(CFLAGS
) -DBUILDOPT_RSEQ_PERCPU_MM_CID
$< $(LDLIBS
) -lrseq
-o
$@
38 $(OUTPUT
)/param_test_benchmark
: param_test.c
$(TEST_GEN_PROGS_EXTENDED
) \
40 $(CC
) $(CFLAGS
) -DBENCHMARK
$< $(LDLIBS
) -lrseq
-o
$@
42 $(OUTPUT
)/param_test_compare_twice
: param_test.c
$(TEST_GEN_PROGS_EXTENDED
) \
44 $(CC
) $(CFLAGS
) -DRSEQ_COMPARE_TWICE
$< $(LDLIBS
) -lrseq
-o
$@
46 $(OUTPUT
)/param_test_mm_cid
: param_test.c
$(TEST_GEN_PROGS_EXTENDED
) \
48 $(CC
) $(CFLAGS
) -DBUILDOPT_RSEQ_PERCPU_MM_CID
$< $(LDLIBS
) -lrseq
-o
$@
50 $(OUTPUT
)/param_test_mm_cid_benchmark
: param_test.c
$(TEST_GEN_PROGS_EXTENDED
) \
52 $(CC
) $(CFLAGS
) -DBUILDOPT_RSEQ_PERCPU_MM_CID
-DBENCHMARK
$< $(LDLIBS
) -lrseq
-o
$@
54 $(OUTPUT
)/param_test_mm_cid_compare_twice
: param_test.c
$(TEST_GEN_PROGS_EXTENDED
) \
56 $(CC
) $(CFLAGS
) -DBUILDOPT_RSEQ_PERCPU_MM_CID
-DRSEQ_COMPARE_TWICE
$< $(LDLIBS
) -lrseq
-o
$@