File: configure

package info (click to toggle)
spnavcfg 1.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 272 kB
  • sloc: cpp: 666; sh: 126; ansic: 96; makefile: 64
file content (158 lines) | stat: -rwxr-xr-x 3,630 bytes parent folder | download
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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
#!/bin/sh

echo 'configuring spnavcfg...'

PREFIX=/usr/local
OPT=yes
DBG=yes
X11=yes
qtmoc=moc
qtuic=uic
qtrcc=rcc
qtver=
qttooldir=

for arg; do
	case "$arg" in
	--prefix=*)
		value=`echo $arg | sed 's/--prefix=//'`
		PREFIX=${value:-$prefix}
		;;
	
	--enable-opt)
		OPT=yes;;
	--disable-opt)
		OPT=no;;

	--enable-debug)
		DBG=yes;;
	--disable-debug)
		DBG=no;;

	--qt5)
		qtver=5;;
	--qt6)
		qtver=6;;
	--qt-tooldir=*)
		qttooldir=`echo $arg | sed 's/--qt-tooldir=//; s/\/$//'`;;

	--help)
		echo 'usage: ./configure [options]'
		echo 'options:'
		echo '  --prefix=<path>: installation path (default: /usr/local)'
		echo '  --enable-opt: enable speed optimizations (default)'
		echo '  --disable-opt: disable speed optimizations'
		echo '  --enable-debug: include debugging symbols (default)'
		echo '  --disable-debug: do not include debugging symbols'
		echo '  --qt5: use Qt 5.x'
		echo '  --qt6: use Qt 6.x'
		echo '  --qt-tooldir=<path>: location of moc, uic, and rcc, if not in PATH'
		echo 'all invalid options are silently ignored'
		exit 0
		;;
	esac
done

check_moc_version()
{
	if [ -n "$qttooldir" ]; then
		qtmoc=$qttooldir/moc
		qtuic=$qttooldir/uic
		qtrcc=$qttooldir/rcc
	fi
	mocver=`$qtmoc --version 2>/dev/null | sed 's/moc //; s/\..*//'`
}

# if qt version was not specified, try to auto-detect it
# if the tool location was specified, look for moc and use its version
if [ -z "$qtver" -a -n "$qttooldir" ]; then
	check_moc_version
	if [ -n "$mocver" ]; then
		qtver=$mocver
	fi
fi
#if we still don't have a qt version ...
if [ -z "$qtver" ]; then
	# if Qt6 is installed, default to that
	if pkg-config --exists Qt6Widgets; then
		qtver=6
	else
		qtver=5
	fi
fi

# check moc presence and version
check_moc_version
if [ $? != 0 -o "$mocver" != "$qtver" ]; then
	# moc not found, if tooldir was specified, panic
	if [ -n "$qttooldir" ]; then
		echo "can't find moc in the specified Qt tooldir: $qttooldir" >&2
		exit 1
	fi

	qtsearchpaths='/usr/lib64 /usr/lib /usr/libexec \
		/usr/local/lib64 /usr/local/lib /usr/local/libexec'

	# look for moc in a few common locations
	for i in $qtsearchpaths; do
		mocpath=`find $i/qt$qtver -name moc 2>/dev/null | head -1`
		[ -n "$mocpath" ] && break
	done
	if [ -z "$mocpath" ]; then
		echo "failed to find Qt tools (moc,uic,rcc), use --qt-tooldir=<path> to specify their location" >&2
		exit 1
	fi

	qttooldir=`dirname $mocpath`
	check_moc_version
fi
if [ "$mocver" != "$qtver" ]; then
	echo "Using Qt $qtver, but found moc from Qt $mocver." >&2
	echo "Use --qt-tooldir=<path> to specify the location of the Qt $qtver tools (moc,uic,rcc)" >&2
	exit 1
fi

if [ "$qtver" = 5 ]; then
	cstd=c++11
else
	cstd=c++17
fi


echo "  prefix: $PREFIX"
echo "  optimize for speed: $OPT"
echo "  include debugging symbols: $DBG"
echo "  using Qt $qtver"
[ -n "$qttooldir" ] && echo "  Qt tool path: $qttooldir"
echo

# create Makefile
echo 'creating Makefile ...'
echo "PREFIX = $PREFIX" >Makefile

if [ "$DBG" = 'yes' ]; then
	echo 'dbg = -g' >>Makefile
fi

if [ "$OPT" = 'yes' ]; then
	echo 'opt = -O3' >>Makefile
fi

echo "qtmoc = $qtmoc" >>Makefile
echo "qtuic = $qtuic" >>Makefile
echo "qtrcc = $qtrcc" >>Makefile
echo "cflags_qt = -std=${cstd} `pkg-config --cflags Qt${qtver}Core Qt${qtver}Gui Qt${qtver}Widgets`" >>Makefile
echo "libs_qt = `pkg-config --libs Qt${qtver}Core Qt${qtver}Gui Qt${qtver}Widgets`" >>Makefile

if [ -n "$CFLAGS" ]; then
	echo "add_cflags = $CFLAGS" >>Makefile
fi
if [ -n "$LDFLAGS" ]; then
	echo "add_ldflags = $LDFLAGS" >>Makefile
fi

cat "Makefile.in" >>Makefile

echo ''
echo 'Done. You can now type make (or gmake) to compile spnavcfg.'
echo ''