xref: /aosp_15_r20/external/liburing/src/Makefile (revision 25da2bea747f3a93b4c30fd9708b0618ef55a0e6)
1*25da2beaSAndroid Build Coastguard Workerinclude ../Makefile.common
2*25da2beaSAndroid Build Coastguard Worker
3*25da2beaSAndroid Build Coastguard Workerprefix ?= /usr
4*25da2beaSAndroid Build Coastguard Workerincludedir ?= $(prefix)/include
5*25da2beaSAndroid Build Coastguard Workerlibdir ?= $(prefix)/lib
6*25da2beaSAndroid Build Coastguard Workerlibdevdir ?= $(prefix)/lib
7*25da2beaSAndroid Build Coastguard Worker
8*25da2beaSAndroid Build Coastguard WorkerCPPFLAGS ?=
9*25da2beaSAndroid Build Coastguard Workeroverride CPPFLAGS += -D_GNU_SOURCE \
10*25da2beaSAndroid Build Coastguard Worker	-Iinclude/ -include ../config-host.h
11*25da2beaSAndroid Build Coastguard WorkerCFLAGS ?= -g -O2 -Wall -Wextra -fno-stack-protector
12*25da2beaSAndroid Build Coastguard Workeroverride CFLAGS += -Wno-unused-parameter -Wno-sign-compare -DLIBURING_INTERNAL
13*25da2beaSAndroid Build Coastguard WorkerSO_CFLAGS=-fPIC $(CFLAGS)
14*25da2beaSAndroid Build Coastguard WorkerL_CFLAGS=$(CFLAGS)
15*25da2beaSAndroid Build Coastguard WorkerLINK_FLAGS=
16*25da2beaSAndroid Build Coastguard WorkerLINK_FLAGS+=$(LDFLAGS)
17*25da2beaSAndroid Build Coastguard WorkerENABLE_SHARED ?= 1
18*25da2beaSAndroid Build Coastguard Worker
19*25da2beaSAndroid Build Coastguard Workersoname=liburing.so.$(VERSION_MAJOR)
20*25da2beaSAndroid Build Coastguard Workerlibname=liburing.so.$(VERSION)
21*25da2beaSAndroid Build Coastguard Workerall_targets += liburing.a
22*25da2beaSAndroid Build Coastguard Worker
23*25da2beaSAndroid Build Coastguard Workerifeq ($(ENABLE_SHARED),1)
24*25da2beaSAndroid Build Coastguard Workerall_targets += $(libname)
25*25da2beaSAndroid Build Coastguard Workerendif
26*25da2beaSAndroid Build Coastguard Worker
27*25da2beaSAndroid Build Coastguard Workerinclude ../Makefile.quiet
28*25da2beaSAndroid Build Coastguard Worker
29*25da2beaSAndroid Build Coastguard Workerifneq ($(MAKECMDGOALS),clean)
30*25da2beaSAndroid Build Coastguard Workerinclude ../config-host.mak
31*25da2beaSAndroid Build Coastguard Workerendif
32*25da2beaSAndroid Build Coastguard Worker
33*25da2beaSAndroid Build Coastguard Workerall: $(all_targets)
34*25da2beaSAndroid Build Coastguard Worker
35*25da2beaSAndroid Build Coastguard Workerliburing_srcs := setup.c queue.c register.c
36*25da2beaSAndroid Build Coastguard Worker
37*25da2beaSAndroid Build Coastguard Workerifeq ($(CONFIG_NOLIBC),y)
38*25da2beaSAndroid Build Coastguard Worker	liburing_srcs += nolibc.c
39*25da2beaSAndroid Build Coastguard Worker	override CFLAGS += -nostdlib -nodefaultlibs -ffreestanding
40*25da2beaSAndroid Build Coastguard Worker	override CPPFLAGS += -nostdlib -nodefaultlibs -ffreestanding
41*25da2beaSAndroid Build Coastguard Worker	override LINK_FLAGS += -nostdlib -nodefaultlibs
42*25da2beaSAndroid Build Coastguard Workerelse
43*25da2beaSAndroid Build Coastguard Worker	liburing_srcs += syscall.c
44*25da2beaSAndroid Build Coastguard Workerendif
45*25da2beaSAndroid Build Coastguard Worker
46*25da2beaSAndroid Build Coastguard Workeroverride CPPFLAGS += -MT "$@" -MMD -MP -MF "[email protected]"
47*25da2beaSAndroid Build Coastguard Workerliburing_objs := $(patsubst %.c,%.ol,$(liburing_srcs))
48*25da2beaSAndroid Build Coastguard Workerliburing_sobjs := $(patsubst %.c,%.os,$(liburing_srcs))
49*25da2beaSAndroid Build Coastguard Worker
50*25da2beaSAndroid Build Coastguard Worker%.os: %.c
51*25da2beaSAndroid Build Coastguard Worker	$(QUIET_CC)$(CC) $(CPPFLAGS) $(SO_CFLAGS) -c -o $@ $<
52*25da2beaSAndroid Build Coastguard Worker
53*25da2beaSAndroid Build Coastguard Worker%.ol: %.c
54*25da2beaSAndroid Build Coastguard Worker	$(QUIET_CC)$(CC) $(CPPFLAGS) $(L_CFLAGS) -c -o $@ $<
55*25da2beaSAndroid Build Coastguard Worker
56*25da2beaSAndroid Build Coastguard Worker# Include compiler generated dependency files.
57*25da2beaSAndroid Build Coastguard Worker-include $(liburing_objs:%=%.d)
58*25da2beaSAndroid Build Coastguard Worker-include $(liburing_sobjs:%=%.d)
59*25da2beaSAndroid Build Coastguard Worker
60*25da2beaSAndroid Build Coastguard WorkerAR ?= ar
61*25da2beaSAndroid Build Coastguard WorkerRANLIB ?= ranlib
62*25da2beaSAndroid Build Coastguard Workerliburing.a: $(liburing_objs)
63*25da2beaSAndroid Build Coastguard Worker	@rm -f liburing.a
64*25da2beaSAndroid Build Coastguard Worker	$(QUIET_AR)$(AR) r liburing.a $^
65*25da2beaSAndroid Build Coastguard Worker	$(QUIET_RANLIB)$(RANLIB) liburing.a
66*25da2beaSAndroid Build Coastguard Worker
67*25da2beaSAndroid Build Coastguard Worker$(libname): $(liburing_sobjs) liburing.map
68*25da2beaSAndroid Build Coastguard Worker	$(QUIET_CC)$(CC) $(SO_CFLAGS) -shared -Wl,--version-script=liburing.map -Wl,-soname=$(soname) -o $@ $(liburing_sobjs) $(LINK_FLAGS)
69*25da2beaSAndroid Build Coastguard Worker
70*25da2beaSAndroid Build Coastguard Workerinstall: $(all_targets)
71*25da2beaSAndroid Build Coastguard Worker	install -D -m 644 include/liburing/io_uring.h $(includedir)/liburing/io_uring.h
72*25da2beaSAndroid Build Coastguard Worker	install -D -m 644 include/liburing.h $(includedir)/liburing.h
73*25da2beaSAndroid Build Coastguard Worker	install -D -m 644 include/liburing/compat.h $(includedir)/liburing/compat.h
74*25da2beaSAndroid Build Coastguard Worker	install -D -m 644 include/liburing/barrier.h $(includedir)/liburing/barrier.h
75*25da2beaSAndroid Build Coastguard Worker	install -D -m 644 liburing.a $(libdevdir)/liburing.a
76*25da2beaSAndroid Build Coastguard Workerifeq ($(ENABLE_SHARED),1)
77*25da2beaSAndroid Build Coastguard Worker	install -D -m 755 $(libname) $(libdir)/$(libname)
78*25da2beaSAndroid Build Coastguard Worker	ln -sf $(libname) $(libdir)/$(soname)
79*25da2beaSAndroid Build Coastguard Worker	ln -sf $(relativelibdir)$(libname) $(libdevdir)/liburing.so
80*25da2beaSAndroid Build Coastguard Workerendif
81*25da2beaSAndroid Build Coastguard Worker
82*25da2beaSAndroid Build Coastguard Workerclean:
83*25da2beaSAndroid Build Coastguard Worker	@rm -f $(all_targets) $(liburing_objs) $(liburing_sobjs) $(soname).new
84*25da2beaSAndroid Build Coastguard Worker	@rm -f *.so* *.a *.o *.d
85*25da2beaSAndroid Build Coastguard Worker	@rm -f include/liburing/compat.h
86*25da2beaSAndroid Build Coastguard Worker
87*25da2beaSAndroid Build Coastguard Worker	@# When cleaning, we don't include ../config-host.mak,
88*25da2beaSAndroid Build Coastguard Worker	@# so the nolibc objects are always skipped, clean them up!
89*25da2beaSAndroid Build Coastguard Worker	@rm -f nolibc.ol nolibc.os
90