Develop and Download Open Source Software

Browse CVS Repository

Contents of /freewnn/FreeWnn/configure.in

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.52 - (show annotations) (download)
Sun Jul 11 10:18:16 2010 UTC (13 years, 9 months ago) by aonoto
Branch: MAIN
Changes since 1.51: +65 -1 lines
Added (first step of) support for new installation path layout. Maybe
useful for package managers.  Please note that new layout is disabled
by default. You need to specify following configure parameter if you
try this.

- Added --enable-traditional-layout (default: yes) parameter to
  configure. If disabled, we install jserver / wnnstat / wnnkill to
  sbindir. Currently this will take effect on program path only.
- Also added --enable-sub-bindir (default: yes if
  --enable-traditional-layout, no otherwise). If disabled, we install
  programs to bindir (/ sbindir) directly (i.e. we don't mkdir Wnn4
  (, cWnn4 and kWnn4) sub directory to bindir (/ sbindir)) .
- Enable --program-transform-name and its family to programs
  (ex. jserver, uum, wnnkill, atod) and corresponding manpages.
- Update INSTALL documentation (Japanese version). English version
  will come later ...
- Strip old mail address (as usual).
- Merged part of my code to build correctly if builddir != srcdir (as
  usual).

1 dnl
2 dnl $Id: configure.in,v 1.51 2010/04/25 10:38:55 aonoto Exp $
3 dnl
4
5 dnl
6 dnl FreeWnn is a network-extensible Kana-to-Kanji conversion system.
7 dnl This file is part of FreeWnn.
8 dnl
9 dnl Copyright Kyoto University Research Institute for Mathematical Sciences
10 dnl 1987, 1988, 1989, 1990, 1991, 1992
11 dnl Copyright OMRON Corporation. 1987, 1988, 1989, 1990, 1991, 1992, 1999
12 dnl Copyright ASTEC, Inc. 1987, 1988, 1989, 1990, 1991, 1992
13 dnl Copyright FreeWnn Project
14 dnl 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
15 dnl 2010
16 dnl
17 dnl Maintainer: FreeWnn Project
18 dnl
19 dnl This program is free software; you can redistribute it and/or modify
20 dnl it under the terms of the GNU General Public License as published by
21 dnl the Free Software Foundation; either version 2 of the License, or
22 dnl (at your option) any later version.
23 dnl
24 dnl This program is distributed in the hope that it will be useful,
25 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
26 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27 dnl GNU General Public License for more details.
28 dnl
29 dnl You should have received a copy of the GNU General Public License
30 dnl along with this program; if not, write to the Free Software
31 dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
32 dnl
33
34 dnl
35 dnl Process this file with autoconf to produce a configure script.
36 dnl
37 AC_INIT(FreeWnn, [1.1.1-cvs-a022], [freewnn-users-owner@lists.sourceforge.jp], FreeWnn)
38 AC_CONFIG_SRCDIR(Wnn/conv/cvt_head.h)
39 dnl old-style AC_INIT ...
40 dnl AC_INIT(Wnn/conv/cvt_head.h)
41 AC_CONFIG_HEADER(config.h)
42
43 dnl ====================================================================
44 dnl Check optional features
45 dnl ====================================================================
46
47 # Quick and Dirty workaround for Autoconf-2.53 and Libtools-1.5.* pair ...
48 # not to use additional tagged configuration. (default: CXX F77)
49 # NOTICE: Please remove next line if situation changes. (aono)
50 tagnames=
51
52 AC_CANONICAL_HOST
53
54 dnl
55 AC_ARG_PROGRAM
56
57 dnl build and install libraries, server or client
58
59 AC_ARG_ENABLE(debug,
60 [ --enable-debug enable debug options [[default=no]]],
61 [case "${enableval}" in
62 yes) debug=true ;;
63 no) debug=false ;;
64 *) AC_MSG_ERROR(bad value for --enable-debug)
65 esac], debug=false)
66
67 AC_ARG_ENABLE(libraries,
68 [ --enable-libraries build and install libraries [[default=yes]]],
69 [case "${enableval}" in
70 yes) libraries=true ;;
71 no) libraries=false ;;
72 *) AC_MSG_ERROR(bad value for --enable-libraries) ;;
73 esac], libraries=true)
74
75 AC_ARG_ENABLE(server,
76 [ --enable-server build and install server [[default=yes]]],
77 [case "${enableval}" in
78 yes) server=true ;;
79 no) server=false ;;
80 *) AC_MSG_ERROR(bad value for --enable-server) ;;
81 esac], server=true)
82
83 AC_ARG_ENABLE(client,
84 [ --enable-client build and install clients [[default=no]]],
85 [case "${enableval}" in
86 yes) client=true ;;
87 no) client=false ;;
88 *) AC_MSG_ERROR(bad value for --enable-client) ;;
89 esac], client=false)
90
91 AC_ARG_ENABLE(client-utmp,
92 [ --enable-client-utmp write utmp with client [[default=yes if not modern BSD]]],
93 [case "${enableval}" in
94 yes) client_utmp=true ;;
95 no) client_utmp=false ;;
96 *) AC_MSG_ERROR(bad value for --enable-client-utmp) ;;
97 esac],
98 client_utmp=auto
99 )
100
101 dnl If you set set-[ug]id user/group to (ex.) 'yes',
102 dnl you can configure this with setting UUMOWNER / UUMGROUP .
103 AC_ARG_ENABLE(client-setuid,
104 [ --enable-client-setuid[[=user]] Install client with setuid and specified user [[default=guess if your system need this]]],
105 [case "${enableval}" in
106 yes) client_setuid=true; UUMOWNER=${UUMOWNER:-root} ;;
107 no) client_setuid=false ;;
108 *) client_setuid=true; UUMOWNER=${enableval} ;;
109 esac],
110 [client_setuid=auto # guess later ...
111 UUMOWNER=root]
112 )
113
114 AC_ARG_ENABLE(client-setgid,
115 [ --enable-client-setgid=group Install client with setgid and specified group [[default=guess if your system need this]]],
116 [case "${enableval}" in
117 yes)
118 if test "x$UUMGROUP" = "x"; then
119 AC_ERROR([You must set group name with --enable-client-setgid.])
120 else
121 client_setgid=true; # we already defined UUMGROUP ...
122 fi
123 ;;
124 no) client_setgid=false ;;
125 *) client_setgid=true; UUMGROUP=${enableval} ;;
126 esac],
127 [client_setgid=auto # guess later ...
128 UUMGROUP=]
129 )
130
131 if test $libraries = true; then
132 SUBDIRS="\$(LIB_SUBDIRS)"
133 WNNMANDIR="\$(LIB_WNNMANDIR)"
134 fi
135 if test $server = true; then
136 SUBDIRS="$SUBDIRS \$(SERVER_SUBDIRS)"
137 WNNMANDIR="$WNNMANDIR \$(SERVER_WNNMANDIR)"
138 fi
139 if test $client = true; then
140 SUBDIRS="$SUBDIRS \$(CLIENT_SUBDIRS)"
141 dnl currently client is only uum and its man is in SERVER_WNNMANDIR
142 dnl WNNMANDIR=$WNNMANDIR \$(CLIENT_WNNMANDIR)"
143 fi
144
145 AC_SUBST(SUBDIRS)
146 AC_SUBST(WNNMANDIR)
147
148 dnl For Severs
149
150 AC_ARG_ENABLE(Wnn,
151 [ --enable-Wnn build and install Wnn [[default=yes]]],
152 [case "${enableval}" in
153 yes) Wnn="Wnn";;
154 no) Wnn="" ;;
155 *) AC_MSG_ERROR(bad value for --enable-Wnn) ;;
156 esac], Wnn="Wnn")
157 AC_SUBST(Wnn)
158
159 if test "$server" = true -a "$Wnn" = Wnn; then
160 # JSERVER_SUBDIRS1="\$(JSERVER_SUBDIRS1)"
161 JSERVER_SUBDIRS2="\$(JSERVER_SUBDIRS2)"
162 else
163 # JSERVER_SUBDIRS1=""
164 JSERVER_SUBDIRS2=""
165 fi
166 dnl AC_SUBST(JSERVER_SUBDIRS1)
167 AC_SUBST(JSERVER_SUBDIRS2)
168
169 AC_ARG_ENABLE(cWnn,
170 [ --enable-cWnn build and install cWnn [[default=yes]]],
171 [case "${enableval}" in
172 yes) cWnn="cWnn" ;;
173 no) cWnn="" ;;
174 *) AC_MSG_ERROR(bad value for --enable-cWnn) ;;
175 esac], cWnn="cWnn")
176 AC_SUBST(cWnn)
177
178 AC_ARG_ENABLE(kWnn,
179 [ --enable-kWnn build and install kWnn [[default=yes]]],
180 [case "${enableval}" in
181 yes) kWnn="kWnn" ;;
182 no) kWnn="" ;;
183 *) AC_MSG_ERROR(bad value for --enable-kWnn) ;;
184 esac], kWnn="kWnn")
185 AC_SUBST(kWnn)
186
187 dnl For a library libwnn
188
189 dnl AC_ARG_WITH(libwnn,
190 dnl [ --with-libwnn use installed Wnn library [default=no]],
191 dnl [case "${withval}" in
192 dnl yes|no) with_libwnn=${withval};;
193 dnl *) AC_MSG_ERROR(invalid argument to --with-libwnn) ;;
194 dnl esac], with_libwnn=no)
195 dnl
196
197 AC_ARG_WITH(libwnn,
198 [ --with-libwnn use installed Wnn library [[default=no]]],
199 [ with_libwnn="${withval}"
200 AC_ARG_WITH(wnn-includes,
201 [ --with-wnn-includes=DIR WNN include files are in DIR],
202 [wnnincludedir="-I${withval}"], [wnnincludedir=''])
203 AC_ARG_WITH(wnn-libraries,
204 [ --with-wnn-libraries=DIR Search for WNN libraries in DIR [[default=/usr/local/lib]]],
205 [wnnlibdir="${withval}"], [wnnlibdir='/usr/local/lib'])
206 if test "X${with_libwnn}" = X-lwnn; then
207 WNNJLIB="-L${wnnlibdir} -lwnn"
208 elif test X"`echo ${with_libwnn} | grep '^/.*'`" != X ; then
209 WNNJLIB="${with_libwnn}"
210 else
211 WNNJLIB="${wnnlibdir}/libwnn.a"
212 fi
213 DEPWNNJLIB=""
214 HINSI_DATA="\$(JWNNWNNDIR)/hinsi.data"
215 ],
216 [ WNNJLIB="\$(top_builddir)/Wnn/jlib/libwnn.la"
217 DEPWNNJLIB="\$(WNNJLIB)"
218 HINSI_DATA="\$(top_builddir)/Wnn/jd/hinsi.data"
219 ])
220 AC_SUBST(WNNJLIB)
221 AC_SUBST(DEPWNNJLIB)
222 AC_SUBST(HINSI_DATA)
223
224 AC_ARG_WITH(libcwnn,
225 [ --with-libcwnn use installed cWnn library [[default=no]]],
226 [
227 AC_ARG_WITH(cwnn-includes,
228 [ --with-cwnn-includes=DIR CWNN include files are in DIR],
229 [cwnnincludedir="-I${withval}"], [cwnnincludedir=''])
230 AC_ARG_WITH(cwnn-libraries,
231 [ --with-cwnn-libraries=DIR Search for CWNN libraries in DIR [[default=/usr/local/lib]]],
232 [cwnnlibdir="${withval}"], [cwnnlibdir='/usr/local/lib'])
233 if test "X${with_libcwnn}" = X-lcwnn; then
234 CWNNJLIB="-L${cwnnlibdir} -lcwnn"
235 elif test X"`echo ${with_libcwnn} | grep '^/.*'`" != X ; then
236 CWNNJLIB="${with_libcwnn}"
237 else
238 CWNNJLIB="${cwnnlibdir}/libcwnn.a"
239 fi
240 DEPCWNNJLIB=""
241 CHINSI_DATA="\$(CWNNWNNDIR)/cixing.data"
242 THINSI_DATA="\$(TWNNTDSRC)/cixing.data"
243 ],
244 [ CWNNJLIB="\$(top_builddir)/cWnn/jlib/libcwnn.la"
245 DEPCWNNJLIB="\$(CWNNJLIB)"
246 CHINSI_DATA="\$(CWNNCDSRC)/cixing.data"
247 THINSI_DATA="\$(TWNNTDSRC)/cixing.data"
248 ])
249 AC_SUBST(CWNNJLIB)
250 AC_SUBST(DEPCWNNJLIB)
251 AC_SUBST(CHINSI_DATA)
252 AC_SUBST(THINSI_DATA)
253
254 AC_ARG_WITH(libkwnn,
255 [ --with-libkwnn use installed kWnn library [[default=no]]],
256 [
257 AC_ARG_WITH(kwnn-includes,
258 [ --with-kwnn-includes=DIR KWNN include files are in DIR],
259 [kwnnincludedir="-I${withval}"], [kwnnincludedir=''])
260 AC_ARG_WITH(kwnn-libraries,
261 [ --with-kwnn-libraries=DIR Search for KWNN libraries in DIR [[default=/usr/local/lib]]],
262 [kwnnlibdir="${withval}"], [kwnnlibdir='/usr/local/lib'])
263 if test "X${with_libkwnn}" = X-lkwnn; then
264 KWNNJLIB="-L${kwnnlibdir} -lkwnn"
265 elif test X"`echo ${with_libkwnn} | grep '^/.*'`" != X ; then
266 KWNNJLIB="${with_libkwnn}"
267 else
268 KWNNJLIB="${kwnnlibdir}/libkwnn.a"
269 fi
270 DEPKWNNJLIB=""
271 KHINSI_DATA="\$(KWNNWNNDIR)/hinsi.data"
272 ],
273 [ KWNNJLIB="\$(top_builddir)/kWnn/jlib/libkwnn.la"
274 DEPKWNNJLIB="\$(KWNNJLIB)"
275 KHINSI_DATA="\$(KWNNKDSRC)/hinsi.data"
276 ])
277 AC_SUBST(KWNNJLIB)
278 AC_SUBST(DEPKWNNJLIB)
279 AC_SUBST(KHINSI_DATA)
280
281 dnl
282 dnl Build Options
283 dnl
284
285 AC_ARG_ENABLE(ipv6,
286 [ --enable-ipv6 build and install IPv6 [[default=no]]],
287 [case "${enableval}" in
288 yes) ipv6="-DINET6";;
289 no) ipv6="" ;;
290 *) AC_MSG_ERROR(bad value for --enable-ipv6) ;;
291 esac], ipv6="")
292 AC_SUBST(ipv6)
293
294 AC_ARG_ENABLE(unsafe-path,
295 [ --enable-unsafe-path allow creating files in an arbitrary path [[default=no]]],
296 [case "${enableval}" in
297 yes) unsafe_path=true;;
298 no) unsafe_path=false;;
299 *) AC_MSG_ERROR(bad value for --enable-unsafe-path) ;;
300 esac], unsafe_path=false)
301 AC_SUBST(unsafe_path)
302
303 if test ${unsafe_path} = true; then
304 AC_DEFINE(WNN_ALLOW_UNSAFE_PATH, 1,
305 [Define to allow writing to other than JSERVERDIR.])
306 fi
307
308 dnl
309 dnl Install layout controlling
310 dnl
311 AC_ARG_ENABLE(traditional-layout,
312 [ --enable-traditional-layout Install files in traditional directories [[default=yes]]],
313 [case "${enableval}" in
314 yes) trad_layout=true ;;
315 no) trad_layout=false ;;
316 *) AC_MSG_ERROR([bad value for --enable-traditional-layout]) ;;
317 esac], trad_layout=true)
318
319 if test $trad_layout = "true"; then
320 WNNSBINDIR="\$(bindir)"
321 # More path settings will come later ...
322 else
323 WNNSBINDIR="\$(sbindir)"
324 # Same as above.
325 fi
326 AC_SUBST(WNNSBINDIR)
327 dnl Same as above.
328
329 AC_ARG_ENABLE(sub-bindir,
330 [ --enable-sub-bindir Install executables to (ex.) $(bindir)/Wnn4 [[default=yes if --enable-traditional-layout, no otherwise]]],
331 [case "${enableval}" in
332 yes) sub_bindir=true ;;
333 no) sub_bindir=false ;;
334 *) AC_MSG_ERROR([bad value for --enable-sub-bindir]) ;;
335 esac], sub_bindir=guess)
336
337 if test $sub_bindir = "guess"; then
338 if test $trad_layout = "true"; then
339 sub_bindir=true
340 else
341 sub_bindir=false
342 fi
343 fi
344 if test $sub_bindir = "true"; then
345 if_enable_sub_bindir=' '
346 if_disable_sub_bindir='#'
347 else
348 if_enable_sub_bindir='#'
349 if_disable_sub_bindir=' '
350 fi
351 AC_SUBST(if_enable_sub_bindir)
352 AC_SUBST(if_disable_sub_bindir)
353
354 # for debug
355 AC_MSG_CHECKING([if we use traditional layout])
356 if test $trad_layout = "true"; then
357 AC_MSG_RESULT(yes)
358 else
359 AC_MSG_RESULT(no)
360 fi
361
362 AC_MSG_CHECKING([if we install binaries on \$(bindir)/Wnn4 (etc.)])
363 if test $sub_bindir = "true"; then
364 AC_MSG_RESULT(yes)
365 else
366 AC_MSG_RESULT(no)
367 fi
368
369 dnl
370 dnl Checks for cc and cpp.
371 dnl
372 AC_PROG_CC
373
374 dnl System specific options
375 dnl Now that we are using autoconf, CCOPTIONS should be nuked...
376 dnl But please report if your system needs specific settings (CCOPTIONS etc.)
377 case $host in
378 *-*-linux*)
379 CCOPTIONS="-Dlinux -D_GNU_SOURCE -D_POSIX_SOURCE -D_BSD_SOURCE"
380 ;;
381 *-*-*-gnu)
382 # Non-Linux kernel with GNU libc.
383 CCOPTIONS="-D_GNU_SOURCE"
384 ;;
385 *-*-sunos*)
386 if test $GCC = yes; then
387 CCOPTIONS="-Dsun -Dsparc"
388 else
389 CCOPTIONS=""
390 fi
391 ;;
392 *-*-solaris2.*)
393 # Will 'solaris*' be OK?
394 if test $GCC = yes; then
395 CCOPTIONS="-Dsun -D`uname -p` -DSVR4 -DSYSV"
396 else
397 # TODO: need change for sparcv9 / x64 architecture ...
398 CCOPTIONS="-Xc -xF -xcg92 -Dsun -D`uname -p` -DSVR4 -DSYSV"
399 fi
400 ;;
401 *-*-hpux*)
402 if test $GCC = yes; then
403 CCOPTIONS="-Dhpux -DSYSV"
404 else
405 CCOPTIONS="-Ae -Dhpux -DSYSV"
406 fi
407 ;;
408 i[[34567]]86-pc-beos*)
409 CCOPTIONS="-DBEOS -D_POSIX_SOURCE -D_BSD_SOURCE"
410 ;;
411 powerpc-*-beos*)
412 CCOPTIONS="-DBEOS -D_POSIX_SOURCE -D_BSD_SOURCE"
413 ;;
414 *-*-aix*)
415 CCOPTIONS="-DSYSV"
416 ;;
417 esac
418
419 dnl Checking if we use gcc or not
420 if test $debug = true; then
421 if test $GCC = yes; then
422 # FIXME: gcc -fstack-check doesn't work well on Linux/i386 ...
423 CDEBUGFLAGS=${CDEBUGFLAGS:-"-g2 -O2 -Wall"}
424 else
425 CDEBUGFLAGS=${CDEBUGFLAGS:-""}
426 fi
427 INSTPGMFLAGS=
428 else
429 CDEBUGFLAGS=${CDEBUGFLAGS:-""}
430 INSTPGMFLAGS="-s"
431 fi
432 AC_SUBST(CCOPTIONS)
433 AC_SUBST(CDEBUGFLAGS)
434 AC_SUBST(INSTPGMFLAGS)
435
436 echo "Set CDEBUGFLAGS and CCOPTIONS to following:"
437 echo ' CDEBUGFLAGS="'"$CDEBUGFLAGS"'"'
438 echo ' CCOPTIONS="'"$CCOPTIONS"'"'
439
440 dnl ��������������������������������configure������������CPP������������
441 dnl ������������������������������������CPP������������������������
442 dnl ��CPP=${CPP:-"/usr/ccs/lib/cpp"}������������������������������������
443 dnl ����������������
444 AC_PROG_CPP
445
446 dnl Define cpp for text processing.
447 AC_MSG_CHECKING([cpp for text processing])
448 if test "$GCC" = "yes" -a "$CPP" = "$CC -E"; then
449 # Need checking your gcc accepts '-traditional-cpp' option?
450 FZK_PP=${FZK_PP:-"$CPP -traditional-cpp"}
451 else
452 FZK_PP=${FZK_PP:-"$CPP"}
453 fi
454 AC_MSG_RESULT($FZK_PP)
455 AC_SUBST(FZK_PP)
456
457 dnl
458 dnl Checks for programs.
459 dnl
460 dnl ### AC_PROG_YACC
461 dnl ### AC_PROG_LEX
462 AC_PROG_INSTALL
463 AC_PROG_LN_S
464 AC_PROG_MAKE_SET
465 AC_PROG_LIBTOOL
466 AC_SUBST(LIBTOOL_DEPS)
467
468 dnl Checks for libraries.
469 dnl ### dnl Replace `main' with a function in -lX11:
470 dnl ### AC_CHECK_LIB(X11, main)
471 dnl ### dnl Replace `main' with a function in -lcurses:
472 dnl ### AC_CHECK_LIB(curses, main)
473
474 AC_SEARCH_LIBS(crypt, crypt)
475 AC_CHECK_LIB(socket, connect)
476 AC_CHECK_LIB(bind, getservbyname)
477 AC_SEARCH_LIBS(gethostbyname, nsl)
478 dnl libutil only needed by uum w/openpty...
479 dnl FIXME: deals with Linux that have both ptsname & openpty
480 AC_CHECK_LIB(util, openpty)
481
482 dnl
483 dnl Checks for header files.
484 dnl
485 AC_PATH_X
486 AC_HEADER_STDC
487 AC_HEADER_SYS_WAIT
488 AC_HEADER_TIME
489 AC_CHECK_HEADERS(fcntl.h syslog.h unistd.h utmp.h utmpx.h \
490 sys/file.h sys/ioctl.h sys/time.h sys/types.h sys/param.h \
491 malloc.h strings.h memory.h \
492 curses.h ncurses.h sgtty.h term.h termio.h termios.h \
493 termcap.h sys/termio.h libutil.h\
494 )
495
496 dnl
497 dnl Terminal library selection.
498 dnl ported from vim6.1 via canuum (Canna 3.6p3) for uum.
499 dnl FIXME: cross compilation
500 dnl
501 olibs="$LIBS"
502 CNVFILE_SUBDIR=bsd
503 AC_MSG_CHECKING(--with-term-libs argument)
504 AC_ARG_WITH(tlib,
505 [ --with-term-libs=-lLIB terminal library to be used ],)
506 if test -n "$with_term_libs"; then
507 AC_MSG_RESULT($with_term_libs)
508 dnl LIBS="$LIBS $with_term_libs"
509 TERMLIB=$with_term_libs
510 else
511 AC_MSG_RESULT([automatic terminal library selection])
512 dnl On HP-UX 10.10 termcap or termlib should be used instead of
513 dnl curses, because curses is much slower.
514 dnl Newer versions of ncurses are preferred over anything.
515 dnl Older versions of ncurses have bugs, get a new one!
516 dnl Digital Unix (OSF1) should use curses (Ronald Schild).
517 case "`uname -s 2>/dev/null`" in
518 OSF1) tlibs="ncurses curses termlib termcap";;
519 *) tlibs="ncurses termlib termcap curses";;
520 esac
521 for libname in $tlibs; do
522 AC_CHECK_LIB(${libname}, tgetent, [
523 dnl It's possible that a library is found but it doesn't work
524 dnl e.g., shared library that cannot be found.
525 dnl compile and run a test program to be sure
526 LIBS="${LIBS} -l${libname}"
527 AC_TRY_RUN([
528 #ifdef HAVE_TERMCAP_H
529 # include <termcap.h>
530 #endif
531 main() {char *s; s=(char *)tgoto("%p1%d", 0, 1); exit(0); }],
532 res="OK", res="FAIL", res="FAIL")
533 if test "$res" = "OK"; then
534 TERMLIB="${TERMLIB} -l${libname}"
535 dnl lname=`echo ${libname} | sed 'y/termcaplibnus/TERMCAPLIBNUS/'`
536 dnl AC_DEFINE_UNQUOTED(HAVE_${lname}, 1, [use ${libname} for terminal control])
537 dnl We need to define AH_TEMPLATE (if we really need this)
538 dnl ex. AH_TEMPLATE(HAVE_NCURSES, [use ncurses for terminal control])
539 break
540 fi
541 AC_MSG_RESULT($libname library is not usable)
542 ],)
543 LIBS=${olibs}
544 done
545 fi
546 if test "x$TERMLIB" != "x"; then
547 LIBS="${LIBS} ${TERMLIB}"
548 AC_MSG_CHECKING(whether we talk terminfo)
549 AC_TRY_RUN([
550 #ifdef HAVE_TERMCAP_H
551 # include <termcap.h>
552 #endif
553 main()
554 {char *s; s=(char *)tgoto("%p1%d", 0, 1); exit(!strcmp(s==0 ? "" : s, "1")); }],
555 [ AC_MSG_RESULT([no -- we are in termcap land])
556 CNVFILE_SUBDIR=bsd ],
557 [ AC_DEFINE(HAVE_TERMINFO, 1, [terminfo spoken here])
558 AC_MSG_RESULT([yes -- terminfo spoken here])
559 CNVFILE_SUBDIR=sysV ],
560 AC_MSG_ERROR(failed to compile test program.))
561 else
562 AC_MSG_RESULT(none found)
563 fi
564 LIBS=${olibs}
565 AC_SUBST(TERMLIB)
566 AC_SUBST(CNVFILE_SUBDIR)
567
568 dnl
569 dnl Checks for typedefs, structures, and compiler characteristics.
570 dnl
571 AC_TYPE_MODE_T
572 AC_HEADER_TIME
573
574 dnl AC_CHECK_TYPES(time_t,,
575 dnl AC_DEFINE(time_t, long, [Define missing time_t.]),
576 dnl [INCLUDES = time.h])
577 AC_CHECK_TYPES(socklen_t,,
578 AC_DEFINE(socklen_t, int, [Define missing socklen_t.]), [
579 #if HAVE_SYS_TYPES_H
580 # include <sys/types.h>
581 #endif
582 #include <sys/socket.h>])
583
584 AC_CHECK_MEMBERS([struct utmp.ut_user, struct utmp.ut_name, struct utmp.ut_id],,,[
585 #include <sys/types.h>
586 #if HAVE_UTMPX_H
587 # include <utmpx.h>
588 #endif
589 #if HAVE_UTMP_H
590 # include <utmp.h>
591 #endif])
592
593 dnl
594 dnl Checks for symbol
595 dnl
596
597 dnl
598 dnl Checks for library functions.
599 dnl
600 AC_PROG_GCC_TRADITIONAL
601
602 dnl idea borrowed from EB Library http://www.sra.co.jp/people/m-kasahr/eb/
603 AC_TYPE_SIGNAL
604 if test "$ac_cv_type_signal" = void; then
605 AC_DEFINE(RETSIGTYPE_VOID, 1, [Define if the signal function returns void.])
606 fi
607
608 AC_FUNC_MEMCMP
609 AC_CHECK_FUNCS(getpgid getpgrp setpgrp wait3)
610 AC_FUNC_GETPGRP
611 AC_FUNC_SETPGRP
612 dnl FreeWnn do not use the 3rd parameter of wait3().
613 dnl AC_FUNC_WAIT3
614
615 dnl NOTE: FD_SET is defined as macro on many systems. But this check
616 dnl will be done in Wnn/include/wnn_os.h , so don't care...
617 AC_CHECK_FUNCS(random drand48 fchmod getopt killpg \
618 FD_SET \
619 gethostname select socket closesocket setsockopt send recv \
620 getdtablesize getrlimit syslog vsyslog setenv snprintf \
621 ptsname posix_openpt openpty pututxline pututline setsid)
622 dnl for bcopy/index -> memcpy/strchr conversion (preparation):
623 AC_CHECK_FUNCS(bcopy bzero bcmp index rindex \
624 memcpy memmove memset strchr strrchr)
625
626 dnl Check fallback functions for jserver (should use AC_REPLACE_FUNCS?)
627 JS_SUPPORTOBJS=
628 AC_CHECK_FUNCS(mkdir vasprintf, ,
629 [JS_SUPPORTOBJS="${JS_SUPPORTOBJS} ${ac_func}.o"])
630 AC_SUBST(JS_SUPPORTOBJS)
631
632 dnl delayed check for --enable-client-utmp
633 if test $client = true; then
634 if test $client_utmp = auto; then
635 AC_EGREP_CPP(yes, [
636 #if HAVE_SYS_PARAM_H
637 # include <sys/param.h>
638 #endif
639 #if defined(BSD) && (BSD >= 199306) && !defined(HAVE_PUTUTXLINE) && !defined(HAVE_PUTUTLINE)
640 yes
641 #endif
642 ], client_utmp=false, client_utmp=true)
643 fi
644
645 dnl for Debug
646 AC_MSG_CHECKING([whether we're using utmp with uum])
647 if test $client_utmp = true; then
648 dnl We need to look again if we introduce libspt check
649 AC_DEFINE(USE_UTMP, 1, [Define to 1 if uum writes utmp entry])
650 AC_MSG_RESULT(yes)
651 else
652 AC_MSG_RESULT(no)
653 fi
654 fi
655
656 dnl delayed check for --enable-client-set[ug]id
657 if test $client = true; then
658 guess_setuid=
659 guess_setgid=false
660 dnl Note: (HAVE_OPENPTY && defined(TIOCPTMGET)): for recent OpenBSD
661 if test $client_utmp = true; then
662 AC_EGREP_CPP(yes, [
663 #if HAVE_SYS_IOCTL_H
664 # include <sys/ioctl.h>
665 #endif
666 #if HAVE_PTSNAME || (HAVE_OPENPTY && defined(TIOCPTMGET))
667 # if HAVE_PUTUTLINE || HAVE_PUTUTXLINE
668 yes
669 # endif
670 #endif
671 ], [
672 case $host_os in
673 linux*)
674 # On recent Linux, it has both ptsname() and putut*line().
675 # But putut*line() will take effect only if prog is installed
676 # with set-gid to group utmp.
677 guess_setgid=true
678 UUMGROUP=${UUMGROUP:-utmp}
679 ;;
680 esac
681 guess_setuid=false
682 ], guess_setuid=true)
683 else
684 # $client_utmp != true
685 AC_EGREP_CPP(yes, [
686 #if HAVE_SYS_IOCTL_H
687 # include <sys/ioctl.h>
688 #endif
689 #if HAVE_PTSNAME || (HAVE_OPENPTY && defined(TIOCPTMGET))
690 yes
691 #endif
692 ], guess_setuid=false, guess_setuid=true)
693 fi
694 # $client_utmp != true
695
696 if test $client_setuid = auto; then
697 client_setuid=$guess_setuid
698 # UUMOWNER is already set ...
699 fi
700 if test $client_setgid = auto; then
701 client_setgid=$guess_setgid
702 # UUMGROUP is already set (if it needs)
703 fi
704
705 dnl set install flag (at last)
706 if test $client_setuid = true; then
707 INSTUUMFLAGS="-o \$(UUMOWNER)"
708 if test $client_setgid = true; then
709 INSTUUMFLAGS="-m 6711 $INSTUUMFLAGS -g \$(UUMGROUP)"
710 else
711 # client_setuid && !client_setgid
712 INSTUUMFLAGS="-m 4711 $INSTUUMFLAGS"
713 fi
714 else
715 if test $client_setgid = true; then
716 # !client_setuid && client_setgid
717 INSTUUMFLAGS="-m 2711 -g \$(UUMGROUP)"
718 else
719 # !client_setuid && !client_setgid
720 INSTUUMFLAGS="-m 0711"
721 fi
722 fi
723
724 dnl for Debug
725 AC_MSG_CHECKING([whether we need to install uum as setuid program])
726 if test $client_setuid = true; then
727 AC_MSG_RESULT([yes, $UUMOWNER])
728 else
729 AC_MSG_RESULT(no)
730 fi
731 AC_MSG_CHECKING([whether we need to install uum as setgid program])
732 if test $client_setgid = true; then
733 AC_MSG_RESULT([yes, $UUMGROUP])
734 else
735 AC_MSG_RESULT(no)
736 fi
737 else
738 # $client != true
739 INSTUUMFLAGS="-m 4711 -o \$(UUMOWNER)"
740 fi
741 # $client = true
742
743 AC_SUBST(INSTUUMFLAGS)
744 AC_SUBST(UUMOWNER)
745 AC_SUBST(UUMGROUP)
746
747 dnl
748 dnl File Existence
749 dnl Checking file at compile time may bring false result when cross-
750 dnl compiling. So, one have to check generated config.h and edit it
751 dnl if necessary after running configure.
752 dnl
753 dnl AC_CHECK_FILE(/dev/ptmx, AC_DEFINE(HAVE_DEV_PTMX, 1, [/dev/ptmx found]),)
754 AC_CHECK_FILES(/dev/ptmx,,)
755
756
757 dnl
758 dnl FIXME: libspt support
759 dnl for example:
760 dnl
761 dnl --with-libspt[=/path/to/libspt-config]
762 dnl
763 dnl LIBSPT_CFLAGS=`/path/to/libspt-config --cflags`
764 dnl LIBSPT_LIBS=`/path/to/libspt-config --libs`
765 dnl AC_SUBST(LIBSPT_CFLAGS)
766 dnl AC_SUBST(LIBSPT_LIBS)
767 dnl AC_DEFINE(HAVE_LIBSPT, 1, [Define if you have libspt support.])
768
769 dnl
770 dnl TCP Wrapper.
771 dnl
772 WRAPLIB=
773 AC_MSG_CHECKING(whether to use libwrap)
774 AC_ARG_WITH(libwrap,
775 [ --with-libwrap[[=DIR]] Compile in libwrap (tcp_wrappers) support [[default=try to find libwrap]]],
776 [ case "$withval" in
777 no)
778 AC_MSG_RESULT(no)
779 WRAP_TRY=no
780 ;;
781 yes)
782 AC_MSG_RESULT(yes)
783 WRAP_TRY=yes
784 ;;
785 *)
786 AC_MSG_RESULT(yes)
787 WRAP_TRY=yes
788 if test -d "$withval"; then
789 WRAPINCLUDES="-I$withval"
790 if test -d $withval/include; then
791 WRAPINCLUDES="-I$withval/include $WRAPINCLUDES"
792 fi
793 WRAPLIB="-L$withval -lwrap"
794 if test -d $withval/lib; then
795 WRAPLIB="-L$withval/lib $WRAPLIB"
796 fi
797 else
798 WRAPINCLUDES="$withval"
799 fi
800 ;;
801 esac],
802 [AC_MSG_RESULT([try to find])
803 WRAP_TRY=auto]
804 )
805 # Link test for libwrap
806 if test "$WRAP_TRY" = yes -o "$WRAP_TRY" = auto; then
807 OLDCFLAGS="$CFLAGS"
808 CFLAGS="$WRAPINCLUDES $CFLAGS"
809 OLDLIBS="$LIBS"
810 WRAPLIB=${WRAPLIB:-"-lwrap"}
811 LIBS="$WRAPLIB $OLDLIBS"
812 AC_MSG_CHECKING([libwrap is working])
813 AC_TRY_LINK([ int allow_severity; int deny_severity; ],
814 [ hosts_access(); ],
815 [ AC_MSG_RESULT(yes)
816 AC_DEFINE(HAVE_LIBWRAP, 1,
817 [Define if you have libwrap (TCP wrapper) support.])
818 AC_SUBST(WRAPLIB)],
819 [ AC_MSG_RESULT(no)
820 if test "$WRAP_TRY" = yes; then
821 AC_MSG_ERROR([Could not find libwrap. Please check config.log.])
822 else
823 # recover old flag / clear needless WRAPLIB and continue
824 CFLAGS=$OLDCFLAGS
825 WRAPLIB=
826 fi] )
827 # only jserver needs libwrap, recover LIBS also
828 LIBS=$OLDLIBS
829 fi
830
831
832 dnl
833 dnl Creating Makefiles.
834 dnl
835 # mkdir -p Contrib/dic/gerodic in case builddir != srcdir
836 dir=Contrib/dic/gerodic
837 if test ! -d $dir; then
838 echo "creating $dir ..."
839 $ac_install_sh -d $dir
840 fi
841
842 dnl
843 dnl Generate Makefiles
844 dnl
845
846 dnl Generic
847
848 makefiles_generic="makerule.mk Makefile"
849
850 dnl Japanese
851
852 if test "x${Wnn}" = "xWnn"; then
853 makefiles_wnn="Wnn/Makefile Wnn/conv/Makefile Wnn/include/Makefile \
854 Wnn/jd/Makefile Wnn/jd/rk/Makefile Wnn/jd/rk.vi/Makefile \
855 Wnn/jlib/Makefile Wnn/jlib.V3/Makefile Wnn/jserver/Makefile \
856 Wnn/jutil/Makefile Wnn/ld/Makefile Wnn/ld/rk/Makefile \
857 Wnn/romkan/Makefile Wnn/uum/Makefile \
858 Wnn/man/Makefile Wnn/man/2.env/Makefile Wnn/man/3.libwnn/Makefile \
859 Wnn/man/4.cmd/Makefile Wnn/man/6.jutil/Makefile \
860 Wnn/man/2.env/dic/Makefile Wnn/man/2.env/wnn/Makefile \
861 Wnn/man/3.libwnn/jl_lib/Makefile Wnn/man/3.libwnn/js_lib/Makefile \
862 Wnn/man/3.libwnn/misc_lib/Makefile Wnn/man/3.libwnn/rk_lib/Makefile"
863 makefiles_wnn_dic="Contrib/dic/gerodic/Makefile Wnn/pubdicplus/Makefile \
864 Wnn/wnncons/Makefile Wnn/wnncons/dic/Makefile"
865 fi
866
867 dnl Chinese and Taiwanese
868
869 if test "x$cWnn" = "xcWnn"; then
870 makefiles_cwnn="cWnn/Makefile cWnn/conv/Makefile cWnn/etc/Makefile \
871 cWnn/cd/Makefile cWnn/cd/rk/Makefile \
872 cWnn/cd/rk_p/Makefile cWnn/cd/rk_z/Makefile \
873 cWnn/td/Makefile cWnn/td/rk/Makefile \
874 cWnn/td/rk_z/Makefile cWnn/td/rk_p/Makefile \
875 cWnn/include/Makefile cWnn/jlib/Makefile \
876 cWnn/jserver/Makefile cWnn/jutil/Makefile \
877 cWnn/man/Makefile cWnn/man/1.intro/Makefile cWnn/man/2.env/Makefile \
878 cWnn/man/4.cmd/Makefile cWnn/man/6.jutil/Makefile \
879 cWnn/romkan/Makefile cWnn/uum/Makefile"
880 makefiles_cwnn_dic="cWnn/cdic/Makefile cWnn/tdic/Makefile"
881 fi
882
883 dnl Korean
884
885 if test "x$kWnn" = "xkWnn"; then
886 makefiles_kwnn="kWnn/Makefile kWnn/conv/Makefile kWnn/etc/Makefile \
887 kWnn/include/Makefile kWnn/jlib/Makefile kWnn/jutil/Makefile \
888 kWnn/jserver/Makefile kWnn/kd/Makefile kWnn/kd/rk/Makefile \
889 kWnn/romkan/Makefile kWnn/uum/Makefile"
890 makefiles_kwnn_dic="kWnn/kdic/Makefile"
891 fi
892
893 AC_OUTPUT(${makefiles_generic} \
894 ${makefiles_wnn} ${makefiles_wnn_dic} \
895 ${makefiles_cwnn} ${makefiles_cwnn_dic} \
896 ${makefiles_kwnn} ${makefiles_kwnn_dic})

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26