4
if [ "$1" = "-h" -o "$1" = "--help" -o "$1" = "-help" ]; then
5
echo "** valid options:"
6
echo " --with_gtk3 : compile with GTK+ 3.x"
7
echo " --use_xim=N : disable the support of XIM"
8
echo " --prefix=path : install prefix (e.g. /usr)"
9
# TODO fix not working option(s)
10
# echo " --use_tray=N : disable system tray"
11
echo " --use_unity=N : disable Ubuntu unity tray"
12
echo " --use_i18n=N : disable i18n"
13
echo " --use_tsin=N : disable Tsin input method"
14
echo " --use_anthy=N : disable Anthy input method"
15
echo " --use_chewing=N : disable Chewing input method"
16
echo " --use_qt3=Y : enable Qt 3.x immodule"
17
echo " --use_qt4=N : disable Qt 4.x immodule"
18
echo " --qt3-moc-path : specify the path of \"moc\" tool for Qt 3.x"
19
echo " --qt4-moc-path : specify the path of \"moc\" tool for Qt 4.x"
20
echo " --qt4-install-to: install path for Qt 4.x input method plugin."
21
echo " --use_gtk=N : disable GTK+ 2.x immodule"
22
echo " --use_gtk3=N : disable GTK+ 3.x immodule"
28
which gmake > /dev/null 2> /dev/null
34
uname | grep FreeBSD > /dev/null 2> /dev/null
39
uname | grep OpenBSD > /dev/null 2> /dev/null
46
uname | grep Darwin > /dev/null 2> /dev/null
50
SO_FLAGS="-dynamic -bundle -undefined suppress -flat_namespace"
61
# Qt3 immodule patch is not included in official Qt3 release.
62
# Some distros do not apply that patch and will always build failure.
63
# We should turn off Qt3 immodule by default.
69
function find_in_path_list_to_variable() {
70
# find_in_path_list_to_variable() will find all elements in the array name stored in $1
71
# if found, set the found path to variable name in $2 and return 0
74
eval "L=(\${"${1}"[@]})"
75
for path in ${L[@]}; do
76
if [ -x "$path" ]; then
85
"/usr/share/qt4/bin/moc" #debian (Thanks to medicalwei)
86
"/usr/lib/qt4/bin/moc" # fedora (Thanks to petercommand)
87
"/usr/bin/moc-qt4" # fedora (Thanks to petercommand)
88
"/usr/local/bin/moc" # slackware # always keep generic name with lower priority
89
"/usr/bin/moc" # arch # always keep generic name with lower priority
93
"/usr/share/qt3/bin/moc" #debian
94
"/opt/qt/bin/moc" # always keep generic name with lower priority
97
if [ "$HIME_USE_XIM" ]; then
103
--with_gtk3) GTK=gtk+-3.0
105
--prefix=*) prefix=`echo $opt | cut -d '=' -f 2`
107
--use_xim=*) use_xim=`echo $opt | cut -d '=' -f 2`
109
--use_tray=*) use_tray=`echo $opt | cut -d '=' -f 2`
111
--use_unity=*) use_unity=`echo $opt | cut -d '=' -f 2`
113
--use_i18n=*) use_i18n=`echo $opt | cut -d '=' -f 2`
115
--use_tsin=*) use_tsin=`echo $opt | cut -d '=' -f 2`
117
--use_anthy=*) use_anthy=`echo $opt | cut -d '=' -f 2`
119
--use_chewing=*) use_chewing=`echo $opt | cut -d '=' -f 2`
121
--use_qt3=*) use_qt3=`echo $opt | cut -d '=' -f 2`
123
--use_qt4=*) use_qt4=`echo $opt | cut -d '=' -f 2`
125
--use_gtk=*) use_gtk=`echo $opt | cut -d '=' -f 2`
127
--use_gtk3=*) use_gtk3=`echo $opt | cut -d '=' -f 2`
129
--qt3-moc-path=*) QT3_MOC_PATH=`echo $opt | cut -d '=' -f 2`
131
--qt4-moc-path=*) QT4_MOC_PATH=`echo $opt | cut -d '=' -f 2`
133
--qt4-install-to=*) QT4_IM_DIR=`echo $opt | cut -d '=' -f 2`
138
echo "prefix: $prefix"
140
if [ -z "$GTK" ]; then
144
echo -n ".... Testing $GTK : "
146
GTKINC=`pkg-config --cflags $GTK`
150
echo -n ".... Testing $GTK : "
152
GTKINC=`pkg-config --cflags $GTK`
155
echo "$GTK or above required --cflags"
161
## problem in MacOS, by candyz
162
if [ $MAC_OS = 1 ]; then
163
GTKINC="-I/sw/include `pkg-config --cflags $GTK`"
166
# TODO: Do we really need these craps?
167
if [ ! -x /bin/bash ]; then
168
for i in /usr/bin/bash /usr/local/bin/bash
170
[ -x $i ] || continue
171
echo "/bin/bash -> $i"
174
sed -e "s~/bin/bash~$i~" < $i > $i.tmp
181
GTKLDFLAGS=`pkg-config --libs $GTK`
184
echo "$GTK or above required --libs"
185
echo "please install rpm/package libgtk+2.0_0-devel"
192
echo -n ".... Testing anthy : "
193
USE_ANTHY=`pkg-config --libs anthy 2> /dev/null`
195
echo not found, anthy module is turned off.
198
if [ "$use_anthy" = "N" ]; then
207
echo -n ".... Testing chewing : "
208
USE_CHEWING=`pkg-config --libs chewing 2> /dev/null`
210
echo not found, chewing module is turned off.
213
if [ $use_chewing = "N" ]; then
222
if [ "$use_unity" = "Y" ]; then
223
echo -n ".... Testing appindicator: "
224
if [ "$GTK" = "gtk+-3.0" ]; then
225
USE_UNITY=`pkg-config --libs appindicator3-0.1 2> /dev/null`
227
USE_UNITY=`pkg-config --libs appindicator-0.1 2> /dev/null`
230
echo not found, unity tray is turned off.
233
if [ "$use_unity" = "N" ]; then
239
UNITY_INC="-I/usr/include/libappindicator-0.1"
240
if [ "$GTK" = "gtk+-3.0" ]; then
241
GTKINC=`pkg-config --cflags $GTK appindicator3-0.1`
242
GTKLDFLAGS=`pkg-config --libs $GTK appindicator3-0.1`
244
GTKINC=`pkg-config --cflags $GTK appindicator-0.1`
245
GTKLDFLAGS=`pkg-config --libs $GTK appindicator-0.1`
252
if [ -d /usr/lib64 -a -d /lib64 ]; then
255
DEBIAN_LD=`ld -v 2>&1 | grep -i debian`
256
UBUNTU_LD=`ld -v 2>&1 | grep -i ubuntu`
257
if [ "$DEBIAN_LD" != "" -o "$UBUNTU_LD" != "" ]; then
263
QT_IM_DIR=/usr/$LIB/qt3/plugins/inputmethods
264
echo -n ".... Testing Qt 3.x : "
265
pkg-config --libs qt-mt > /dev/null 2> /dev/null
270
if [ ! -x "$QT3_MOC_PATH" ]; then
271
find_in_path_list_to_variable "qt3_moc_path_list" "QT3_MOC_PATH"
274
if [ "$QT_IM" = "Y" ]; then
275
if [ "$use_qt3" = "N" ]; then
277
echo "found, but disabled."
279
if [ ! -x "$QT3_MOC_PATH" ]; then
280
echo "not found, cannot find \"moc\" tool for Qt 3.x."
281
echo "Hint: use the --qt3-moc-path option."
287
echo "not found, Qt 3.x immodule is turned off."
293
if [ -z "$QT4_IM_DIR" ]; then QT4_IM_DIR=/usr/$LIB/qt4/plugins/inputmethods; fi
295
echo -n ".... Testing Qt 4.x : "
296
pkg-config --libs QtCore QtGui > /dev/null 2> /dev/null
301
if [ ! -x "${QT4_MOC_PATH}" ]; then
302
find_in_path_list_to_variable "qt4_moc_path_list" "QT4_MOC_PATH"
305
if [ "$QT4_IM" = "Y" ]; then
306
if [ "$use_qt4" = "N" ]; then
308
echo "found, but disabled."
310
if [ ! -x "$QT4_MOC_PATH" ]; then
311
echo "not found, cannot find \"moc\" tool for Qt 4.x."
312
echo "Hint: use the --qt4-moc-path option."
318
echo "not found, Qt 4.x immodule is turned off."
322
# --- MOC INFO START ---
325
echo ========================================
326
if [ "$QT_IM" = "Y" ]; then echo -e "Qt3 moc = ${QT3_MOC_PATH}"; fi
327
if [ "$QT4_IM" = "Y" ]; then echo -e "Qt4 moc = ${QT4_MOC_PATH}"; fi
328
echo ========================================
331
# --- MOC INFO END ---
333
if [ "$GTK"=gtk+-3.0 ]; then
335
echo "testing if you have GTK+ 2.x support"
336
pkg-config --libs gtk+-2.0 > /dev/null 2> /dev/null
341
if [ "$GTK_IM" = "Y" ]; then
342
if [ "$use_gtk" = "N" ]; then
344
echo "-> Yes, but disabled."
346
echo "-> Yes, you have GTK+ 2.x support."
349
echo "-> No, you don't have. It's ok if you don't want GTK+ 2.x immodule."
354
echo "testing if you have GTK+ 3.x support"
355
pkg-config --libs gtk+-3.0 > /dev/null 2> /dev/null
360
if [ "$GTK3_IM" = "Y" ]; then
361
if [ "$use_gtk3" = "N" ]; then
363
echo "-> Yes, but disabled."
365
echo "-> Yes, you have GTK+ 3.x support."
368
echo "-> No, you don't have. It's ok if you don't want GTK+ 3.x immodule."
371
[ -f "data/dayi3.cin" ] && INSTALL_DFSG_INCOMPATIBLE=Y
375
GIT_HASH=`git log 2> /dev/null | head -n 1 | cut -d ' ' -f 2 | head -c 7`
379
datadir=$prefix/share
382
includedir=$prefix/include
384
HIME_VERSION=`cat VERSION.hime`
387
if [ "$USE_ANTHY" = 'Y' ] || [ "$USE_CHEWING" = 'Y' ]; then
391
if [ -z "$CFLAGS" ]; then
396
echo "-> CFLAGS = $CFLAGS."
398
if [ -z "$CC" ]; then
402
if [ -z "$CXX" ]; then
406
echo "CC=$CC" > config.mak
407
echo "CCX=$CC" >> config.mak
408
echo "CXX=$CXX" >> config.mak
409
echo "CCLD=$CC" >> config.mak
410
echo "MAKE=$MAKE" >> config.mak
411
echo "GTKINC=$GTKINC" >> config.mak
412
echo "prefix=$prefix" >> config.mak
413
echo "bindir=\$(DESTDIR)$bindir" >> config.mak
414
echo "mandir=\$(DESTDIR)$mandir" >> config.mak
415
echo "man1dir=\$(mandir)/man1" >> config.mak
416
echo "bindir_r=$bindir" >> config.mak
417
echo "datadir=\$(DESTDIR)$datadir" >> config.mak
418
echo "datadir_r=$datadir" >> config.mak
419
echo "filterdir=\$(datadir_r)/hime/filter" >> config.mak
420
echo "libdir=\$(DESTDIR)$libdir" >> config.mak
421
echo "himelibdir=\$(libdir)/hime" >> config.mak
422
echo "includedir=\$(DESTDIR)$includedir" >> config.mak
423
echo "LDFLAGS=-Wl,--as-needed -lX11 -lm" >> config.mak
424
echo "LDFLAGS+=$GTKLDFLAGS -lX11 -ldl" >> config.mak
425
echo "HIME_VERSION=$HIME_VERSION" >> config.mak
426
echo "HIME_TABLE_DIR=\$(datadir_r)/hime/table" >> config.mak
427
echo "HIME_OGG_DIR=\$(datadir_r)/hime/ogg" >> config.mak
428
echo "HIME_TABLE_DIR_i=\$(datadir)/hime/table" >> config.mak
429
echo "HIME_SCRIPT_DIR=\$(datadir_r)/hime/script" >> config.mak
430
echo "HIME_SCRIPT_DIR_i=\$(datadir)/hime/script" >> config.mak
431
echo "OPTFLAGS=$OPTFLAGS" >> config.mak
432
echo "DOC_DIR=\$(datadir_r)/doc/hime" >> config.mak
433
echo "DOC_DIR_i=\$(datadir)/doc/hime" >> config.mak
434
echo "HIME_ICON_DIR=\$(datadir_r)/pixmaps/hime" >> config.mak
435
echo "SYS_ICON_DIR=\$(datadir_r)/pixmaps" >> config.mak
436
echo "HIME_ICON_DIR_i=\$(datadir)/pixmaps/hime" >> config.mak
437
echo "HIME_BIN_DIR=\$(bindir_r)" >> config.mak
438
echo "FREEBSD=$FREEBSD" >> config.mak
439
echo "QT_IM=$QT_IM" >> config.mak
440
echo "QT_IM_DIR=$QT_IM_DIR" >> config.mak
441
echo "QT4_IM=$QT4_IM" >> config.mak
442
echo "QT4_IM_DIR=$QT4_IM_DIR" >> config.mak
443
echo "QT3_MOC_PATH=$QT3_MOC_PATH" >> config.mak
444
echo "QT4_MOC_PATH=$QT4_MOC_PATH" >> config.mak
445
echo "QT3_QMAKE_PATH=$QT3_MOC_PATH" | sed 's/moc/qmake/' >> config.mak
446
echo "QT4_QMAKE_PATH=$QT4_MOC_PATH" | sed 's/moc/qmake/' >> config.mak
447
echo "GTK_IM=$GTK_IM" >> config.mak
448
echo "GTK3_IM=$GTK3_IM" >> config.mak
449
echo "USE_XIM=$use_xim" >> config.mak
450
echo "LIB=$LIB" >> config.mak
451
echo "MAC_OS=$MAC_OS" >> config.mak
452
echo "SO_FLAGS=$SO_FLAGS" >> config.mak
453
echo "USE_TRAY=$use_tray" >> config.mak
454
echo "USE_I18N=$use_i18n" >> config.mak
455
echo "USE_TSIN=$use_tsin" >> config.mak
456
echo "USE_ANTHY=$USE_ANTHY" >> config.mak
457
echo "USE_CHEWING=$USE_CHEWING" >> config.mak
458
echo "USE_UNITY=$USE_UNITY" >> config.mak
459
echo "INSTALL_DFSG_INCOMPATIBLE=$INSTALL_DFSG_INCOMPATIBLE" >> config.mak
460
echo "GIT_HAVE=$GIT_HAVE" >> config.mak
461
echo "GIT_HASH=$GIT_HASH" >> config.mak
462
echo "BUILD_MODULE=$BUILD_MODULE" >> config.mak
463
echo "hime_ld_run_path=\$(himelibdir)" >> config.mak
464
echo "gcc_ld_run_path=-Wl,-rpath,\$(hime_ld_run_path)" >> config.mak