1# © 2022 Qualcomm Innovation Center, Inc. All rights reserved.
2#
3# SPDX-License-Identifier: BSD-3-Clause
4
5CC=clang
6
7INCLUDE=-I../../../interfaces/gpt/include
8INCLUDE+=-I../../../../build/qemu/unittests-qemu/debug/include
9INCLUDE+=-I../../../../build/qemu/unittests-qemu/debug/events/include
10INCLUDE+=-I../../../../build/qemu/unittests-qemu/debug/events/gpt/include
11INCLUDE+=-I../../../../build/qemu/unittests-qemu/debug/objects/include
12INCLUDE+=-I../../../interfaces/cpulocal/include
13INCLUDE+=-I../../../interfaces/log/include
14INCLUDE+=-I../../../interfaces/object/include
15INCLUDE+=-I../../../interfaces/partition/include
16INCLUDE+=-I../../../interfaces/preempt/include
17INCLUDE+=-I../../../interfaces/rcu/include
18INCLUDE+=-I../../../interfaces/trace/include
19INCLUDE+=-I../../../interfaces/util/include
20INCLUDE+=-I../../../misc/log_standard/include
21INCLUDE+=-I../../../arch/armv8/include
22INCLUDE+=-imacros ../../../interfaces/util/include/attributes.h
23INCLUDE+=-imacros ../../../core/spinlock_ticket/include/spinlock_attrs.h
24INCLUDE+=-imacros ../../../core/preempt/include/preempt_attrs.h
25INCLUDE+=-imacros ../../../interfaces/rcu/include/rcu_attrs.h
26
27DEF=-DHYP_STANDALONE_TEST
28DEF+=-DUNIT_TESTS
29
30CFLAGS+=-m64 -mcx16 -std=gnu18 -O1 -g
31CFLAGS+=-Wall -Werror -Wno-gcc-compat -Wno-gnu-alignof-expression
32CFLAGS+=-ffunction-sections -fdata-sections
33CFLAGS+=-fsanitize=address -fno-omit-frame-pointer
34#CFLAGS+=--coverage
35CFLAGS+=$(INCLUDE)
36CFLAGS+=$(DEF)
37
38LDFLAGS+=-Wl,--gc-sections
39
40SRC=../src/gpt.c ../src/gpt_tests.c host_tests.c
41SRC+=../../../core/util/src/bitmap.c
42SRC+=../../../misc/log_standard/src/string_util.c
43SRC+=../../../../build/qemu/unittests-qemu/debug/hyp/core/base/accessors.c
44SRC+=../../../../build/qemu/unittests-qemu/debug/hyp/core/base/hypresult.c
45
46OBJ=$(patsubst %.c,%.o,$(SRC))
47
48TARGET=gpt_tests
49
50%.o: %.c
51	$(CC) $(CFLAGS) -c $< -o $@
52
53$(TARGET): $(OBJ)
54	$(CC) $(CFLAGS) $(LDFLAGS) $(OBJ) -o $@
55
56default: $(TARGET)
57
58clean:
59	rm -f $(TARGET) $(OBJ)
60