[build] provision for custom versioning
[platform/upstream/multipath-tools.git] / Makefile
1 # Makefile
2 #
3 # Copyright (C) 2003 Christophe Varoqui, <christophe.varoqui@free.fr>
4
5 BUILD = glibc
6
7 #
8 # Try to supply the linux kernel headers.
9 #
10 ifeq    ($(KRNLSRC),)
11 KRNLLIB = /lib/modules/$(shell uname -r)
12 ifeq    ($(shell test -r $(KRNLLIB)/source && echo 1),1)
13 KRNLSRC = $(KRNLLIB)/source
14 KRNLOBJ = $(KRNLLIB)/build
15 else
16 KRNLSRC = $(KRNLLIB)/build
17 KRNLOBJ = $(KRNLLIB)/build
18 endif
19 endif
20 export KRNLSRC
21 export KRNLOBJ
22
23 BUILDDIRS = $(shell find . -mindepth 2 -name Makefile -exec dirname {} \; | grep -v ^lib)
24
25 ifeq   ($(MULTIPATH_VERSION),)
26 VERSION = $(shell basename ${PWD} | cut -d'-' -f3)
27 else
28 VERSION = $(MULTIPATH_VERSION)
29 endif
30
31 all: recurse
32
33 recurse:
34         @for dir in $(BUILDDIRS); do \
35         $(MAKE) -C $$dir BUILD=$(BUILD) VERSION=$(VERSION) \
36                 KRNLSRC=$(KRNLSRC) KRNLOBJ=$(KRNLOBJ) || exit $?; \
37         done
38
39 recurse_clean:
40         @for dir in $(BUILDDIRS); do \
41         $(MAKE) -C $$dir clean || exit $?; \
42         done
43
44 recurse_install:
45         @for dir in $(BUILDDIRS); do \
46         $(MAKE) -C $$dir install || exit $?; \
47         done
48
49 recurse_uninstall:
50         @for dir in $(BUILDDIRS); do \
51         $(MAKE) -C $$dir uninstall || exit $?; \
52         done
53
54 clean:  recurse_clean
55         rm -f multipath-tools.spec
56         rm -rf rpms
57
58 install:        recurse_install
59
60 uninstall:      recurse_uninstall
61
62 release:
63         sed -e "s/__VERSION__/${VERSION}/" \
64         multipath-tools.spec.in > multipath-tools.spec
65
66 rpm: release
67         rpmbuild -bb multipath-tools.spec