1b2441318SGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0 21366c37eSMatthew Wilcox 3*bde1597dSArnd BergmannCFLAGS += -I. -I../../include -I../../../lib -g -Og -Wall \ 4*bde1597dSArnd Bergmann -D_LGPL_SOURCE -fsanitize=address -fsanitize=undefined 5d1c0d5e3SMatthew WilcoxLDFLAGS += -fsanitize=address -fsanitize=undefined 6284d96a4SMichael EllermanLDLIBS+= -lpthread -lurcu 7e15e06a8SLiam R. HowlettTARGETS = main idr-test multiorder xarray maple 8aa0eab86SKarolina DrobnikCORE_OFILES := xarray.o radix-tree.o idr.o linux.o test.o find_bit.o bitmap.o \ 9e15e06a8SLiam R. Howlett slab.o maple.o 108ac04868SMatthew WilcoxOFILES = main.o $(CORE_OFILES) regression1.o regression2.o regression3.o \ 117e934cf5SMatthew Wilcox (Oracle) regression4.o tag_check.o multiorder.o idr-test.o iteration_check.o \ 127e934cf5SMatthew Wilcox (Oracle) iteration_check_2.o benchmark.o 13cfa40bcfSKonstantin Khlebnikov 14c6ce3e2fSRehas Sachdevaifndef SHIFT 15c6ce3e2fSRehas Sachdeva SHIFT=3 16cfa40bcfSKonstantin Khlebnikovendif 171366c37eSMatthew Wilcox 18c4634b08SRehas Sachdevaifeq ($(BUILD), 32) 19c4634b08SRehas Sachdeva CFLAGS += -m32 20f0f3f2d0SMatthew Wilcox LDFLAGS += -m32 21120b1162SLiam HowlettLONG_BIT := 32 22c4634b08SRehas Sachdevaendif 23c4634b08SRehas Sachdeva 24120b1162SLiam Howlettifndef LONG_BIT 25120b1162SLiam HowlettLONG_BIT := $(shell getconf LONG_BIT) 26120b1162SLiam Howlettendif 27120b1162SLiam Howlett 28120b1162SLiam Howletttargets: generated/map-shift.h generated/bit-length.h $(TARGETS) 291366c37eSMatthew Wilcox 301366c37eSMatthew Wilcoxmain: $(OFILES) 318ac04868SMatthew Wilcox 328ab8ba38SMatthew Wilcoxidr-test.o: ../../../lib/test_ida.c 338ac04868SMatthew Wilcoxidr-test: idr-test.o $(CORE_OFILES) 348ac04868SMatthew Wilcox 35ad3d6c72SMatthew Wilcoxxarray: $(CORE_OFILES) 36ad3d6c72SMatthew Wilcox 37e15e06a8SLiam R. Howlettmaple: $(CORE_OFILES) 38e15e06a8SLiam R. Howlett 398ac04868SMatthew Wilcoxmultiorder: multiorder.o $(CORE_OFILES) 401366c37eSMatthew Wilcox 411366c37eSMatthew Wilcoxclean: 42120b1162SLiam Howlett $(RM) $(TARGETS) *.o radix-tree.c idr.c generated/map-shift.h generated/bit-length.h 431366c37eSMatthew Wilcox 44991af734SMatthew Wilcoxvpath %.c ../../lib 450629573eSMatthew Wilcox 46120b1162SLiam Howlett$(OFILES): Makefile *.h */*.h generated/map-shift.h generated/bit-length.h \ 470629573eSMatthew Wilcox ../../include/linux/*.h \ 4843a30c2aSMatthew Wilcox ../../include/asm/*.h \ 49f8d5d0ccSMatthew Wilcox ../../../include/linux/xarray.h \ 50e15e06a8SLiam R. Howlett ../../../include/linux/maple_tree.h \ 510a835c4fSMatthew Wilcox ../../../include/linux/radix-tree.h \ 52*bde1597dSArnd Bergmann ../../../lib/radix-tree.h \ 530a835c4fSMatthew Wilcox ../../../include/linux/idr.h 541366c37eSMatthew Wilcox 551366c37eSMatthew Wilcoxradix-tree.c: ../../../lib/radix-tree.c 561366c37eSMatthew Wilcox sed -e 's/^static //' -e 's/__always_inline //' -e 's/inline //' < $< > $@ 570a835c4fSMatthew Wilcox 580a835c4fSMatthew Wilcoxidr.c: ../../../lib/idr.c 590a835c4fSMatthew Wilcox sed -e 's/^static //' -e 's/__always_inline //' -e 's/inline //' < $< > $@ 60c6ce3e2fSRehas Sachdeva 61ad3d6c72SMatthew Wilcoxxarray.o: ../../../lib/xarray.c ../../../lib/test_xarray.c 62f8d5d0ccSMatthew Wilcox 63e15e06a8SLiam R. Howlettmaple.o: ../../../lib/maple_tree.c ../../../lib/test_maple_tree.c 64e15e06a8SLiam R. Howlett 658d9fa88eSRoss Zwislergenerated/map-shift.h: 663f1b6f9dSMatthew Wilcox @if ! grep -qws $(SHIFT) generated/map-shift.h; then \ 6702c02bf1SMatthew Wilcox echo "#define XA_CHUNK_SHIFT $(SHIFT)" > \ 68c6ce3e2fSRehas Sachdeva generated/map-shift.h; \ 69c6ce3e2fSRehas Sachdeva fi 70120b1162SLiam Howlett 71120b1162SLiam Howlettgenerated/bit-length.h: FORCE 72120b1162SLiam Howlett @if ! grep -qws CONFIG_$(LONG_BIT)BIT generated/bit-length.h; then \ 73120b1162SLiam Howlett echo "Generating $@"; \ 74120b1162SLiam Howlett echo "#define CONFIG_$(LONG_BIT)BIT 1" > $@; \ 75120b1162SLiam Howlett fi 76120b1162SLiam Howlett 77120b1162SLiam HowlettFORCE: ; 78