configure.ac 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632
  1. dnl
  2. dnl Configure.in file for the Midnight Commander
  3. dnl
  4. AC_INIT([GNU Midnight Commander], [], [mc-devel@gnome.org])
  5. AC_PREREQ(2.60)
  6. m4_pattern_forbid(MC_)
  7. AC_CONFIG_SRCDIR(src/main.c)
  8. AC_CONFIG_AUX_DIR(config)
  9. MC_VERSION
  10. AM_INIT_AUTOMAKE(mc, ${VERSION} )
  11. AM_CONFIG_HEADER(config.h)
  12. AM_MAINTAINER_MODE
  13. AC_CANONICAL_HOST
  14. AC_USE_SYSTEM_EXTENSIONS
  15. AC_PROG_LIBTOOL
  16. AC_ISC_POSIX
  17. AC_PROG_CC_STDC
  18. dnl Doxygen
  19. DX_HTML_FEATURE(ON)
  20. DX_CHM_FEATURE(OFF)
  21. DX_CHI_FEATURE(OFF)
  22. DX_MAN_FEATURE(OFF)
  23. DX_RTF_FEATURE(OFF)
  24. DX_XML_FEATURE(OFF)
  25. DX_PDF_FEATURE(OFF)
  26. DX_PS_FEATURE(OFF)
  27. DX_INIT_DOXYGEN(mc,doxygen.cfg,devel)
  28. dnl PKG_CHECK_MODULES([CHECK], [check >= 0.9.4])
  29. dnl
  30. dnl First try glib 2.x.
  31. dnl Keep this check close to the beginning, so that the users
  32. dnl without any glib won't have their time wasted by other checks.
  33. dnl
  34. AC_ARG_WITH([glib_static],
  35. [ --with-glib-static Link glib statically [[no]]])
  36. glib_found=no
  37. PKG_CHECK_MODULES(GLIB, [glib-2.0 >= 2.6], [glib_found=yes], [:])
  38. PKG_CHECK_MODULES(GMODULE, [gmodule-2.0], [gmodule_found=yes])
  39. GLIB_LIBDIR="`$PKG_CONFIG --variable=libdir glib-2.0`"
  40. if test "x$gmodule_found" = "xyes" ; then
  41. dnl Check if the gmodule functionality supported on this system.
  42. AC_G_MODULE_SUPPORTED
  43. fi
  44. AC_HEADER_MAJOR
  45. AC_C_CONST
  46. AC_SYS_LARGEFILE
  47. AC_PROG_LN_S
  48. AC_CHECK_TOOL(AR, ar, ar)
  49. dnl Only list browsers here that can be run in background (i.e. with `&')
  50. AC_CHECK_PROGS(X11_WWW, [gnome-moz-remote mozilla konqueror opera netscape])
  51. dnl
  52. dnl Ovverriding mmap support. This has to be before AC_FUNC_MMAP is used.
  53. dnl We use only part of the functionality of mmap, so on AIX,
  54. dnl it's possible to use mmap, even if it doesn't pass the autoconf test.
  55. dnl
  56. AC_ARG_WITH(mmap,
  57. [ --with-mmap Use the mmap call [[yes if found]]])
  58. if test x$with_mmap != xno; then
  59. if test x$with_mmap = x; then
  60. AC_FUNC_MMAP
  61. else
  62. AC_DEFINE(HAVE_MMAP, 1)
  63. fi
  64. fi
  65. dnl
  66. dnl Internationalization
  67. dnl
  68. AM_GNU_GETTEXT(no-libtool, need-ngettext)
  69. AM_GNU_GETTEXT_VERSION(0.14.3)
  70. if test "x$USE_INCLUDED_LIBINTL" = xyes; then
  71. CPPFLAGS="$CPPFLAGS -I\$(top_builddir)/intl -I\$(top_srcdir)/intl"
  72. fi
  73. dnl Determine which help translations we want to install.
  74. ALL_DOC_LINGUAS="es hu it pl ru sr"
  75. DOC_LINGUAS=
  76. if test "x$USE_NLS" = xyes; then
  77. if test -z "$LINGUAS"; then
  78. langs="`grep -v '^#' $srcdir/po/LINGUAS`"
  79. else
  80. langs="$LINGUAS"
  81. fi
  82. else
  83. langs=
  84. fi
  85. for h_lang in $ALL_DOC_LINGUAS; do
  86. for lang in $langs; do
  87. if test "$lang" = "$h_lang"; then
  88. DOC_LINGUAS="$DOC_LINGUAS $lang"
  89. break
  90. fi
  91. done
  92. done
  93. AC_SUBST(DOC_LINGUAS)
  94. dnl
  95. dnl OS specific flags.
  96. dnl
  97. case $host_os in
  98. aux*)
  99. # A/UX
  100. LIBS="$LIBS -lposix"
  101. AC_DEFINE(_POSIX_SOURCE)
  102. ;;
  103. esac
  104. dnl Extended Character Sets
  105. dnl
  106. AC_ARG_ENABLE([extcharset],
  107. AC_HELP_STRING([--enable-extcharset], [Enable extended character sets]))
  108. if test x"$enable_extcharset" = x"yes"; then
  109. AC_DEFINE([EXTCHARSET_ENABLED], 1, [Enable extended character sets?])
  110. fi
  111. AC_PROG_INSTALL
  112. AC_CHECK_HEADERS([unistd.h string.h memory.h grp.h limits.h malloc.h \
  113. stdlib.h termios.h utime.h fcntl.h pwd.h sys/statfs.h sys/vfs.h sys/time.h \
  114. sys/timeb.h sys/select.h sys/ioctl.h stropts.h arpa/inet.h \
  115. security/pam_misc.h sys/socket.h sys/sysmacros.h sys/types.h \
  116. sys/mkdev.h wchar.h wctype.h])
  117. AC_HEADER_TIME
  118. AC_HEADER_SYS_WAIT
  119. AC_HEADER_DIRENT
  120. AC_HEADER_STDC
  121. dnl Missing structure components
  122. AC_CHECK_MEMBERS([struct stat.st_blksize, struct stat.st_rdev])
  123. AC_STRUCT_ST_BLOCKS
  124. dnl
  125. dnl Check availability of some functions
  126. dnl
  127. AC_CHECK_FUNCS([\
  128. atoll \
  129. cfgetospeed \
  130. getegid geteuid getgid getsid getuid \
  131. initgroups isascii \
  132. memcpy memset \
  133. putenv \
  134. setreuid setuid statfs strerror strftime sysconf \
  135. tcgetattr tcsetattr truncate \
  136. ])
  137. dnl
  138. dnl getpt is a GNU Extension (glibc 2.1.x)
  139. dnl
  140. AC_CHECK_FUNCS(posix_openpt, , [AC_CHECK_FUNCS(getpt)])
  141. AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
  142. dnl replacing lstat with statlstat on sco makes it more portable between
  143. dnl sco clones
  144. AC_CHECK_FUNCS(statlstat)
  145. dnl
  146. dnl If running under AIX, AC_AIX does not tell us that
  147. dnl
  148. AC_MSG_CHECKING([for AIX defines])
  149. AC_EGREP_CPP(yes,
  150. [#if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
  151. yes
  152. #endif
  153. ], [
  154. AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
  155. AC_MSG_RESULT(yes)
  156. ], [AC_MSG_RESULT(no)])
  157. dnl
  158. dnl This is from GNU fileutils, check aclocal.m4 for more information
  159. dnl
  160. AC_GET_FS_INFO
  161. dnl
  162. dnl Missing typedefs and replacements
  163. dnl
  164. AC_CHECK_SIZEOF(long)
  165. AC_CHECK_SIZEOF(long long)
  166. AC_TYPE_MODE_T
  167. AC_TYPE_OFF_T
  168. AC_CHECK_SIZEOF(off_t)
  169. AC_TYPE_PID_T
  170. AC_TYPE_UID_T
  171. AC_CHECK_TYPE(nlink_t, unsigned int)
  172. AC_CHECK_TYPES([socklen_t],,,
  173. [
  174. #include <sys/types.h>
  175. #include <sys/socket.h>
  176. ])
  177. dnl This is needed for regex.c only
  178. AC_CHECK_TYPE(uintptr_t,
  179. [AC_DEFINE(HAVE_UINTPTR_T, 1,
  180. [Define if you have the `uintptr_t' type.])
  181. ])
  182. AC_FUNC_ALLOCA
  183. AC_FUNC_STRCOLL
  184. dnl
  185. dnl X11 support.
  186. dnl Used to read keyboard modifiers when running under X11.
  187. dnl
  188. AC_PATH_XTRA
  189. if test "x$no_x" = xyes; then
  190. textmode_x11_support="no"
  191. else
  192. CPPFLAGS="$CPPFLAGS $X_CFLAGS"
  193. if test "x$mc_cv_g_module_supported" = "xyes" ; then
  194. dnl Replace the contents of GLIB_CFLAGS and GLIB_LIBS with those of
  195. dnl GMODULE_CFLAGS and GMODULE_LIBS, only if X is available and gmodule
  196. dnl functionality is supported on the system. This way, mc will be
  197. dnl linked against the gmodule library only when it's really required.
  198. GLIB_CFLAGS="$GMODULE_CFLAGS"
  199. GLIB_LIBS="$GMODULE_LIBS"
  200. else
  201. MCLIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
  202. fi
  203. AC_DEFINE(HAVE_TEXTMODE_X11_SUPPORT, 1,
  204. [Define to enable getting events from X Window System])
  205. textmode_x11_support="yes"
  206. fi
  207. dnl
  208. dnl Try to find static libraries for glib and gmodule.
  209. dnl
  210. if test x$with_glib_static = xyes; then
  211. new_GLIB_LIBS=
  212. for i in $GLIB_LIBS; do
  213. case x$i in
  214. x-lglib*)
  215. lib=glib ;;
  216. x-lgmodule*)
  217. lib=gmodule ;;
  218. *)
  219. lib=
  220. add="$i" ;;
  221. esac
  222. if test -n "$lib"; then
  223. lib1=`echo $i | sed 's/^-l//'`
  224. if test -f "$GLIB_LIBDIR/lib${lib1}.a"; then
  225. add="$GLIB_LIBDIR/lib${lib1}.a"
  226. else
  227. if test -f "$GLIB_LIBDIR/lib${lib}.a"; then
  228. add="$GLIB_LIBDIR/lib${lib}.a"
  229. else
  230. AC_MSG_ERROR([Cannot find static $lib])
  231. fi
  232. fi
  233. fi
  234. new_GLIB_LIBS="$new_GLIB_LIBS $add"
  235. done
  236. GLIB_LIBS="$new_GLIB_LIBS"
  237. fi
  238. dnl
  239. dnl Network related functions
  240. dnl
  241. AC_SEARCH_LIBS([socket], [socket])
  242. AC_SEARCH_LIBS([gethostbyname], [nsl])
  243. dnl
  244. dnl Sequent wants getprocessstats
  245. dnl
  246. AC_CHECK_LIB(seq, get_process_stats, [
  247. LIBS="$LIBS -lseq"
  248. AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
  249. [Define if you have function `get_process_stats' and
  250. have to use that instead of gettimeofday])])
  251. AC_MC_VFS_CHECKS
  252. vfs_type="normal"
  253. if test x$use_vfs = xyes; then
  254. AC_MSG_NOTICE([enabling VFS code])
  255. vfs_type="Midnight Commander Virtual File System"
  256. fi
  257. dnl
  258. dnl Check for gpm mouse support (Linux only)
  259. dnl
  260. mouse_lib="xterm only"
  261. AC_ARG_WITH(gpm-mouse,
  262. [ --with-gpm-mouse Compile with gpm mouse support (Linux only)
  263. [[yes if found]]])
  264. case $host_os in
  265. linux*)
  266. if test x$with_gpm_mouse != xno; then
  267. AC_CHECK_LIB(gpm, Gpm_Repeat,
  268. [AC_DEFINE(HAVE_LIBGPM, 1,
  269. [Define to enable gpm mouse support on Linux])
  270. mouse_lib="gpm and xterm"
  271. MCLIBS="$MCLIBS -lgpm"],
  272. [AC_MSG_WARN([libgpm is missing or older than 0.18])
  273. ])
  274. fi
  275. ;;
  276. esac
  277. MC_CHECK_SEARCH_TYPE
  278. dnl
  279. dnl Check nroff and the options it supports
  280. dnl
  281. AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
  282. dnl Default values
  283. MANDOC=-man
  284. MAN_FLAGS=
  285. if $HAVE_nroff; then
  286. AC_MSG_CHECKING([for manual formatting macros])
  287. AC_CACHE_VAL(mc_cv_mandoc, [
  288. nroff -mandoc < /dev/null > /dev/null 2>&1
  289. if test $? = 0; then
  290. mc_cv_mandoc=-mandoc
  291. else
  292. mc_cv_mandoc=-man
  293. fi
  294. ])
  295. MANDOC=$mc_cv_mandoc
  296. AC_MSG_RESULT([$MANDOC])
  297. AC_MSG_CHECKING([for option to disable ANSI color in manuals])
  298. AC_CACHE_VAL(mc_cv_man_nocolor, [
  299. nroff -c < /dev/null > /dev/null 2>&1
  300. if test $? = 0; then
  301. mc_cv_man_nocolor=-c
  302. else
  303. mc_cv_man_nocolor=
  304. fi
  305. ])
  306. MAN_FLAGS=$mc_cv_man_nocolor
  307. AC_MSG_RESULT([${MAN_NOCOLOR-none}])
  308. AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
  309. AC_CACHE_VAL(mc_cv_nroff_tascii, [
  310. mc_cv_nroff_tascii=
  311. nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
  312. if test $? = 0; then
  313. mc_cv_nroff_tascii=-Tlatin1
  314. else
  315. nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
  316. if test $? = 0; then
  317. mc_cv_nroff_tascii=-Tascii
  318. fi
  319. fi
  320. ])
  321. AC_MSG_RESULT([${mc_cv_nroff_tascii-no}])
  322. MAN_FLAGS="$MAN_FLAGS $mc_cv_nroff_tascii"
  323. fi
  324. AC_SUBST(MANDOC)
  325. AC_SUBST(MAN_FLAGS)
  326. dnl
  327. dnl Check for -L option to file
  328. dnl
  329. AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
  330. if $HAVE_FILECMD; then
  331. AC_MSG_CHECKING([for -L option to file command])
  332. AC_CACHE_VAL(mc_cv_filel, [
  333. file -L . > /dev/null 2>&1
  334. if test $? = 0; then
  335. mc_cv_filel=yes
  336. else
  337. mc_cv_filel=no
  338. fi
  339. ])
  340. if test x$mc_cv_filel = xyes; then
  341. AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
  342. fi
  343. filel=$mc_cv_filel
  344. AC_MSG_RESULT([$filel])
  345. fi
  346. AC_MSG_CHECKING([for subshell support])
  347. AC_ARG_WITH(subshell,
  348. [ --with-subshell Compile in concurrent subshell [[yes]]
  349. --with-subshell=optional Don't run concurrent shell by default [[no]]],
  350. [result=no
  351. if test x$withval = xoptional
  352. then
  353. AC_DEFINE(SUBSHELL_OPTIONAL, 1,
  354. [Define to make subshell support optional])
  355. result="optional"
  356. fi
  357. if test x$withval = xyes
  358. then
  359. result="yes"
  360. fi],
  361. [dnl Default: enable the subshell support
  362. result="yes"
  363. ])
  364. if test "x$result" != xno; then
  365. AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
  366. [Define to enable subshell support])
  367. fi
  368. AC_MSG_RESULT([$result])
  369. subshell="$result"
  370. dnl
  371. dnl Select the screen library.
  372. dnl
  373. AC_ARG_WITH(screen,
  374. [ --with-screen=LIB Compile with screen library: slang or
  375. ncurses [[slang if found]]])
  376. case x$with_screen in
  377. xslang)
  378. MC_WITH_SLANG(strict)
  379. ;;
  380. xncurses)
  381. MC_WITH_NCURSES
  382. ;;
  383. xncursesw)
  384. MC_WITH_NCURSESW
  385. ;;
  386. x)
  387. MC_WITH_SLANG
  388. ;;
  389. *)
  390. AC_MSG_ERROR([Value of the screen library is incorrect])
  391. ;;
  392. esac
  393. dnl
  394. dnl Internal editor support.
  395. dnl
  396. AC_ARG_WITH(edit,
  397. [ --with-edit Enable internal editor [[yes]]])
  398. if test x$with_edit != xno; then
  399. AC_DEFINE(USE_INTERNAL_EDIT, 1, [Define to enable internal editor])
  400. use_edit=yes
  401. edit_msg="yes"
  402. AC_MSG_NOTICE([using internal editor])
  403. else
  404. edit_msg="no"
  405. fi
  406. dnl Check if the OS is supported by the console saver.
  407. cons_saver=""
  408. case $host_os in
  409. linux*)
  410. cons_saver=yes
  411. esac
  412. dnl Support for background operations
  413. AC_ARG_ENABLE([background],
  414. [ --enable-background Support for background file operations [[yes]]])
  415. if test "x$enable_background" != xno; then
  416. AC_DEFINE(WITH_BACKGROUND, 1, [Define to enable background file operations])
  417. fi
  418. dnl
  419. dnl User visible support for charset conversion.
  420. dnl
  421. AC_ARG_ENABLE([charset],
  422. [ --enable-charset Support for charset selection and conversion [[no]]])
  423. have_charset=
  424. charset_msg="no"
  425. if test "x$enable_charset" = xyes; then
  426. AC_DEFINE(HAVE_CHARSET, 1,
  427. [Define to enable charset selection and conversion])
  428. have_charset=yes
  429. charset_msg="yes"
  430. fi
  431. if test "$GLIBC21" != yes; then
  432. AC_DEFINE(USE_INCLUDED_REGEX, 1, [Use the regex included here])
  433. fi
  434. dnl If default CFLAGS is used with gcc, add -Wall
  435. if test -z "$ac_env_CFLAGS_set"; then
  436. if test -n "$GCC"; then
  437. CFLAGS="$CFLAGS -Wall"
  438. fi
  439. fi
  440. AC_SUBST(CFLAGS)
  441. AC_SUBST(CPPFLAGS)
  442. AC_SUBST(LDFLAGS)
  443. AC_SUBST(LIBS)
  444. dnl Libraries used only when building the mc binary
  445. AC_SUBST(MCLIBS)
  446. dnl Version for the RedHat package, without dashes
  447. RPM_VERSION=`echo $VERSION | sed 's/-/./g'`
  448. AC_SUBST(RPM_VERSION)
  449. if test -n "$use_smbfs"; then
  450. AC_CONFIG_SUBDIRS([vfs/samba])
  451. fi
  452. AM_CONDITIONAL(USE_EDIT, [test -n "$use_edit"])
  453. AM_CONDITIONAL(USE_VFS, [test "x$use_vfs" = xyes])
  454. AM_CONDITIONAL(USE_VFS_NET, [test x"$use_net_code" = xtrue])
  455. AM_CONDITIONAL(USE_UNDEL_FS, [test -n "$use_undelfs"])
  456. AM_CONDITIONAL(USE_SAMBA_FS, [test -n "$use_smbfs"])
  457. AM_CONDITIONAL(ENABLE_MCSERVER, [test x"$enable_mcserver" = "xyes"])
  458. AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
  459. AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
  460. AC_CONFIG_FILES([
  461. Makefile
  462. contrib/Makefile
  463. contrib/dist/Makefile
  464. contrib/dist/debian/Makefile
  465. contrib/dist/gentoo/Makefile
  466. contrib/dist/redhat/Makefile
  467. contrib/dist/redhat/mc.spec
  468. contrib/dist/mc.qpg
  469. contrib/dist/pkginfo
  470. contrib/dist/prototype
  471. misc/Makefile
  472. misc/mc.ext
  473. src/Makefile
  474. src/mcconfig/Makefile
  475. src/search/Makefile
  476. edit/Makefile
  477. syntax/Makefile
  478. vfs/Makefile
  479. vfs/extfs/Makefile
  480. vfs/extfs/a
  481. vfs/extfs/apt
  482. vfs/extfs/audio
  483. vfs/extfs/deb
  484. vfs/extfs/deba
  485. vfs/extfs/debd
  486. vfs/extfs/dpkg
  487. vfs/extfs/iso9660
  488. vfs/extfs/hp48
  489. vfs/extfs/lslR
  490. vfs/extfs/mailfs
  491. vfs/extfs/patchfs
  492. vfs/extfs/rpms
  493. vfs/extfs/uace
  494. vfs/extfs/ualz
  495. vfs/extfs/uar
  496. vfs/extfs/uarc
  497. vfs/extfs/uarj
  498. vfs/extfs/uc1541
  499. vfs/extfs/uha
  500. vfs/extfs/ulha
  501. vfs/extfs/urar
  502. vfs/extfs/uzip
  503. vfs/extfs/uzoo
  504. doc/Makefile
  505. doc/hints/Makefile
  506. doc/man/mc.1 doc/man/mcedit.1 doc/man/mcview.1 doc/man/mcserv.8 doc/man/Makefile
  507. doc/man/es/mc.1 doc/man/es/Makefile
  508. doc/man/hu/mc.1 doc/man/hu/Makefile
  509. doc/man/it/mc.1 doc/man/it/Makefile
  510. doc/man/pl/mc.1 doc/man/pl/Makefile
  511. doc/man/ru/mc.1 doc/man/ru/Makefile
  512. doc/man/sr/mc.1 doc/man/sr/mcserv.8 doc/man/sr/Makefile
  513. doc/hlp/Makefile
  514. doc/hlp/es/Makefile
  515. doc/hlp/hu/Makefile
  516. doc/hlp/it/Makefile
  517. doc/hlp/pl/Makefile
  518. doc/hlp/ru/Makefile
  519. doc/hlp/sr/Makefile
  520. intl/Makefile
  521. po/Makefile.in
  522. ])
  523. AC_OUTPUT
  524. echo "
  525. Configuration:
  526. Source code location: ${srcdir}
  527. Compiler: ${CC}
  528. Compiler flags: ${CFLAGS}
  529. File system: ${vfs_type}
  530. ${vfs_flags}
  531. Screen library: ${screen_msg}
  532. Mouse support: ${mouse_lib}
  533. X11 events support: ${textmode_x11_support}
  534. With subshell support: ${subshell}
  535. Internal editor: ${edit_msg}
  536. Support for charset: ${charset_msg}
  537. Search type: ${SEARCH_TYPE}
  538. "