~ubuntu-branches/ubuntu/trusty/hime/trusty

« back to all changes in this revision

Viewing changes to configure

  • Committer: Package Import Robot
  • Author(s): Yao Wei (魏銘廷)
  • Date: 2012-01-14 00:24:08 UTC
  • Revision ID: package-import@ubuntu.com-20120114002408-e79gagbeg1rt8npv
Tags: upstream-0.9.9
Import upstream version 0.9.9

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/bin/bash
 
2
 
 
3
 
 
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"
 
23
    exit
 
24
fi
 
25
 
 
26
 
 
27
MAKE=make
 
28
which gmake > /dev/null 2> /dev/null
 
29
if [ $? = 0 ]; then
 
30
  MAKE=gmake
 
31
fi
 
32
 
 
33
FREEBSD=0
 
34
uname | grep FreeBSD > /dev/null 2> /dev/null
 
35
if [ $? = 0 ]; then
 
36
  FREEBSD=1
 
37
fi
 
38
 
 
39
uname | grep OpenBSD > /dev/null 2> /dev/null
 
40
if [ $? = 0 ]; then
 
41
  FREEBSD=1
 
42
fi
 
43
 
 
44
SO_FLAGS="-shared"
 
45
MAC_OS=0
 
46
uname | grep Darwin > /dev/null 2> /dev/null
 
47
if [ $? = 0 ]; then
 
48
  FREEBSD=1
 
49
  MAC_OS=1
 
50
  SO_FLAGS="-dynamic -bundle -undefined suppress -flat_namespace"
 
51
fi
 
52
 
 
53
prefix="/usr/local"
 
54
use_xim='Y'
 
55
use_tray='Y'
 
56
use_unity='Y'
 
57
use_i18n='Y'
 
58
use_tsin='Y'
 
59
use_anthy='Y'
 
60
use_chewing='Y'
 
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.
 
64
use_qt3='N'
 
65
use_qt4='Y'
 
66
use_gtk='Y'
 
67
use_gtk3='Y'
 
68
 
 
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
 
72
    # otherwise return 1.
 
73
         
 
74
         eval "L=(\${"${1}"[@]})"
 
75
         for path in ${L[@]}; do
 
76
                  if [ -x "$path" ]; then
 
77
                                eval $2=\"$path\"
 
78
                                return 0
 
79
                  fi
 
80
         done
 
81
         return 1
 
82
}
 
83
 
 
84
qt4_moc_path_list=(
 
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
 
90
)
 
91
 
 
92
qt3_moc_path_list=(
 
93
         "/usr/share/qt3/bin/moc"       #debian
 
94
         "/opt/qt/bin/moc"                      # always keep generic name with lower priority
 
95
)
 
96
 
 
97
if [ "$HIME_USE_XIM" ]; then
 
98
  use_xim=$HIME_USE_XIM
 
99
fi
 
100
 
 
101
for opt do
 
102
  case "$opt" in
 
103
  --with_gtk3) GTK=gtk+-3.0
 
104
  ;;
 
105
  --prefix=*) prefix=`echo $opt | cut -d '=' -f 2`
 
106
  ;;
 
107
  --use_xim=*) use_xim=`echo $opt | cut -d '=' -f 2`
 
108
  ;;
 
109
  --use_tray=*) use_tray=`echo $opt | cut -d '=' -f 2`
 
110
  ;;
 
111
  --use_unity=*) use_unity=`echo $opt | cut -d '=' -f 2`
 
112
  ;;
 
113
  --use_i18n=*) use_i18n=`echo $opt | cut -d '=' -f 2`
 
114
  ;;
 
115
  --use_tsin=*) use_tsin=`echo $opt | cut -d '=' -f 2`
 
116
  ;;
 
117
  --use_anthy=*) use_anthy=`echo $opt | cut -d '=' -f 2`
 
118
  ;;
 
119
  --use_chewing=*) use_chewing=`echo $opt | cut -d '=' -f 2`
 
120
  ;;
 
121
  --use_qt3=*) use_qt3=`echo $opt | cut -d '=' -f 2`
 
122
  ;;
 
123
  --use_qt4=*) use_qt4=`echo $opt | cut -d '=' -f 2`
 
124
  ;;
 
125
  --use_gtk=*) use_gtk=`echo $opt | cut -d '=' -f 2`
 
126
  ;;
 
127
  --use_gtk3=*) use_gtk3=`echo $opt | cut -d '=' -f 2`
 
128
  ;;
 
129
  --qt3-moc-path=*) QT3_MOC_PATH=`echo $opt | cut -d '=' -f 2`
 
130
  ;;
 
131
  --qt4-moc-path=*) QT4_MOC_PATH=`echo $opt | cut -d '=' -f 2`
 
132
  ;;
 
