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