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