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