forked from namhyung/uftrace
/
configure
executable file
·106 lines (86 loc) · 2.73 KB
/
configure
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
#!/bin/sh
#-*- mode: shell-script; -*-
prefix=/usr/local
usage() {
echo "Usage: $0 [<options>]
--help print this message
--prefix=<DIR> set install root dir as <DIR> (default: /usr/local)
--bindir=<DIR> set executable install dir as <DIR> (default: \${prefix}/bin)
--libdir=<DIR> set library install dir as <DIR> (default: \${prefix}/lib)
--mandir=<DIR> set manual doc install dir as <DIR> (default: \${prefix}/share/man)
--objdir=<DIR> set build dir as <DIR> (default: \${PWD})
"
exit 1
}
while getopts ":ho:-:" opt; do
case "$opt" in
-)
# process --long-options
case "$OPTARG" in
help) usage ;;
*=*) opt=${OPTARG%=*}; val=${OPTARG#*=}
eval "$opt=$val" ;;
*) val="${!OPTIND}"; OPTIND=$((OPTIND + 1));
eval "$OPTARG=$val" ;;
esac
;;
o) output=$OPTARG ;;
*) usage ;;
esac
done
shift $((OPTIND - 1))
for arg in "$@"; do
opt=${arg%=*}
val=${arg#*=}
eval "$opt='$val'"
done
if [ -z "$ARCH" ]; then
uname_M=$(uname -m 2>/dev/null || echo not)
ARCH=$(echo $uname_M | sed -e s/i.86/i386/ -e s/arm.*/arm/ )
if [ "$ARCH" = "x86_64" ] && echo "$CFLAGS" | grep -w m32 ; then
ARCH=i386
fi
fi
bindir=${bindir:-${prefix}/bin}
libdir=${libdir:-${prefix}/lib}
mandir=${mandir:-${prefix}/share/man}
CC=${CC:-${CROSS_COMPILE}gcc}
LD=${LD:-${CROSS_COMPILE}ld}
srcdir=$(readlink -f $(dirname $0))
objdir=${objdir:-${PWD}}
output=${output:-${objdir}/.config}
echo "# this file is generated automatically" > $output
echo override prefix := $prefix >> $output
echo override bindir := $bindir >> $output
echo override libdir := $libdir >> $output
echo override mandir := $mandir >> $output
echo >> $output
echo override ARCH := $ARCH >> $output
echo override CC := $CC >> $output
echo override LD := $LD >> $output
echo override CFLAGS = $CFLAGS >> $output
echo override LDFLAGS = $LDFLAGS >> $output
echo >> $output
echo override srcdir := $srcdir >> $output
echo override objdir := $objdir >> $output
if [ "$srcdir" != "$objdir" ]; then
cat > $objdir/Makefile <<EOF
ARCH := $ARCH
srcdir := $srcdir
objdir := $objdir
export ARCH srcdir objdir
MAKEFLAGS = --no-print-directory
all: prepare
@\$(MAKE) -C \$(srcdir)
config:
@\$(srcdir)/configure \$(MAKEOVERRIDES)
clean:
@rm -rf arch libmcount libtraceevent utils
@rm -f ftrace version.h *.o *.op
prepare:
@mkdir -p arch/\$(ARCH) libmcount libtraceevent utils
test: all
@\$(MAKE) -C \$(srcdir)/tests TESTARG="\$(TESTARG)" test
.PHONY: all config clean test
EOF
fi