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