ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/configure.ac
Revision: 1.32
Committed: Sat Jan 28 21:25:47 2006 UTC (18 years, 4 months ago) by root
Branch: MAIN
Changes since 1.31: +1 -1 lines
Log Message:
*** empty log message ***

File Contents

# Content
1 dnl#
2 dnl# Process this file with autoconf to produce a configure script.
3 dnl#
4
5 AC_INIT
6 AC_PREREQ(2.50)
7 AC_CONFIG_SRCDIR([src/feature.h])
8 AC_CONFIG_HEADER(config.h:config.h.in)
9
10 AC_CANONICAL_HOST
11
12 dnl RXVT version
13 changequote(, )dnl
14 VERSION=`sed -n -e 's/^.*[ \t]VERSION.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
15 DATE=`sed -n -e 's/^.*[ \t]DATE.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
16 dnl LIBVERSION=`sed -n -e 's/^.*[ \t]LIBVERSION.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
17 changequote([, ])dnl
18 AC_SUBST(VERSION)dnl
19 AC_SUBST(DATE)dnl
20 AC_SUBST(LSMDATE)dnl
21 AC_SUBST(LIBVERSION)dnl
22 echo ""
23 echo "configuring for rxvt $VERSION"
24 echo ""
25
26 orig_CXXFLAGS="$CXXFLAGS"
27
28 dnl# Checks for programs.
29 dnl AC_MAKE_SET
30
31 AC_PROG_CC
32 AC_PROG_CXX
33 AC_PROG_CPP
34 AC_PROG_INSTALL
35
36 AC_AIX
37 AC_ISC_POSIX
38 AC_LANG(C++)
39
40 dnl check wether we can link with gcc -lsupc++
41 if test x$GCC = xyes && test x$GXX = xyes; then
42 dnl FreeBSD (at least up to 5.3) has a broken GCC, workaround it
43 AC_MSG_CHECKING([for working libsupc++])
44 save_CXX="$CXX"
45 save_LIBS="$LIBS"
46 CXX="$CC"
47 LIBS="$LIBS -lsupc++"
48 LINKER="$CC"
49 AC_LINK_IFELSE(
50 [AC_LANG_PROGRAM([struct test { }; void f() try { throw new test; } catch (...) { throw; }])],
51 [AC_MSG_RESULT(ok)],
52 [
53 AC_MSG_RESULT([no, making everything bigger and slower])
54 LIBS="$save_LIBS"
55 LINKER="$save_CXX"
56 ]
57 )
58 CXX="$save_CXX"
59 fi
60 AC_SUBST(LINKER,[$LINKER])
61
62 AC_LANG(C++)
63 dnl# --------------------------------------------------------------------------
64 dnl# Supply default CXXFLAGS, if not specified by `CXXFLAGS=flags ./configure'
65 dnl#
66 if test -z "$orig_CXXFLAGS"; then
67 if test x$GCC = xyes && test "x$GXX" = xyes; then
68 CXXFLAGS="-g -O3 -fno-threadsafe-statics -fno-enforce-eh-specs"
69 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [], [CXXFLAGS="-g -O3"])
70 else
71 CXXFLAGS="-O"
72 fi
73 CFLAGS="$CXXFLAGS"
74 fi
75
76 AC_DEFINE(_GNU_SOURCE, 1, Use all glibc features.)
77
78 case $host in
79 *-*-solaris* )
80 AC_DEFINE(_XOPEN_SOURCE_EXTENDED, 1, Needed to get declarations for msg_control and msg_controllen on Solaris)
81 AC_DEFINE(_XOPEN_SOURCE, 2, Needed to get declarations for msg_control and msg_controllen on Solaris)
82 AC_DEFINE(__EXTENSIONS__, 1, Needed to get declarations for msg_control and msg_controllen on Solaris)
83 ;;
84 esac
85
86 dnl if test x$GXX = xyes; then
87 dnl CXXFLAGS="$CXXFLAGS" dnl I once had -fno-exceptions, but I am using them now...
88 dnl fi
89
90 dnl# FreeBSD needs to link libxpg4
91 AC_CHECK_FUNC(setlocale, [], [AC_CHECK_LIB(xpg4, setlocale, [LIBS="$LIBS -lxpg4"])])
92
93 dnl# solaris needs to link libnsl and socket
94 AC_CHECK_FUNC(gethostbyname, [], [AC_CHECK_LIB(nsl, gethostbyname, [LIBS="$LIBS -lnsl"])])
95 AC_CHECK_FUNC(socket, [], [AC_CHECK_LIB(socket, socket, [LIBS="$LIBS -lsocket"])])
96
97 dnl AC_ENABLE_SHARED(no)dnl# libtool
98 dnl AC_ENABLE_STATIC(yes)dnl# libtool
99 dnl AC_PROG_LIBTOOL()dnl# libtool
100
101 support_frills=yes
102 support_inheritpixmap=yes
103 support_tinting=yes
104 support_fading=yes
105 support_keepscrolling=yes
106 support_selectionscrolling=yes
107 support_mousewheel=yes
108 support_mouseslipwheel=yes
109 support_text_blink=yes
110 support_pointer_blank=yes
111 support_scroll_rxvt=yes
112 support_scroll_next=yes
113 support_scroll_xterm=yes
114 support_scroll_plain=yes
115 support_xim=yes
116 support_xpm=yes
117 support_xft=yes
118 support_unicode3=no
119 support_combining=yes
120 support_8bitctrls=no
121 support_iso14755=yes
122 support_styles=yes
123 support_perl=yes
124 codesets=all
125
126 dnl# --------------------------------------------------------------------------
127 dnl# CHECKING COMMAND LINE OPTIONS
128 dnl# --------------------------------------------------------------------------
129
130 if test "x$enable_shared" = xyes; then
131 AC_DEFINE(LIBRXVT, 1, Build shared library version - specify via configure only)
132 INSTALL_LIBRXVT=yes
133 fi
134 AC_SUBST(INSTALL_LIBRXVT)
135
136 AC_ARG_ENABLE(everything,
137 [ --enable-everything enable standard non-multichoice features
138 NOTE: this option is order dependent
139 NOTE: automatically enabled with --enable-shared],
140 [
141 if test x$enableval = xno; then
142 support_frills=no
143 support_inheritpixmap=no
144 support_tinting=no
145 support_fading=no
146 support_keepscrolling=no
147 support_selectionscrolling=no
148 support_lastlog=no
149 support_mousewheel=no
150 support_mouseslipwheel=no
151 support_text_blink=no
152 support_pointer_blank=no
153 support_scroll_rxvt=no
154 support_scroll_next=no
155 support_scroll_xterm=no
156 support_scroll_plain=no
157 support_utmp=no
158 support_wtmp=no
159 support_xim=no
160 support_xpm=no
161 support_xft=no
162 support_unicode3=no
163 support_combining=no
164 support_8bitctrls=no
165 support_iso14755=no
166 support_styles=no
167 support_perl=no
168 codesets=
169 fi
170 if test x$enableval = xyes; then
171 support_frills=yes
172 support_inheritpixmap=yes
173 support_tinting=yes
174 support_fading=yes
175 support_keepscrolling=yes
176 support_selectionscrolling=yes
177 support_lastlog=yes
178 support_mousewheel=yes
179 support_mouseslipwheel=yes
180 support_text_blink=yes
181 support_pointer_blank=yes
182 support_scroll_rxvt=yes
183 support_scroll_next=yes
184 support_scroll_xterm=yes
185 support_scroll_plain=yes
186 support_utmp=yes
187 support_wtmp=yes
188 support_xim=yes
189 support_xpm=yes
190 support_xft=yes
191 support_unicode3=yes
192 support_combining=yes
193 #support_8bitctrls=yes
194 support_iso14755=yes
195 support_styles=yes
196 support_perl=yes
197 codesets=all
198 fi
199 ])
200
201 AC_ARG_ENABLE(unicode3,
202 [ --enable-unicode3 use 21 instead of 16 bits to represent unicode characters],
203 [if test x$enableval = xyes -o x$enableval = xno; then
204 support_unicode3=$enableval
205 fi])
206
207 AC_ARG_ENABLE(combining,
208 [ --enable-combining enable composition of base and combining characters],
209 [if test x$enableval = xyes -o x$enableval = xno; then
210 support_combining=$enableval
211 fi])
212
213 AC_ARG_ENABLE(xft,
214 [ --enable-xft enable xft support on systems that have it],
215 [if test x$enableval = xyes -o x$enableval = xno; then
216 support_xft=$enableval
217 fi])
218
219 AC_ARG_ENABLE(font-styles,
220 [ --enable-font-styles enable bold and italic support],
221 [if test x$enableval = xyes -o x$enableval = xno; then
222 support_styles=$enableval
223 fi])
224
225 AC_ARG_ENABLE(xpm-background,
226 [ --enable-xpm-background enable XPM background pixmaps],
227 [if test x$enableval = xyes -o x$enableval = xno; then
228 support_xpm=$enableval
229 fi])
230
231 AC_ARG_ENABLE(transparency,
232 [ --enable-transparency enable transparent backgrounds],
233 [if test x$enableval = xyes -o x$enableval = xno; then
234 support_inheritpixmap=$enableval
235 fi])
236
237 AC_ARG_ENABLE(tinting,
238 [ --enable-tinting enable tinting of transparent bg],
239 [if test x$enableval = xyes -o x$enableval = xno; then
240 support_tinting=$enableval
241 fi])
242
243 AC_ARG_ENABLE(fading,
244 [ --enable-fading enable colors fading when off focus],
245 [if test x$enableval = xyes -o x$enableval = xno; then
246 support_fading=$enableval
247 fi])
248
249 AC_ARG_ENABLE(rxvt-scroll,
250 [ --enable-rxvt-scroll enable rxvt style scrollbar],
251 [if test x$enableval = xyes -o x$enableval = xno; then
252 support_scroll_rxvt=$enableval
253 fi])
254
255 AC_ARG_ENABLE(next-scroll,
256 [ --enable-next-scroll enable NeXT style scrollbar],
257 [if test x$enableval = xyes -o x$enableval = xno; then
258 support_scroll_next=$enableval
259 fi])
260
261 AC_ARG_ENABLE(xterm-scroll,
262 [ --enable-xterm-scroll enable Xterm style scrollbar],
263 [if test x$enableval = xyes -o x$enableval = xno; then
264 support_scroll_xterm=$enableval
265 fi])
266
267 AC_ARG_ENABLE(perl,
268 [ --enable-perl enable embedded perl interpreter],
269 [if test x$enableval = xyes -o x$enableval = xno; then
270 support_perl=$enableval
271 fi])
272
273 AC_ARG_ENABLE(plain-scroll,
274 [ --enable-plain-scroll enable plain style scrollbar],
275 [if test x$enableval = xyes -o x$enableval = xno; then
276 support_scroll_plain=$enableval
277 fi])
278
279 dnl AC_ARG_ENABLE(half-shadow,
280 dnl [ --enable-half-shadow use half width/height shadow on rxvt scrollbar],
281 dnl [if test x$enableval = xyes; then
282 dnl AC_DEFINE(HALFSHADOW, 1, Define if you want the depth of scrollbars and menus to be less)
283 dnl fi])
284
285 AC_ARG_WITH(codesets,
286 [ --with-codesets=NAME,.. compile in additional codesets (jp,jp_ext,kr,zh,zh_ext,all)],
287 [codesets="$withval"])
288
289 AC_ARG_ENABLE(xim,
290 [ --enable-xim XIM (X Input Method) protocol support],
291 [if test x$enableval = xyes -o x$enableval = xno; then
292 support_xim=$enableval
293 fi])
294
295 AC_ARG_ENABLE(backspace-key,
296 [ --disable-backspace-key disable handling of the backspace key],
297 [if test x$enableval = xno; then
298 AC_DEFINE(NO_BACKSPACE_KEY, 1, Define if you don't want support for the backspace key)
299 fi])
300
301 AC_ARG_ENABLE(delete-key,
302 [ --disable-delete-key disable handling of the delete key],
303 [if test x$enableval = xno; then
304 AC_DEFINE(NO_DELETE_KEY, 1, Define if you don't want support for the (non-keypad) delete key)
305 fi])
306
307 AC_ARG_ENABLE(resources,
308 [ --disable-resources disable all resource checking],
309 [if test x$enableval = xno; then
310 AC_DEFINE(NO_RESOURCES, 1, Define if you don't want any resources read)
311 fi])
312
313 AC_ARG_ENABLE(8bitctrls,
314 [ --enable-8bitctrls enable 8 bit control sequences (not recommended)],
315 [if test x$enableval = xyes -o x$enableval = xno; then
316 support_8bitctrls=$enableval
317 fi])
318
319 RESFALLBACK=Rxvt
320 AC_ARG_ENABLE(fallback,
321 [ --enable-fallback(=CLASS) fall back on CLASS resources in addition to URxvt ones (default: Rxvt)],
322 [
323 test x$enableval = xyes && enableval=Rxvt
324 test x$enableval = xno && enableval=
325 RESFALLBACK="$enableval"
326 ])
327
328 if test x$RESFALLBACK != x; then
329 AC_DEFINE_UNQUOTED(RESFALLBACK, "$RESFALLBACK", [Fallback resource class])
330 fi
331
332 RESNAME=urxvt
333 AC_ARG_WITH(res-name,
334 [ --with-res-name=NAME use this as default resource name (default: urxvt)],
335 [RESNAME="$withval"])
336 AC_DEFINE_UNQUOTED(RESNAME,"$RESNAME", [Default resource name])
337
338 RESCLASS=URxvt
339 AC_ARG_WITH(res-class,
340 [ --with-res-class=CLASS use this as the resource class (default: URxvt)],
341 [RESCLASS="$withval"])
342 AC_DEFINE_UNQUOTED(RESCLASS,"$RESCLASS", [Resource class])
343
344 RXVTNAME=urxvt
345 AC_ARG_WITH(name,
346 [ --with-name=NAME set the basename for the installed binaries (default: urxvt)],
347 [RXVTNAME="$withval"])
348 AC_DEFINE_UNQUOTED(RXVTNAME,"$RXVTNAME", [Binary base name])
349
350 RXVTNAME=`echo "$RXVTNAME"|sed "$program_transform_name"`
351 AC_SUBST(RXVTNAME)
352
353 AC_ARG_ENABLE(swapscreen,
354 [ --disable-swapscreen disable swap screen support],
355 [if test x$enableval = xno; then
356 AC_DEFINE(NO_SECONDARY_SCREEN, 1, Disable the secondary screen. Many programs use the secondary screen as their workplace)
357 fi])
358
359 AC_ARG_ENABLE(iso14755,
360 [ --enable-iso14755 enable support for extended ISO 14755 modes],
361 [if test x$enableval = xyes -o x$enableval = xno; then
362 support_iso14755=$enableval
363 fi])
364
365 AC_ARG_ENABLE(frills,
366 [ --enable-frills enable support for rarely used features],
367 [if test x$enableval = xyes -o x$enableval = xno; then
368 support_frills=$enableval
369 fi])
370
371 AC_ARG_ENABLE(keepscrolling,
372 [ --enable-keepscrolling enable continual scrolling on scrollbar arrow press],
373 [if test x$enableval = xyes -o x$enableval = xno; then
374 support_keepscrolling=$enableval
375 fi])
376
377 AC_ARG_ENABLE(selectionscrolling,
378 [ --enable-selectionscrolling enable scrolling during selections],
379 [if test x$enableval = xyes -o x$enableval = xno; then
380 support_selectionscrolling=$enableval
381 fi])
382
383 AC_ARG_ENABLE(mousewheel,
384 [ --enable-mousewheel enable scrolling via mouse wheel or buttons 4 & 5],
385 [if test x$enableval = xyes -o x$enableval = xno; then
386 support_mousewheel=$enableval
387 fi])
388
389 AC_ARG_ENABLE(slipwheeling,
390 [ --enable-slipwheeling enable slip wheel scrolling (requires previous)],
391 [if test x$enableval = xyes -o x$enableval = xno; then
392 support_mouseslipwheel=$enableval
393 fi])
394
395 AC_ARG_ENABLE(smart-resize,
396 [ --enable-smart-resize enable smart growth/shrink behaviour],
397 [if test x$enableval = xyes; then
398 AC_DEFINE(SMART_RESIZE, 1, Define to use "smart" resize behavior)
399 fi])
400
401 AC_ARG_ENABLE(text-blink,
402 [ --enable-text-blink enable blinking text],
403 [if test x$enableval = xyes -o x$enableval = xno; then
404 support_text_blink=$enableval
405 fi])
406
407 AC_ARG_ENABLE(pointer-blank,
408 [ --enable-pointer-blank enable pointer blank when typing or inactive pointer],
409 [if test x$enableval = xyes -o x$enableval = xno; then
410 support_pointer_blank=$enableval
411 fi])
412
413 AC_ARG_WITH(term,
414 [ --with-term=NAME set the terminal to NAME (default: rxvt)],
415 [if test x$withval != x; then
416 AC_DEFINE_UNQUOTED(TERMENV, "$withval",Set TERM to the value given by configure) term="$withval"
417 fi])
418
419 AC_ARG_WITH(terminfo,
420 [ --with-terminfo=PATH set the path to the terminfo tree to PATH],
421 [if test x$withval != x; then
422 AC_DEFINE_UNQUOTED(RXVT_TERMINFO, "$withval", Set TERMINFO value to the value given by configure) terminfo="$withval"
423 fi])
424
425 dnl# --------------------------------------------------------------------------
426
427 AC_PATH_PROG(MV, mv, mv)
428 AC_PATH_PROG(CP, cp, cp)
429 AC_PATH_PROG(LN, ln, ln)
430 AC_PATH_PROG(SED, sed, sed)
431 AC_PATH_PROG(ECHO, echo, echo)
432 AC_PATH_PROG(CMP, cmp, cmp)
433 AC_PATH_PROG(TIC, tic)
434
435 dnl# need a neat way to detect SVR4 or its features
436 dnl# in src/command.c we use these functions:
437 dnl# grantpt(), unlockpt(), ptsname(), which are defined in <sys/ptms.h>
438 dnl# - but are these also defined for other systems?
439
440 dnl# hack to find if this is SVR4 -- who knows?
441 dnl## AC_MSG_CHECKING(for SVR4)
442 dnl## AC_EGREP_CPP(yes,
443 dnl## [#if defined (SVR4) || defined (_SVR4) || defined (__svr4__)
444 dnl## yes;
445 dnl## #endif
446 dnl## ], [AC_MSG_RESULT(yes); AC_DEFINE(PERHAPS_SVR4)], AC_MSG_RESULT(perhaps not?))
447
448 AC_PATH_XTRA
449
450 dnl# the only reasonable way to find libXpm is do-it-yourself
451 dnl# only check if we want xpm-background
452
453 if test x$support_xpm = xyes; then
454 VT_FIND_LIBXPM
455 if test x$no_xpm = xyes; then
456 support_xpm=needsmanualspecification
457 fi
458 fi
459
460 dnl# --------------------------------------------------------------------------
461 dnl# CHECKING FOR HEADER FILES
462 dnl# --------------------------------------------------------------------------
463 AC_HEADER_SYS_WAIT
464 AC_CHECK_HEADERS( \
465 assert.h \
466 fcntl.h \
467 stdarg.h \
468 stdlib.h \
469 string.h \
470 termios.h \
471 unistd.h \
472 sys/byteorder.h \
473 sys/ioctl.h \
474 sys/select.h \
475 sys/sockio.h \
476 sys/strredir.h \
477 sys/time.h \
478 stdint.h \
479 wchar.h \
480 cwchar \
481 clocale \
482 )
483
484 AC_HEADER_TIME
485
486 dnl# check to allow both <termios.h> and <sys/ioctl.h>
487 AC_CACHE_CHECK(whether termios.h and sys/ioctl.h may both be included, rxvt_cv_header_sysioctl,
488 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>
489 #include <sys/ioctl.h>
490 #ifdef HAVE_TERMIOS_H
491 #include <termios.h>
492 #endif]], [[int a = ECHO;]])],[rxvt_cv_header_sysioctl=yes],[rxvt_cv_header_sysioctl=no])])
493
494 dnl# ELF systems may want to store paths for dynamic libraries.
495 dnl# Lets see if the compiler can accept "-Rpath" or "-Wl,-Rpath"
496 dnl# At least one version of SunOS wants "-R path" but it's not checked yet.
497 if test -n "$GCC"; then
498 LDARG="-Wl,"
499 else
500 LDARG=""
501 fi
502 changequote(, )dnl
503 R_TRANSLATE='s/-L\([^ ]*\)/-L\1 '$LDARG'-rpath '$LDARG'\1/g'
504 changequote([, ])dnl
505
506 ac_save_CFLAGS=$CFLAGS
507 ac_save_LIBS=$LIBS
508 CFLAGS="$CFLAGS $X_CFLAGS"
509 LIBS=`echo "$LIBS $X_LIBS $X_EXTRA_LIBS -lX11" | sed "$R_TRANSLATE"`
510 AC_CACHE_CHECK([for -rpath dynamic library path recording], rxvt_cv_rpath,
511 [AC_RUN_IFELSE([AC_LANG_SOURCE([[
512 main()
513 {
514 exit(0);
515 (void) XOpenDisplay("foobar");
516 }]])],[rxvt_cv_rpath=yes],[rxvt_cv_rpath=no],[dnl
517 AC_MSG_WARN(You may need to check the LIBS line)])])
518 if test x$rxvt_cv_rpath != xyes; then
519 changequote(, )dnl
520 R_TRANSLATE='s/-L\([^ ]*\)/-L\1 '$LDARG'-R\1/g'
521 changequote([, ])dnl
522 LIBS=`echo "$ac_save_LIBS $X_LIBS $X_EXTRA_LIBS -lX11" | sed "$R_TRANSLATE"`
523 AC_CACHE_CHECK([for -R dynamic library path recording], rxvt_cv_R,
524 [AC_RUN_IFELSE([AC_LANG_SOURCE([[
525 main()
526 {
527 exit(0);
528 (void) XOpenDisplay("foobar");
529 }]])],[rxvt_cv_R=yes],[rxvt_cv_R=no],[rxvt_cv_R=no])])
530 if test x$rxvt_cv_R != xyes; then
531 LIBS="$ac_save_LIBS $X_LIBS $X_EXTRA_LIBS -lX11"
532 fi
533 fi
534
535 AC_CACHE_CHECK([for XPointer], rxvt_cv_xpointer,
536 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <X11/Xlib.h>]], [[XPointer dummy;]])],[rxvt_cv_xpointer=yes],[rxvt_cv_xpointer=no])])
537 if test x$rxvt_cv_xpointer = xyes; then
538 AC_DEFINE(HAVE_XPOINTER, 1, Define if you have XPointer typedef)
539 fi
540 LIBS=$ac_save_LIBS
541 CFLAGS=$ac_save_CFLAGS
542
543
544 AC_C_CONST
545 AC_C_INLINE
546
547 dnl> AC_HEADER_STDC dnl# skip this test, Sun always fails anyhow.
548
549 dnl# --------------------------------------------------------------------------
550 dnl# CHECKING FOR MISSING TYPEDEFS
551 dnl# --------------------------------------------------------------------------
552 dnl# Missing typedefs and replacements
553 AC_TYPE_MODE_T
554 dnl> AC_CHECK_TYPE(umode_t, int)
555 dnl> AC_CHECK_TYPE(off_t, long)
556 AC_TYPE_PID_T
557 AC_TYPE_UID_T
558
559 AC_CHECK_SIZEOF(short, 2)
560 AC_CHECK_SIZEOF(int, 4)
561 dnl AC_CHECK_SIZEOF(long, 4)
562 AC_CHECK_SIZEOF(long long, 8)
563 AC_CHECK_SIZEOF(int *, 4)
564
565 dnl# see usage below
566 AC_DEFUN([RXVT_CHECK_SIZE],
567 [AC_CACHE_CHECK([for $2], $1,
568 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdint.h>]], [[$2 dummy;]])],[$1=yes],[dnl
569 if test "$ac_cv_sizeof_char" -ge $3; then
570 $1="$4 char"
571 else
572 if test "$ac_cv_sizeof_short" -ge $3; then
573 $1="$4 short"
574 else
575 if test "$ac_cv_sizeof_int" -ge $3; then
576 $1="$4 int"
577 else
578 if test "$ac_cv_sizeof_long" -ge $3; then
579 $1="$4 long"
580 else
581 if test "$ac_cv_sizeof_long_long" -ge $3; then
582 $1="$4 long long"
583 else
584 $1="$4 $5" # we _must_ have a (possibly wrong) default
585 fi
586 fi
587 fi
588 fi
589 fi])])]
590 if test x"$$1" != xyes; then
591 $6="typedef $$1 $2;"
592 else
593 if test x"$4" = x; then
594 $6="/* typedef $5 $2; */"
595 else
596 $6="/* typedef $4 $5 $2; */"
597 fi
598 fi dnl
599 )
600 dnl#
601 dnl# Look for types the system may know about anyway.
602 dnl#
603 RXVT_CHECK_SIZE(rxvt_cv_int16_t, int16_t, 2, , short, rxvt_int16_typedef)
604 AC_SUBST(rxvt_int16_typedef)
605 RXVT_CHECK_SIZE(rxvt_cv_uint16_t, uint16_t, 2, unsigned, short, rxvt_uint16_typedef)
606 AC_SUBST(rxvt_uint16_typedef)
607 RXVT_CHECK_SIZE(rxvt_cv_int32_t, int32_t, 4, , int, rxvt_int32_typedef)
608 AC_SUBST(rxvt_int32_typedef)
609 RXVT_CHECK_SIZE(rxvt_cv_uint32_t, uint32_t, 4, unsigned, int, rxvt_uint32_typedef)
610 AC_SUBST(rxvt_uint32_typedef)
611 dnl RXVT_CHECK_SIZE(rxvt_cv_int64_t, int64_t, 8, , long long, rxvt_int64_typedef)
612 dnl AC_SUBST(rxvt_int64_typedef)
613 dnl RXVT_CHECK_SIZE(rxvt_cv_uint64_t, uint64_t, 8, unsigned, long long, rxvt_uint64_typedef)
614 dnl AC_SUBST(rxvt_uint64_typedef)
615 dnl#
616 dnl# Now look for another we use
617 dnl#
618 if test "$ac_cv_sizeof_int_p" -eq 8; then
619 rxvt_intp_define="#define intp_t int64_t"
620 rxvt_u_intp_define="#define u_intp_t u_int64_t"
621 else
622 if test "$ac_cv_sizeof_int_p" -eq 4; then
623 rxvt_intp_define="#define intp_t int32_t"
624 rxvt_u_intp_define="#define u_intp_t u_int32_t"
625 else
626 if test "$ac_cv_sizeof_int_p" -eq 2; then
627 rxvt_intp_define="#define intp_t int16_t"
628 rxvt_u_intp_define="#define u_intp_t u_int16_t"
629 else
630 rxvt_intp_define="#error set intp_t"
631 rxvt_u_intp_define="#error set u_intp_t"
632 fi
633 fi
634 fi
635 AC_SUBST(rxvt_intp_define)
636 AC_SUBST(rxvt_u_intp_define)
637
638 dnl# --------------------------------------------------------------------------
639 dnl# CHECKING FOR LIBRARY FUNCTIONS
640 dnl# --------------------------------------------------------------------------
641 AC_TYPE_SIGNAL
642 dnl> AC_FUNC_VPRINTF
643
644 AC_CHECK_FUNCS( \
645 unsetenv \
646 setutent \
647 on_exit \
648 )
649
650 UTMP_CHECK
651
652 dnl# --------------------------------------------------------------------------
653
654 dnl# find ttys/ttytab
655 AC_CACHE_CHECK(where ttys/ttytab is located, rxvt_cv_path_ttytab,
656 [for ttys_file in dnl
657 /etc/ttys /etc/ttytab;
658 do
659 if test -f "$ttys_file" ; then
660 rxvt_cv_path_ttytab=$ttys_file
661 break
662 fi
663 done
664 ])
665 if test x$rxvt_cv_path_ttytab != x; then
666 AC_DEFINE_UNQUOTED(TTYTAB_FILENAME, "$rxvt_cv_path_ttytab", Define location of ttys/ttytab)
667 fi
668
669 dnl# --------------------------------------------------------------------------
670 dnl# --------------------------------------------------------------------------
671
672 dnl# this is a really hack test for some basic Xlocale stuff
673 ac_save_LIBS=$LIBS
674 ac_save_CFLAGS=$CFLAGS
675 CFLAGS="$CFLAGS $X_CFLAGS"
676 LIBS="$LIBS $X_LIBS $X_EXTRA_LIBS -lX11"
677 if test x$rxvt_cv_rpath = xyes -o x$rxvt_cv_R = xyes; then
678 LIBS=`echo $LIBS | sed "$R_TRANSLATE"`
679 fi
680 AC_CACHE_CHECK(for working Xlocale, rxvt_cv_func_xlocale,
681 [AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <X11/Xlib.h>
682 main() {
683 char *p;
684 if ((p = XSetLocaleModifiers("@im=none")) != NULL && *p)
685 exit (XSupportsLocale() ? 0 : 1);
686 else
687 exit (1);}]])],[dnl
688 rxvt_cv_func_xlocale=yes],[rxvt_cv_func_xlocale=no],[dnl
689 AC_MSG_WARN(Define NO_XLOCALE in config.h manually)])])
690 if test x$rxvt_cv_func_xlocale = xyes; then
691 AC_DEFINE(HAVE_XLOCALE, 1, Define if Xlocale support works)
692 fi
693
694 AC_CACHE_CHECK(for working X setlocale, rxvt_cv_func_xsetlocale,
695 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#define X_LOCALE 1
696 #include <X11/Xlocale.h>]], [[setlocale(LC_CTYPE, "");]])],[rxvt_cv_func_xsetlocale=yes],[rxvt_cv_func_xsetlocale=no])])
697 if test x$rxvt_cv_func_xsetlocale = xyes; then
698 AC_DEFINE(HAVE_XSETLOCALE, 1, Define if setlocale (defined to Xsetlocale) works)
699 fi
700 LIBS=$ac_save_LIBS
701 CFLAGS=$ac_save_CFLAGS
702
703 AC_CACHE_CHECK(for working plain setlocale, rxvt_cv_func_setlocale,
704 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <clocale>]], [[setlocale(LC_CTYPE, "");]])],[rxvt_cv_func_setlocale=yes],[rxvt_cv_func_setlocale=no])])
705 if test x$rxvt_cv_func_setlocale = xyes; then
706 AC_DEFINE(HAVE_SETLOCALE, 1, Define if plain old setlocale works)
707 fi
708
709 AC_CACHE_CHECK(for working nl_langinfo, rxvt_cv_func_nl_langinfo,
710 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <langinfo.h>]], [[nl_langinfo(CODESET);]])],[rxvt_cv_func_nl_langinfo=yes],[rxvt_cv_func_nl_langinfo=no])])
711 if test x$rxvt_cv_func_nl_langinfo = xyes; then
712 AC_DEFINE(HAVE_NL_LANGINFO, 1, Define if nl_langinfo(CODESET) works)
713 fi
714
715 SCM_RIGHTS_CHECK
716
717 AC_CACHE_CHECK(for broken XIM callback, rxvt_broken_ximcb,
718 [AC_COMPILE_IFELSE([
719 #include <X11/Xlib.h>
720
721 void im_destroy_cb (XIC unused1, XPointer client_data, XPointer unused3);
722
723 void f() {
724 XIMCallback cb;
725 cb.callback = im_destroy_cb;
726 }
727 ],rxvt_broken_ximcb=yes,rxvt_broken_ximcb=no)])
728
729 if test x$rxvt_broken_ximcb = xyes; then
730 AC_DEFINE(XIMCB_PROTO_BROKEN, 1, Define if your XIMCallback specifies XIC as first type.)
731 fi
732
733 PTY_CHECK
734
735 TTY_GROUP_CHECK
736
737 dnl# --------------------------------------------------------------------------
738 dnl# now add and remove other stuff
739 dnl# --------------------------------------------------------------------------
740 if test x$support_xft = xyes; then
741 AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
742 if test $PKG_CONFIG != no && $PKG_CONFIG --exists xft; then
743 LIBS="$LIBS `$PKG_CONFIG xft --libs`"
744 CPPFLAGS="$CPPFLAGS `$PKG_CONFIG xft --cflags`"
745 else
746 AC_PATH_PROG(XFT_CONFIG, xft-config, no)
747 if test $XFT_CONFIG != no; then
748 LIBS="$LIBS `$XFT_CONFIG --libs`"
749 CPPFLAGS="$CPPFLAGS `$XFT_CONFIG --cflags`"
750 fi
751 fi
752
753 AC_CHECK_HEADERS(X11/Xft/Xft.h,,[support_xft=no])
754 AC_CHECK_LIB(Xft,XftDrawString32,,[support_xft=no])
755
756 if test x$support_xft = xyes; then
757 AC_DEFINE(XFT, 1, Define to enable xft support)
758 fi
759 fi
760 if test x$support_styles = xyes; then
761 AC_DEFINE(ENABLE_STYLES, 1, Define if you want bold and italic support)
762 fi
763 if test x$support_iso14755 = xyes; then
764 AC_DEFINE(ISO_14755, 1, Define if you want ISO 14755 extended support)
765 fi
766 if test x$support_8bitctrls = xyes; then
767 AC_DEFINE(EIGHT_BIT_CONTROLS, 1, Define if you want 8 bit control sequences)
768 fi
769 if test x$support_fading = xyes; then
770 AC_DEFINE(OFF_FOCUS_FADING, 1, Define if you want faded colors when focus is lost)
771 fi
772 if test x$support_tinting = xyes; then
773 AC_DEFINE(TINTING, 1, Define if you want your background to be tinted)
774 fi
775 if test x$support_inheritpixmap = xyes; then
776 AC_DEFINE(TRANSPARENT, 1, Define if you want your background to use the parent window background)
777 fi
778 if test x$support_keepscrolling = xno; then
779 AC_DEFINE(NO_SCROLLBAR_BUTTON_CONTINUAL_SCROLLING, 1, Define for continual scrolling when you keep the scrollbar button pressed)
780 fi
781 if test x$support_selectionscrolling = xyes; then
782 AC_DEFINE(SELECTION_SCROLLING, 1, Define to allow scrolling when the selection moves to the top or bottom of the screen)
783 fi
784 if test x$support_frills = xyes; then
785 AC_DEFINE(ENABLE_FRILLS, 1, Define if you want handling for rarely used but handy features)
786 fi
787 if test x$support_mousewheel = xyes; then
788 AC_DEFINE(MOUSE_WHEEL, 1, Define to use wheel events (button4 and button5) to scroll)
789 fi
790 if test x$support_mouseslipwheel = xyes; then
791 AC_DEFINE(MOUSE_SLIP_WHEELING, 1, Define to have CTRL cause wheel events to accelerate scrolling. Release CTRL to halt scrolling)
792 fi
793 if test x$support_xim = xyes -o x$multichar_set = xyes; then
794 if test x$rxvt_cv_func_xlocale = xyes; then
795 AC_DEFINE(USE_XIM, 1, Define if you want to have XIM (X Input Method) protocol support - required for multibyte characters input)
796 fi
797 fi
798 if test x$support_xpm = xyes; then
799 AC_DEFINE(XPM_BACKGROUND, 1, Define if you want to have sexy-looking background pixmaps. Needs libXpm)
800 fi
801 if test x$support_scroll_rxvt = xyes; then
802 AC_DEFINE(RXVT_SCROLLBAR, 1, Support Rxvt original style scrollbars)
803 scrolltypes="rxvt"
804 fi
805 if test x$support_scroll_next = xyes; then
806 AC_DEFINE(NEXT_SCROLLBAR, 1, Support NeXT style scrollbars)
807 scrolltypes="$scrolltypes next"
808 fi
809 if test x$support_scroll_xterm = xyes; then
810 AC_DEFINE(XTERM_SCROLLBAR, 1, Support Xterm style scrollbars)
811 scrolltypes="$scrolltypes xterm"
812 fi
813 if test x$support_scroll_plain = xyes; then
814 AC_DEFINE(PLAIN_SCROLLBAR, 1, Support plain style scrollbars)
815 scrolltypes="$scrolltypes plain"
816 fi
817 if test x$support_pointer_blank = xyes; then
818 AC_DEFINE(POINTER_BLANK, 1, Define if you want hide the pointer while typing)
819 fi
820 if test x$support_text_blink = xyes; then
821 AC_DEFINE(TEXT_BLINK, 1, Define if you want blinking text support)
822 fi
823 if test x$support_unicode3 = xyes; then
824 AC_DEFINE(UNICODE_3, 1, Define if you want to represent unicode characters outside plane 0)
825 fi
826 if test x$support_combining = xyes; then
827 AC_DEFINE(ENABLE_COMBINING, 1, Define if you want to automatically compose combining characters)
828 fi
829 if test x$codesets = xall; then
830 codesets=jp,jp-ext,kr,zh,zh-ext
831 fi
832 AC_DEFINE(ENCODING_EU, 1, Define if you want european extended codesets)
833 AC_DEFINE(ENCODING_VN, 1, Define if you want vietnamese codesets)
834 for codeset in `echo $codesets | tr "[a-z,\\-]" "[A-Z _]"`; do
835 case "$codeset" in
836 JP ) AC_DEFINE(ENCODING_JP, 1, Define if you want japanese codesets) ;;
837 JP_EXT ) AC_DEFINE(ENCODING_JP_EXT, 1, Define if you want extended japanese codesets) ;;
838 KR ) AC_DEFINE(ENCODING_KR, 1, Define if you want korean codesets) ;;
839 ZH ) AC_DEFINE(ENCODING_ZH, 1, Define if you want chinese codesets) ;;
840 ZH_EXT ) AC_DEFINE(ENCODING_ZH_EXT, 1, Define if you want extended chinese codesets) ;;
841 esac
842 done
843
844 IF_PERL=\#
845 if test x$support_perl = xyes; then
846 AC_PATH_PROG(PERL, perl5)
847 AC_PATH_PROG(PERL, perl)
848
849 AC_MSG_CHECKING(for $PERL suitability)
850 if $PERL -MExtUtils::Embed -e "use v5.8" >/dev/null 2>/dev/null; then
851
852 save_CXXFLAGS="$CXXFLAGS"
853 save_LIBS="$LIBS"
854 CXXFLAGS="$CXXFLAGS `$PERL -MExtUtils::Embed -e ccopts`"
855 LIBS="$LIBS `$PERL -MExtUtils::Embed -e ldopts`"
856 AC_TRY_LINK([
857 #include <EXTERN.h>
858 #include <perl.h>
859 #include <XSUB.h>
860 ],[
861 PerlInterpreter *perl = perl_alloc ();
862 ],[rxvt_perl_link=yes],[rxvt_perl_link=no])
863 CXXFLAGS="$save_CXXFLAGS"
864 LIBS="$save_LIBS"
865
866 if test x$rxvt_perl_link = xyes; then
867 AC_MSG_RESULT(ok)
868 AC_DEFINE(ENABLE_PERL, 1, Define if you can embed a perl interpreter)
869 IF_PERL=
870 PERL_O=rxvtperl.o
871 PERLFLAGS="`$PERL -MExtUtils::Embed -e ccopts`"
872 PERLLIB="`$PERL -MExtUtils::Embed -e ldopts`"
873 PERLPRIVLIBEXP="`$PERL -MConfig -e 'print $Config{privlibexp}'`"
874 else
875 AC_MSG_ERROR([no, unable to link])
876 fi
877 else
878 AC_MSG_ERROR([no working perl found, or perl not version >= 5.8])
879 fi
880 fi
881 AC_SUBST(PERLLIB)
882 AC_SUBST(PERLFLAGS)
883 AC_SUBST(PERLPRIVLIBEXP)
884 AC_SUBST(PERL)
885 AC_SUBST(IF_PERL)
886 AC_SUBST(PERL_O)
887
888 if test x$support_perl = xyes; then
889 support_frills=yes
890 fi
891
892 dnl> AC_CHECK_FUNCS(gettimeofday putenv select socket)
893
894 CFLAGS=${CFLAGS--O}
895 LDFLAGS=${LDFLAGS--O}
896
897 CPPFLAGS="$CPPFLAGS"
898 AC_SUBST(DEBUG)
899 AC_SUBST(DINCLUDE)
900 AC_SUBST(CFLAGS)
901 AC_SUBST(CPPFLAGS)
902 AC_SUBST(LDFLAGS)
903 AC_SUBST(X_CFLAGS)
904
905 dnl# Attack the libs
906 if test x$rxvt_cv_rpath = xyes -o x$rxvt_cv_R = xyes; then
907 DLIB=`echo $DLIB | sed "$R_TRANSLATE"`
908 LIBS=`echo $LIBS | sed "$R_TRANSLATE"`
909 X_LIBS=`echo $X_LIBS | sed "$R_TRANSLATE"`
910 X_EXTRA_LIBS=`echo $X_EXTRA_LIBS | sed "$R_TRANSLATE"`
911 XPM_LIBS=`echo $XPM_LIBS | sed "$R_TRANSLATE"`
912 fi
913 AC_SUBST(DLIB)
914 AC_SUBST(LIBS)
915 AC_SUBST(X_LIBS)
916 AC_SUBST(X_EXTRA_LIBS)
917
918 AC_ARG_PROGRAM
919
920 dnl# test for "sun" or "__sun__" before include sys_ioctl
921
922 dnl# revert HAVE_BLAH_H into a "#include <blah.h>"
923 AC_DEFUN([RXVT_DEFINE_TO_INCLUDE], dnl
924 [if test "$$3" = "$4" -o "$$5" = "$6"; then
925 $1="#include <$2>"
926 else
927 $1="/* #include <$2> */"
928 fi dnl
929 AC_SUBST($1)])
930
931 RXVT_DEFINE_TO_INCLUDE(include_stdint_h, stdint.h, ac_cv_header_stdint_h, yes, notset, dontmatch)
932 RXVT_DEFINE_TO_INCLUDE(include_stdarg_h, cstdarg, ac_cv_header_stdarg_h, yes, notset, dontmatch)
933 RXVT_DEFINE_TO_INCLUDE(include_stdlib_h, cstdlib, ac_cv_header_stdlib_h, yes, notset, dontmatch)
934 RXVT_DEFINE_TO_INCLUDE(include_unistd_h, unistd.h, ac_cv_header_unistd_h, yes, notset, dontmatch)
935 RXVT_DEFINE_TO_INCLUDE(include_string_h, cstring, ac_cv_header_string_h, yes, notset, dontmatch)
936 RXVT_DEFINE_TO_INCLUDE(include_fcntl_h, fcntl.h, ac_cv_header_fcntl_h, yes, notset, dontmatch)
937 RXVT_DEFINE_TO_INCLUDE(include_util_h, util.h, ac_cv_header_util_h, yes, notset, dontmatch)
938 RXVT_DEFINE_TO_INCLUDE(include_assert_h, assert.h, ac_cv_header_assert_h, yes, notset, dontmatch)
939 RXVT_DEFINE_TO_INCLUDE(include_sys_ioctl_h, sys/ioctl.h, rxvt_cv_header_sysioctl, yes, notset, dontmatch)
940 RXVT_DEFINE_TO_INCLUDE(include_sys_select_h, sys/select.h, ac_cv_header_sys_select_h, yes, notset, dontmatch)
941 RXVT_DEFINE_TO_INCLUDE(include_sys_strredir_h, sys/strredir.h, ac_cv_header_sys_strredir_h, yes, notset, dontmatch)
942 RXVT_DEFINE_TO_INCLUDE(include_sys_time_h, sys/time.h, ac_cv_header_sys_time_h, yes, notset, dontmatch)
943 RXVT_DEFINE_TO_INCLUDE(include_time_h, time.h, ac_cv_header_sys_time_h, no, ac_cv_header_time, yes)
944
945 AC_CONFIG_FILES([Makefile \
946 doc/Makefile \
947 src/Makefile \
948 src/rxvtlib.h \
949 ])
950 AC_OUTPUT
951
952 echo "Configuration:
953
954 Rxvt version: $VERSION : $DATE
955 Source code location: $srcdir
956 Install path: ${prefix}/bin
957 Compiler: $CXX
958 Compiler flags: $CFLAGS
959 Linker: $LINKER"
960
961 if test x$support_xpm = xyes; then
962 echo " Xpm library: $XPM_LIBS"
963 fi
964
965 if test x$term != x; then
966 echo " set TERM to: $term"
967 fi
968 if test x$terminfo != x; then
969 echo " set TERMINFO to: $terminfo"
970 fi
971 echo " default resource name: $RESNAME"
972 echo " resource class: $RESCLASS"
973 if test x$RESFALLBACK != x; then
974 echo " resource class fallback: $RESFALLBACK"
975 fi
976 echo
977 echo " embedded perl: $support_perl"
978 echo
979 if test x$support_xpm = xneedsmanualspecification; then
980 echo ".----------------------------------------------------------------."
981 echo ". WARNING: --enable-xpm-background was specified however the ."
982 echo ". XPM includes files and libraries could not be found. ."
983 echo ". XPM backgrounds are now being DISABLED! If you want ."
984 echo ". to use them you should rerun configure with the ."
985 echo ". appropriate --with-xpm-includes=/path/to/xpm/includes ."
986 echo ". and --with-xpm-library=/path/to/xpm/library lines. ."
987 echo ".----------------------------------------------------------------."
988 fi
989 if test x$support_xim = xyes -a x$rxvt_cv_func_xlocale = xno; then
990 echo ".----------------------------------------------------------------."
991 echo ". WARNING: --enable-xim was specified however the locale support ."
992 echo ". functions could not be found. ."
993 echo ". XIM is now being DISABLED! ."
994 echo ".----------------------------------------------------------------."
995 fi
996
997 echo "*** Optionally check src/feature.h for further, rarely used options ***"
998 echo
999
1000 echo ".----------------------------------------------------------------."
1001 echo ". NOTE: some features are disabled by default, try ."
1002 echo ". configure --help to get an idea of the optional features, ."
1003 echo ". or read ./README.configure ."
1004 echo ". ."
1005 echo ". The script ./reconf gives a reasonable baseline, try it if ."
1006 echo ". you do not want to read documentation and still want some ."
1007 echo ". useful features. ."
1008 echo ".----------------------------------------------------------------."
1009 echo
1010