133
  --qt4-install-to=*) QT4_IM_DIR=`echo $opt | cut -d '=' -f 2`
 
134
  ;;
 
135
  esac
 
136
done
 
137
 
 
138
echo "prefix: $prefix"
 
139
 
 
140
if [ -z "$GTK" ]; then
 
141
  GTK=gtk+-2.0
 
142
fi
 
143
 
 
144
echo -n ".... Testing $GTK    : "
 
145
 
 
146
GTKINC=`pkg-config --cflags $GTK`
 
147
 
 
148
if [ $? != 0 ]; then
 
149
  GTK=gtk+-3.0
 
150
  echo -n ".... Testing $GTK : "
 
151
  
 
152
  GTKINC=`pkg-config --cflags $GTK`
 
153
  
 
154
  if [ $? != 0 ]; then
 
155
    echo "$GTK or above required --cflags"
 
156
    rm -f config.mak
 
157
    exit -1;
 
158
  fi
 
159
fi
 
160
 
 
161
## problem in MacOS, by candyz
 
162
if [ $MAC_OS = 1 ]; then
 
163
  GTKINC="-I/sw/include `pkg-config --cflags $GTK`"
 
164
fi
 
165
 
 
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
 
169
  do
 
170
    [ -x $i ] || continue
 
171
    echo "/bin/bash -> $i"
 
