162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci 362306a36Sopenharmony_ci# Memblock simulator requires AddressSanitizer (libasan) and liburcu development 462306a36Sopenharmony_ci# packages installed 562306a36Sopenharmony_ciCFLAGS += -I. -I../../include -Wall -O2 -fsanitize=address \ 662306a36Sopenharmony_ci -fsanitize=undefined -D CONFIG_PHYS_ADDR_T_64BIT 762306a36Sopenharmony_ciLDFLAGS += -fsanitize=address -fsanitize=undefined 862306a36Sopenharmony_ciTARGETS = main 962306a36Sopenharmony_ciTEST_OFILES = tests/alloc_nid_api.o tests/alloc_helpers_api.o tests/alloc_api.o \ 1062306a36Sopenharmony_ci tests/basic_api.o tests/common.o tests/alloc_exact_nid_api.o 1162306a36Sopenharmony_ciDEP_OFILES = memblock.o lib/slab.o mmzone.o slab.o 1262306a36Sopenharmony_ciOFILES = main.o $(DEP_OFILES) $(TEST_OFILES) 1362306a36Sopenharmony_ciEXTR_SRC = ../../../mm/memblock.c 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ciifeq ($(BUILD), 32) 1662306a36Sopenharmony_ci CFLAGS += -m32 1762306a36Sopenharmony_ci LDFLAGS += -m32 1862306a36Sopenharmony_ciendif 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci# Process user parameters 2162306a36Sopenharmony_ciinclude scripts/Makefile.include 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_cimain: $(OFILES) 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ci$(OFILES): include 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ciinclude: ../../../include/linux/memblock.h ../../include/linux/*.h \ 2862306a36Sopenharmony_ci ../../include/asm/*.h 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_ci @mkdir -p linux 3162306a36Sopenharmony_ci test -L linux/memblock.h || ln -s ../../../../include/linux/memblock.h linux/memblock.h 3262306a36Sopenharmony_ci test -L asm/asm.h || ln -s ../../../arch/x86/include/asm/asm.h asm/asm.h 3362306a36Sopenharmony_ci test -L asm/cmpxchg.h || ln -s ../../../arch/x86/include/asm/cmpxchg.h asm/cmpxchg.h 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_cimemblock.c: $(EXTR_SRC) 3662306a36Sopenharmony_ci test -L memblock.c || ln -s $(EXTR_SRC) memblock.c 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ciclean: 3962306a36Sopenharmony_ci $(RM) $(TARGETS) $(OFILES) linux/memblock.h memblock.c asm/asm.h asm/cmpxchg.h 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_cihelp: 4262306a36Sopenharmony_ci @echo 'Memblock simulator' 4362306a36Sopenharmony_ci @echo '' 4462306a36Sopenharmony_ci @echo 'Available targets:' 4562306a36Sopenharmony_ci @echo ' main - Build the memblock simulator' 4662306a36Sopenharmony_ci @echo ' clean - Remove generated files and symlinks in the directory' 4762306a36Sopenharmony_ci @echo '' 4862306a36Sopenharmony_ci @echo 'Configuration:' 4962306a36Sopenharmony_ci @echo ' make MEMBLOCK_DEBUG=1 - enable memblock_dbg() messages' 5062306a36Sopenharmony_ci @echo ' make NUMA=1 - simulate enabled NUMA' 5162306a36Sopenharmony_ci @echo ' make 32BIT_PHYS_ADDR_T=1 - Use 32 bit physical addresses' 5262306a36Sopenharmony_ci 5362306a36Sopenharmony_civpath %.c ../../lib 5462306a36Sopenharmony_ci 5562306a36Sopenharmony_ci.PHONY: clean include help 56