configure.in 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625
  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.52)
  6. AC_CONFIG_SRCDIR(src/main.c)
  7. AC_CONFIG_AUX_DIR(config)
  8. AM_INIT_AUTOMAKE(mc, 4.6.0-pre1b)
  9. AM_CONFIG_HEADER(config.h)
  10. AM_MAINTAINER_MODE
  11. AC_CANONICAL_HOST
  12. AC_AIX
  13. AC_MINIX
  14. AC_ISC_POSIX
  15. AC_PROG_CC_STDC
  16. dnl
  17. dnl Check if the user requested to compile with glib 2.x. If not, use
  18. dnl glib 1.2.x. This check should be kept close to the beginning, as it
  19. dnl fails for the users without any glib.
  20. dnl
  21. AC_ARG_WITH(glib2, [ --with-glib2 Use glib 2.x [[no]]])
  22. if test "x$with_glib2" = "xyes" ; then
  23. PKG_CHECK_MODULES(GLIB, "glib-2.0")
  24. else
  25. dnl This temporary variable is a workaround for a bug in Autoconf-2.53
  26. glib_path=$PATH:/usr/local/bin
  27. dnl Klugde for FreeBSD, where glib-config is renamed to glib12-config.
  28. AC_PATH_PROGS([GLIB_CONFIG], [glib-config glib12-config],,[$glib_path])
  29. AC_ARG_VAR([GLIB_CONFIG], [Path to glib-config (version 1.2.x only)])
  30. AM_PATH_GLIB(1.2.6,,[AC_MSG_ERROR([Test for glib failed.
  31. GNU Midnight Commander requires glib 1.2.6 or above.])])
  32. fi
  33. AC_HEADER_MAJOR
  34. AC_C_CONST
  35. AC_SYS_LARGEFILE
  36. AC_PROG_LN_S
  37. AC_CHECK_TOOL(AR, ar, ar)
  38. dnl Only list browsers here that can be run in background (i.e. with `&')
  39. AC_CHECK_PROGS(X11_WWW, [gnome-moz-remote mozilla konqueror opera netscape])
  40. dnl
  41. dnl Ovverriding mmap support. This has to be before AC_FUNC_MMAP is used.
  42. dnl We use only part of the functionality of mmap, so on AIX,
  43. dnl it's possible to use mmap, even if it doesn't pass the autoconf test.
  44. dnl
  45. AC_ARG_WITH(mmap,
  46. [ --with-mmap Force using the mmap call (only useful on AIX)],
  47. [case $withval in
  48. yes)
  49. ac_cv_func_mmap_fixed_mapped=yes
  50. AC_MSG_NOTICE([forcing MMAP support])
  51. ;;
  52. no)
  53. ac_cv_func_mmap_fixed_mapped=no
  54. AC_MSG_NOTICE([disabling MMAP support])
  55. ;;
  56. esac])
  57. AC_FUNC_MMAP
  58. ALL_LINGUAS="az be bg ca cs da de el es es_ES eu fi fr hu it ja ko lv \
  59. nl no pl pt pt_BR ro ru sk sl sv uk ta tr wa zh_CN zh_TW"
  60. dnl
  61. dnl Internationalization
  62. dnl
  63. AM_GNU_GETTEXT
  64. AM_GNU_GETTEXT_VERSION(0.11.5)
  65. if test "x$USE_INCLUDED_LIBINTL" = xyes; then
  66. CPPFLAGS="$CPPFLAGS -I\$(top_builddir)/intl -I\$(top_srcdir)/intl"
  67. fi
  68. dnl
  69. dnl Hack to make extraconf.h visible even if compiling outside srcdir.
  70. dnl
  71. CPPFLAGS="$CPPFLAGS -I\$(top_srcdir)"
  72. dnl
  73. dnl Enforce coding standards
  74. dnl
  75. if test "x$GCC" = xyes; then
  76. CFLAGS="$CFLAGS -Wall"
  77. fi
  78. dnl
  79. dnl OS specific flags.
  80. dnl
  81. posix_libs=""
  82. case $host_os in
  83. aux*)
  84. # A/UX
  85. posix_libs="-lposix"
  86. AC_DEFINE(_POSIX_SOURCE)
  87. ;;
  88. sco*)
  89. AC_DEFINE(SCO_FLAVOR, 1, [Define if you want to turn on SCO-specific code])
  90. AC_DEFINE(_SVID3, 1, [Needs to be defined on SCO])
  91. ;;
  92. esac
  93. AC_PROG_INSTALL
  94. AC_CHECK_HEADERS([unistd.h string.h memory.h crypt.h grp.h limits.h \
  95. malloc.h stdlib.h termios.h utime.h fcntl.h pwd.h sys/statfs.h \
  96. sys/time.h sys/timeb.h sys/select.h sys/ioctl.h stropts.h \
  97. arpa/inet.h])
  98. AC_HEADER_TIME
  99. AC_HEADER_SYS_WAIT
  100. AC_HEADER_DIRENT
  101. AC_HEADER_STDC
  102. dnl Missing structure components
  103. AC_STRUCT_ST_BLKSIZE
  104. AC_STRUCT_ST_BLOCKS
  105. AC_STRUCT_ST_RDEV
  106. dnl
  107. dnl Check availability of some functions
  108. dnl
  109. AC_CHECK_FUNCS([strerror statfs strftime \
  110. memmove pwdauth truncate initgroups putenv \
  111. memset memcpy tcsetattr tcgetattr cfgetospeed \
  112. sigaction sigemptyset sigprocmask sigaddset \
  113. sysconf setuid setreuid telldir seekdir])
  114. dnl
  115. dnl getpt is a GNU Extension (glibc 2.1.x)
  116. dnl
  117. AC_CHECK_FUNCS(getpt)
  118. dnl
  119. dnl On SCO and some SVR4, crypt is on libcrypt.a
  120. dnl grantpt in libpt.a
  121. dnl
  122. LCRYPT=""
  123. AC_CHECK_FUNCS(crypt, , [
  124. AC_CHECK_LIB(crypt, crypt, [LCRYPT="-lcrypt"], [
  125. AC_CHECK_LIB(crypt_i, crypt, [LCRYPT="-lcrypt_i"])])])
  126. AC_SUBST(LCRYPT)
  127. AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
  128. dnl replacing lstat with statlstat on sco makes it more portable between
  129. dnl sco clones
  130. AC_CHECK_FUNCS(statlstat)
  131. dnl
  132. dnl If running under AIX, AC_AIX does not tell us that
  133. dnl
  134. AC_MSG_CHECKING([for AIX defines])
  135. AC_EGREP_CPP(yes,
  136. [#if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
  137. yes
  138. #endif
  139. ], [
  140. AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
  141. AC_MSG_RESULT(yes)
  142. ], [AC_MSG_RESULT(no)])
  143. dnl
  144. dnl This is from GNU fileutils, check aclocal.m4 for more information
  145. dnl
  146. AC_GET_FS_INFO
  147. dnl
  148. dnl Missing typedefs and replacements
  149. dnl
  150. AC_TYPE_MODE_T
  151. AC_CHECK_TYPE(umode_t, int)
  152. AC_CHECK_TYPE(off_t, long)
  153. AC_TYPE_PID_T
  154. AC_TYPE_UID_T
  155. AC_CHECK_TYPE(nlink_t, unsigned int)
  156. AC_FUNC_ALLOCA
  157. AC_FUNC_STRCOLL
  158. dnl
  159. dnl X11 support.
  160. dnl
  161. textmode_x11_support="no"
  162. AC_ARG_WITH(tm-x-support,
  163. [ --with-tm-x-support Get keyboard events from X Window System [[no]]],
  164. [if test x$withval = xyes; then
  165. AC_PATH_XTRA
  166. CPPFLAGS="$CPPFLAGS $X_CFLAGS"
  167. MCLIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
  168. AC_DEFINE(HAVE_TEXTMODE_X11_SUPPORT, 1,
  169. [Define to enable getting events from X Window System])
  170. textmode_x11_support="yes"
  171. fi
  172. ])
  173. dnl
  174. dnl Network related functions
  175. dnl
  176. AC_CHECK_LIB(nsl, t_accept)
  177. AC_CHECK_LIB(socket, socket)
  178. have_socket=no
  179. AC_CHECK_FUNCS(socket, have_socket=yes)
  180. if test $have_socket = no; then
  181. # socket is not in the default libraries. See if it's in some other.
  182. for lib in bsd socket inet; do
  183. AC_CHECK_LIB($lib, socket, [
  184. LIBS="$LIBS -l$lib"
  185. have_socket=yes
  186. AC_DEFINE(HAVE_SOCKET)
  187. break])
  188. done
  189. fi
  190. have_gethostbyname=no
  191. AC_CHECK_FUNC(gethostbyname, [have_gethostbyname=yes])
  192. if test $have_gethostbyname = no; then
  193. # gethostbyname is not in the default libraries. See if it's in some other.
  194. for lib in bsd socket inet; do
  195. AC_CHECK_LIB([$lib], [gethostbyname],
  196. [LIBS="$LIBS -l$lib"; have_gethostbyname=yes; break])
  197. done
  198. fi
  199. AC_CHECK_FUNCS(socketpair)
  200. dnl
  201. dnl Sequent wants getprocessstats
  202. dnl
  203. AC_CHECK_LIB(seq, get_process_stats, [
  204. LIBS="$LIBS -lseq"
  205. AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
  206. [Define if you have function `get_process_stats' and
  207. have to use that instead of gettimeofday])])
  208. MC_VFS_CHECKS
  209. vfs_type="normal"
  210. if test x$use_vfs = xyes; then
  211. AC_MSG_NOTICE([enabling VFS code])
  212. vfs_type="Midnight Commander Virtual File System"
  213. fi
  214. dnl
  215. dnl Check for gpm mouse support (Linux only)
  216. dnl
  217. mouse_lib="xterm only"
  218. AC_ARG_WITH(gpm-mouse,
  219. [ --with-gpm-mouse Compile with gpm mouse support (Linux only)
  220. [[yes if found]]])
  221. case $host_os in
  222. linux*)
  223. if test x$with_gpm_mouse != xno; then
  224. AC_CHECK_LIB(gpm, Gpm_Repeat,
  225. [AC_DEFINE(HAVE_LIBGPM, 1,
  226. [Define to enable gpm mouse support on Linux])
  227. mouse_lib="gpm and xterm"
  228. MCLIBS="$MCLIBS -lgpm"],
  229. [AC_MSG_WARN([libgpm is missing or older than 0.18])
  230. ])
  231. fi
  232. ;;
  233. esac
  234. dnl
  235. dnl Check for the -mandoc package
  236. dnl
  237. AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
  238. if $HAVE_nroff; then
  239. AC_MSG_CHECKING([for manual formatting macros])
  240. AC_CACHE_VAL(ac_cv_mandoc, [
  241. nroff -mandoc < /dev/null > /dev/null 2>&1
  242. if test $? = 0
  243. then
  244. ac_cv_mandoc=-mandoc
  245. else
  246. ac_cv_mandoc=-man
  247. fi
  248. ])
  249. MANDOC=$ac_cv_mandoc
  250. AC_MSG_RESULT([$MANDOC])
  251. else
  252. MANDOC=-man
  253. fi
  254. AC_SUBST(MANDOC)
  255. dnl
  256. dnl Check if nroff accepts -Tlatin1 or -Tascii
  257. dnl
  258. if $HAVE_nroff; then
  259. AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
  260. AC_CACHE_VAL(ac_cv_nroff_tascii, [
  261. nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
  262. if test $? = 0
  263. then
  264. ac_cv_nroff_tascii=" -Tlatin1"
  265. else
  266. nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
  267. if test $? = 0
  268. then
  269. ac_cv_nroff_tascii=" -Tascii"
  270. else
  271. ac_cv_nroff_tascii=""
  272. fi
  273. fi
  274. ])
  275. if test "x$ac_cv_nroff_tascii" = x; then
  276. AC_MSG_RESULT([no])
  277. else
  278. AC_MSG_RESULT([yes,$ac_cv_nroff_tascii])
  279. fi
  280. fi
  281. TROFFASCII="$ac_cv_nroff_tascii"
  282. AC_SUBST(TROFFASCII)
  283. dnl
  284. dnl Check for - option to file
  285. dnl
  286. AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
  287. if $HAVE_FILECMD; then
  288. AC_MSG_CHECKING([for - option to file command])
  289. AC_CACHE_VAL(ac_cv_filestdin, [[
  290. cat > conftest.c <<\EOF
  291. /* A comment */
  292. #if 0
  293. #endif
  294. void main(void)
  295. { return; }
  296. EOF
  297. cat > conftest.sed <<\EOF
  298. s/^[^:]*:[ ]*//
  299. s/[ ]*$//
  300. EOF
  301. filehyphen_1=`file conftest.c 2>/dev/null | sed -f conftest.sed`
  302. filehyphen_2=`cat conftest.c | file - 2>/dev/null | sed -f conftest.sed`
  303. if test "x$filehyphen_1" = "x$filehyphen_2"; then
  304. ac_cv_filestdin=yes
  305. else
  306. ac_cv_filestdin=no
  307. fi
  308. rm conftest.c conftest.sed
  309. ]])
  310. if test x$ac_cv_filestdin = xyes; then
  311. AC_DEFINE(FILE_STDIN, 1,
  312. [Define if the file command accepts - for stdin])
  313. fi
  314. filestdin=$ac_cv_filestdin
  315. AC_MSG_RESULT([$filestdin])
  316. dnl
  317. dnl Check for -L option to file
  318. dnl
  319. AC_MSG_CHECKING([for -L option to file command])
  320. AC_CACHE_VAL(ac_cv_filel, [
  321. file -L . > /dev/null 2>&1
  322. if test $? = 0
  323. then
  324. ac_cv_filel=yes
  325. else
  326. ac_cv_filel=no
  327. fi
  328. ])
  329. if test x$ac_cv_filel = xyes; then
  330. AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
  331. fi
  332. filel=$ac_cv_filel
  333. AC_MSG_RESULT([$filel])
  334. fi
  335. AC_MSG_CHECKING([for subshell support])
  336. AC_ARG_WITH(subshell,
  337. [ --with-subshell Compile in concurrent subshell [[yes]]
  338. --with-subshell=optional Don't run concurrent shell by default [[no]]],
  339. [result=no
  340. if test x$withval = xoptional
  341. then
  342. AC_DEFINE(SUBSHELL_OPTIONAL, 1,
  343. [Define to make subshell support optional])
  344. result="optional"
  345. fi
  346. if test x$withval = xyes
  347. then
  348. result="yes"
  349. fi],
  350. [dnl Default: enable the subshell support
  351. result="yes"
  352. ])
  353. if test "x$result" != xno; then
  354. AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
  355. [Define to enable subshell support])
  356. fi
  357. AC_MSG_RESULT([$result])
  358. subshell="$result"
  359. dnl
  360. dnl Select the screen library. mcslang is the included S-Lang library.
  361. dnl
  362. AC_ARG_WITH(screen,
  363. [ --with-screen=LIB Compile with screen library: slang, mcslang or
  364. ncurses [[slang if found, else mcslang]]])
  365. case x$with_screen in
  366. xslang)
  367. MC_WITH_SLANG(strict)
  368. ;;
  369. xmcslang)
  370. MC_WITH_MCSLANG
  371. ;;
  372. xncurses)
  373. MC_WITH_NCURSES
  374. ;;
  375. x)
  376. MC_WITH_SLANG
  377. ;;
  378. *)
  379. AC_MSG_ERROR([Value of the screen library is incorrect])
  380. ;;
  381. esac
  382. dnl
  383. dnl Force using termcap. This option is processed in MC_WITH_MCSLANG.
  384. dnl Report an error if this option is not applicable.
  385. dnl
  386. AC_ARG_WITH(termcap,
  387. [ --with-termcap Try using termcap database [[only if no terminfo]]],
  388. [if test x$with_screen != xmcslang; then
  389. AC_MSG_ERROR([Option `--with-termcap' only works with `--with-screen=mcslang'])
  390. fi
  391. ])
  392. dnl
  393. dnl Internal editor support.
  394. dnl
  395. AC_ARG_WITH(edit,
  396. [ --with-edit Enable internal editor [[yes]]])
  397. if test x$with_edit != xno; then
  398. AC_DEFINE(USE_INTERNAL_EDIT, 1, [Define to enable internal editor])
  399. use_edit=yes
  400. edit_msg="yes"
  401. AC_MSG_NOTICE([using internal editor])
  402. else
  403. edit_msg="no"
  404. fi
  405. if test $use_vfs = yes; then
  406. AC_ARG_WITH(ext2undel,
  407. [ --with-ext2undel Compile with ext2 undelete code [[yes if found]]],
  408. [if test x$withval != xno; then
  409. if test x$withval != xyes; then
  410. LDFLAGS="$LDFLAGS -L$withval/lib"
  411. CPPFLAGS="$CPPFLAGS -I$withval/include"
  412. fi
  413. AC_EXT2_UNDEL
  414. fi],[
  415. dnl Default: detect
  416. AC_CHECK_LIB(ext2fs, ext2fs_close, [AC_EXT2_UNDEL], , [-lcom_err])
  417. ])
  418. fi
  419. dnl
  420. dnl The variables used for expanding the auto saver.
  421. dnl
  422. cons_saver=""
  423. install_saver="no"
  424. PAMLIBS=""
  425. case $host_os in
  426. linux*)
  427. cons_saver="cons.saver"
  428. install_saver="yes"
  429. dnl
  430. dnl On Linux, check for PAM authentication available
  431. dnl
  432. AC_CHECK_LIB(pam, pam_start, [
  433. AC_DEFINE(HAVE_PAM, 1,
  434. [Define if PAM (Pluggable Authentication Modules) is available])
  435. PAMLIBS="-lpam -ldl"
  436. ],[],[-ldl])
  437. ;;
  438. esac
  439. AC_SUBST(cons_saver)
  440. AC_SUBST(PAMLIBS)
  441. dnl
  442. dnl User visible support for charset conversion.
  443. dnl
  444. AC_ARG_ENABLE([charset],
  445. [ --enable-charset Support for charset selection and conversion [[no]]])
  446. have_charset=
  447. if test "x$enable_charset" = xyes; then
  448. if test "x$am_cv_func_iconv" != xyes; then
  449. AC_MSG_WARN([Cannot enable charset support because iconv function is missing])
  450. else
  451. AC_DEFINE(HAVE_CHARSET, 1,
  452. [Define to enable charset selection and conversion])
  453. have_charset=yes
  454. fi
  455. fi
  456. if test "$GLIBC21" != yes; then
  457. AC_DEFINE(USE_INCLUDED_REGEX, 1, [Use the regex included here])
  458. fi
  459. LIBS="$LIBS $posix_libs"
  460. AC_SUBST(CFLAGS)
  461. AC_SUBST(CPPFLAGS)
  462. AC_SUBST(LDFLAGS)
  463. AC_SUBST(LIBS)
  464. dnl Libraries used only when building the mc binary
  465. AC_SUBST(MCLIBS)
  466. dnl Version for the RedHat package, without dashes
  467. RPM_VERSION=`echo $VERSION | sed 's/-//g'`
  468. AC_SUBST(RPM_VERSION)
  469. if test -n "$use_smbfs"; then
  470. AC_CONFIG_SUBDIRS([vfs/samba])
  471. fi
  472. AM_CONDITIONAL(USE_EDIT, [test -n "$use_edit"])
  473. AM_CONDITIONAL(USE_VFS, [test "x$use_vfs" = xyes])
  474. AM_CONDITIONAL(USE_VFS_NET, [test x"$use_net_code" = xtrue])
  475. AM_CONDITIONAL(USE_UNDEL_FS, [test -n "$use_undelfs"])
  476. AM_CONDITIONAL(USE_SAMBA_FS, [test -n "$use_smbfs"])
  477. AM_CONDITIONAL(USE_MCFS, [test -n "$use_mcfs"])
  478. AM_CONDITIONAL(INCLUDED_SLANG, [test "x$with_screen" = xmcslang])
  479. AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
  480. AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
  481. AH_BOTTOM([#include <extraconf.h>])
  482. AC_CONFIG_FILES([
  483. Makefile
  484. mc.spec
  485. doc/Makefile
  486. vfs/Makefile
  487. vfs/extfs/Makefile
  488. lib/Makefile
  489. src/Makefile
  490. slang/Makefile
  491. edit/Makefile
  492. syntax/Makefile
  493. pc/Makefile
  494. m4/Makefile
  495. lib/mc.ext
  496. lib/mc.sh
  497. lib/mc.csh
  498. vfs/extfs/deb
  499. vfs/extfs/ftplist
  500. vfs/extfs/lslR
  501. vfs/extfs/uar
  502. vfs/extfs/ucpio
  503. vfs/extfs/ulha
  504. vfs/extfs/uha
  505. vfs/extfs/urar
  506. vfs/extfs/uzoo
  507. doc/mc.1 doc/mcedit.1 doc/mcserv.8
  508. doc/es/mc.1 doc/es/Makefile
  509. doc/hu/mc.1 doc/hu/Makefile
  510. doc/it/mc.1 doc/it/Makefile
  511. doc/pl/mc.1 doc/pl/Makefile
  512. doc/ru/mc.1 doc/ru/Makefile
  513. intl/Makefile
  514. po/Makefile.in
  515. ])
  516. AC_OUTPUT
  517. # Expand $bindir and $datadir to show the user.
  518. # Two levels of expansion should be enough.
  519. bindir_msg=`eval echo "$bindir"`
  520. bindir_msg=`eval echo "$bindir_msg"`
  521. datadir_msg=`eval echo "$datadir"`
  522. datadir_msg=`eval echo "$datadir_msg"`
  523. echo "
  524. Configuration:
  525. Source code location: ${srcdir}
  526. Compiler: ${CC}
  527. Compiler flags: ${CFLAGS}
  528. File system: ${vfs_type}
  529. ${vfs_flags}
  530. Screen library: ${screen_msg}
  531. Install console saver: ${install_saver}
  532. Mouse support: ${mouse_lib}
  533. X11 events support: ${textmode_x11_support}
  534. With subshell support: ${subshell}
  535. Internal editor: ${edit_msg}
  536. Install path for binaries: ${bindir_msg}
  537. Install path for data: ${datadir_msg}
  538. "