172
    for i in scripts/*
 
173
    do
 
174
      sed -e "s~/bin/bash~$i~" < $i > $i.tmp
 
175
      mv $i.tmp $i
 
176
    done
 
177
  done
 
178
fi
 
179
 
 
180
 
 
181
GTKLDFLAGS=`pkg-config --libs $GTK`
 
182
 
 
183
if [ $? != 0 ]; then
 
184
  echo "$GTK or above required --libs"
 
185
  echo "please install rpm/package libgtk+2.0_0-devel"
 
186
  rm -f config.mak
 
187
  exit -1;
 
188
else
 
189
  echo " found."
 
190
fi
 
191
 
 
192
echo -n ".... Testing anthy       :  "
 
193
USE_ANTHY=`pkg-config --libs anthy 2> /dev/null`
 
194
if [ $? != 0 ]; then
 
195
  echo not found, anthy module is turned off.
 
196
  USE_ANTHY=N
 
197
else
 
198
  if [ "$use_anthy" = "N" ]; then
 
199
    USE_ANTHY='N'
 
200
    echo "disabled."
 
201
  else
 
202
    USE_ANTHY='Y'
 
203
    echo "found."
 
204
  fi
 
205
fi
 
206
 
 
207
echo -n ".... Testing chewing     :  "
 
208
USE_CHEWING=`pkg-config --libs chewing 2> /dev/null`
 
209
if [ $? != 0 ]; then
 
210
  echo not found, chewing module is turned off.
 
211
  USE_CHEWING=N
 
212
else
 
213
  if [ $use_chewing = "N" ]; then
 
214
    USE_CHEWING='N'
 
215
    echo "disabled."
 
216
  else
 
217
    USE_CHEWING='Y'
 
218
    echo "found."
 
219
  fi
 
220
fi
 
221
 
 
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`
 
226
  else
 
227
    USE_UNITY=`pkg-config --libs appindicator-0.1 2> /dev/null`
 
228
  fi
 
229
  if [ $? != 0 ]; then
 
230
    echo not found, unity tray is turned off.
 
231
    USE_UNITY=N
 
232
  else
 
233
    if [ "$use_unity" = "N" ]; then
 
234
      USE_UNITY='N'
 
235
      echo "disabled."
 
236
    else
 
237
      USE_UNITY='Y'
 
238
      echo "found."
 
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`
 
243
      else
 
244
        GTKINC=`pkg-config --cflags $GTK appindicator-0.1`
 
245
        GTKLDFLAGS=`pkg-config --libs $GTK appindicator-0.1`
 
246
      fi
 
247
    fi
 
248
  fi
 
249
fi
 
250
 
 
251
LIB='lib'
 
252
if [ -d /usr/lib64 -a -d /lib64 ]; then
 
253
LIB='lib64'
 
254
fi
 
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
 
258
  LIB='lib'
 
259
fi
 
260
 
 
261
# --- QT3 START ---
 
262
QT_IM='N'
 
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
 
266
if [ $? = 0 ]; then
 
267
  QT_IM='Y'
 
268
fi
 
269
 
 
270
if [ ! -x "$QT3_MOC_PATH" ]; then
 
271
         find_in_path_list_to_variable "qt3_moc_path_list" "QT3_MOC_PATH"
 
272
fi
 
273
 
 
274
if [ "$QT_IM" = "Y" ]; then
 
275
    if [ "$use_qt3" = "N" ]; then
 
276
        QT_IM='N'
 
277
        echo "found, but disabled."
 
278
    else
 
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."
 
282
                                exit 1
 
283
                  fi
 
284
        echo "found."
 
285
    fi
 
286
else
 
287
    echo "not found, Qt 3.x immodule is turned off."
 
288
fi
 
289
# --- QT3 END ---
 
290
 
 
291
# --- QT4 START ---
 
292
QT4_IM='N'
 
293
if [ -z "$QT4_IM_DIR" ]; then QT4_IM_DIR=/usr/$LIB/qt4/plugins/inputmethods; fi
 
294
 
 
295
echo -n ".... Testing Qt 4.x      :  "
 
296
pkg-config --libs QtCore QtGui > /dev/null 2> /dev/null
 
297
if [ $? = 0 ]; then
 
298
  QT4_IM='Y'
 
299
fi
 
300
 
 
301
if [ ! -x "${QT4_MOC_PATH}" ]; then
 
302
         find_in_path_list_to_variable "qt4_moc_path_list" "QT4_MOC_PATH"
 
303
fi
 
304
 
 
305
if [ "$QT4_IM" = "Y" ]; then
 
306
    if [ "$use_qt4" = "N" ]; then
 
307
        QT4_IM='N'
 
308
        echo "found, but disabled."
 
309
    else
 
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."
 
313
                                exit 1
 
314
                  fi              
 
315
        echo "found."
 
316
    fi
 
317
else
 
318
    echo "not found, Qt 4.x immodule is turned off."
 
319
fi
 
320
# --- QT4 END ---
 
321
 
 
322
# --- MOC INFO START ---
 
323
 
 
324
echo
 
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 ========================================
 
329
echo
 
330
 
 
331
# --- MOC INFO END ---
 
332
 
 
333
if [ "$GTK"=gtk+-3.0 ]; then
 
334
  GTK_IM='N'
 
335
  echo "testing if you have GTK+ 2.x support"
 
336
  pkg-config --libs gtk+-2.0 > /dev/null 2> /dev/null
 
337
  if [ $? = 0 ]; then
 
338
    GTK_IM='Y'
 
339
  fi
 
340
  
 
341
  if [ "$GTK_IM" = "Y" ]; then
 
342
      if [ "$use_gtk" = "N" ]; then
 
343
          GTK_IM='N'
 
344
          echo "-> Yes, but disabled."
 
345
      else
 
346
          echo "-> Yes, you have GTK+ 2.x support."
 
347
      fi
 
348
  else
 
349
      echo "-> No, you don't have. It's ok if you don't want GTK+ 2.x immodule."
 
350
  fi
 
351
fi
 
352
 
 
353
GTK3_IM='N'
 
354
echo "testing if you have GTK+ 3.x support"
 
355
pkg-config --libs gtk+-3.0 > /dev/null 2> /dev/null
 
356
if [ $? = 0 ]; then
 
357
  GTK3_IM='Y'
 
358
fi
 
359
 
 
360
if [ "$GTK3_IM" = "Y" ]; then
 
361
    if [ "$use_gtk3" = "N" ]; then
 
362
        GTK3_IM='N'
 
363
        echo "-> Yes, but disabled."
 
364
    else
 
365
        echo "-> Yes, you have GTK+ 3.x support."
 
366
    fi
 
367
else
 
368
    echo "-> No, you don't have. It's ok if you don't want GTK+ 3.x immodule."
 
369
fi
 
370
 
 
371
[ -f "data/dayi3.cin" ] && INSTALL_DFSG_INCOMPATIBLE=Y
 
372
 
 
373
if [ -d .git ]; then
 
374
  GIT_HAVE='Y'
 
375
  GIT_HASH=`git log 2> /dev/null | head -n 1 | cut -d ' ' -f 2 | head -c 7`
 
376
fi
 
377
 
 
378
bindir=$prefix/bin
 
379
datadir=$prefix/share
 
380
mandir=$datadir/man
 
381
libdir=$prefix/$LIB
 
382
includedir=$prefix/include
 
383
optdir=/opt
 
384
HIME_VERSION=`cat VERSION.hime`
 
385
 
 
386
BUILD_MODULE='N'
 
387
if [ "$USE_ANTHY" = 'Y' ] || [ "$USE_CHEWING" = 'Y' ]; then
 
388
  BUILD_MODULE='Y'
 
389
fi
 
390
 
 
391
if [ -z "$CFLAGS" ]; then
 
392
  OPTFLAGS="-Wall -Os"
 
393
else
 
394
  OPTFLAGS="$CFLAGS"
 
395
fi
 
396
echo "-> CFLAGS = $CFLAGS."
 
397
 
 
398
if [ -z "$CC" ]; then
 
399
  CC=gcc
 
400
fi
 
401
 
 
402
if [ -z "$CXX" ]; then
 
403
  CXX=g++
 
404
fi
 
405
 
 
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