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