^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) # SPDX-License-Identifier: GPL-2.0+ OR MIT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) ifneq ($(shell $(CC) --version 2>&1 | head -n 1 | grep clang),)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) CLANG_FLAGS += -no-integrated-as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) CFLAGS += -O2 -Wall -g -I./ -I../../../../usr/include/ -L$(OUTPUT) -Wl,-rpath=./ \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) $(CLANG_FLAGS)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) LDLIBS += -lpthread
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) # Own dependencies because we only want to build against 1st prerequisite, but
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) # still track changes to header files and depend on shared object.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) OVERRIDE_TARGETS = 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) TEST_GEN_PROGS = basic_test basic_percpu_ops_test param_test \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) param_test_benchmark param_test_compare_twice
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) TEST_GEN_PROGS_EXTENDED = librseq.so
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) TEST_PROGS = run_param_test.sh
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) TEST_FILES := settings
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) include ../lib.mk
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) $(OUTPUT)/librseq.so: rseq.c rseq.h rseq-*.h
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) $(CC) $(CFLAGS) -shared -fPIC $< $(LDLIBS) -o $@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) $(OUTPUT)/%: %.c $(TEST_GEN_PROGS_EXTENDED) rseq.h rseq-*.h
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) $(CC) $(CFLAGS) $< $(LDLIBS) -lrseq -o $@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) $(OUTPUT)/param_test_benchmark: param_test.c $(TEST_GEN_PROGS_EXTENDED) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) rseq.h rseq-*.h
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) $(CC) $(CFLAGS) -DBENCHMARK $< $(LDLIBS) -lrseq -o $@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) $(OUTPUT)/param_test_compare_twice: param_test.c $(TEST_GEN_PROGS_EXTENDED) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) rseq.h rseq-*.h
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) $(CC) $(CFLAGS) -DRSEQ_COMPARE_TWICE $< $(LDLIBS) -lrseq -o $@