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