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