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, 2.4.6927, isf@samsung.com)
4 AC_CONFIG_SRCDIR([ism/src/scim.h])
5 m4_pattern_allow([^AS_])
7 ###########################################################
8 ## Some definitions of Version macros. ##
9 ###########################################################
14 ISF_MICRO_VERSION=6927
16 ISF_VERSION=$ISF_MAJOR_VERSION.$ISF_MINOR_VERSION.$ISF_MICRO_VERSION
18 AC_SUBST(ISF_MAJOR_VERSION)
19 AC_SUBST(ISF_MINOR_VERSION)
20 AC_SUBST(ISF_MICRO_VERSION)
28 SCIM_VERSION=$SCIM_MAJOR_VERSION.$SCIM_MINOR_VERSION.$SCIM_MICRO_VERSION
30 AC_SUBST(SCIM_MAJOR_VERSION)
31 AC_SUBST(SCIM_MINOR_VERSION)
32 AC_SUBST(SCIM_MICRO_VERSION)
33 AC_SUBST(SCIM_VERSION)
35 # libtool versioning for SCIM
37 # increment if the interface has additions, changes, removals.
40 # increment any time the source changes; set to 0 if you increment CURRENT
43 # increment if any interfaces have been added; set to 0
44 # if any interfaces have been removed. removal has
45 # precedence over adding, so set to 0 if both happened.
48 AC_SUBST(SCIM_CURRENT)
49 AC_SUBST(SCIM_REVISION)
52 # Define a string for the earliest version that this release cannot
53 # coexist with. This is used for directory hierarchies.
58 # Define a string for the earliest version that this release has
59 # binary compatibility with. This is used for module locations.
61 SCIM_BINARY_VERSION=1.4.0
62 AC_SUBST(SCIM_BINARY_VERSION)
64 AC_DEFINE_UNQUOTED(SCIM_BINARY_VERSION, "$SCIM_BINARY_VERSION", [The binary version of SCIM library.])
65 AC_DEFINE_UNQUOTED(SCIM_VERSION, "$SCIM_VERSION", [The release version of SCIM library.])
66 AC_DEFINE_UNQUOTED(SCIM_MAJOR_VERSION, $SCIM_MAJOR_VERSION, [The Major version of SCIM library.])
67 AC_DEFINE_UNQUOTED(SCIM_MINOR_VERSION, $SCIM_MINOR_VERSION, [The Minor version of SCIM library.])
68 AC_DEFINE_UNQUOTED(SCIM_MICRO_VERSION, $SCIM_MICRO_VERSION, [The Micro version of SCIM library.])
71 AC_SUBST(GETTEXT_PACKAGE)
72 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [The gettext domain])
74 ###########################################################
75 ## Start Configuration. ##
76 ###########################################################
81 AM_CONFIG_HEADER([config.h])
87 ALL_LINGUAS="hy az eu bg ca zh_CN zh_HK zh_TW hr cs da nl_NL en en_US et fi fr_FR gl ka de_DE el_GR hu is ga it_IT ja_JP kk ko_KR lv lt mk nb pl pt_PT pt_BR ro ru_RU sr sk sl es_ES es_US es_MX sv tr_TR uk uz ar zh_SG hi en_PH fr_CA fa th ur"
94 AC_SUBST(LIBTOOL_DEPS)
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)
102 # Checks for programs.
107 # Checks if doxygen is avaiable
110 if test "x$with_doxygen" != "xno"; then
111 AC_PATH_PROG(DOXYGEN, doxygen, no)
114 AM_CONDITIONAL(HAVE_DOXYGEN, test x$DOXYGEN != xno)
117 # Checks if graphviz is available
118 AC_CHECK_PROG(HAVE_GRAPHVIZ, dot, YES, NO)
119 AC_PATH_PROG(DOT, dot)
123 AC_PATH_PROG(PERL, perl)
127 IT_PROG_INTLTOOL([0.33], [no-xml])
129 # Checks for libraries.
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])
135 # Checks for typedefs, structures, and compiler characteristics.
140 if test x$ac_cv_type_size_t != xyes; then
141 AC_MSG_ERROR([No type size_t, but SCIM needs it!])
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])
151 if test x$ac_cv_sizeof_unsigned_short_int = x2 && test x$ac_cv_sizeof_char = x1 ; then
156 *** sizeof (unsigned short int) == 2
157 *** sizeof (char) == 1
158 *** You might want to consider using the GNU C compiler.
162 if test x$ac_cv_sizeof_wchar_t = x0 ; then
164 *** SCIM requires a compiler that supports wchar_t,
165 *** You might want to consider using the GNU C compiler.
169 if test x$has_stdint = xyes; then
170 INCLUDE_STDINT="#include <stdint.h>"
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"
180 if test x$ac_cv_sizeof_unsigned_long_int = x4; then
181 UINT32="unsigned long int"
183 AC_MSG_ERROR([*** No suitable integer type for uint32 found.])
186 if test x$ac_cv_sizeof_unsigned_long_long_int = x8; then
187 UINT64="unsigned long long int"
189 AC_MSG_ERROR([*** No suitable integer type for uint64 found.])
192 AC_SUBST(INCLUDE_STDINT)
197 # Checks for library functions.
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],
209 # Check gconf library
210 PKG_CHECK_MODULES(GCONF, [gconf-2.0 phonestatus noti-service],
214 if test "$ISF_HAS_GCONF" = "yes"; then
215 AC_DEFINE(HAVE_GCONF,1,[Have GConf functions.])
219 PKG_CHECK_MODULES(EFL, [elementary ecore-x evas ecore ecore-evas ecore-file edje ecore-input ecore-imf],
223 if test "$ISF_HAS_EFL" = "yes"; then
224 EFL_LIBDIR=`$PKG_CONFIG --variable=libdir ecore-imf`
225 if test -z "$EFL_LIBDIR)"; then
228 EFL_IM_MODULEDIR=$EFL_LIBDIR/ecore/immodules
230 AC_SUBST(EFL_IM_MODULEDIR)
233 # Check EFL assist library
234 PKG_CHECK_MODULES(EFL_ASSIST, [efl-assist])
237 PKG_CHECK_MODULES(X11, [x11])
239 # Check ui-gadget library
240 PKG_CHECK_MODULES(UIGADGET, [ui-gadget-1])
242 # Check pkgmgr-info library
243 PKG_CHECK_MODULES(PKGMGR_INFO, [pkgmgr-info])
245 # Check utilX library
246 PKG_CHECK_MODULES(UTILX, [utilX])
248 # Check appcore-efl library
249 PKG_CHECK_MODULES(APPCORE_EFL, [appcore-efl])
252 PKG_CHECK_MODULES(DLOG, [dlog >= 0])
254 # Check privilege control library
255 PKG_CHECK_MODULES(PRIVILEGE_CONTROL, [libprivilege-control >= 0])
257 # Check notification library
258 PKG_CHECK_MODULES(NOTIFICATION, [notification])
261 PKG_CHECK_MODULES(TTS, [tts],
265 if test "$ISF_HAS_TTS" = "yes"; then
266 AC_DEFINE(HAVE_TTS,1,[Have TTS functions.])
269 # Check vconf library
270 PKG_CHECK_MODULES(VCONF, [vconf],
274 # Check feedback library
275 PKG_CHECK_MODULES(FEEDBACK, [feedback])
277 if test "$ISF_HAS_VCONF" = "yes"; then
278 AC_DEFINE(HAVE_VCONF,1,[Have VConf functions.])
282 PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.4.0 pango >= 1.1.0 gdk-pixbuf-2.0 >= 2.4.0],
287 if test "$SCIM_HAS_GTK2" = "yes"; then
288 if $PKG_CONFIG --exists "gtk+-2.0 >= 2.2" ; then
291 AC_DEFINE(GDK_MULTIHEAD_SAFE,1,[Force use of GDK's multihead-safe APIs.])
293 if $PKG_CONFIG --exists "gtk+-2.0 >= 2.3.5" ; then
296 AC_DEFINE(HAVE_GTK_DRAW_INSERTION_CURSOR,1,[Have gtk_draw_insertion_cursor ().])
298 GTK_BINARY_VERSION=`$PKG_CONFIG --variable=gtk_binary_version gtk+-2.0`
299 GTK_LIBDIR=`$PKG_CONFIG --variable=libdir gtk+-2.0`
300 if test -z "$GTK_LIBDIR)"; then
303 GTK_IM_MODULEDIR=$GTK_LIBDIR/gtk-2.0/$GTK_BINARY_VERSION/immodules
305 AC_SUBST(GTK_IM_MODULEDIR)
306 AC_SUBST(GTK_VERSION)
307 AC_SUBST(GTK_BINARY_VERSION)
310 # Check if we have gthread
311 PKG_CHECK_MODULES(GTHREAD2,[gthread-2.0 >= 2.0.0],
312 [SCIM_HAS_GTHREAD2=yes],
313 [SCIM_HAS_GTHREAD2=no])
315 # Checks for X11 header files.
318 # Add -lX11 to X_LIBS
319 if test "$have_x" = "yes"; then
320 X_LIBS="$X_LIBS -lX11"
327 AM_CONDITIONAL(ARM, test x$TARGET = xARM)
329 ###########################################################
330 ## Definiation of compile args. ##
331 ###########################################################
332 AC_ARG_WITH(gtk-im-module-dir,
333 AS_HELP_STRING([--with-gtk-im-module-dir=dir],
334 [Select gtk immodule dir]),
335 GTK_IM_MODULEDIR=$with_gtk_im_module_dir)
337 AC_ARG_WITH(efl-im-module-dir,
338 AS_HELP_STRING([--with-efl-im-module-dir=dir],
339 [Select efl immodule dir]),
340 EFL_IM_MODULEDIR=$with_efl_im_module_dir)
342 AC_ARG_ENABLE(ld-version-script,
343 [ --enable-ld-version-script Use ld version script to limit exported symbols],
344 enable_ld_version_script=yes,
345 enable_ld_version_script=no)
348 [ --enable-debug Turn on debugging],
353 [ --enable-x86 Build for x86 host],
357 AC_ARG_ENABLE(hash-map,
358 [ --enable-hash-map Use hast_map instead of std::map internally],
362 AC_ARG_ENABLE(config-simple,
363 [ --disable-config-simple Do not build Simple Config module],
364 enable_config_simple=no,
365 enable_config_simple=yes)
367 AC_ARG_ENABLE(config-socket,
368 [ --disable-config-socket Do not build Socket Config module],
369 enable_config_socket=no,
370 enable_config_socket=yes)
372 AC_ARG_ENABLE(frontend-x11,
373 [ --disable-frontend-x11 Do not build X11 FrontEnd module],
374 enable_frontend_x11=no,
375 enable_frontend_x11=yes)
377 AC_ARG_ENABLE(frontend-socket,
378 [ --disable-frontend-socket Do not build Socket FrontEnd module],
379 enable_frontend_socket=no,
380 enable_frontend_socket=yes)
382 AC_ARG_ENABLE(im-socket,
383 [ --disable-im-socket Do not build Socket IMEngine module],
385 enable_im_socket=yes)
387 AC_ARG_ENABLE(filter-sctc,
388 [ --disable-filter-sctc Do not build Simplified/Traditional Chinese conversion Filter module],
389 enable_filter_sctc=no,
390 enable_filter_sctc=yes)
392 AC_ARG_ENABLE(gtk2-immodule,
393 [ --disable-gtk2-immodule Do not build GTK2 IMModule],
394 enable_gtk2_immodule=no,
395 enable_gtk2_immodule=yes)
397 AC_ARG_ENABLE(efl-immodule,
398 [ --disable-efl-immodule Do not build EFL IMModule],
399 enable_efl_immodule=no,
400 enable_efl_immodule=yes)
402 AC_ARG_ENABLE(panel-efl,
403 [ --disable-panel-efl Do not build EFL Panel],
405 enable_panel_efl=check)
407 AC_ARG_ENABLE(setting-efl,
408 [ --disable-setting-efl Do not build EFL Setting],
409 enable_setting_efl=no,
410 enable_setting_efl=check)
412 AC_ARG_ENABLE(tray-icon,
413 [ --disable-tray-icon Do not build Tray Icon],
415 enable_tray_icon=yes)
417 if test "$have_x" = "yes"; then
418 SCIM_BUILD_X11_UTILS=1
421 SCIM_BUILD_X11_UTILS=0
425 if test "$enable_hash_map" = "yes"; then
426 AC_DEFINE(ENABLE_HASH_MAP,1,[Use hash map instead of map in libscim])
429 if test "$enable_debug" = "yes"; then
430 AC_DEFINE(ENABLE_DEBUG,1,[Define this to enable the debug facility in libscim])
432 CXXFLAGS="$CXXFLAGS -g"
435 if test "$enable_x86" = "yes"; then
436 AC_DEFINE(ENABLE_X86_HOST,1,[Build for x86 host])
439 if test "$enable_tests" = "yes"; then
446 if test "$enable_config_simple" = "yes"; then
447 SCIM_BUILD_CONFIG_SIMPLE=1
449 SCIM_BUILD_CONFIG_SIMPLE=0
450 enable_config_simple=no
453 if test "$enable_config_socket" = "yes" -a "$socket_ok" = "yes"; then
454 SCIM_BUILD_CONFIG_SOCKET=1
456 SCIM_BUILD_CONFIG_SOCKET=0
457 enable_config_socket=no
460 if test "$enable_frontend_x11" = "yes" -a "$have_x" = "yes"; then
461 SCIM_BUILD_FRONTEND_X11=1
463 SCIM_BUILD_FRONTEND_X11=0
464 enable_frontend_x11=no
467 if test "$enable_frontend_socket" = "yes" -a "$socket_ok" = "yes"; then
468 SCIM_BUILD_FRONTEND_SOCKET=1
470 SCIM_BUILD_FRONTEND_SOCKET=0
471 enable_frontend_socket=no
474 if test "$enable_im_rawcode" = "yes"; then
475 SCIM_BUILD_IMENGINE_RAWCODE=1
477 SCIM_BUILD_IMENGINE_RAWCODE=0
481 if test "$enable_im_socket" = "yes" -a "$socket_ok" = "yes"; then
482 SCIM_BUILD_IMENGINE_SOCKET=1
484 SCIM_BUILD_IMENGINE_SOCKET=0
488 if test "$enable_filter_sctc" = "yes"; then
489 SCIM_BUILD_FILTER_SCTC=1
491 SCIM_BUILD_FILTER_SCTC=0
492 enable_filter_sctc=no
495 if test "$enable_gtk2_immodule" = "yes" -a "$SCIM_HAS_GTK2" = "yes"; then
496 SCIM_BUILD_GTK2_IMMODULE=1
498 SCIM_BUILD_GTK2_IMMODULE=0
499 enable_gtk2_immodule=no
502 if test "$SCIM_HAS_GTK2" = "yes"; then
504 SCIM_BUILD_GTK_UTILS=1
507 SCIM_BUILD_GTK_UTILS=0
510 if test "$enable_tray_icon" = "yes"; then
511 if test "$SCIM_HAS_GTK2_2" = "yes" -a "$no_x" != "yes"; then
513 AC_DEFINE(ENABLE_TRAY_ICON,1,[Enable the TrayIcon code.])
519 if test "$enable_efl_immodule" = "yes" -a "$ISF_HAS_EFL" = "yes"; then
520 ISF_BUILD_EFL_IMMODULE=1
522 ISF_BUILD_EFL_IMMODULE=0
523 enable_efl_immodule=no
526 ISF_BUILD_PANEL_EFL=0
527 if test "$enable_panel_efl" != "no"; then
529 if test "$ISF_HAS_EFL" = "yes"; then
530 ISF_BUILD_PANEL_EFL=1
535 ISF_BUILD_SETTING_EFL=0
536 if test "$enable_setting_efl" != "no"; then
537 enable_setting_efl=no
538 if test "$ISF_HAS_EFL" = "yes" -a "$ISF_HAS_VCONF" = "yes"; then
539 ISF_BUILD_SETTING_EFL=1
540 enable_setting_efl=yes
544 #if nothing needs libscim-gtkutils, just disable it
545 if test "$enable_panel_gtk" != "yes"; then
547 SCIM_BUILD_GTK_UTILS=0
550 AM_CONDITIONAL(SCIM_LD_VERSION_SCRIPT,
551 [test "$enable_ld_version_script" = "yes"])
553 AM_CONDITIONAL(SCIM_BUILD_TESTS,
554 [test "$enable_tests" = "yes"])
556 AM_CONDITIONAL(SCIM_BUILD_CONFIG_SIMPLE,
557 [test "$enable_config_simple" = "yes"])
559 AM_CONDITIONAL(SCIM_BUILD_CONFIG_SOCKET,
560 [test "$enable_config_socket" = "yes"])
562 AM_CONDITIONAL(SCIM_BUILD_FRONTEND_X11,
563 [test "$enable_frontend_x11" = "yes"])
565 AM_CONDITIONAL(SCIM_BUILD_FRONTEND_SOCKET,
566 [test "$enable_frontend_socket" = "yes"])
568 AM_CONDITIONAL(SCIM_BUILD_IMENGINE_SOCKET,
569 [test "$enable_im_socket" = "yes"])
571 AM_CONDITIONAL(SCIM_BUILD_IMENGINE_RAWCODE,
572 [test "$enable_im_rawcode" = "yes"])
574 AM_CONDITIONAL(SCIM_BUILD_GTK2_IMMODULE,
575 [test "$enable_gtk2_immodule" = "yes"])
577 AM_CONDITIONAL(SCIM_BUILD_FILTER_SCTC,
578 [test "$enable_filter_sctc" = "yes"])
580 AM_CONDITIONAL(SCIM_BUILD_GTK_UTILS,
581 [test "$enable_gtk_utils" = "yes"])
583 AM_CONDITIONAL(SCIM_BUILD_X11_UTILS,
584 [test "$enable_x11_utils" = "yes"])
586 AM_CONDITIONAL(SCIM_BUILD_TRAY_ICON,
587 [test "$enable_tray_icon" = "yes"])
589 AM_CONDITIONAL(ISF_BUILD_EFL_IMMODULE,
590 [test "$enable_efl_immodule" = "yes"])
592 AM_CONDITIONAL(ISF_BUILD_PANEL_EFL,
593 [test "$enable_panel_efl" = "yes"])
595 AM_CONDITIONAL(ISF_BUILD_SETTING_EFL,
596 [test "$enable_setting_efl" = "yes"])
598 AM_CONDITIONAL(ISF_BUILD_WITH_GCONF,
599 [test "$ISF_HAS_GCONF" = "yes"])
601 AC_SUBST(SCIM_BUILD_TESTS)
602 AC_SUBST(SCIM_BUILD_CONFIG_SIMPLE)
603 AC_SUBST(SCIM_BUILD_CONFIG_SOCKET)
604 AC_SUBST(SCIM_BUILD_FRONTEND_X11)
605 AC_SUBST(SCIM_BUILD_FRONTEND_SOCKET)
606 AC_SUBST(SCIM_BUILD_IMENGINE_RAWCODE)
607 AC_SUBST(SCIM_BUILD_IMENGINE_TABLE)
608 AC_SUBST(SCIM_BUILD_IMENGINE_SOCKET)
609 AC_SUBST(SCIM_BUILD_FILTER_SCTC)
610 AC_SUBST(SCIM_BUILD_GTK2_IMMODULE)
611 AC_SUBST(SCIM_BUILD_SCIM_SETUP)
612 AC_SUBST(SCIM_BUILD_GTK_UTILS)
613 AC_SUBST(SCIM_BUILD_X11_UTILS)
614 AC_SUBST(ISF_BUILD_EFL_IMMODULE)
615 AC_SUBST(ISF_BUILD_PANEL_EFL)
616 AC_SUBST(ISF_BUILD_SETTING_EFL)
617 AC_SUBST(ISF_BUILD_WITH_GCONF)
619 ISF_BUILDING_DLL="-DISF_BUILDING_DLL"
620 AC_SUBST(ISF_BUILDING_DLL)
622 # Output All necessary Paths.
623 SCIM_BINDIR="$prefix/bin"
624 SCIM_DATADIR="$datadir/scim"
625 SCIM_SYSCONFDIR="$sysconfdir"
626 SCIM_ICONDIR="$datadir/scim/icons"
627 SCIM_MODULE_PATH="$libdir/scim$SCIM_EPOCH"
628 SCIM_LIBEXECDIR="$libdir/scim$SCIM_EPOCH"
629 SCIM_LOCALEDIR="/usr/share/locale"
632 AC_SUBST(SCIM_BINDIR)
633 AC_SUBST(SCIM_DATADIR)
634 AC_SUBST(SCIM_SYSCONFDIR)
635 AC_SUBST(SCIM_ICONDIR)
636 AC_SUBST(SCIM_MODULE_PATH)
637 AC_SUBST(SCIM_LIBEXECDIR)
638 AC_SUBST(SCIM_LOCALEDIR)
639 AC_SUBST(SCIM_TEMPDIR)
641 ###########################################################
643 ###########################################################
645 AC_CONFIG_FILES([Makefile
648 po/isfsetting_efl/Makefile.in
653 ism/data/icons/Makefile
654 ism/data/pixmaps/Makefile
656 ism/modules/frontend/imdkit/Makefile
657 ism/modules/frontend/Makefile
658 ism/modules/imengine/Makefile
659 ism/modules/filter/Makefile
660 ism/modules/config/Makefile
663 ism/extras/gtk2_immodule/Makefile
664 ism/extras/efl_immodule/Makefile
665 ism/extras/efl_panel/Makefile
666 ism/extras/efl_setting/Makefile
680 Install prefix $prefix
681 Build shared libs $enable_shared
682 Build static libs $enable_static
683 Enable debug $enable_debug
684 Build for x86 host $enable_x86
685 Enable ld version script $enable_ld_version_script
688 Simple config module $enable_config_simple
689 Socket config module $enable_config_socket
691 X11 FrontEnd module $enable_frontend_x11
692 Socket FrontEnd module $enable_frontend_socket
694 Socket IMEngine module $enable_im_socket
696 SCTC Filter module $enable_filter_sctc
698 GTK2 Utility Library $enable_gtk_utils
699 X11 Utility Library $enable_x11_utils
701 GTK2 IMModule $enable_gtk2_immodule
702 GTK2 IMModule dir $GTK_IM_MODULEDIR
704 EFL IMModule $enable_efl_immodule
705 EFL IMModule dir $EFL_IM_MODULEDIR
706 EFL Panel GUI $enable_panel_efl
707 EFL Setting $enable_setting_efl
709 Enable TrayIcon $enable_tray_icon