1 # SPDX-License-Identifier: GPL-2.0
3 CFLAGS
+= -I..
/shared
-I.
-I..
/..
/include -I..
/..
/..
/lib
-g
-Og
-Wall \
4 -D_LGPL_SOURCE
-fsanitize
=address
-fsanitize
=undefined
5 LDFLAGS
+= -fsanitize
=address
-fsanitize
=undefined
6 LDLIBS
+= -lpthread
-lurcu
7 LIBS
:= slab.o find_bit.o bitmap.o hweight.o vsprintf.o
8 SHARED_OFILES
= xarray-shared.o radix-tree.o idr.o linux.o
$(LIBS
)
10 SHARED_DEPS
= Makefile ..
/shared
/shared.mk ..
/shared
/*.h generated
/map-shift.h \
11 generated
/bit-length.h generated
/autoconf.h \
12 ..
/..
/include/linux
/*.h \
13 ..
/..
/include/asm
/*.h \
14 ..
/..
/..
/include/linux
/xarray.h \
15 ..
/..
/..
/include/linux
/maple_tree.h \
16 ..
/..
/..
/include/linux
/radix-tree.h \
17 ..
/..
/..
/lib
/radix-tree.h \
18 ..
/..
/..
/include/linux
/idr.h \
19 ..
/..
/..
/lib
/maple_tree.c \
20 ..
/..
/..
/lib
/test_maple_tree.c
33 LONG_BIT
:= $(shell getconf LONG_BIT
)
37 $(CC
) -c
$(CFLAGS
) $< -o
$@
41 $(SHARED_OFILES
): $(SHARED_DEPS
)
43 radix-tree.c
: ..
/..
/..
/lib
/radix-tree.c
44 sed
-e
's/^static //' -e
's/__always_inline //' -e
's/inline //' < $< > $@
46 idr.c
: ..
/..
/..
/lib
/idr.c
47 sed
-e
's/^static //' -e
's/__always_inline //' -e
's/inline //' < $< > $@
49 xarray-shared.o
: ..
/shared
/xarray-shared.c ..
/..
/..
/lib
/xarray.c \
50 ..
/..
/..
/lib
/test_xarray.c
52 maple-shared.o
: ..
/shared
/maple-shared.c ..
/..
/..
/lib
/maple_tree.c \
53 ..
/..
/..
/lib
/test_maple_tree.c
57 cp ..
/shared
/autoconf.h generated
/autoconf.h
59 generated
/map-shift.h
:
61 @if
! grep
-qws
$(SHIFT
) generated
/map-shift.h
; then \
62 echo
"Generating $@"; \
63 echo
"#define XA_CHUNK_SHIFT $(SHIFT)" > \
64 generated
/map-shift.h
; \
67 generated
/bit-length.h
: FORCE
69 @if
! grep
-qws CONFIG_
$(LONG_BIT
)BIT generated
/bit-length.h
; then \
70 echo
"Generating $@"; \
71 echo
"#define CONFIG_$(LONG_BIT)BIT 1" > $@
; \
72 echo
"#define CONFIG_PHYS_ADDR_T_$(LONG_BIT)BIT 1" >> $@
; \