1include Makefile.common 2 3RPMBUILD=$(shell `which rpmbuild >&/dev/null` && echo "rpmbuild" || echo "rpm") 4 5INSTALL=install 6 7default: all 8 9all: 10 @$(MAKE) -C src 11 @$(MAKE) -C test 12 @$(MAKE) -C examples 13 14library: 15 @$(MAKE) -C src 16 17.PHONY: all install default clean test library 18.PHONY: FORCE cscope 19 20runtests: all 21 @$(MAKE) -C test runtests 22runtests-loop: all 23 @$(MAKE) -C test runtests-loop 24runtests-parallel: all 25 @$(MAKE) -C test runtests-parallel 26 27config-host.mak: configure 28 +@if [ ! -e "$@" ]; then \ 29 echo "Running configure ..."; \ 30 ./configure; \ 31 else \ 32 echo "$@ is out-of-date, running configure"; \ 33 sed -n "/.*Configured with/s/[^:]*: //p" "$@" | sh; \ 34 fi 35 36ifneq ($(MAKECMDGOALS),clean) 37include config-host.mak 38endif 39 40%.pc: %.pc.in config-host.mak $(SPECFILE) 41 sed -e "s%@prefix@%$(prefix)%g" \ 42 -e "s%@libdir@%$(libdir)%g" \ 43 -e "s%@includedir@%$(includedir)%g" \ 44 -e "s%@NAME@%$(NAME)%g" \ 45 -e "s%@VERSION@%$(VERSION)%g" \ 46 $< >$@ 47 48install: $(NAME).pc $(NAME)-ffi.pc 49 @$(MAKE) -C src install prefix=$(DESTDIR)$(prefix) \ 50 includedir=$(DESTDIR)$(includedir) \ 51 libdir=$(DESTDIR)$(libdir) \ 52 libdevdir=$(DESTDIR)$(libdevdir) \ 53 relativelibdir=$(relativelibdir) 54 $(INSTALL) -D -m 644 $(NAME).pc $(DESTDIR)$(libdevdir)/pkgconfig/$(NAME).pc 55 $(INSTALL) -D -m 644 $(NAME)-ffi.pc $(DESTDIR)$(libdevdir)/pkgconfig/$(NAME)-ffi.pc 56 $(INSTALL) -m 755 -d $(DESTDIR)$(mandir)/man2 57 $(INSTALL) -m 644 man/*.2 $(DESTDIR)$(mandir)/man2 58 $(INSTALL) -m 755 -d $(DESTDIR)$(mandir)/man3 59 $(INSTALL) -m 644 man/*.3 $(DESTDIR)$(mandir)/man3 60 $(INSTALL) -m 755 -d $(DESTDIR)$(mandir)/man7 61 $(INSTALL) -m 644 man/*.7 $(DESTDIR)$(mandir)/man7 62 63uninstall: 64 @$(MAKE) -C src uninstall prefix=$(DESTDIR)$(prefix) datadir=$(DESTDIR)$(datadir) 65 @rm -f $(DESTDIR)$(libdevdir)/pkgconfig/$(NAME).pc 66 @rm -f $(DESTDIR)$(libdevdir)/pkgconfig/$(NAME)-ffi.pc 67 @rm -rf $(DESTDIR)$(mandir)/man2/io_uring*.2 68 @rm -rf $(DESTDIR)$(mandir)/man3/io_uring*.3 69 @rm -rf $(DESTDIR)$(mandir)/man7/io_uring*.7 70 71install-tests: 72 @$(MAKE) -C test install prefix=$(DESTDIR)$(prefix) datadir=$(DESTDIR)$(datadir) 73 74uninstall-tests: 75 @$(MAKE) -C test uninstall prefix=$(DESTDIR)$(prefix) datadir=$(DESTDIR)$(datadir) 76 77clean: 78 @rm -f config-host.mak config-host.h cscope.out $(NAME).pc $(NAME)-ffi.pc test/*.dmesg 79 @$(MAKE) -C src clean 80 @$(MAKE) -C test clean 81 @$(MAKE) -C examples clean 82 83cscope: 84 @cscope -b -R 85 86tag-archive: 87 @git tag $(TAG) 88 89create-archive: 90 @git archive --prefix=$(NAME)-$(VERSION)/ -o $(NAME)-$(VERSION).tar.gz $(TAG) 91 @echo "The final archive is ./$(NAME)-$(VERSION).tar.gz." 92 93archive: clean tag-archive create-archive 94 95srpm: create-archive 96 $(RPMBUILD) --define "_sourcedir `pwd`" --define "_srcrpmdir `pwd`" --nodeps -bs $(SPECFILE) 97