forked from zerovm/zrt
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile.env
127 lines (107 loc) · 3.64 KB
/
Makefile.env
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
ifdef __ZRT_HOST
ARCH=x86_64
else
ARCH=x86_64-nacl
endif
INSTALL_INCLUDE_DIR=$(ZVM_DESTDIR)$(ZVM_PREFIX)/${ARCH}/include
INSTALL_LIB_DIR=$(ZVM_DESTDIR)$(ZVM_PREFIX)/${ARCH}/lib
ZVM_PREFIX_ABSPATH = $(abspath $(ZVM_PREFIX))
ZRT_MACRO_CFLAG=-D__ZRT__
ZRT_INCLUDE_PATH= -I${ZVM_PREFIX_ABSPATH}/api \
-I${ZRT_ROOT}/lib \
-I${ZRT_ROOT}/lib/zcalls \
-I${ZRT_ROOT}/lib/networking \
-I${ZRT_ROOT}/lib/mapreduce \
-I${ZRT_ROOT}/lib/fs \
-I${ZRT_ROOT}/lib/fs/fuse \
-I${ZRT_ROOT}/lib/fs/unpack \
-I${ZRT_ROOT}/lib/memory \
-I${ZRT_ROOT}/lib/helpers \
-I${ZRT_ROOT}/lib/nvram \
-I${ZRT_ROOT}/lib/nvram/observers \
-I${ZRT_ROOT}/libports \
-I${ZRT_ROOT}/libports/lua-5.2.1/src \
-I${ZRT_ROOT}/libports/sqlite3 \
-I${ZRT_ROOT}/libports/tar-1.11.8/src \
-I${ZVM_PREFIX_ABSPATH}/${ARCH}/include \
-I.
ZRT_LIB_PATH=-L${ZRT_ROOT}/lib
ifdef __ZRT_HOST
CC=gcc
AR=ar
CXX=g++
RANLIB=ranlib
GCOV=gcov
else
CC=$(ZVM_DESTDIR)${ZVM_PREFIX_ABSPATH}/bin/${ARCH}-gcc
AR=$(ZVM_DESTDIR)${ZVM_PREFIX_ABSPATH}/bin/${ARCH}-ar
CXX=$(ZVM_DESTDIR)${ZVM_PREFIX_ABSPATH}/bin/${ARCH}-g++
RANLIB=$(ZVM_DESTDIR)${ZVM_PREFIX_ABSPATH}/bin/${ARCH}-ranlib
GCOV=$(ZVM_DESTDIR)${ZVM_PREFIX_ABSPATH}/bin/${ARCH}-gcov
endif
ALLOC_REPORT_SRC=${ZRT_ROOT}/lib/alloc_report.c
ALLOC_REPORT_OBJ=${patsubst %.c, %.o, ${ALLOC_REPORT_SRC}}
TRACE_OBJ=${ZRT_ROOT}/lib/ptrace.o
GCOV_DATA_TAR=${ZRT_ROOT}/mounts/gcov.gcda.tar
GCOV_HTML_FOLDER=${ZRT_ROOT}/cov_html
GCOV_TEMP_FOLDER=${ZRT_ROOT}/cov_temp
GCOV_FLAGS= -Wdisabled-optimization -O0 --coverage -fprofile-arcs -ftest-coverage
GCOV_LDFLAGS= -fprofile-arcs
LDFLAGS=${ZRT_LIB_PATH}
LDFLAGS+=--sysroot=${ZRT_ROOT} #fake path
LDFLAGS+=${TRACE_OBJ} ${ALLOC_REPORT_OBJ} -lzrt -lfuseglue ${FUSEGLUE_LDFLAGS}
LDFLAGS+=-lpthread -lpth
ifndef __ZRT_HOST
LDFLAGS+= -lcontext
endif
CPPFLAGS=-c -Wall -Wno-long-long -msse4.1 -m64 -g ${ZRT_MACRO_CFLAG}
CPPFLAGS+=${USER_DEFINED_CFLAGS}
CPPFLAGS+=${ZRT_INCLUDE_PATH}
CPPFLAGS+=--sysroot=${ZRT_ROOT} #fake path
ifdef __ZRT_HOST
#__ZRT_HOST must be passed if building static/dynamic library for host
CPPFLAGS+= -D__ZRT_HOST -fPIC
endif
ifdef FUSEGLUE_EXT
export FUSEGLUE_EXT=1
CPPFLAGS+=-DFUSEGLUE_EXT
endif
#Use __NO_MEMORY_FS to disable cpp implementation of memory fs used as
#root and set /dev as root of FS
ifdef __NO_MEMORY_FS
CPPFLAGS+= -D__NO_MEMORY_FS
endif #__NO_MEMORY_FS
CFLAGS+=${CPPFLAGS}
CFLAGS+=${ALLOC_REPORT_CFLAGS}
ALLOC_REPORT_CFLAGS=-DALLOC_REPORT
TRACE_PARSER=${ZRT_ROOT}/tests/trace-parse-hierarchy.py
TRACE_FLAGS=-finstrument-functions -ggdb
ZEROVM=${ZVM_PREFIX_ABSPATH}/bin/zerovm
LCOV_EXIST=$(shell lcov --version 2>/dev/null)
#########################################################################
#Useful scripts can be defined here, like global variables, that
#available to all zrt related makefiles;
#########################################################################
#Parse output from non debug zerovm session; error handling: in case
#if we have in output to many columns - it's probably an error
#occured, then return error code and send 3 lines into output
AWK_GET_ZEROVM_APP_RETURN_CODE=awk '{ \
RESULT="FAIL"; \
if ( NR == 1 && NF > 1) { RETCODE=1; printf "%s %s",RESULT, $$0 } \
if ( (NR == 2 || NR == 3 ) && NF > 1) { RETCODE=1; printf "%s", $$0 } \
else if (NR == 3) { RETCODE=$$1 } \
if (NR == 6) { \
if (RETCODE == 0) { RESULT="PASS" } \
else { RESULT="FAIL" } \
if ($$0 != "ok") { RESULT="FAIL" } \
print RESULT,"zvmstatus=",$$0 \
} \
}'
#parse output from script 'AWK_GET_ZEROVM_APP_RETURN_CODE'
#get error retcode to system
AWK_HANDLE_FAIL_ON_BAD_ERROR_CODE=awk '{\
if ( match($$0, "PASS zvmstatus") == 0 ) {\
exit 1 \
}\
}'
HANDLE_RETCODE= $(AWK_GET_ZEROVM_APP_RETURN_CODE) | $(AWK_HANDLE_FAIL_ON_BAD_ERROR_CODE)