Makefile: refactor detection and use of tools
[nbdkit-plugin-vddk.git] / Makefile
1 # nbdkit-plugin-vddk
2 # Copyright (C) 2013-2017 Richard W.M. Jones.
3 # All rights reserved.
4 #
5 # Redistribution and use in source and binary forms, with or without
6 # modification, are permitted provided that the following conditions are
7 # met:
8 #
9 # * Redistributions of source code must retain the above copyright
10 # notice, this list of conditions and the following disclaimer.
11 #
12 # * Redistributions in binary form must reproduce the above copyright
13 # notice, this list of conditions and the following disclaimer in the
14 # documentation and/or other materials provided with the distribution.
15 #
16 # * Neither the name of Red Hat nor the names of its contributors may be
17 # used to endorse or promote products derived from this software without
18 # specific prior written permission.
19 #
20 # THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND
21 # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22 # THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
23 # PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR
24 # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
27 # USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
28 # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
29 # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
30 # OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 # SUCH DAMAGE.
32
33 # See README.
34
35 PWD := $(shell pwd)
36 VERSION := $(shell grep ^Version: nbdkit-plugin-vddk.spec | awk '{print $$2}')
37 VDDK_DIR := $(shell grep '^%global vddkdir' nbdkit-plugin-vddk.spec | awk '{print $$3}')
38
39 include Makefile.tools
40
41 all: check-vddk check-source
42         $(RPMBUILD) -ba \
43             --define "_topdir $(PWD)" \
44             --define "_builddir $(PWD)" \
45             --define "_rpmdir $(PWD)" \
46             --define "_sourcedir $(PWD)" \
47             --define "_specdir $(PWD)" \
48             --define "_srcrpmdir $(PWD)" \
49             nbdkit-plugin-vddk.spec
50
51 Makefile.tools:
52         @rm -rf $@ $@-t
53         @if ! rpmbuild --help >/dev/null 2>&1; then \
54             echo -n "‘rpmbuild’ not installed or not working. "; \
55             echo "Install the ‘rpm-build’ package."; \
56             exit 1; \
57         else \
58             echo 'RPMBUILD=rpmbuild' >> $@-t; \
59         fi
60         @if wget --help >/dev/null 2>&1; then \
61             echo 'DOWNLOAD=wget -O -' >> $@-t; \
62         else \
63             echo -n "‘wget’ not installed or not working."; \
64             echo "Install the ‘wget’ package."; \
65             exit 1; \
66         fi
67         @mv $@-t $@
68
69 check-vddk:
70         @if ! [ -d $(VDDK_DIR) ] || ! [ -d $(VDDK_DIR)/include ]; then echo -e "You must download VDDK and edit ‘nbdkit-plugin-vddk.spec’ to point ‘vddkdir’\nto the location where you unpacked VDDK."; exit 1; fi
71
72 check-source: nbdkit-$(VERSION).tar.gz
73
74 nbdkit-$(VERSION).tar.gz:
75         rm -rf $@ $@-t
76         $(DOWNLOAD) http://libguestfs.org/download/nbdkit/$@ > $@-t
77         mv $@-t $@
78
79 clean:
80         rm -f *~
81         rm -f *.src.rpm
82         rm -rf x86_64
83         rm -rf BUILDROOT
84
85 .PHONY: all check-source check-vddk clean