Make install use version supplied by version file
[archipelago] / xseg / base.mk
1 # Copyright 2012 GRNET S.A. All rights reserved.
2 #
3 # Redistribution and use in source and binary forms, with or
4 # without modification, are permitted provided that the following
5 # conditions are met:
6 #
7 #   1. Redistributions of source code must retain the above
8 #      copyright notice, this list of conditions and the following
9 #      disclaimer.
10 #   2. Redistributions in binary form must reproduce the above
11 #      copyright notice, this list of conditions and the following
12 #      disclaimer in the documentation and/or other materials
13 #      provided with the distribution.
14 #
15 # THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
16 # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17 # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
18 # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
19 # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
20 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
21 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
22 # USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
23 # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
25 # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26 # POSSIBILITY OF SUCH DAMAGE.
27 #
28 # The views and conclusions contained in the software and
29 # documentation are those of the authors and should not be
30 # interpreted as representing official policies, either expressed
31 # or implied, of GRNET S.A.
32 #
33
34 # Setup for xseg Makefiles.
35
36 ifndef TARGET
37 TARGET:=$(shell basename $(shell pwd))
38 endif
39
40 export CC=gcc
41 ifndef MOPTS
42 export MOPTS=
43 endif
44 ifndef COPTS
45 export COPTS=-O2 -g -finline-functions $(MOPTS) $(DEBUG)
46 endif
47 ifndef CSTD
48 export CSTD=-std=gnu99 -pedantic
49 endif
50
51 ifeq (,$(VERSION))
52 export TOPDIR=$(shell dirname $(CURDIR))
53 export VERSION=$(shell cat $(TOPDIR)/version)
54 endif
55
56 bindir=/usr/bin/
57 libdir=/usr/lib/
58 pythondir=/usr/lib/python2.7/
59 moduledir=/lib/modules/`uname -r`/extra/
60 srcdir=/usr/src/archipelago-kernel-dkms-$(VERSION)/
61 ganetidir=/usr/share/ganeti/extstorage/vlmc/
62
63 INC=-I$(BASE)
64 INC+=-I$(BASE)/peers/$(TARGET)
65 INC+=-I$(BASE)/sys/$(TARGET)
66 INC+=-I$(BASE)/drivers/$(TARGET)
67 export INC
68
69 export LIB=$(BASE)/lib/$(TARGET)
70 export CFLAGS=-Wall $(COPTS) $(CSTD)
71
72 #ifeq (,$(XSEG_HOME))
73 #export XSEG_HOME=$(shell ${XSEG_HOME})
74 #endif
75
76 ifeq (,$(XSEG_HOME))
77 export XSEG_HOME=$(CURDIR)
78 endif
79
80 CONFIG=./config.mk
81
82 #default:
83
84 #.PHONY: clean-config
85
86 #clean: clean-config
87
88 #clean-config:
89 #       rm -f $(CONFIG)
90
91 ifndef BASE
92 exists=$(shell [ -f "$(CONFIG)" ] && echo exists)
93 ifeq (exists,$(exists))
94 include $(CONFIG)
95 else
96 $(shell $(XSEG_HOME)/envsetup show | sed -e 's/"//g' > "$(CONFIG)")
97 include $(CONFIG)
98 endif
99
100 ifeq (,$(XSEG_DOMAIN_TARGETS))
101 export XSEG_DOMAIN_TARGETS=$(shell $(XSEG_HOME)/tools/xseg-domain-targets | sed -e 's/^[^=]*=//;s/"//g')
102 endif
103 export BASE=$(XSEG_HOME)
104 endif