Make xseg request state volatile
[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 export TOPDIR=$(shell dirname $(CURDIR))
52 ifeq (,$(VERSION))
53 export VERSION=$(shell cat $(TOPDIR)/version)
54 endif
55
56 ifeq (,$(DESTDIR))
57 export DESTDIR=/
58 endif
59
60 ifeq (,$(KVER))
61 export KVER=$(shell uname -r)
62 endif
63
64
65 bindir=/usr/bin/
66 libdir=/usr/lib/
67 pythondir=/usr/lib/python2.7/
68 moduledir=/lib/modules/$(KVER)/extra/
69 srcdir=/usr/src/archipelago-modules-dkms-$(VERSION)/xseg/
70 ganetidir=/usr/share/ganeti/extstorage/vlmc/
71
72 INC=-I$(BASE)
73 INC+=-I$(BASE)/peers/$(TARGET)
74 INC+=-I$(BASE)/sys/$(TARGET)
75 INC+=-I$(BASE)/drivers/$(TARGET)
76 export INC
77
78 export LIB=$(BASE)/lib/$(TARGET)
79 export CFLAGS=-Wall $(COPTS) $(CSTD)
80
81 #ifeq (,$(XSEG_HOME))
82 #export XSEG_HOME=$(shell ${XSEG_HOME})
83 #endif
84
85 ifeq (,$(XSEG_HOME))
86 export XSEG_HOME=$(CURDIR)
87 endif
88
89 CONFIG=./config.mk
90
91 #default:
92
93 #.PHONY: clean-config
94
95 #clean: clean-config
96
97 #clean-config:
98 #       rm -f $(CONFIG)
99
100 ifndef BASE
101 exists=$(shell [ -f "$(CONFIG)" ] && echo exists)
102 ifeq (exists,$(exists))
103 include $(CONFIG)
104 else
105 $(shell $(XSEG_HOME)/envsetup show | sed -e 's/"//g' > "$(CONFIG)")
106 include $(CONFIG)
107 endif
108
109 ifeq (,$(XSEG_DOMAIN_TARGETS))
110 export XSEG_DOMAIN_TARGETS=$(shell $(XSEG_HOME)/tools/xseg-domain-targets | sed -e 's/^[^=]*=//;s/"//g')
111 endif
112 export BASE=$(XSEG_HOME)
113 endif