ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/configure.ac
Revision: 1.29
Committed: Wed Jan 25 21:03:03 2006 UTC (18 years, 4 months ago) by root
Branch: MAIN
CVS Tags: rel-7_3
Changes since 1.28: +0 -11 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 seteuid \
658 setresuid \
659 setreuid \
660 on_exit \
661 )
662
663 UTMP_CHECK
664
665 dnl# --------------------------------------------------------------------------
666
667 dnl# find ttys/ttytab
668 AC_CACHE_CHECK(where ttys/ttytab is located, rxvt_cv_path_ttytab,
669 [for ttys_file in dnl
670 /etc/ttys /etc/ttytab;
671 do
672 if test -f "$ttys_file" ; then
673 rxvt_cv_path_ttytab=$ttys_file
674 break
675 fi
676 done
677 ])
678 if test x$rxvt_cv_path_ttytab != x; then
679 AC_DEFINE_UNQUOTED(TTYTAB_FILENAME, "$rxvt_cv_path_ttytab", Define location of ttys/ttytab)
680 fi
681
682 dnl# --------------------------------------------------------------------------
683 dnl# --------------------------------------------------------------------------
684
685 dnl# this is a really hack test for some basic Xlocale stuff
686 ac_save_LIBS=$LIBS
687 ac_save_CFLAGS=$CFLAGS
688 CFLAGS="$CFLAGS $X_CFLAGS"
689 LIBS="$LIBS $X_LIBS $X_EXTRA_LIBS -lX11"
690 if test x$rxvt_cv_rpath = xyes -o x$rxvt_cv_R = xyes; then
691 LIBS=`echo $LIBS | sed "$R_TRANSLATE"`
692 fi
693 AC_CACHE_CHECK(for working Xlocale, rxvt_cv_func_xlocale,
694 [AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <X11/Xlib.h>
695 main() {
696 char *p;
697 if ((p = XSetLocaleModifiers("@im=none")) != NULL && *p)
698 exit (XSupportsLocale() ? 0 : 1);
699 else
700 exit (1);}]])],[dnl
701 rxvt_cv_func_xlocale=yes],[rxvt_cv_func_xlocale=no],[dnl
702 AC_MSG_WARN(Define NO_XLOCALE in config.h manually)])])
703 if test x$rxvt_cv_func_xlocale = xyes; then
704 AC_DEFINE(HAVE_XLOCALE, 1, Define if Xlocale support works)
705 fi
706
707 AC_CACHE_CHECK(for working X setlocale, rxvt_cv_func_xsetlocale,
708 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#define X_LOCALE 1
709 #include <X11/Xlocale.h>]], [[setlocale(LC_CTYPE, "");]])],[rxvt_cv_func_xsetlocale=yes],[rxvt_cv_func_xsetlocale=no])])
710 if test x$rxvt_cv_func_xsetlocale = xyes; then
711 AC_DEFINE(HAVE_XSETLOCALE, 1, Define if setlocale (defined to Xsetlocale) works)
712 fi
713 LIBS=$ac_save_LIBS
714 CFLAGS=$ac_save_CFLAGS
715
716 AC_CACHE_CHECK(for working plain setlocale, rxvt_cv_func_setlocale,
717 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <clocale>]], [[setlocale(LC_CTYPE, "");]])],[rxvt_cv_func_setlocale=yes],[rxvt_cv_func_setlocale=no])])
718 if test x$rxvt_cv_func_setlocale = xyes; then
719 AC_DEFINE(HAVE_SETLOCALE, 1, Define if plain old setlocale works)
720 fi
721
722 AC_CACHE_CHECK(for working nl_langinfo, rxvt_cv_func_nl_langinfo,
723 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <langinfo.h>]], [[nl_langinfo(CODESET);]])],[rxvt_cv_func_nl_langinfo=yes],[rxvt_cv_func_nl_langinfo=no])])
724 if test x$rxvt_cv_func_nl_langinfo = xyes; then
725 AC_DEFINE(HAVE_NL_LANGINFO, 1, Define if nl_langinfo(CODESET) works)
726 fi
727
728 SCM_RIGHTS_CHECK
729
730 AC_CACHE_CHECK(for broken XIM callback, rxvt_broken_ximcb,
731 [AC_COMPILE_IFELSE([
732 #include <X11/Xlib.h>
733
734 void im_destroy_cb (XIC unused1, XPointer client_data, XPointer unused3);
735
736 void f() {
737 XIMCallback cb;
738 cb.callback = im_destroy_cb;
739 }
740 ],rxvt_broken_ximcb=yes,rxvt_broken_ximcb=no)])
741
742 if test x$rxvt_broken_ximcb = xyes; then
743 AC_DEFINE(XIMCB_PROTO_BROKEN, 1, Define if your XIMCallback specifies XIC as first type.)
744 fi
745
746 PTY_CHECK
747
748 TTY_GROUP_CHECK
749
750 dnl# --------------------------------------------------------------------------
751 dnl# now add and remove other stuff
752 dnl# --------------------------------------------------------------------------
753 if test x$support_xft = xyes; then
754 AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
755 if test $PKG_CONFIG != no && $PKG_CONFIG --exists xft; then
756 LIBS="$LIBS `$PKG_CONFIG xft --libs`"
757 CPPFLAGS="$CPPFLAGS `$PKG_CONFIG xft --cflags`"
758 else
759 AC_PATH_PROG(XFT_CONFIG, xft-config, no)
760 if test $XFT_CONFIG != no; then
761 LIBS="$LIBS `$XFT_CONFIG --libs`"
762 CPPFLAGS="$CPPFLAGS `$XFT_CONFIG --cflags`"
763 fi
764 fi
765
766 AC_CHECK_HEADERS(X11/Xft/Xft.h,,[support_xft=no])
767 AC_CHECK_LIB(Xft,XftDrawString32,,[support_xft=no])
768
769 if test x$support_xft = xyes; then
770 AC_DEFINE(XFT, 1, Define to enable xft support)
771 fi
772 fi
773 if test x$support_styles = xyes; then
774 AC_DEFINE(ENABLE_STYLES, 1, Define if you want bold and italic support)
775 fi
776 if test x$support_iso14755 = xyes; then
777 AC_DEFINE(ISO_14755, 1, Define if you want ISO 14755 extended support)
778 fi
779 if test x$support_8bitctrls = xyes; then
780 AC_DEFINE(EIGHT_BIT_CONTROLS, 1, Define if you want 8 bit control sequences)
781 fi
782 if test x$support_fading = xyes; then
783 AC_DEFINE(OFF_FOCUS_FADING, 1, Define if you want faded colors when focus is lost)
784 fi
785 if test x$support_tinting = xyes; then
786 AC_DEFINE(TINTING, 1, Define if you want your background to be tinted)
787 fi
788 if test x$support_inheritpixmap = xyes; then
789 AC_DEFINE(TRANSPARENT, 1, Define if you want your background to use the parent window background)
790 fi
791 if test x$support_keepscrolling = xno; then
792 AC_DEFINE(NO_SCROLLBAR_BUTTON_CONTINUAL_SCROLLING, 1, Define for continual scrolling when you keep the scrollbar button pressed)
793 fi
794 if test x$support_selectionscrolling = xyes; then
795 AC_DEFINE(SELECTION_SCROLLING, 1, Define to allow scrolling when the selection moves to the top or bottom of the screen)
796 fi
797 if test x$support_frills = xyes; then
798 AC_DEFINE(ENABLE_FRILLS, 1, Define if you want handling for rarely used but handy features)
799 fi
800 if test x$support_mousewheel = xyes; then
801 AC_DEFINE(MOUSE_WHEEL, 1, Define to use wheel events (button4 and button5) to scroll)
802 fi
803 if test x$support_mouseslipwheel = xyes; then
804 AC_DEFINE(MOUSE_SLIP_WHEELING, 1, Define to have CTRL cause wheel events to accelerate scrolling. Release CTRL to halt scrolling)
805 fi
806 if test x$support_xim = xyes -o x$multichar_set = xyes; then
807 if test x$rxvt_cv_func_xlocale = xyes; then
808 AC_DEFINE(USE_XIM, 1, Define if you want to have XIM (X Input Method) protocol support - required for multibyte characters input)
809 fi
810 fi
811 if test x$support_xpm = xyes; then
812 AC_DEFINE(XPM_BACKGROUND, 1, Define if you want to have sexy-looking background pixmaps. Needs libXpm)
813 fi
814 if test x$support_scroll_rxvt = xyes; then
815 AC_DEFINE(RXVT_SCROLLBAR, 1, Support Rxvt original style scrollbars)
816 scrolltypes="rxvt"
817 fi
818 if test x$support_scroll_next = xyes; then
819 AC_DEFINE(NEXT_SCROLLBAR, 1, Support NeXT style scrollbars)
820 scrolltypes="$scrolltypes next"
821 fi
822 if test x$support_scroll_xterm = xyes; then
823 AC_DEFINE(XTERM_SCROLLBAR, 1, Support Xterm style scrollbars)
824 scrolltypes="$scrolltypes xterm"
825 fi
826 if test x$support_scroll_plain = xyes; then
827 AC_DEFINE(PLAIN_SCROLLBAR, 1, Support plain style scrollbars)
828 scrolltypes="$scrolltypes plain"
829 fi
830 if test x$support_pointer_blank = xyes; then
831 AC_DEFINE(POINTER_BLANK, 1, Define if you want hide the pointer while typing)
832 fi
833 if test x$support_text_blink = xyes; then
834 AC_DEFINE(TEXT_BLINK, 1, Define if you want blinking text support)
835 fi
836 if test x$support_unicode3 = xyes; then
837 AC_DEFINE(UNICODE_3, 1, Define if you want to represent unicode characters outside plane 0)
838 fi
839 if test x$support_combining = xyes; then
840 AC_DEFINE(ENABLE_COMBINING, 1, Define if you want to automatically compose combining characters)
841 fi
842 if test x$codesets = xall; then
843 codesets=jp,jp-ext,kr,zh,zh-ext
844 fi
845 AC_DEFINE(ENCODING_EU, 1, Define if you want european extended codesets)
846 AC_DEFINE(ENCODING_VN, 1, Define if you want vietnamese codesets)
847 for codeset in `echo $codesets | tr "[a-z,\\-]" "[A-Z _]"`; do
848 case "$codeset" in
849 JP ) AC_DEFINE(ENCODING_JP, 1, Define if you want japanese codesets) ;;
850 JP_EXT ) AC_DEFINE(ENCODING_JP_EXT, 1, Define if you want extended japanese codesets) ;;
851 KR ) AC_DEFINE(ENCODING_KR, 1, Define if you want korean codesets) ;;
852 ZH ) AC_DEFINE(ENCODING_ZH, 1, Define if you want chinese codesets) ;;
853 ZH_EXT ) AC_DEFINE(ENCODING_ZH_EXT, 1, Define if you want extended chinese codesets) ;;
854 esac
855 done
856
857 IF_PERL=\#
858 if test x$support_perl = xyes; then
859 AC_PATH_PROG(PERL, perl5)
860 AC_PATH_PROG(PERL, perl)
861
862 AC_MSG_CHECKING(for $PERL suitability)
863 if $PERL -MExtUtils::Embed -e "use v5.8" >/dev/null 2>/dev/null; then
864
865 save_CXXFLAGS="$CXXFLAGS"
866 save_LIBS="$LIBS"
867 CXXFLAGS="$CXXFLAGS `$PERL -MExtUtils::Embed -e ccopts`"
868 LIBS="$LIBS `$PERL -MExtUtils::Embed -e ldopts`"
869 AC_TRY_LINK([
870 #include <EXTERN.h>
871 #include <perl.h>
872 #include <XSUB.h>
873 ],[
874 PerlInterpreter *perl = perl_alloc ();
875 ],[rxvt_perl_link=yes],[rxvt_perl_link=no])
876 CXXFLAGS="$save_CXXFLAGS"
877 LIBS="$save_LIBS"
878
879 if test x$rxvt_perl_link = xyes; then
880 AC_MSG_RESULT(ok)
881 AC_DEFINE(ENABLE_PERL, 1, Define if you can embed a perl interpreter)
882 IF_PERL=
883 PERL_O=rxvtperl.o
884 PERLFLAGS="`$PERL -MExtUtils::Embed -e ccopts`"
885 PERLLIB="`$PERL -MExtUtils::Embed -e ldopts`"
886 PERLPRIVLIBEXP="`$PERL -MConfig -e 'print $Config{privlibexp}'`"
887 else
888 AC_MSG_ERROR([no, unable to link])
889 fi
890 else
891 AC_MSG_ERROR([no working perl found, or perl not version >= 5.8])
892 fi
893 fi
894 AC_SUBST(PERLLIB)
895 AC_SUBST(PERLFLAGS)
896 AC_SUBST(PERLPRIVLIBEXP)
897 AC_SUBST(PERL)
898 AC_SUBST(IF_PERL)
899 AC_SUBST(PERL_O)
900
901 if test x$support_perl = xyes; then
902 support_frills=yes
903 fi
904
905 dnl> AC_CHECK_FUNCS(gettimeofday putenv select socket)
906
907 CFLAGS=${CFLAGS--O}
908 LDFLAGS=${LDFLAGS--O}
909
910 CPPFLAGS="$CPPFLAGS"
911 AC_SUBST(DEBUG)
912 AC_SUBST(DINCLUDE)
913 AC_SUBST(CFLAGS)
914 AC_SUBST(CPPFLAGS)
915 AC_SUBST(LDFLAGS)
916 AC_SUBST(X_CFLAGS)
917
918 dnl# Attack the libs
919 if test x$rxvt_cv_rpath = xyes -o x$rxvt_cv_R = xyes; then
920 DLIB=`echo $DLIB | sed "$R_TRANSLATE"`
921 LIBS=`echo $LIBS | sed "$R_TRANSLATE"`
922 X_LIBS=`echo $X_LIBS | sed "$R_TRANSLATE"`
923 X_EXTRA_LIBS=`echo $X_EXTRA_LIBS | sed "$R_TRANSLATE"`
924 XPM_LIBS=`echo $XPM_LIBS | sed "$R_TRANSLATE"`
925 fi
926 AC_SUBST(DLIB)
927 AC_SUBST(LIBS)
928 AC_SUBST(X_LIBS)
929 AC_SUBST(X_EXTRA_LIBS)
930
931 AC_ARG_PROGRAM
932
933 dnl# test for "sun" or "__sun__" before include sys_ioctl
934
935 dnl# revert HAVE_BLAH_H into a "#include <blah.h>"
936 AC_DEFUN([RXVT_DEFINE_TO_INCLUDE], dnl
937 [if test "$$3" = "$4" -o "$$5" = "$6"; then
938 $1="#include <$2>"
939 else
940 $1="/* #include <$2> */"
941 fi dnl
942 AC_SUBST($1)])
943
944 RXVT_DEFINE_TO_INCLUDE(include_stdint_h, stdint.h, ac_cv_header_stdint_h, yes, notset, dontmatch)
945 RXVT_DEFINE_TO_INCLUDE(include_stdarg_h, cstdarg, ac_cv_header_stdarg_h, yes, notset, dontmatch)
946 RXVT_DEFINE_TO_INCLUDE(include_stdlib_h, cstdlib, ac_cv_header_stdlib_h, yes, notset, dontmatch)
947 RXVT_DEFINE_TO_INCLUDE(include_unistd_h, unistd.h, ac_cv_header_unistd_h, yes, notset, dontmatch)
948 RXVT_DEFINE_TO_INCLUDE(include_string_h, cstring, ac_cv_header_string_h, yes, notset, dontmatch)
949 RXVT_DEFINE_TO_INCLUDE(include_fcntl_h, fcntl.h, ac_cv_header_fcntl_h, yes, notset, dontmatch)
950 RXVT_DEFINE_TO_INCLUDE(include_util_h, util.h, ac_cv_header_util_h, yes, notset, dontmatch)
951 RXVT_DEFINE_TO_INCLUDE(include_assert_h, assert.h, ac_cv_header_assert_h, yes, notset, dontmatch)
952 RXVT_DEFINE_TO_INCLUDE(include_sys_ioctl_h, sys/ioctl.h, rxvt_cv_header_sysioctl, yes, notset, dontmatch)
953 RXVT_DEFINE_TO_INCLUDE(include_sys_select_h, sys/select.h, ac_cv_header_sys_select_h, yes, notset, dontmatch)
954 RXVT_DEFINE_TO_INCLUDE(include_sys_strredir_h, sys/strredir.h, ac_cv_header_sys_strredir_h, yes, notset, dontmatch)
955 RXVT_DEFINE_TO_INCLUDE(include_sys_time_h, sys/time.h, ac_cv_header_sys_time_h, yes, notset, dontmatch)
956 RXVT_DEFINE_TO_INCLUDE(include_time_h, time.h, ac_cv_header_sys_time_h, no, ac_cv_header_time, yes)
957
958 AC_CONFIG_FILES([Makefile \
959 doc/Makefile \
960 src/Makefile \
961 src/rxvtlib.h \
962 ])
963 AC_OUTPUT
964
965 echo "Configuration:
966
967 Rxvt version: $VERSION : $DATE
968 Source code location: $srcdir
969 Install path: ${prefix}/bin
970 Compiler: $CXX
971 Compiler flags: $CFLAGS
972 Linker: $LINKER"
973
974 if test x$support_xpm = xyes; then
975 echo " Xpm library: $XPM_LIBS"
976 fi
977
978 if test x$term != x; then
979 echo " set TERM to: $term"
980 fi
981 if test x$terminfo != x; then
982 echo " set TERMINFO to: $terminfo"
983 fi
984 echo " default resource name: $RESNAME"
985 echo " resource class: $RESCLASS"
986 if test x$RESFALLBACK != x; then
987 echo " resource class fallback: $RESFALLBACK"
988 fi
989 echo
990 echo " embedded perl: $support_perl"
991 echo
992 if test x$support_xpm = xneedsmanualspecification; then
993 echo ".----------------------------------------------------------------."
994 echo ". WARNING: --enable-xpm-background was specified however the ."
995 echo ". XPM includes files and libraries could not be found. ."
996 echo ". XPM backgrounds are now being DISABLED! If you want ."
997 echo ". to use them you should rerun configure with the ."
998 echo ". appropriate --with-xpm-includes=/path/to/xpm/includes ."
999 echo ". and --with-xpm-library=/path/to/xpm/library lines. ."
1000 echo ".----------------------------------------------------------------."
1001 fi
1002 if test x$support_xim = xyes -a x$rxvt_cv_func_xlocale = xno; then
1003 echo ".----------------------------------------------------------------."
1004 echo ". WARNING: --enable-xim was specified however the locale support ."
1005 echo ". functions could not be found. ."
1006 echo ". XIM is now being DISABLED! ."
1007 echo ".----------------------------------------------------------------."
1008 fi
1009
1010 echo " *** Optionally check src/feature.h for further options ***"
1011 echo
1012
1013 echo ".----------------------------------------------------------------."
1014 echo ". NOTE: some features are disabled by default, try ."
1015 echo ". configure --help to get an idea of the optional features, ."
1016 echo ". or read ./README.configure ."
1017 echo ". ."
1018 echo ". The script ./reconf gives a reasonable baseline, try it if ."
1019 echo ". you do not want to read documentation and still want some ."
1020 echo ". useful features. ."
1021 echo ".----------------------------------------------------------------."
1022 echo
1023