Remove appcore-efl dependency in isf-demo-efl
[platform/core/uifw/isf.git] / configure.ac
1 # Process this file with autoconf to produce a configure script
2 #AC_INIT(scim, 1.4.7, suzhe@tsinghua.org.cn)
3 AC_INIT(isf, 4.0.21, isf@samsung.com)
4 AC_CONFIG_SRCDIR([ism/src/scim.h])
5
6 ###########################################################
7 ##          Some definitions of Version macros.          ##
8 ###########################################################
9
10 # ISF version
11 ISF_MAJOR_VERSION=4
12 ISF_MINOR_VERSION=0
13 ISF_MICRO_VERSION=21
14
15 ISF_VERSION=$ISF_MAJOR_VERSION.$ISF_MINOR_VERSION.$ISF_MICRO_VERSION
16
17 AC_SUBST(ISF_MAJOR_VERSION)
18 AC_SUBST(ISF_MINOR_VERSION)
19 AC_SUBST(ISF_MICRO_VERSION)
20 AC_SUBST(ISF_VERSION)
21
22 # SCIM version
23 SCIM_MAJOR_VERSION=1
24 SCIM_MINOR_VERSION=4
25 SCIM_MICRO_VERSION=7
26
27 SCIM_VERSION=$SCIM_MAJOR_VERSION.$SCIM_MINOR_VERSION.$SCIM_MICRO_VERSION
28
29 AC_SUBST(SCIM_MAJOR_VERSION)
30 AC_SUBST(SCIM_MINOR_VERSION)
31 AC_SUBST(SCIM_MICRO_VERSION)
32 AC_SUBST(SCIM_VERSION)
33
34 # libtool versioning for SCIM
35
36 # increment if the interface has additions, changes, removals.
37 SCIM_CURRENT=10
38
39 # increment any time the source changes; set to 0 if you increment CURRENT
40 SCIM_REVISION=3
41
42 # increment if any interfaces have been added; set to 0
43 # if any interfaces have been removed. removal has
44 # precedence over adding, so set to 0 if both happened.
45 SCIM_AGE=2
46
47 AC_SUBST(SCIM_CURRENT)
48 AC_SUBST(SCIM_REVISION)
49 AC_SUBST(SCIM_AGE)
50
51 # Define a string for the earliest version that this release cannot
52 # coexist with. This is used for directory hierarchies.
53 #
54 SCIM_EPOCH=-1.0
55 AC_SUBST(SCIM_EPOCH)
56
57 # Define a string for the earliest version that this release has
58 # binary compatibility with. This is used for module locations.
59 #
60 SCIM_BINARY_VERSION=1.4.0
61 AC_SUBST(SCIM_BINARY_VERSION)
62
63 AC_DEFINE_UNQUOTED(SCIM_BINARY_VERSION, "$SCIM_BINARY_VERSION", [The binary version of SCIM library.])
64 AC_DEFINE_UNQUOTED(SCIM_VERSION, "$SCIM_VERSION", [The release version of SCIM library.])
65 AC_DEFINE_UNQUOTED(SCIM_MAJOR_VERSION, $SCIM_MAJOR_VERSION, [The Major version of SCIM library.])
66 AC_DEFINE_UNQUOTED(SCIM_MINOR_VERSION, $SCIM_MINOR_VERSION, [The Minor version of SCIM library.])
67 AC_DEFINE_UNQUOTED(SCIM_MICRO_VERSION, $SCIM_MICRO_VERSION, [The Micro version of SCIM library.])
68
69 GETTEXT_PACKAGE=scim
70 AC_SUBST(GETTEXT_PACKAGE)
71 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [The gettext domain])
72
73 ###########################################################
74 ##                  Start Configuration.                 ##
75 ###########################################################
76 AC_CANONICAL_HOST
77 AC_USE_SYSTEM_EXTENSIONS
78
79 # Init automake stuff
80 AM_INIT_AUTOMAKE
81 AM_CONFIG_HEADER([config.h])
82
83 # Init platform
84 PLATFORM_INIT
85
86 # Init gettext
87 ALL_LINGUAS="ar as az be_BY bg bn bn_BD ca cs da de el_GR en en_PH en_US es_ES es_MX es_US et eu fa fi fr fr_CA ga gl gu he hi hr hu hy id is it_IT ja_JP ka kk km kn ko_KR ky_KG lo lt lv mg mk ml mn_MN mr ms my_MM my_ZG nb ne nl or pa pl pl_SP pt_BR pt_PT ro ru_RU si sk sl sq sr sv sw ta te tg_TJ th tk_TM tl tr_TR uk ur uz vi xh zh_CN zh_HK zh_TW zh_TW zu"
88 AM_GNU_GETTEXT
89
90 # Init libtool
91 AC_LIBTOOL_DLOPEN
92 AC_PROG_LIBTOOL
93 AC_LIB_LTDL
94 AC_SUBST(LIBTOOL_DEPS)
95
96 # libtool option to control which symbols are exported
97 # right now, symbols starting with _ are not exported
98 # !!! DO NOT USE IT !!!
99 LIBTOOL_EXPORT_OPTIONS=''
100 AC_SUBST(LIBTOOL_EXPORT_OPTIONS)
101
102 # Checks for programs.
103 AC_PROG_CXX
104 AC_PROG_CC
105 AC_LANG(C++)
106
107 # Checks if doxygen is avaiable
108
109 DOXYGEN=no
110 if test "x$with_doxygen" != "xno"; then
111   AC_PATH_PROG(DOXYGEN, doxygen, no)
112 fi
113
114 AM_CONDITIONAL(HAVE_DOXYGEN, test x$DOXYGEN != xno)
115 AC_SUBST(DOXYGEN)
116
117 # Checks if graphviz is available
118 AC_CHECK_PROG(HAVE_GRAPHVIZ, dot, YES, NO)
119 AC_PATH_PROG(DOT, dot)
120 DOT=`dirname $DOT`
121 AC_SUBST(DOT)
122
123 AC_PATH_PROG(PERL, perl)
124 AC_SUBST(PERL)
125
126 # Check intltool
127 #IT_PROG_INTLTOOL([0.33], [no-xml])
128
129 # Checks for libraries.
130 AC_HEADER_STDC
131 AC_HEADER_TIME
132 AC_CHECK_HEADERS([langinfo.h libintl.h string.h dirent.h hash_map ext/hash_map])
133 AC_CHECK_HEADERS([stdio.h ctype.h errno.h assert.h])
134
135 # Checks for typedefs, structures, and compiler characteristics.
136 AC_C_CONST
137 AC_C_INLINE
138 AC_TYPE_SIZE_T
139
140 if test x$ac_cv_type_size_t != xyes; then
141   AC_MSG_ERROR([No type size_t, but SCIM needs it!])
142 fi
143
144 AC_CHECK_SIZEOF(char)
145 AC_CHECK_SIZEOF(unsigned short int)
146 AC_CHECK_SIZEOF(unsigned int)
147 AC_CHECK_SIZEOF(unsigned long int)
148 AC_CHECK_SIZEOF(unsigned long long int)
149 AC_CHECK_HEADERS([stdint.h],[has_stdint=yes],[has_stdint=no])
150
151 if test x$ac_cv_sizeof_unsigned_short_int = x2 && test x$ac_cv_sizeof_char = x1 ; then
152   :
153 else
154   AC_MSG_ERROR([
155 *** SCIM requires
156 ***      sizeof (unsigned short int)  == 2
157 ***      sizeof (char)                == 1
158 *** You might want to consider using the GNU C compiler.
159 ])
160 fi
161
162 if test x$ac_cv_sizeof_wchar_t = x0 ; then
163   AC_MSG_ERROR([
164 *** SCIM requires a compiler that supports wchar_t,
165 *** You might want to consider using the GNU C compiler.
166 ])
167 fi
168
169 if test x$has_stdint = xyes; then
170   INCLUDE_STDINT="#include <stdint.h>"
171   UINT16="uint16_t"
172   UINT32="uint32_t"
173   UINT64="uint64_t"
174 else
175   INCLUDE_STDINT="//#include <stdint.h>"
176   UINT16="unsigned short int"
177   if test x$ac_cv_sizeof_unsigned_int = x4; then
178     UINT32="unsigned int"
179   else
180     if test x$ac_cv_sizeof_unsigned_long_int = x4; then
181       UINT32="unsigned long int"
182     else
183       AC_MSG_ERROR([*** No suitable integer type for uint32 found.])
184     fi
185   fi
186   if test x$ac_cv_sizeof_unsigned_long_long_int = x8; then
187     UINT64="unsigned long long int"
188   else
189     AC_MSG_ERROR([*** No suitable integer type for uint64 found.])
190   fi
191 fi
192 AC_SUBST(INCLUDE_STDINT)
193 AC_SUBST(UINT16)
194 AC_SUBST(UINT32)
195 AC_SUBST(UINT64)
196
197 # Checks for library functions.
198 AC_FUNC_MALLOC
199 AC_CHECK_FUNCS([gettimeofday memmove memset nl_langinfo setlocale daemon])
200 AC_CHECK_FUNCS([memcpy strcmp strchr strrchr])
201 AC_CHECK_FUNCS([opendir closedir readdir])
202 AC_CHECK_FUNCS([usleep nanosleep])
203 AC_CHECK_FUNCS([gethostbyname gethostbyname_r socket bind accept connect listen],
204                [socket_ok=yes],
205                [socket_ok=no])
206
207 AM_ICONV
208
209 # Check EINA
210 PKG_CHECK_MODULES(EINA, [eina])
211
212 # Check ECORE
213 PKG_CHECK_MODULES(ECORE, [ecore])
214
215 # Check ECORE_IPC library
216 PKG_CHECK_MODULES(ECORE_IPC, [ecore-ipc])
217
218 # Check ECORE FILE library
219 PKG_CHECK_MODULES(ECORE_FILE, [ecore-file])
220
221 # Check ECORE EVAS library
222 PKG_CHECK_MODULES(ECORE_EVAS, [ecore-evas])
223
224 # Check ECORE IMF
225 PKG_CHECK_MODULES(ECORE_IMF, [ecore-imf],
226                   [ISF_HAS_ECORE_IMF=yes],
227                   [ISF_HAS_ECORE_IMF=no])
228
229 if test "$ISF_HAS_ECORE_IMF" = "yes"; then
230   EFL_LIBDIR=`$PKG_CONFIG --variable=libdir ecore-imf`
231   ECORE_IMF_MODULE_ARCH=`$PKG_CONFIG --variable=module_arch ecore`
232   if test -z "$EFL_LIBDIR)"; then
233     EFL_LIBDIR="$libdir"
234   fi
235   EFL_IM_MODULEDIR=$EFL_LIBDIR/ecore_imf/modules/isf/$ECORE_IMF_MODULE_ARCH
236   WAYLAND_IM_MODULEDIR=$EFL_LIBDIR/ecore_imf/modules/wayland/$ECORE_IMF_MODULE_ARCH
237   AC_SUBST(EFL_LIBDIR)
238   AC_SUBST(EFL_IM_MODULEDIR)
239   AC_SUBST(WAYLAND_IM_MODULEDIR)
240 fi
241
242 # Check EVAS
243 PKG_CHECK_MODULES(EVAS, [evas])
244
245 # Check ECORE X library
246 PKG_CHECK_MODULES(ECOREX, [ecore-x],
247                   [ISF_HAS_ECOREX=yes],
248                   [ISF_HAS_ECOREX=no])
249
250 if test "$ISF_HAS_ECOREX" = "yes"; then
251   AC_DEFINE(HAVE_ECOREX,1,[Have ecore-x functions.])
252 fi
253
254 # Check XKBCOMMON library
255 PKG_CHECK_MODULES(XKBCOMMON, [xkbcommon])
256
257 # Check ECORE WAYLAND library
258 PKG_CHECK_MODULES(ECORE_WL, [ecore-wayland],
259                   [ISF_HAS_ECOREWL=yes],
260                   [ISF_HAS_ECOREWL=no])
261
262 if test "$ISF_HAS_ECOREWL" = "yes"; then
263   AC_DEFINE(HAVE_ECOREWL,1,[Have ecore-wayland functions.])
264 fi
265
266 # Check WAYLAND TEXT INPUT library
267 PKG_CHECK_MODULES(WL_TEXT_INPUT, [text-client])
268
269 # Check WAYLAND INPUT METHOD library
270 PKG_CHECK_MODULES(WL_INPUT_METHOD, [input-method-client])
271
272 # Check EDJE library
273 PKG_CHECK_MODULES(EDJE, [edje])
274
275 # Check ELEMENTARY library
276 PKG_CHECK_MODULES(ELEMENTARY, [elementary],
277                   [ISF_HAS_ELM=yes],
278                   [ISF_HAS_ELM=no])
279
280 # Check EFL extension library
281 PKG_CHECK_MODULES(EFL_EXTENSION, [efl-extension])
282
283 # Check glib library
284 PKG_CHECK_MODULES(GLIB, [glib-2.0])
285
286 # Check tzplatform-config library
287 PKG_CHECK_MODULES(TZPLATFORM_CONFIG, [libtzplatform-config])
288
289 # Check dlog library
290 PKG_CHECK_MODULES(DLOG, [dlog >= 0])
291
292 # Check notification library
293 PKG_CHECK_MODULES(NOTIFICATION, [notification],
294                   [ISF_HAS_NOTIFICATION=yes],
295                   [ISF_HAS_NOTIFICATION=no])
296
297 # Check system info library
298 PKG_CHECK_MODULES(SYSTEM_INFO, [capi-system-info])
299
300 # Check tts library
301 PKG_CHECK_MODULES(TTS, [tts],
302                   [ISF_HAS_TTS=yes],
303                   [ISF_HAS_TTS=no])
304
305 if test "$ISF_HAS_TTS" = "yes"; then
306   AC_DEFINE(HAVE_TTS,1,[Have TTS functions.])
307 fi
308
309 # Check cynara liblaries
310 PKG_CHECK_MODULES(CYNARA, [cynara-client, cynara-creds-socket, cynara-session])
311
312 # Check vconf library
313 PKG_CHECK_MODULES(VCONF, [vconf],
314                   [ISF_HAS_VCONF=yes],
315                   [ISF_HAS_VCONF=no])
316
317 # Check edbus library
318 PKG_CHECK_MODULES(EDBUS, [edbus])
319
320 # Check bluetooth library
321 PKG_CHECK_MODULES(BLUETOOTH, [capi-network-bluetooth],
322                   [ISF_HAS_BLUETOOTH=yes],
323                   [ISF_HAS_BLUETOOTH=no])
324
325 # Check feedback library
326 PKG_CHECK_MODULES(FEEDBACK, [feedback],
327                   [ISF_HAS_FEEDBACK=yes],
328                   [ISF_HAS_FEEDBACK=no])
329
330 # Check package manager
331 PKG_CHECK_MODULES(PACKAGE_MANAGER, [capi-appfw-package-manager])
332
333 # Check AUL
334 PKG_CHECK_MODULES(AUL, [aul])
335
336 # Check App Control
337 PKG_CHECK_MODULES(APP_CONTROL, [capi-appfw-app-control])
338
339 # Check appfw library
340 PKG_CHECK_MODULES(APPFW, [capi-appfw-application])
341
342 # Check libwebsockets
343 PKG_CHECK_MODULES(LIBWEBSOCKETS, [libwebsockets],
344                   [ISF_HAS_LIBWEBSOCKETS=yes],
345                   [ISF_HAS_LIBWEBSOCKETS=no])
346
347 # Check core package manager
348 PKG_CHECK_MODULES(PKGMGR_INFO, [pkgmgr-info],
349                   [ISF_HAS_PKGMGR_INFO=yes],
350                   [ISF_HAS_PKGMGR_INFO=no])
351
352 # Check db-util library
353 PKG_CHECK_MODULES(DB_UTIL, [db-util],
354                   [ISF_HAS_DB_UTIL=yes],
355                   [ISF_HAS_DB_UTIL=no])
356
357 # Ignore checked modules if --disable option is added
358 AC_ARG_ENABLE(include-notification,
359               [  --disable-include-notification         Do not include notification package],
360               enable_notification=no,
361               enable_notification=yes)
362
363 AC_ARG_ENABLE(include-libwebsocket,
364               [  --disable-include-libwebsocket         Do not include libwebsocket package],
365               enable_libwebsocket=no,
366               enable_libwebsocket=yes)
367
368 if test "$ISF_HAS_VCONF" = "yes"; then
369   AC_DEFINE(HAVE_VCONF,1,[Have VConf functions.])
370 fi
371
372 if test "$ISF_HAS_BLUETOOTH" = "yes"; then
373   AC_DEFINE(HAVE_BLUETOOTH,1,[Have Bluetooth functions.])
374 fi
375
376 if test "$ISF_HAS_FEEDBACK" = "yes"; then
377   AC_DEFINE(HAVE_FEEDBACK,1,[Have Feedback functions.])
378 fi
379
380 if test "$ISF_HAS_NOTIFICATION" = "yes" && test "$enable_notification" = "yes"; then
381   AC_DEFINE(HAVE_NOTIFICATION,1,[Have Notification functions.])
382 fi
383
384 if test "$enable_notification" = "no"; then
385   AC_MSG_NOTICE([Notification functions force-disabled.])
386 fi
387
388 if test "$ISF_HAS_PKGMGR_INFO" = "yes"; then
389   AC_DEFINE(HAVE_PKGMGR_INFO,1,[Have Package manager functions.])
390 fi
391
392 # Check GTK2 library
393 PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.4.0 pango >= 1.1.0 gdk-pixbuf-2.0 >= 2.4.0],
394                   [SCIM_HAS_GTK2=yes],
395                   [SCIM_HAS_GTK2=no])
396
397 SCIM_HAS_GTK2_2=no
398 if test "$SCIM_HAS_GTK2" = "yes"; then
399   if $PKG_CONFIG --exists "gtk+-2.0 >= 2.2" ; then
400     SCIM_HAS_GTK2_2=yes
401     GTK_VERSION=2.2.0
402     AC_DEFINE(GDK_MULTIHEAD_SAFE,1,[Force use of GDK's multihead-safe APIs.])
403   fi
404   if $PKG_CONFIG --exists "gtk+-2.0 >= 2.3.5" ; then
405     SCIM_HAS_GTK2_4=yes
406     GTK_VERSION=2.3.5
407     AC_DEFINE(HAVE_GTK_DRAW_INSERTION_CURSOR,1,[Have gtk_draw_insertion_cursor ().])
408   fi
409   GTK_BINARY_VERSION=`$PKG_CONFIG --variable=gtk_binary_version gtk+-2.0`
410   GTK_LIBDIR=`$PKG_CONFIG --variable=libdir gtk+-2.0`
411   if test -z "$GTK_LIBDIR)"; then
412     GTK_LIBDIR="$libdir"
413   fi
414   GTK_IM_MODULEDIR=$GTK_LIBDIR/gtk-2.0/$GTK_BINARY_VERSION/immodules
415   AC_SUBST(GTK_LIBDIR)
416   AC_SUBST(GTK_IM_MODULEDIR)
417   AC_SUBST(GTK_VERSION)
418   AC_SUBST(GTK_BINARY_VERSION)
419 fi
420
421 # Check if we have gthread
422 PKG_CHECK_MODULES(GTHREAD2,[gthread-2.0 >= 2.0.0],
423                   [SCIM_HAS_GTHREAD2=yes],
424                   [SCIM_HAS_GTHREAD2=no])
425
426 # Checks for X11 header files.
427 AC_PATH_XTRA
428
429 # Add -lX11 to X_LIBS
430 if test "$have_x" = "yes"; then
431   X_LIBS="$X_LIBS -lX11"
432 fi
433
434 case $host_cpu in
435   *arm* ) TARGET=ARM;;
436       * ) TARGET=X86;;
437 esac
438 AM_CONDITIONAL(ARM, test x$TARGET = xARM)
439
440 ###########################################################
441 ##             Definiation of compile args.              ##
442 ###########################################################
443 AC_ARG_WITH(gtk-im-module-dir,
444             AS_HELP_STRING([--with-gtk-im-module-dir=dir],
445                            [Select gtk immodule dir]),
446             GTK_IM_MODULEDIR=$with_gtk_im_module_dir)
447
448 AC_ARG_WITH(efl-im-module-dir,
449             AS_HELP_STRING([--with-efl-im-module-dir=dir],
450                            [Select efl immodule dir]),
451             EFL_IM_MODULEDIR=$with_efl_im_module_dir)
452
453 AC_ARG_WITH(wayland-im-module-dir,
454             AS_HELP_STRING([--with-wayland-im-module-dir=dir],
455                            [Select wayland immodule dir]),
456             WAYLAND_IM_MODULEDIR=$with_wayland_im_module_dir)
457
458 AC_ARG_WITH(ro-app-dir,
459             AS_HELP_STRING([--with-ro-app-dir=dir],
460                            [Select Read only application dir]),
461             RO_APP_DIR=$with_ro_app_dir)
462
463 AC_ARG_WITH(ro-packages-dir,
464             AS_HELP_STRING([--with-ro-app-dir=dir],
465                            [Select Read only packages dir]),
466             RO_PACKAGES_DIR=$with_ro_packages_dir)
467
468 AC_ARG_ENABLE(ld-version-script,
469               [  --enable-ld-version-script Use ld version script to limit exported symbols],
470               enable_ld_version_script=yes,
471               enable_ld_version_script=no)
472
473 AC_ARG_ENABLE(debug,
474               [  --enable-debug            Turn on debugging],
475               enable_debug=yes,
476               enable_debug=no)
477
478 AC_ARG_ENABLE(x86,
479               [  --enable-x86              Build for x86 host],
480               enable_x86=yes,
481               enable_x86=no)
482
483 AC_ARG_ENABLE(hash-map,
484               [  --enable-hash-map         Use hast_map instead of std::map internally],
485               enable_hash_map=yes,
486               enable_hash_map=no)
487
488 AC_ARG_ENABLE(config-simple,
489               [  --disable-config-simple   Do not build Simple Config module],
490               enable_config_simple=no,
491               enable_config_simple=yes)
492
493 AC_ARG_ENABLE(config-socket,
494               [  --disable-config-socket   Do not build Socket Config module],
495               enable_config_socket=no,
496               enable_config_socket=yes)
497
498 AC_ARG_ENABLE(frontend-x11,
499               [  --disable-frontend-x11    Do not build X11 FrontEnd module],
500               enable_frontend_x11=no,
501               enable_frontend_x11=yes)
502
503 AC_ARG_ENABLE(frontend-socket,
504               [  --disable-frontend-socket Do not build Socket FrontEnd module],
505               enable_frontend_socket=no,
506               enable_frontend_socket=yes)
507
508 AC_ARG_ENABLE(im-socket,
509               [  --disable-im-socket       Do not build Socket IMEngine module],
510               enable_im_socket=no,
511               enable_im_socket=yes)
512
513 AC_ARG_ENABLE(filter-sctc,
514               [  --disable-filter-sctc     Do not build Simplified/Traditional Chinese conversion Filter module],
515               enable_filter_sctc=no,
516               enable_filter_sctc=yes)
517
518 AC_ARG_ENABLE(gtk2-immodule,
519               [  --disable-gtk2-immodule   Do not build GTK2 IMModule],
520               enable_gtk2_immodule=no,
521               enable_gtk2_immodule=yes)
522
523 AC_ARG_ENABLE(efl-immodule,
524               [  --disable-efl-immodule    Do not build EFL IMModule],
525               enable_efl_immodule=no,
526               enable_efl_immodule=yes)
527
528 AC_ARG_ENABLE(wayland-immodule,
529               [  --disable-wayland-immodule    Do not build Wayland IMModule],
530               enable_wayland_immodule=no,
531               enable_wayland_immodule=yes)
532
533 AC_ARG_ENABLE(panel-efl,
534               [  --disable-panel-efl       Do not build EFL Panel],
535               enable_panel_efl=no,
536               enable_panel_efl=check)
537
538 AC_ARG_ENABLE(open-input,
539               [  --disable-open-input     Do not build Open Input],
540               enable_open_input=no,
541               enable_open_input=check)
542
543 AC_ARG_ENABLE(tray-icon,
544               [  --disable-tray-icon       Do not build Tray Icon],
545               enable_tray_icon=no,
546               enable_tray_icon=yes)
547
548 AC_ARG_ENABLE(multiwindow-support,
549               [  --disable-multiwindow-support       Do not build Multiwindow Support],
550               enable_multiwindow_support=no,
551               enable_multiwindow_support=yes)
552
553 AC_ARG_ENABLE(lazy-launch,
554               [  --enable-lazy-launch      Launch ISF when focusing in entry],
555               enable_lazy_launch=yes,
556               enable_lazy_launch=no)
557
558 AC_ARG_ENABLE(ime-embed-app,
559               [  --disable-ime-embed-app      Do not load IME in application when socket invalidate],
560               enable_ime_embed_app=no,
561               enable_ime_embed_app=yes)
562
563 AC_ARG_ENABLE(candidate-ui,
564               [  --disable-candidate-ui     Do not build Candidate UI],
565               enable_candidate_ui=no,
566               enable_candidate_ui=check)
567
568 if test "$have_x" = "yes"; then
569   SCIM_BUILD_X11_UTILS=1
570   enable_x11_utils=yes
571 else
572   SCIM_BUILD_X11_UTILS=0
573   enable_x11_utils=no
574 fi
575
576 if test "$enable_hash_map" = "yes"; then
577   AC_DEFINE(ENABLE_HASH_MAP,1,[Use hash map instead of map in libscim])
578 fi
579
580 if test "$enable_debug" = "yes"; then
581   AC_DEFINE(ENABLE_DEBUG,1,[Define this to enable the debug facility in libscim])
582   CFLAGS="$CFLAGS -g"
583   CXXFLAGS="$CXXFLAGS -g"
584 fi
585
586 if test "$enable_x86" = "yes"; then
587   AC_DEFINE(ENABLE_X86_HOST,1,[Build for x86 host])
588 fi
589
590 if test "$enable_tests" = "yes"; then
591   SCIM_BUILD_TESTS=1
592 else
593   SCIM_BUILD_TESTS=0
594   enable_tests=no
595 fi
596
597 if test "$enable_config_simple" = "yes"; then
598   SCIM_BUILD_CONFIG_SIMPLE=1
599 else
600   SCIM_BUILD_CONFIG_SIMPLE=0
601   enable_config_simple=no
602 fi
603
604 if test "$enable_config_socket" = "yes" -a "$socket_ok" = "yes"; then
605   SCIM_BUILD_CONFIG_SOCKET=1
606 else
607   SCIM_BUILD_CONFIG_SOCKET=0
608   enable_config_socket=no
609 fi
610
611 if test "$enable_frontend_x11" = "yes" -a "$have_x" = "yes"; then
612   SCIM_BUILD_FRONTEND_X11=1
613 else
614   SCIM_BUILD_FRONTEND_X11=0
615   enable_frontend_x11=no
616 fi
617
618 if test "$enable_frontend_socket" = "yes" -a "$socket_ok" = "yes"; then
619   SCIM_BUILD_FRONTEND_SOCKET=1
620 else
621   SCIM_BUILD_FRONTEND_SOCKET=0
622   enable_frontend_socket=no
623 fi
624
625 if test "$enable_im_rawcode" = "yes"; then
626   SCIM_BUILD_IMENGINE_RAWCODE=1
627 else
628   SCIM_BUILD_IMENGINE_RAWCODE=0
629   enable_im_rawcode=no
630 fi
631
632 if test "$enable_im_socket" = "yes" -a "$socket_ok" = "yes"; then
633   SCIM_BUILD_IMENGINE_SOCKET=1
634 else
635   SCIM_BUILD_IMENGINE_SOCKET=0
636   enable_im_socket=no
637 fi
638
639 if test "$enable_filter_sctc" = "yes"; then
640   SCIM_BUILD_FILTER_SCTC=1
641 else
642   SCIM_BUILD_FILTER_SCTC=0
643   enable_filter_sctc=no
644 fi
645
646 if test "$enable_gtk2_immodule" = "yes" -a "$SCIM_HAS_GTK2" = "yes"; then
647   SCIM_BUILD_GTK2_IMMODULE=1
648 else
649   SCIM_BUILD_GTK2_IMMODULE=0
650   enable_gtk2_immodule=no
651 fi
652
653 if test "$SCIM_HAS_GTK2" = "yes"; then
654   enable_gtk_utils=yes
655   SCIM_BUILD_GTK_UTILS=1
656 else
657   enable_gtk_utils=no
658   SCIM_BUILD_GTK_UTILS=0
659 fi
660
661 if test "$enable_tray_icon" = "yes"; then
662   if test "$SCIM_HAS_GTK2_2" = "yes" -a "$no_x" != "yes"; then
663     enable_tray_icon=yes
664     AC_DEFINE(ENABLE_TRAY_ICON,1,[Enable the TrayIcon code.])
665   fi
666 else
667   enable_tray_icon=no
668 fi
669
670 if test "$enable_multiwindow_support" = "yes"; then
671   enable_multiwindow_support=yes
672   AC_DEFINE(ENABLE_MULTIWINDOW_SUPPORT,1,[Enable the Multi Window code.])
673 else
674   enable_multiwindow_support=no
675 fi
676
677 if test "$enable_efl_immodule" = "yes" -a "$ISF_HAS_ECORE_IMF" = "yes"; then
678   ISF_BUILD_EFL_IMMODULE=1
679 else
680   ISF_BUILD_EFL_IMMODULE=0
681   enable_efl_immodule=no
682 fi
683
684 if test "$enable_wayland_immodule" = "yes" -a "$ISF_HAS_ECORE_IMF" = "yes"; then
685   ISF_BUILD_WAYLAND_IMMODULE=1
686 else
687   ISF_BUILD_WAYLAND_IMMODULE=0
688   enable_wayland_immodule=no
689 fi
690
691 ISF_BUILD_PANEL_EFL=0
692 ISF_BUILD_CANDIDATE_UI=0
693 if test "$enable_panel_efl" != "no"; then
694   enable_panel_efl=no
695   if test "$ISF_HAS_ELM" = "yes"; then
696     ISF_BUILD_PANEL_EFL=1
697     enable_panel_efl=yes
698     if test "$enable_candidate_ui" = "yes"; then
699       ISF_BUILD_CANDIDATE_UI=1
700       enable_candidate_ui=yes
701     else
702       enable_candidate_ui=no
703     fi
704   else
705     enable_candidate_ui=no
706   fi
707 else
708   enable_candidate_ui=no
709 fi
710
711 ISF_BUILD_OPEN_INPUT=0
712 ISF_BUILD_REMOTE_INPUT=0
713 if test "$enable_remote_input" = "yes"; then
714   ISF_BUILD_REMOTE_INPUT=1
715   enable_remote_input=yes
716   AC_DEFINE(ENABLE_REMOTE_INPUT,1,[Enable remote input.])
717   if test "$enable_open_input" = "yes" && test "$ISF_HAS_LIBWEBSOCKETS" = "yes" && test "$enable_libwebsocket" = "yes"; then
718     ISF_BUILD_OPEN_INPUT=1
719     enable_open_input=yes
720     AC_DEFINE(ENABLE_OPEN_INPUT,1,[Enable open input.])
721   else
722     enable_open_input=no
723   fi
724
725   if test "$enable_libwebsocket" = "no"; then
726     AC_MSG_NOTICE([LIBWEBSOCKET forced disable.])
727   fi
728 else
729   enable_open_input=no
730   enable_remote_input=no
731 fi
732
733 #if nothing needs libscim-gtkutils, just disable it
734 if test "$enable_panel_gtk" != "yes"; then
735   enable_gtk_utils=no
736   SCIM_BUILD_GTK_UTILS=0
737 fi
738
739 AM_CONDITIONAL(HAVE_X,
740                 [test "$have_x" = "yes"])
741
742 if test "$enable_lazy_launch" = "yes"; then
743   AC_DEFINE(ENABLE_LAZY_LAUNCH,1,[Launch ISF when focusing in entry])
744   ISF_INSTALL_SYSTEMD_SCRIPT=0
745 else
746   ISF_INSTALL_SYSTEMD_SCRIPT=1
747 fi
748
749 if test "$enable_ime_embed_app" = "yes"; then
750   AC_DEFINE(ENABLE_IME_EMBED_APP,1,[Load imengine in application side when socket invalidate])
751 fi
752
753 AM_CONDITIONAL(SCIM_LD_VERSION_SCRIPT,
754                 [test "$enable_ld_version_script" = "yes"])
755
756 AM_CONDITIONAL(SCIM_BUILD_TESTS,
757                 [test "$enable_tests" = "yes"])
758
759 AM_CONDITIONAL(SCIM_BUILD_CONFIG_SIMPLE,
760                 [test "$enable_config_simple" = "yes"])
761
762 AM_CONDITIONAL(SCIM_BUILD_CONFIG_SOCKET,
763                 [test "$enable_config_socket" = "yes"])
764
765 AM_CONDITIONAL(SCIM_BUILD_FRONTEND_X11,
766                 [test "$enable_frontend_x11" = "yes"])
767
768 AM_CONDITIONAL(SCIM_BUILD_FRONTEND_SOCKET,
769                 [test "$enable_frontend_socket" = "yes"])
770
771 AM_CONDITIONAL(SCIM_BUILD_IMENGINE_SOCKET,
772                 [test "$enable_im_socket" = "yes"])
773
774 AM_CONDITIONAL(SCIM_BUILD_IMENGINE_RAWCODE,
775                 [test "$enable_im_rawcode" = "yes"])
776
777 AM_CONDITIONAL(SCIM_BUILD_GTK2_IMMODULE,
778                 [test "$enable_gtk2_immodule" = "yes"])
779
780 AM_CONDITIONAL(SCIM_BUILD_FILTER_SCTC,
781                 [test "$enable_filter_sctc" = "yes"])
782
783 AM_CONDITIONAL(SCIM_BUILD_GTK_UTILS,
784                 [test "$enable_gtk_utils" = "yes"])
785
786 AM_CONDITIONAL(SCIM_BUILD_X11_UTILS,
787                 [test "$enable_x11_utils" = "yes"])
788
789 AM_CONDITIONAL(SCIM_BUILD_TRAY_ICON,
790                 [test "$enable_tray_icon" = "yes"])
791
792 AM_CONDITIONAL(ISF_BUILD_EFL_IMMODULE,
793                 [test "$enable_efl_immodule" = "yes"])
794
795 AM_CONDITIONAL(ISF_BUILD_WAYLAND_IMMODULE,
796                 [test "$enable_wayland_immodule" = "yes"])
797
798 AM_CONDITIONAL(ISF_BUILD_PANEL_EFL,
799                 [test "$enable_panel_efl" = "yes"])
800
801 AM_CONDITIONAL(ISF_BUILD_REMOTE_INPUT,
802                 [test "$enable_remote_input" = "yes"])
803
804 AM_CONDITIONAL(ISF_BUILD_OPEN_INPUT,
805                 [test "$enable_open_input" = "yes"])
806
807 AM_CONDITIONAL(ISF_BUILD_DB_UTIL,
808                 [test "$ISF_HAS_DB_UTIL" = "yes"])
809
810 AM_CONDITIONAL(ISF_INSTALL_SYSTEMD_SCRIPT,
811                 [test "$enable_lazy_launch" = "no"])
812
813 AM_CONDITIONAL(ISF_BUILD_CANDIDATE_UI,
814                 [test "$enable_candidate_ui" = "yes"])
815
816 AC_SUBST(SCIM_BUILD_TESTS)
817 AC_SUBST(SCIM_BUILD_CONFIG_SIMPLE)
818 AC_SUBST(SCIM_BUILD_CONFIG_SOCKET)
819 AC_SUBST(SCIM_BUILD_FRONTEND_X11)
820 AC_SUBST(SCIM_BUILD_FRONTEND_SOCKET)
821 AC_SUBST(SCIM_BUILD_IMENGINE_RAWCODE)
822 AC_SUBST(SCIM_BUILD_IMENGINE_TABLE)
823 AC_SUBST(SCIM_BUILD_IMENGINE_SOCKET)
824 AC_SUBST(SCIM_BUILD_FILTER_SCTC)
825 AC_SUBST(SCIM_BUILD_GTK2_IMMODULE)
826 AC_SUBST(SCIM_BUILD_SCIM_SETUP)
827 AC_SUBST(SCIM_BUILD_GTK_UTILS)
828 AC_SUBST(SCIM_BUILD_X11_UTILS)
829 AC_SUBST(ISF_BUILD_EFL_IMMODULE)
830 AC_SUBST(ISF_BUILD_PANEL_EFL)
831 AC_SUBST(ISF_BUILD_REMOTE_INPUT)
832 AC_SUBST(ISF_BUILD_OPEN_INPUT)
833 AC_SUBST(ISF_BUILD_DB_UTIL)
834 AC_SUBST(ISF_INSTALL_SYSTEMD_SCRIPT)
835 AC_SUBST(ISF_BUILD_KBD_MODE_CHANGER)
836 AC_SUBST(ISF_BUILD_CANDIDATE_UI)
837
838 ISF_BUILDING_DLL="-DISF_BUILDING_DLL"
839 AC_SUBST(ISF_BUILDING_DLL)
840
841 # Output All necessary Paths.
842 SCIM_BINDIR="$prefix/bin"
843 SCIM_DATADIR="$datadir/scim"
844 SCIM_SYSCONFDIR="$sysconfdir"
845 SCIM_ICONDIR="$datadir/scim/icons"
846 SCIM_MODULE_PATH="$libdir/scim$SCIM_EPOCH"
847 SCIM_LIBEXECDIR="$libdir/scim$SCIM_EPOCH"
848 SCIM_LOCALEDIR="/usr/share/locale"
849 SCIM_TEMPDIR="/run/.isf"
850
851 AC_SUBST(SCIM_BINDIR)
852 AC_SUBST(SCIM_DATADIR)
853 AC_SUBST(SCIM_SYSCONFDIR)
854 AC_SUBST(SCIM_ICONDIR)
855 AC_SUBST(SCIM_MODULE_PATH)
856 AC_SUBST(SCIM_LIBEXECDIR)
857 AC_SUBST(SCIM_LOCALEDIR)
858 AC_SUBST(SCIM_TEMPDIR)
859
860 AC_SUBST(RO_APP_DIR)
861 AC_SUBST(RO_PACKAGES_DIR)
862
863 ###########################################################
864 ##                      Output files.                    ##
865 ###########################################################
866 AC_SUBST(ac_aux_dir)
867 AC_CONFIG_FILES([Makefile
868                  po/Makefile.in
869                  ism/src/Makefile
870                  ism/src/scim_types.h
871                  ism/utils/Makefile
872                  ism/data/Makefile
873                  ism/data/icons/Makefile
874                  ism/data/pixmaps/Makefile
875                  ism/modules/Makefile
876                  ism/modules/frontend/imdkit/Makefile
877                  ism/modules/frontend/Makefile
878                  ism/modules/imengine/Makefile
879                  ism/modules/filter/Makefile
880                  ism/modules/config/Makefile
881                  ism/modules/panelagent/ecoresocket/Makefile
882                  ism/modules/panelagent/wayland/Makefile
883                  ism/modules/panelagent/socketconfigserver/Makefile
884                  ism/configs/Makefile
885                  ism/extras/Makefile
886                  ism/extras/gtk2_immodule/Makefile
887                  ism/extras/efl_immodule/Makefile
888                  ism/extras/wayland_immodule/Makefile
889                  ism/extras/efl_panel/Makefile
890                  ism/extras/kbd_mode_changer/Makefile
891                  ism/extras/pkgmgr_parser/Makefile
892                  ism/demos/Makefile
893                  intltool-extract
894                  intltool-merge
895                  intltool-update
896                  isf.pc
897                  scim.pc
898                  scim-gtkutils.pc
899                  scim.spec])
900 AC_OUTPUT
901
902 AC_MSG_RESULT([
903 Build options:
904   Version                  $ISF_VERSION
905   Install prefix           $prefix
906   Build shared libs        $enable_shared
907   Build static libs        $enable_static
908   Enable debug             $enable_debug
909   Build for x86 host       $enable_x86
910   Enable ld version script $enable_ld_version_script
911
912 Module options:
913   Simple config module     $enable_config_simple
914   Socket config module     $enable_config_socket
915
916   X11 FrontEnd module      $enable_frontend_x11
917   Socket FrontEnd module   $enable_frontend_socket
918
919   Socket IMEngine module   $enable_im_socket
920
921   SCTC Filter module       $enable_filter_sctc
922
923   GTK2 Utility Library     $enable_gtk_utils
924   X11 Utility Library      $enable_x11_utils
925
926   GTK2 IMModule            $enable_gtk2_immodule
927   GTK2 IMModule dir        $GTK_IM_MODULEDIR
928
929   EFL  IMModule            $enable_efl_immodule
930   EFL  IMModule dir        $EFL_IM_MODULEDIR
931
932   Wayland IMModule         $enable_wayland_immodule
933   Wayland IMModule dir     $WAYLAND_IM_MODULEDIR
934
935   EFL  Panel GUI           $enable_panel_efl
936   EFL  Panel Candidate GUI $enable_candidate_ui
937
938   Enable TrayIcon          $enable_tray_icon
939   Enable MultiWindow       $enable_multiwindow_support
940   Enable LazyLaunch        $enable_lazy_launch
941   Enable IME Embed         $enable_ime_embed_app
942   Enable Remote Input      $enable_remote_input
943   Enable OpenInput         $enable_open_input
944 ])
945