^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) # SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) CFLAGS += -O2 -g -std=gnu89 -pthread -Wall -Wextra
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) CFLAGS += -I../../../../usr/include/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) LDFLAGS += -pthread
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) .PHONY: all clean
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) include ../lib.mk
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) # lib.mk TEST_CUSTOM_PROGS var is for custom tests that need special
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) # build rules. lib.mk will run and install them.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) TEST_CUSTOM_PROGS := $(OUTPUT)/sync_test
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) all: $(TEST_CUSTOM_PROGS)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) OBJS = sync_test.o sync.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) TESTS += sync_alloc.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) TESTS += sync_fence.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) TESTS += sync_merge.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) TESTS += sync_wait.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) TESTS += sync_stress_parallelism.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) TESTS += sync_stress_consumer.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) TESTS += sync_stress_merge.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) OBJS := $(patsubst %,$(OUTPUT)/%,$(OBJS))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) TESTS := $(patsubst %,$(OUTPUT)/%,$(TESTS))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) $(TEST_CUSTOM_PROGS): $(TESTS) $(OBJS)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) $(CC) -o $(TEST_CUSTOM_PROGS) $(OBJS) $(TESTS) $(CFLAGS) $(LDFLAGS)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) $(OBJS): $(OUTPUT)/%.o: %.c
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) $(CC) -c $^ -o $@ $(CFLAGS)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) $(TESTS): $(OUTPUT)/%.o: %.c
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) $(CC) -c $^ -o $@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) EXTRA_CLEAN := $(TEST_CUSTOM_PROGS) $(OBJS) $(TESTS)