configure.ac 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386
  1. dnl Process this file with autoconf to produce a configure script.
  2. # 추가된 경로 설정
  3. libdir='/usr/lib/x86_64-linux-gnu'
  4. AC_SUBST(libdir)
  5. AC_INIT(nimf, 1.3.5)
  6. AC_CONFIG_HEADERS([config.h])
  7. AC_CONFIG_MACRO_DIR([m4])
  8. AC_CONFIG_AUX_DIR([build-aux])
  9. AM_INIT_AUTOMAKE([subdir-objects -Wall -Werror])
  10. AM_MAINTAINER_MODE([disable])
  11. AM_SILENT_RULES([yes])
  12. AM_PROG_AR
  13. AC_PROG_CC
  14. AC_PROG_CXX
  15. AS_IF([test "$CXX" = "g++"],
  16. [AS_IF([test "$GXX" != "yes"],
  17. AC_MSG_ERROR([C++ compiler is not found.]))])
  18. AC_ARG_ENABLE([hardening],
  19. AS_HELP_STRING([--disable-hardening], [Disable hardening]))
  20. # EXTRA_CFLAGS="-Wall -Werror"
  21. EXTRA_CFLAGS="-Wall"
  22. AS_IF([test "x$enable_hardening" != "xno"],
  23. [AS_IF([echo "$EXTRA_CFLAGS" | grep -vq '\-D_FORTIFY_SOURCE'],
  24. [EXTRA_CFLAGS+=" -D_FORTIFY_SOURCE=2"])])
  25. AC_SUBST(EXTRA_CFLAGS)
  26. dnl ***************************************************************************
  27. dnl Internationalization
  28. dnl ***************************************************************************
  29. IT_PROG_INTLTOOL(0.50.1)
  30. GETTEXT_PACKAGE=nimf
  31. AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [gettext package name])
  32. AC_SUBST(GETTEXT_PACKAGE)
  33. AM_GLIB_GNU_GETTEXT
  34. AM_GLIB_DEFINE_LOCALEDIR(NIMF_LOCALE_DIR)
  35. LT_INIT([disable-static])
  36. dnl ***************************************************************************
  37. dnl libnimf
  38. dnl ***************************************************************************
  39. # Before making a release, the LT_VERSION string should be modified.
  40. # The string is of the form C:R:A.
  41. # - If interfaces have been changed or added, but binary compatibility has
  42. # been preserved, change to C+1:0:A+1
  43. # - If binary compatibility has been broken (eg removed or changed interfaces)
  44. # change to C+1:0:0
  45. # - If the interface is the same as the previous version, change to C:R+1:A
  46. LIBNIMF_LT_VERSION=1:0:0
  47. AC_SUBST(LIBNIMF_LT_VERSION)
  48. LIBNIMF_REQUIRES="glib-2.0 gio-2.0 gio-unix-2.0 gmodule-2.0"
  49. AC_SUBST(LIBNIMF_REQUIRES)
  50. PKG_CHECK_MODULES(LIBNIMF_DEPS, [$LIBNIMF_REQUIRES])
  51. dnl ***************************************************************************
  52. dnl nimf-libhangul nimf-system-keyboard
  53. dnl ***************************************************************************
  54. PKG_CHECK_MODULES(NIMF_LIBHANGUL_DEPS, [libhangul >= 0.0.12 $LIBNIMF_REQUIRES])
  55. PKG_CHECK_MODULES(NIMF_SYSTEM_KEYBOARD_DEPS,
  56. [xkbcommon >= 0.5.0 $LIBNIMF_REQUIRES])
  57. dnl ***************************************************************************
  58. dnl nimf-m17n
  59. dnl ***************************************************************************
  60. AC_ARG_ENABLE([nimf-m17n],
  61. AS_HELP_STRING([--disable-nimf-m17n], [Disable nimf-m17n]))
  62. AS_IF([test "x$enable_nimf_m17n" != "xno"],
  63. [PKG_CHECK_MODULES(NIMF_M17N_DEPS, [m17n-shell >= 1.7.0 m17n-db >= 1.7.0
  64. $LIBNIMF_REQUIRES])])
  65. AM_CONDITIONAL([ENABLE_NIMF_M17N], [test "x$enable_nimf_m17n" != "xno"])
  66. PKG_CHECK_EXISTS([m17n-db >= 1.8.0], [m17n_1_8_0_available="yes"])
  67. AM_CONDITIONAL([M17N_1_8_0_AVAILABLE], [test "x$m17n_1_8_0_available" = "xyes"])
  68. dnl ***************************************************************************
  69. dnl nimf-rime
  70. dnl ***************************************************************************
  71. AC_ARG_ENABLE([nimf-rime],
  72. AS_HELP_STRING([--disable-nimf-rime], [Disable nimf-rime]))
  73. AS_IF([test "x$enable_nimf_rime" != "xno"],
  74. [PKG_CHECK_MODULES(NIMF_RIME_DEPS, [rime >= 1.2.9 $LIBNIMF_REQUIRES])])
  75. AM_CONDITIONAL([ENABLE_NIMF_RIME], [test "x$enable_nimf_rime" != "xno"])
  76. dnl ***************************************************************************
  77. dnl nimf-anthy
  78. dnl ***************************************************************************
  79. AC_ARG_ENABLE([nimf-anthy],
  80. AS_HELP_STRING([--disable-nimf-anthy], [Disable nimf-anthy]))
  81. AS_IF([test "x$enable_nimf_anthy" != "xno"],
  82. [PKG_CHECK_MODULES(NIMF_ANTHY_DEPS, [anthy $LIBNIMF_REQUIRES])])
  83. AS_IF([test "x$enable_nimf_anthy" != "xno"],
  84. [AC_CHECK_FILE([/var/lib/anthy/anthy.dic], [HAVE_ANTHY_DIC="yes"])])
  85. AS_IF([test "x$enable_nimf_anthy" != "xno"],
  86. [AC_CHECK_FILE([/usr/share/anthy/anthy.dic], [HAVE_ANTHY_DIC="yes"])])
  87. AS_IF([test "x$enable_nimf_anthy" != "xno" -a "x$HAVE_ANTHY_DIC" != "xyes"],
  88. [AC_MSG_ERROR([anthy.dic is not found.])])
  89. AM_CONDITIONAL([ENABLE_NIMF_ANTHY], [test "x$enable_nimf_anthy" != "xno"])
  90. dnl ***************************************************************************
  91. dnl im-nimf-qt5
  92. dnl ***************************************************************************
  93. # Check for Qt5
  94. PKG_CHECK_MODULES(IM_NIMF_QT5_DEPS, [Qt5Core Qt5Gui Qt5Widgets], [has_qt5=yes], [has_qt5=no])
  95. AS_IF([test "x$has_qt5" = "xyes"], [
  96. QT5_VERSION=`pkg-config --modversion Qt5Core`
  97. QT5_INCLUDE_DIR=`pkg-config --variable=includedir Qt5Core`
  98. QT5_CORE_PRIVATE_INCLUDE_PATH=$QT5_INCLUDE_DIR/QtCore/$QT5_VERSION
  99. QT5_GUI_PRIVATE_INCLUDE_PATH=$QT5_INCLUDE_DIR/QtGui/$QT5_VERSION
  100. AC_CHECK_FILES(
  101. [$QT5_GUI_PRIVATE_INCLUDE_PATH/QtGui/qpa/qplatforminputcontext.h
  102. $QT5_GUI_PRIVATE_INCLUDE_PATH/QtGui/qpa/qplatforminputcontextplugin_p.h], [],
  103. AC_MSG_ERROR([Qt 5 base private development files are not found.]))
  104. AC_SUBST(QT5_CORE_PRIVATE_INCLUDE_PATH)
  105. AC_SUBST(QT5_GUI_PRIVATE_INCLUDE_PATH)
  106. AC_PATH_PROGS([QT5_MOC], [moc-qt5 moc], [no],
  107. [`pkg-config --variable=host_bins Qt5Core`])
  108. if test "x$QT5_MOC" = "xno"; then
  109. AC_MSG_ERROR([moc for qt5 not found])
  110. fi
  111. QT5_LIB_DIR=`pkg-config --variable=libdir Qt5Core`
  112. case `pkg-config --variable=includedir Qt5Core` in
  113. */qt5)
  114. QT5_IM_MODULE_DIR=$QT5_LIB_DIR/qt5/plugins/platforminputcontexts
  115. ;;
  116. */qt)
  117. QT5_IM_MODULE_DIR=$QT5_LIB_DIR/qt/plugins/platforminputcontexts
  118. ;;
  119. *)
  120. AC_MSG_ERROR(Can not determine Qt5 plugins/platforminputcontexts directory)
  121. ;;
  122. esac
  123. AC_SUBST(QT5_IM_MODULE_DIR)
  124. ])
  125. dnl ***************************************************************************
  126. dnl im-nimf-qt6
  127. dnl ***************************************************************************
  128. PKG_CHECK_MODULES(IM_NIMF_QT6_DEPS, [Qt6Core Qt6Gui Qt6Widgets], [has_qt6=yes], [has_qt6=no])
  129. AS_IF([test "x$has_qt6" = "xyes"], [
  130. QT6_VERSION=`pkg-config --modversion Qt6Core`
  131. QT6_INCLUDE_DIR=`pkg-config --variable=includedir Qt6Core`
  132. QT6_CORE_PRIVATE_INCLUDE_PATH=$QT6_INCLUDE_DIR/QtCore/$QT6_VERSION
  133. QT6_GUI_PRIVATE_INCLUDE_PATH=$QT6_INCLUDE_DIR/QtGui/$QT6_VERSION
  134. # Add Qt6 checks
  135. AC_CHECK_HEADERS([QtCore/QtCore,
  136. QtGui/QtGui,
  137. QtWidgets/QtWidgets,
  138. QtGui/6.4.2/QtGui/qpa/qplatforminputcontext.h])
  139. AC_CHECK_FILES(
  140. [$QT6_GUI_PRIVATE_INCLUDE_PATH/QtGui/qpa/qplatforminputcontext.h
  141. $QT6_GUI_PRIVATE_INCLUDE_PATH/QtGui/qpa/qplatforminputcontextplugin_p.h], [],
  142. AC_MSG_ERROR([Qt 6 base private development files are not found.]))
  143. AC_SUBST(QT6_CORE_PRIVATE_INCLUDE_PATH)
  144. AC_SUBST(QT6_GUI_PRIVATE_INCLUDE_PATH)
  145. AC_PATH_PROGS([QT6_MOC], [moc-qt6 moc], [no],
  146. [`pkg-config --variable=host_bins Qt6Core`])
  147. if test "x$QT6_MOC" = "xno"; then
  148. QT6_MOC=`find /usr/lib/ -name moc -type f | grep qt6`
  149. if test "x$QT6_MOC" = "x"; then
  150. AC_MSG_ERROR([moc for qt6 not found])
  151. fi
  152. fi
  153. QT6_LIB_DIR=`pkg-config --variable=libdir Qt6Core`
  154. case `pkg-config --variable=includedir Qt6Core` in
  155. */qt6)
  156. QT6_IM_MODULE_DIR=$QT6_LIB_DIR/qt6/plugins/platforminputcontexts
  157. ;;
  158. */qt)
  159. QT6_IM_MODULE_DIR=$QT6_LIB_DIR/qt/plugins/platforminputcontexts
  160. ;;
  161. *)
  162. AC_MSG_ERROR(Can not determine Qt6 plugins/platforminputcontexts directory)
  163. ;;
  164. esac
  165. AC_SUBST(QT6_IM_MODULE_DIR)
  166. ])
  167. AM_CONDITIONAL([HAVE_QT5], [test "x$has_qt5" = "xyes"])
  168. AM_CONDITIONAL([HAVE_QT6], [test "x$has_qt6" = "xyes"])
  169. dnl ***************************************************************************
  170. dnl Check for im-nimf-gtk
  171. dnl ***************************************************************************
  172. PKG_CHECK_MODULES(IM_NIMF_GTK3_DEPS, [gtk+-3.0 gdk-x11-3.0])
  173. PKG_CHECK_MODULES(IM_NIMF_GTK2_DEPS, [gtk+-2.0])
  174. case `uname -m` in
  175. x86_64)
  176. BITS=64
  177. ;;
  178. *)
  179. BITS=32
  180. ;;
  181. esac
  182. GTK3_LIBDIR=`pkg-config --variable=libdir gtk+-3.0`
  183. GTK3_BINARY_VERSION=`pkg-config --variable=gtk_binary_version gtk+-3.0`
  184. AC_SUBST(GTK3_LIBDIR)
  185. AC_SUBST(GTK3_BINARY_VERSION)
  186. AC_PATH_PROGS([GTK_QUERY_IMMODULES3],
  187. [gtk-query-immodules-3.0 gtk-query-immodules-3.0-64], [no],
  188. [/usr/bin:/snap/gnome-42-2204/176/usr/lib/x86_64-linux-gnu/libgtk-3-0:/usr/lib/x86_64-linux-gnu/libgtk-3-0t64:/usr/lib/x86_64-linux-gnu/libgtk-3-0])
  189. if test "x$GTK_QUERY_IMMODULES3" = "xno"; then
  190. AC_MSG_ERROR([gtk-query-immodules-3.0 or gtk-query-immodules-3.0-64 not found])
  191. fi
  192. AC_PATH_PROGS([GTK_QUERY_IMMODULES2],
  193. [gtk-query-immodules-2.0 gtk-query-immodules-2.0-64], [no],
  194. [/usr/bin:/snap/gnome-42-2204/176/usr/lib/x86_64-linux-gnu/libgtk2.0-0:/usr/lib/x86_64-linux-gnu/libgtk2.0-0t64:/usr/lib/x86_64-linux-gnu/libgtk2.0-0])
  195. if test "x$GTK_QUERY_IMMODULES2" = "xno"; then
  196. AC_MSG_ERROR([gtk-query-immodules-2.0 or gtk-query-immodules-2.0-64 not found])
  197. fi
  198. dnl ***************************************************************************
  199. dnl icon cache
  200. dnl ***************************************************************************
  201. AC_PATH_PROGS([GTK_UPDATE_ICON_CACHE],
  202. [gtk-update-icon-cache-3.0 gtk-update-icon-cache], [no],
  203. [/usr/bin:$GTK3_LIBDIR/libgtk-3-0:$GTK2_LIBDIR/libgtk2.0-0])
  204. if test "x$GTK_UPDATE_ICON_CACHE" = "xno"; then
  205. AC_MSG_ERROR([gtk-update-icon-cache-3.0 or gtk-update-icon-cache not found])
  206. fi
  207. AC_PATH_PROGS([RSVG_CONVERT], [rsvg-convert rsvg], [no])
  208. if test "x$RSVG_CONVERT" = "xno"; then
  209. AC_MSG_ERROR([rsvg-convert or rsvg is not found, please install librsvg2-bin])
  210. fi
  211. dnl ***************************************************************************
  212. dnl nimf-wayland
  213. dnl ***************************************************************************
  214. PKG_CHECK_MODULES(NIMF_WAYLAND_DEPS, [$LIBNIMF_REQUIRES]
  215. wayland-client wayland-server
  216. wayland-protocols xkbcommon)
  217. dnl ***************************************************************************
  218. dnl nimf-xim
  219. dnl ***************************************************************************
  220. PKG_CHECK_MODULES(NIMF_XIM_DEPS, [$LIBNIMF_REQUIRES] x11)
  221. dnl ***************************************************************************
  222. dnl nimf-nim
  223. dnl ***************************************************************************
  224. PKG_CHECK_MODULES(NIMF_NIM_DEPS, [$LIBNIMF_REQUIRES] glib-2.0 gio-2.0)
  225. dnl ***************************************************************************
  226. dnl nimf server
  227. dnl ***************************************************************************
  228. PKG_CHECK_MODULES(NIMF_DEPS, [glib-2.0 gio-2.0 gobject-2.0 gmodule-2.0])
  229. dnl ***************************************************************************
  230. dnl nimf-indicator
  231. dnl ***************************************************************************
  232. PKG_CHECK_MODULES(NIMF_INDICATOR_DEPS,
  233. [glib-2.0 x11 gtk+-3.0 ayatana-appindicator3-0.1 libxklavier gdk-3.0
  234. gdk-x11-3.0 gmodule-2.0])
  235. dnl ***************************************************************************
  236. dnl nimf-preedit-window nimf-candidate
  237. dnl ***************************************************************************
  238. PKG_CHECK_MODULES(NIMF_PREEDIT_WINDOW_DEPS, [glib-2.0 gtk+-3.0])
  239. PKG_CHECK_MODULES(NIMF_CANDIDATE_DEPS, [glib-2.0 gtk+-3.0])
  240. dnl ***************************************************************************
  241. dnl nimf-settings
  242. dnl ***************************************************************************
  243. PKG_CHECK_MODULES(NIMF_SETTINGS_DEPS,
  244. [gtk+-3.0 glib-2.0 >= 2.54 gio-2.0 gmodule-2.0 libxklavier
  245. gdk-3.0 gdk-x11-3.0])
  246. dnl ***************************************************************************
  247. dnl im-config data
  248. dnl ***************************************************************************
  249. AC_ARG_WITH([im-config-data],
  250. AS_HELP_STRING([--with-im-config-data], [Install im-config data]),
  251. [with_im_config_data=yes])
  252. AM_CONDITIONAL([WITH_IM_CONFIG_DATA],
  253. [test "$with_im_config_data" = "yes"])
  254. dnl ***************************************************************************
  255. dnl imsettings data
  256. dnl ***************************************************************************
  257. AC_ARG_WITH([imsettings-data],
  258. AS_HELP_STRING([--with-imsettings-data], [Install imsettings data]),
  259. [with_imsettings_data=yes])
  260. AM_CONDITIONAL([WITH_IMSETTINGS_DATA],
  261. [test "$with_imsettings_data" = "yes"])
  262. dnl ***************************************************************************
  263. dnl Check for gtk-doc
  264. dnl ***************************************************************************
  265. GTK_DOC_CHECK([1.26],[--flavour no-tmpl])
  266. dnl ***************************************************************************
  267. GLIB_GSETTINGS
  268. AC_OUTPUT([
  269. Makefile
  270. bin/Makefile
  271. bin/nimf/Makefile
  272. bin/nimf-settings/Makefile
  273. data/Makefile
  274. data/apparmor-abstractions/Makefile
  275. data/icons/Makefile
  276. data/im-config/Makefile
  277. data/imsettings/Makefile
  278. docs/Makefile
  279. libnimf/Makefile
  280. libnimf/nimf.pc
  281. modules/Makefile
  282. modules/clients/Makefile
  283. modules/clients/gtk/Makefile
  284. modules/clients/qt5/Makefile
  285. modules/clients/qt6/Makefile
  286. modules/engines/Makefile
  287. modules/engines/nimf-anthy/Makefile
  288. modules/engines/nimf-libhangul/Makefile
  289. modules/engines/nimf-m17n/Makefile
  290. modules/engines/nimf-m17n/icons/Makefile
  291. modules/engines/nimf-rime/Makefile
  292. modules/engines/nimf-system-keyboard/Makefile
  293. modules/services/Makefile
  294. modules/services/candidate/Makefile
  295. modules/services/indicator/Makefile
  296. modules/services/nim/Makefile
  297. modules/services/preedit-window/Makefile
  298. modules/services/wayland/Makefile
  299. modules/services/xim/Makefile
  300. po/Makefile.in
  301. ])