blob: 948e004944842b2236072ed0436e627a984eed13 [file] [log] [blame]
Jens Axboef93c84e2019-01-08 06:51:07 -07001NAME=liburing
2SPECFILE=$(NAME).spec
3VERSION=$(shell awk '/Version:/ { print $$2 }' $(SPECFILE))
4TAG = $(NAME)-$(VERSION)
5RPMBUILD=$(shell `which rpmbuild >&/dev/null` && echo "rpmbuild" || echo "rpm")
6
Shenghui Wang6cd873c2019-04-26 11:35:42 +08007INSTALL=install
Jens Axboef93c84e2019-01-08 06:51:07 -07008
9default: all
10
11all:
12 @$(MAKE) -C src
Jens Axboebaa8d242019-01-08 15:48:57 -070013 @$(MAKE) -C test
Jens Axboe49163202019-04-17 17:38:14 +000014 @$(MAKE) -C examples
15
Stefan Metzmacherb57dbc22020-02-06 18:07:56 +010016partcheck: all
17 @echo "make partcheck => TODO add tests with out kernel support"
18
Jackie Liu2e7d7442019-11-20 11:14:22 +080019runtests: all
Jens Axboe49163202019-04-17 17:38:14 +000020 @$(MAKE) -C test runtests
Jens Axboe4fb3c9e2019-10-24 19:19:49 -060021runtests-loop:
22 @$(MAKE) -C test runtests-loop
Jens Axboef93c84e2019-01-08 06:51:07 -070023
Jens Axboef16b83b2019-01-15 11:14:43 -070024config-host.mak: configure
25 @if [ ! -e "$@" ]; then \
26 echo "Running configure ..."; \
27 ./configure; \
28 else \
29 echo "$@ is out-of-date, running configure"; \
30 sed -n "/.*Configured with/s/[^:]*: //p" "$@" | sh; \
31 fi
32
33ifneq ($(MAKECMDGOALS),clean)
34include config-host.mak
35endif
36
Stefan Hajnoczi9f4714c2019-11-05 08:39:16 +010037%.pc: %.pc.in config-host.mak $(SPECFILE)
Stefan Hajnoczi1b049c12019-05-25 09:58:29 +010038 sed -e "s%@prefix@%$(prefix)%g" \
39 -e "s%@libdir@%$(libdir)%g" \
40 -e "s%@includedir@%$(includedir)%g" \
41 -e "s%@NAME@%$(NAME)%g" \
42 -e "s%@VERSION@%$(VERSION)%g" \
43 $< >$@
44
45install: $(NAME).pc
Stefan Metzmacher3e63af42020-02-07 15:42:12 +010046 @$(MAKE) -C src install prefix=$(DESTDIR)$(prefix) \
47 includedir=$(DESTDIR)$(includedir) \
48 libdir=$(DESTDIR)$(libdir) \
49 libdevdir=$(DESTDIR)$(libdevdir) \
50 relativelibdir=$(relativelibdir)
Stefan Metzmacherb57dbc22020-02-06 18:07:56 +010051 $(INSTALL) -D -m 644 $(NAME).pc $(DESTDIR)$(libdevdir)/pkgconfig/$(NAME).pc
Shenghui Wang6cd873c2019-04-26 11:35:42 +080052 $(INSTALL) -m 755 -d $(DESTDIR)$(mandir)/man2
53 $(INSTALL) -m 644 man/*.2 $(DESTDIR)$(mandir)/man2
Jens Axboef93c84e2019-01-08 06:51:07 -070054
Johannes Thumshirn6e3f6f32019-11-28 11:26:06 +010055install-tests:
56 @$(MAKE) -C test install prefix=$(DESTDIR)$(prefix) datadir=$(DESTDIR)$(datadir)
57
Jens Axboef93c84e2019-01-08 06:51:07 -070058clean:
Jens Axboe26ac7322020-06-15 10:49:27 -060059 @rm -f config-host.mak config-host.h cscope.out $(NAME).pc test/*.dmesg
Jens Axboef93c84e2019-01-08 06:51:07 -070060 @$(MAKE) -C src clean
Jens Axboebaa8d242019-01-08 15:48:57 -070061 @$(MAKE) -C test clean
Weiping Zhang2e719822019-05-22 00:50:13 +080062 @$(MAKE) -C examples clean
Jens Axboef93c84e2019-01-08 06:51:07 -070063
Jens Axboeb080d062019-03-05 16:19:59 -070064cscope:
65 @cscope -b -R
66
Jens Axboef93c84e2019-01-08 06:51:07 -070067tag-archive:
68 @git tag $(TAG)
69
70create-archive:
71 @git archive --prefix=$(NAME)-$(VERSION)/ -o $(NAME)-$(VERSION).tar.gz $(TAG)
72 @echo "The final archive is ./$(NAME)-$(VERSION).tar.gz."
73
74archive: clean tag-archive create-archive
75
76srpm: create-archive
77 $(RPMBUILD) --define "_sourcedir `pwd`" --define "_srcrpmdir `pwd`" --nodeps -bs $(SPECFILE)