xref: /aosp_15_r20/external/linux-kselftest/tools/testing/selftests/rseq/Makefile (revision 053f45be4e351dfd5e965df293cd45b779f579ee)
1*053f45beSAndroid Build Coastguard Worker# SPDX-License-Identifier: GPL-2.0+ OR MIT
2*053f45beSAndroid Build Coastguard Worker
3*053f45beSAndroid Build Coastguard Workerifneq ($(shell $(CC) --version 2>&1 | head -n 1 | grep clang),)
4*053f45beSAndroid Build Coastguard WorkerCLANG_FLAGS += -no-integrated-as
5*053f45beSAndroid Build Coastguard Workerendif
6*053f45beSAndroid Build Coastguard Worker
7*053f45beSAndroid Build Coastguard WorkerCFLAGS += -O2 -Wall -g -I./ -I../../../../usr/include/ -L$(OUTPUT) -Wl,-rpath=./ \
8*053f45beSAndroid Build Coastguard Worker	  $(CLANG_FLAGS)
9*053f45beSAndroid Build Coastguard WorkerLDLIBS += -lpthread -ldl
10*053f45beSAndroid Build Coastguard Worker
11*053f45beSAndroid Build Coastguard Worker# Own dependencies because we only want to build against 1st prerequisite, but
12*053f45beSAndroid Build Coastguard Worker# still track changes to header files and depend on shared object.
13*053f45beSAndroid Build Coastguard WorkerOVERRIDE_TARGETS = 1
14*053f45beSAndroid Build Coastguard Worker
15*053f45beSAndroid Build Coastguard WorkerTEST_GEN_PROGS = basic_test basic_percpu_ops_test param_test \
16*053f45beSAndroid Build Coastguard Worker		param_test_benchmark param_test_compare_twice
17*053f45beSAndroid Build Coastguard Worker
18*053f45beSAndroid Build Coastguard WorkerTEST_GEN_PROGS_EXTENDED = librseq.so
19*053f45beSAndroid Build Coastguard Worker
20*053f45beSAndroid Build Coastguard WorkerTEST_PROGS = run_param_test.sh
21*053f45beSAndroid Build Coastguard Worker
22*053f45beSAndroid Build Coastguard WorkerTEST_FILES := settings
23*053f45beSAndroid Build Coastguard Worker
24*053f45beSAndroid Build Coastguard Workerinclude ../lib.mk
25*053f45beSAndroid Build Coastguard Worker
26*053f45beSAndroid Build Coastguard Worker$(OUTPUT)/librseq.so: rseq.c rseq.h rseq-*.h
27*053f45beSAndroid Build Coastguard Worker	$(CC) $(CFLAGS) -shared -fPIC $< $(LDLIBS) -o $@
28*053f45beSAndroid Build Coastguard Worker
29*053f45beSAndroid Build Coastguard Worker$(OUTPUT)/%: %.c $(TEST_GEN_PROGS_EXTENDED) rseq.h rseq-*.h
30*053f45beSAndroid Build Coastguard Worker	$(CC) $(CFLAGS) $< $(LDLIBS) -lrseq -o $@
31*053f45beSAndroid Build Coastguard Worker
32*053f45beSAndroid Build Coastguard Worker$(OUTPUT)/param_test_benchmark: param_test.c $(TEST_GEN_PROGS_EXTENDED) \
33*053f45beSAndroid Build Coastguard Worker					rseq.h rseq-*.h
34*053f45beSAndroid Build Coastguard Worker	$(CC) $(CFLAGS) -DBENCHMARK $< $(LDLIBS) -lrseq -o $@
35*053f45beSAndroid Build Coastguard Worker
36*053f45beSAndroid Build Coastguard Worker$(OUTPUT)/param_test_compare_twice: param_test.c $(TEST_GEN_PROGS_EXTENDED) \
37*053f45beSAndroid Build Coastguard Worker					rseq.h rseq-*.h
38*053f45beSAndroid Build Coastguard Worker	$(CC) $(CFLAGS) -DRSEQ_COMPARE_TWICE $< $(LDLIBS) -lrseq -o $@
39