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
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
|
#!/bin/sh
#
# To run once built.
#
# Xnest :1 -ac
# export LD_LIBRARY_PATH=/tmp/mb/lib
# export PATH="/tmp/mb/bin:$PATH"
# export DISPLAY=:1
# matchbox-session &
#
# ( Substitute /tmp/mb for your DEST var - see below )
#
# TODO
# add +cvs20040129 etc to ipkg VERSION from CVS builds
#
######################### Configuration ###################################
## install destination
DEST="/tmp/mb"
## Set to 'sudo' if you need root to make install
SUDO=
## Optional compile time deps and features
WANT_DEBUG="n"
WANT_PNG="y"
WANT_JPEG="y"
WANT_XSETTINGS="n"
WANT_XFT="y"
WANT_STARTUP_NOTIFICATION="n"
WANT_EXPAT="n"
WANT_DNOTIFY="n"
WANT_PANGO="n"
WANT_GCONF="n"
WANT_COMPOSITE="n"
WANT_NLS="y"
WANT_MSG_WINS="n"
WANT_PDA_FOLDERS="n"
WANT_PDA_ICONS="n"
## build type - can be 'local', 'svn' or 'release'
# 'local' assumes you have downloaded the svn trunk and it's in the current dir
BUILD="local"
## do you want ipkgs built ?
BUILD_IPKS="n"
## Names of bits to build
## Only change versions for noncvs build, set names to "" to avoid building
MBLIB="libmatchbox"
MBLIB_V="1.6"
MBCMN="matchbox-common"
MBCMN_V="0.9"
MBCMN_MV=".1"
MBWM="matchbox-window-manager"
MBWM_V="0.9"
MBWM_MV=".3"
MBPANEL="matchbox-panel"
MBPANEL_V="0.9"
MBPANEL_MV=".1"
MBDSKTP="matchbox-desktop"
MBDSKTP_V="0.9"
MBDSKTP_MV=".1"
SRC_URL='http://projects.o-hand.com/matchbox/sources/'
##############################################################################
SEP="-"
if [ "$1" = '-h' ]; then
echo "See source for usage instructions."
exit 0
fi
if [ -r matchbox-autobuild.config ]
then
echo
echo "** using matchbox-autobuild.config **"
echo
cat matchbox-autobuild.config
echo
echo "*************************************"
echo
source ./matchbox-autobuild.config
fi
## IF we want ipkgs, check autoipkg is in PATH
if [ $BUILD_IPKS = 'y' ]; then
which autoipkg > /dev/null || ( echo "autoipkg script not found in PATH"; exit );
fi
## XXX Check autotool versions
# for gentoo ?
export WANT_AUTOCONF=2.5
export WANT_AUTOMAKE=1.9
## translate options into ipk deps and configure switches
PNG_CONF_ARG=
PNG_IPK_DEPS=
if [ "$WANT_PNG" != 'y' ]; then
PNG_CONF_ARG="--disable-png"
PNG_IPK_DEPS="libpng12,"
fi
XFT_CONF_ARG=
XFT_IPK_DEPS=
if [ "$WANT_XFT" != 'y' ]; then
XFT_CONF_ARG="--disable-xft"
XFT_IPK_DEPS="libxft2,"
fi
PANGO_CONF_ARG=
PANGO_IPK_DEPS=
if [ "$WANT_PANGO" != 'n' ]; then
PANGO_CONF_ARG="--enable-pango"
PANGO_IPK_DEPS=""
fi
GCONF_CONF_ARG=
GCONF_IPK_DEPS=
if [ "$WANT_GCONF" != 'n' ]; then
GCONF_CONF_ARG="--enable-gconf"
GCONF_IPK_DEPS=""
fi
DEBUG_CONF_ARG=
if [ "$WANT_DEBUG" != 'n' ]; then
DEBUG_CONF_ARG="--enable-debug"
fi
JPEG_CONF_ARG=
JPEG_IPK_DEPS=
if [ "$WANT_JPEG" != 'n' ]; then
JPEG_CONF_ARG="--enable-jpeg"
JPEG_IPK_DEPS="libjpeg62,"
fi
XSET_CONF_ARG=
XSET_IPK_DEPS=
if [ "$WANT_XSETTINGS" != 'n' ]; then
XSET_CONF_ARG="--enable-xsettings"
XSET_IPK_DEPS="libxsettings-client0,"
fi
SN_CONF_ARG=
SN_IPK_DEPS=
if [ "$WANT_STARTUP_NOTIFICATION" != 'n' ]; then
SN_CONF_ARG="--enable-startup-notification"
SN_IPK_DEPS="startup-notification,"
fi
EXPAT_CONF_ARG=
EXPAT_IPK_DEPS=
if [ "$WANT_EXPAT" != 'n' ]; then
EXPAT_CONF_ARG="--enable-expat"
EXPAT_IPK_DEPS="libexpat1,"
fi
COMP_CONF_ARG=
COMP_IPK_DEPS=
if [ "$WANT_COMPOSITE" != 'n' ]; then
COMP_CONF_ARG="--enable-composite"
COMP_IPK_DEPS="libxcomposite1, libxfixes0, libxdamage0,"
fi
NLS_CONF_ARG=
if [ "$WANT_NLS" != 'n' ]; then
NLS_CONF_ARG="--enable-nls"
fi
DNOTIFY_CONF_ARG=
if [ "$WANT_DNOTIFY" != 'n' ]; then
DNOTIFY_CONF_ARG="--enable-dnotify"
fi
MSG_CONF_ARG=
if [ "$WANT_MSG_WINS" != 'n' ]; then
MSG_CONF_ARG="--enable-message-wins"
fi
FOLDERS_CONF_ARG=
if [ "$WANT_PDA_FOLDERS" != 'n' ]; then
FOLDERS_CONF_ARG="--enable-pda-folders"
fi
ICONS_CONF_ARG=
if [ "$WANT_PDA_ICONS" != 'n' ]; then
ICONS_CONF_ARG="--enable-small-icons"
fi
SRC_PREFIX=
if ([ "$BUILD" = "svn" ]||[ "$BUILD" = "local" ]); then
if [ "$BUILD" = "svn" ]; then
echo "Getting matchbox source via SVN..."
echo
svn co http://svn.o-hand.com/repos/matchbox/trunk
SRC_PREFIX="./trunk/"
fi
# dont need versions..
MBLIB_V=""
MBLIB_MV=""
MBCMN_V=""
MBCMN_MV=""
MBWM_V=""
MBWM_MV=""
MBPANEL_V=""
MBPANEL_MV=""
MBDSKTP_V=""
MBDSKTP_MV=""
SEP=""
elif [ "$BUILD" = "release" ]; then
# download releases
wget "${SRC_URL}${MBLIB}/${MBLIB_V}/${MBLIB}-${MBLIB_V}.tar.gz" || exit
tar xvzf ${MBLIB}-${MBLIB_V}.tar.gz
wget "${SRC_URL}${MBPANEL}/${MBPANEL_V}/${MBPANEL}-${MBPANEL_V}${MBPANEL_MV}.tar.gz" || exit
tar xvzf ${MBPANEL}-${MBPANEL_V}${MBPANEL_MV}.tar.gz
wget "${SRC_URL}${MBWM}/${MBWM_V}/${MBWM}-${MBWM_V}${MBWM_MV}.tar.gz" || exit
tar xvzf ${MBWM}-${MBWM_V}${MBWM_V}.tar.gz
wget "${SRC_URL}${MBCMN}/${MBCMN_V}/${MBCMN}-${MBCMN_V}${MBCMN_MV}.tar.gz" || exit
tar xvzf ${MBCMN}-${MBCMN_V}${MBCMN_MV}.tar.gz
wget "${SRC_URL}${MBDSKTP}/${MBDSKTP_V}/${MBDSKTP}-${MBDSKTP_V}${MBDSKTP_MV}.tar.gz" || exit
tar xvzf ${MBDSKTP}-${MBDSKTP_V}${MBDSKTP_MV}.tar.gz
SRC_PREFIX=
else
echo "Unrecognised build option: \"$BUILD\""
exit 1
fi
# XXX download xsettings
#mv apps/matchbox .
#rm -fr apps
build_source()
{
echo "Now building \"$1\""
sdir=$1
extra=$2
ipk_raw=$3
## strip the trailing ','
if [ -z "$ipk_raw" ]; then
ipk_deps=""
else
ipk_deps=${ipk_raw:0:(${#ipk_raw})-1}
echo "ipkg deps are $ipk_deps"
fi
if [ ! -x ${sdir} ]; then
echo "Unable to cd to ${sdir}"
exit
fi
pushd $sdir
if [ "$BUILD" != "release" ]; then
./autogen.sh --prefix=$DEST $2 || exit
else
./configure --prefix=$DEST $2 || exit
fi
make || exit
$SUDO make install || exit
if [ "$BUILD_IPKS" = 'y' ]; then
INTERACTIVE='n' DEPS="${ipk_deps}" MAINTAINER="${EMAIL_ADDRESS}" SOURCE='http://matchbox.handhelds.org' autoipkg || exit
fi
popd
}
export PKG_CONFIG_PATH="${DEST}/lib/pkgconfig:$PKG_CONFIG_PATH"
#
# Lots of env vars are needed here to pass options of to autoipkg
# for created ipkg as well as workround various ipkg problems and
# naming issues :(
# Fortunatly you can ignore most of em if not building ipks
#
# build_source <src location> <configure args> <ipkg deps>
#
# really need to clean this up
#
# messy epoc damn ipkg problems means we need versions as 1:0.8 ...
export EPOCH='1:'
## Matchbox lib ##
if [ ! -z "$MBLIB" ]; then
export PACKAGE="libmb1" # hack for correct ipk name
export CONFIGURE_ARGS="$PNG_CONF_ARG $XFT_CONF_ARG $PANGO_CONF_ARG $JPEG_CONF_ARG $XSET_CONF_ARG $DEBUG_CONF_ARG"
# xxx also need to up version
build_source "${SRC_PREFIX}${MBLIB}${SEP}${MBLIB_V}" \
"$CONFIGURE_ARGS" \
"xlibs,${PNG_IPK_DEPS}${XFT_IPK_DEPS}${PANGO_IPK_DEPS}${JPEG_IPK_DEPS}${XSET_IPK_DEPS}"
unset PACKAGE
unset CONFIGURE_ARGS
fi
### Matchbox Common ###
if [ ! -z "$MBCMN" ]; then
export CONFIGURE_ARGS="$DEBUG_CONF_ARG $FOLDERS_CONF_ARG"
build_source "${SRC_PREFIX}${MBCMN}${SEP}${MBCMN_V}${MBCMN_MV}" \
"$CONFIGURE_ARGS"
unset CONFIGURE_ARGS
fi
### Matchbox-window-manager ###
if [ ! -z "$MBWM" ]; then
export CONFIGURE_ARGS="$DEBUG_CONF_ARG $COMP_CONF_ARG $EXPAT_CONF_ARG $MSG_CONF_ARG $SN_CONF_ARG $GCONF_CONF_ARG"
export PACKAGE="matchbox-wm" # hack for correct ipk name
export POSTINST="postinst"
cat <<STOP > "${SRC_PREFIX}${MBWM}${SEP}${MBWM_V}${MBWM_MV}/postinst"
update-alternatives --install /usr/bin/x-window-manager x-window-manager /usr/bin/matchbox-session 10010
STOP
chmod a+x ."${SRC_PREFIX}${MBWM}${SEP}${MBWM_V}${MBWM_MV}/postinst"
build_source "${SRC_PREFIX}${MBWM}${SEP}${MBWM_V}${MBWM_MV}" \
"$CONFIGURE_ARGS" \
"xlibs,libmb1,${SN_IPK_DEPS}${EXPAT_IPK_DEPS}${COMP_IPK_DEPS}"
unset CONFIGURE_ARGS
unset PACKAGE
unset POSTINST
fi
## matchbox panel ##
if [ ! -z "$MBPANEL" ]; then
export CONFIGURE_ARGS="$DEBUG_CONF_ARG $NLS_CONF_ARG $ICONS_CONF_ARG $SN_CONF_ARG $DNOTIFY_CONF_ARG"
build_source "${SRC_PREFIX}${MBPANEL}${SEP}${MBPANEL_V}${MBPANEL_MV}" \
"$CONFIGURE_ARGS" \
"xlibs,libmb1,matchbox-common,${SN_IPK_DEPS}"
unset CONFIGURE_ARGS
fi
## matchbox desktop ##
if [ ! -z "$MBDSKTP" ]; then
export CONFIGURE_ARGS="$DEBUG_CONF_ARG $SN_CONF_ARG $DNOTIFY_CONF_ARG"
build_source "${SRC_PREFIX}${MBDSKTP}${SEP}${MBDSKTP_V}${MBDSKTP_MV}" \
"$CONFIGURE_ARGS" \
"xlibs,libmb1,matchbox-common,${SN_IPK_DEPS}"
unset CONFIGURE_ARGS
fi
|