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