ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/autoconf/configure.in
Revision: 1.31
Committed: Tue Aug 10 22:36:30 2004 UTC (19 years, 11 months ago) by root
Branch: MAIN
CVS Tags: rel-3_5
Changes since 1.30: +57 -80 lines
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 pcg 1.1 dnl# -*- sh -*-
2     dnl#
3     dnl# Process this file with autoconf to produce a configure script.
4     dnl#
5 root 1.31 AC_INIT
6     AC_CONFIG_SRCDIR([src/feature.h])
7 pcg 1.1 AC_CONFIG_AUX_DIR(autoconf)
8     AC_CONFIG_HEADER(config.h:autoconf/config.h.in)
9    
10     dnl RXVT version
11     changequote(, )dnl
12     VERSION=`sed -n -e 's/^.*[ \t]VERSION.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
13     DATE=`sed -n -e 's/^.*[ \t]DATE.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
14     LSMDATE=`sed -n -e 's/^.*[ \t]LSMDATE.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
15     LIBVERSION=`sed -n -e 's/^.*[ \t]LIBVERSION.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
16     changequote([, ])dnl
17     AC_SUBST(VERSION)dnl
18     AC_SUBST(DATE)dnl
19     AC_SUBST(LSMDATE)dnl
20     AC_SUBST(LIBVERSION)dnl
21     echo ""
22     echo "configuring for rxvt $VERSION"
23     echo ""
24    
25     dnl# Checks for programs.
26     dnl AC_MAKE_SET
27    
28     AC_PROG_CC
29     AC_PROG_CXX
30     AC_PROG_CPP
31     AC_PROG_INSTALL
32     AC_PROG_AWK
33    
34 pcg 1.16 AC_LANG(C)
35    
36     LINKER="$CXX"
37     if test x$GCC = xyes && test x$GXX = xyes; then
38     AC_CHECK_LIB(supc++, main, [
39     LINKER="$CC"
40     LIBS="$LIBS -lsupc++"
41     ])
42     fi
43     AC_SUBST(LINKER,[$LINKER])
44    
45     CPPFLAGS="-D_GNU_SOURCE -D_XOPEN_SOURCE"
46    
47 pcg 1.24 dnl if test x$GXX = xyes; then
48     dnl CXXFLAGS="$CXXFLAGS" dnl I once had -fno-exceptions, but I am using them now...
49     dnl fi
50 pcg 1.16
51     AC_LANG(C++)
52    
53 pcg 1.1 dnl# system hacks
54     AC_AIX
55     AC_ISC_POSIX
56    
57 pcg 1.26 dnl# FreeBSD needs to link libxpg4
58     AC_CHECK_LIB(xpg4, setlocale, [LIBS="$LIBS -lxpg4"])
59    
60     dnl solaris needs to link libnsl and socket
61     AC_CHECK_LIB(nsl, gethostbyname, [LIBS="$LIBS -lnsl"])
62     AC_CHECK_LIB(socket, socket, [LIBS="$LIBS -lsocket"])
63    
64 pcg 1.1 AC_ENABLE_SHARED(no)dnl# libtool
65     AC_ENABLE_STATIC(yes)dnl# libtool
66     AC_PROG_LIBTOOL()dnl# libtool
67    
68     MALLOC_TYPE=S
69     support_addstrings=no
70     support_frills=no
71     support_linespace=no
72     support_inheritpixmap=no
73 pcg 1.25 support_tinting=no
74 root 1.28 support_fading=no
75 pcg 1.1 support_keepscrolling=no
76     support_selectionscrolling=no
77     support_menubar=no
78     support_mousewheel=no
79     support_mouseslipwheel=no
80     support_utmp=no
81     support_wtmp=no
82     support_lastlog=no
83     support_cursor_blink=no
84 pcg 1.6 support_text_blink=no
85 pcg 1.1 support_pointer_blank=no
86     support_scroll_rxvt=no
87     support_scroll_next=no
88     support_scroll_xterm=no
89 pcg 1.11 support_scroll_plain=no
90 pcg 1.1 support_xim=no
91     support_xpm=no
92     support_xft=no
93     support_unicode3=no
94 pcg 1.18 support_combining=no
95 root 1.27 support_8bitctrls=no
96 pcg 1.1 codesets=
97    
98     dnl# --------------------------------------------------------------------------
99     dnl# CHECKING COMMAND LINE OPTIONS
100     dnl# --------------------------------------------------------------------------
101    
102     if test "x$enable_shared" = xyes; then
103     AC_DEFINE(LIBRXVT, 1, Build shared library version - specify via configure only)
104     INSTALL_LIBRXVT=yes
105     fi
106     AC_SUBST(INSTALL_LIBRXVT)
107    
108     AC_ARG_ENABLE(everything,
109 pcg 1.15 [ --enable-everything enable standard non-multichoice features
110 pcg 1.1 NOTE: this option is order dependent
111     NOTE: automatically enabled with --enable-shared],
112     [if test x$enableval = xyes; then
113     support_24bit=yes
114     support_frills=yes
115     support_linespace=yes
116     support_inheritpixmap=yes
117 pcg 1.25 support_tinting=yes
118 root 1.28 support_fading=yes
119 pcg 1.1 support_keepscrolling=yes
120     support_selectionscrolling=yes
121     support_lastlog=yes
122     support_menubar=yes
123     support_mousewheel=yes
124     support_mouseslipwheel=yes
125     support_cursor_blink=yes
126 pcg 1.6 support_text_blink=yes
127 pcg 1.1 support_pointer_blank=yes
128     support_scroll_rxvt=yes
129     support_scroll_next=yes
130     support_scroll_xterm=yes
131 pcg 1.11 support_scroll_plain=yes
132 pcg 1.1 support_utmp=yes
133     support_wtmp=yes
134     support_xim=yes
135     support_xpm=yes
136     support_xft=yes
137     support_unicode3=yes
138 pcg 1.18 support_combining=yes
139 root 1.27 #support_8bitctrls=yes
140 pcg 1.1 codesets=all
141     fi])
142    
143     AC_ARG_ENABLE(unicode3,
144     [ --enable-unicode3 use 21 instead of 16 bits to represent unicode characters],
145 pcg 1.15 [if test x$enableval = xyes -o x$enableval = xno; then
146 pcg 1.1 support_unicode3=yes
147     fi])
148    
149 pcg 1.18 AC_ARG_ENABLE(combining,
150     [ --enable-combining enable composition of base and combining characters],
151     [if test x$enableval = xyes -o x$enableval = xno; then
152     support_combining=yes
153     fi])
154    
155 pcg 1.1 AC_ARG_ENABLE(xft,
156 pcg 1.17 [ --enable-xft enable xft support on systems that have it],
157 pcg 1.15 [if test x$enableval = xyes -o x$enableval = xno; then
158 pcg 1.1 support_xft=yes
159     fi])
160    
161     AC_ARG_ENABLE(utmp,
162 pcg 1.8 [ --enable-utmp enable utmp (utmpx) support],
163 pcg 1.1 [if test x$enableval = xyes -o x$enableval = xno; then
164     support_utmp=$enableval
165     fi])
166    
167     AC_ARG_ENABLE(wtmp,
168 pcg 1.8 [ --enable-wtmp enable wtmp (wtmpx) support (requires --enable-utmp)],
169 pcg 1.1 [if test x$enableval = xyes -o x$enableval = xno; then
170     support_wtmp=$enableval
171     fi])
172    
173     AC_ARG_ENABLE(lastlog,
174 pcg 1.8 [ --enable-lastlog enable lastlog support (requires --enable-utmp)],
175 pcg 1.1 [if test x$enableval = xyes -o x$enableval = xno; then
176     support_lastlog=$enableval
177     fi])
178    
179     AC_ARG_ENABLE(xpm-background,
180 pcg 1.8 [ --enable-xpm-background enable XPM background pixmaps],
181 pcg 1.1 [if test x$enableval = xyes -o x$enableval = xno; then
182     support_xpm=$enableval
183     fi])
184    
185     AC_ARG_ENABLE(transparency,
186 pcg 1.8 [ --enable-transparency enable transparent backgrounds],
187 pcg 1.1 [if test x$enableval = xyes -o x$enableval = xno; then
188     support_inheritpixmap=$enableval
189     fi])
190    
191 pcg 1.25 AC_ARG_ENABLE(tinting,
192     [ --enable-tinting enable tinting of transparent bg],
193     [if test x$enableval = xyes -o x$enableval = xno; then
194     support_tinting=$enableval
195     fi])
196    
197 root 1.28 AC_ARG_ENABLE(fading,
198 root 1.29 [ --enable-fading enable colors fading when off focus],
199 root 1.28 [if test x$enableval = xyes -o x$enableval = xno; then
200     support_fading=$enableval
201     fi])
202    
203 pcg 1.1 AC_ARG_ENABLE(menubar,
204 pcg 1.8 [ --enable-menubar enable menubar],
205 pcg 1.1 [if test x$enableval = xyes -o x$enableval = xno; then
206     support_menubar=$enableval
207     fi])
208    
209     AC_ARG_ENABLE(rxvt-scroll,
210 pcg 1.8 [ --enable-rxvt-scroll enable rxvt style scrollbar],
211 pcg 1.1 [if test x$enableval = xyes -o x$enableval = xno; then
212     support_scroll_rxvt=$enableval
213     fi])
214    
215     AC_ARG_ENABLE(next-scroll,
216 pcg 1.8 [ --enable-next-scroll enable NeXT style scrollbar],
217 pcg 1.1 [if test x$enableval = xyes -o x$enableval = xno; then
218     support_scroll_next=$enableval
219     fi])
220    
221     AC_ARG_ENABLE(xterm-scroll,
222 pcg 1.8 [ --enable-xterm-scroll enable Xterm style scrollbar],
223 pcg 1.1 [if test x$enableval = xyes -o x$enableval = xno; then
224     support_scroll_xterm=$enableval
225     fi])
226    
227 pcg 1.11 AC_ARG_ENABLE(plain-scroll,
228     [ --enable-plain-scroll enable plain style scrollbar],
229     [if test x$enableval = xyes -o x$enableval = xno; then
230     support_scroll_plain=$enableval
231     fi])
232    
233 pcg 1.1 AC_ARG_ENABLE(half-shadow,
234     [ --enable-half-shadow use half width/height shadow on rxvt scrollbar],
235     [if test x$enableval = xyes; then
236     AC_DEFINE(HALFSHADOW, 1, Define if you want the depth of scrollbars and menus to be less)
237     fi])
238    
239 pcg 1.17 AC_ARG_WITH(codesets,
240     [ --with-codesets=NAME,.. compile in additional codesets (jp,jp_ext,kr,cn,cn_ext,all)],
241     [codesets="$withval"])
242    
243 pcg 1.1 AC_ARG_ENABLE(xim,
244 pcg 1.8 [ --enable-xim XIM (X Input Method) protocol support],
245 pcg 1.1 [if test x$enableval = xyes -o x$enableval = xno; then
246     support_xim=$enableval
247     fi])
248    
249     AC_ARG_ENABLE(ttygid,
250     [ --enable-ttygid enable tty setting to group named "tty"],
251     [if test x$enableval = xyes; then
252     AC_DEFINE(TTY_GID_SUPPORT, 1, Define to change gid of ttys to group tty)
253     fi])
254    
255     AC_ARG_ENABLE(backspace-key,
256     [ --disable-backspace-key disable handling of the backspace key],
257     [if test x$enableval = xno; then
258     AC_DEFINE(NO_BACKSPACE_KEY, 1, Define if you don't want support for the backspace key)
259     fi])
260    
261     AC_ARG_ENABLE(delete-key,
262     [ --disable-delete-key disable handling of the delete key],
263     [if test x$enableval = xno; then
264     AC_DEFINE(NO_DELETE_KEY, 1, Define if you don't want support for the (non-keypad) delete key)
265     fi])
266    
267     AC_ARG_ENABLE(resources,
268     [ --disable-resources disable all resource checking],
269     [if test x$enableval = xno; then
270     AC_DEFINE(NO_RESOURCES, 1, Define if you don't want any resources read)
271     fi])
272    
273     AC_ARG_ENABLE(xgetdefault,
274     [ --enable-xgetdefault enable resources via X instead of our small version],
275     [if test x$enableval = xyes; then
276     AC_DEFINE(USE_XGETDEFAULT, 1, Define if you want to use XGetDefault instead of our internal version)
277     fi])
278    
279 root 1.27 AC_ARG_ENABLE(8bitctrls,
280     [ --enable-8bitctrls enable 8 bit control sequences (not recommended)],
281     [if test x$enableval = xyes -o x$enableval = xno; then
282     support_8bitctrls=yes
283     fi])
284    
285 pcg 1.17 RESFALLBACK=Rxvt
286     AC_ARG_ENABLE(fallback,
287     [ --enable-fallback(=CLASS) fall back on CLASS resources in addition to URxvt ones (default: Rxvt)],
288     [
289     test x$enableval = xyes && enableval=Rxvt
290     test x$enableval = xno && enableval=
291     RESFALLBACK="$enableval"
292     ])
293    
294     if test x$RESFALLBACK != x; then
295     AC_DEFINE_UNQUOTED(RESFALLBACK, "$RESFALLBACK", [Fallback resource class])
296     fi
297    
298     RESNAME=urxvt
299     AC_ARG_WITH(res-name,
300     [ --with-res-name=NAME use this as default resource name (default: urxvt)],
301     [RESNAME="$withval"])
302     AC_DEFINE_UNQUOTED(RESNAME,"$RESNAME", [Default resource name])
303    
304     RESCLASS=URxvt
305     AC_ARG_WITH(res-class,
306     [ --with-res-class=CLASS use this as the resource class (default: URxvt)],
307     [RESCLASS="$withval"])
308     AC_DEFINE_UNQUOTED(RESCLASS,"$RESCLASS", [Resource class])
309    
310     RXVTNAME=urxvt
311     AC_ARG_WITH(name,
312     [ --with-name=NAME set the basename for the installed binaries (default: urxvt)],
313     [RXVTNAME="$withval"])
314    
315     RXVTNAME=`echo "$RXVTNAME"|sed "$program_transform_name"`
316     AC_SUBST(RXVTNAME)
317    
318 pcg 1.1 AC_ARG_ENABLE(strings,
319     [ --enable-strings enable some replacement system functions],
320     [if test x$enableval = xyes -o x$enableval = xno; then
321     support_addstrings=$enableval
322     fi])
323    
324     AC_ARG_ENABLE(swapscreen,
325     [ --disable-swapscreen disable swap screen support],
326     [if test x$enableval = xno; then
327     AC_DEFINE(NO_SECONDARY_SCREEN, 1, Disable the secondary screen. Many programs use the secondary screen as their workplace)
328     fi])
329    
330     AC_ARG_ENABLE(frills,
331 pcg 1.8 [ --enable-frills enable support for rarely used features],
332 pcg 1.1 [if test x$enableval = xyes -o x$enableval = xno; then
333     support_frills=$enableval
334     fi])
335    
336     AC_ARG_ENABLE(linespace,
337 pcg 1.8 [ --enable-linespace enable support for linespace],
338 pcg 1.1 [if test x$enableval = xyes -o x$enableval = xno; then
339     support_linespace=$enableval
340     fi])
341    
342     AC_ARG_ENABLE(24bit,
343 pcg 1.8 [ --enable-24bit enable support for using 24bit visuals if available],
344 pcg 1.1 [if test x$enableval = xyes -o x$enableval = xno; then
345     support_24bit=$enableval
346     fi])
347    
348     AC_ARG_ENABLE(keepscrolling,
349 pcg 1.8 [ --enable-keepscrolling enable continual scrolling on scrollbar arrow press],
350 pcg 1.1 [if test x$enableval = xyes -o x$enableval = xno; then
351     support_keepscrolling=$enableval
352     fi])
353    
354     AC_ARG_ENABLE(selectionscrolling,
355 pcg 1.8 [ --enable-selectionscrolling enable scrolling during selections],
356 pcg 1.1 [if test x$enableval = xyes -o x$enableval = xno; then
357     support_selectionscrolling=$enableval
358     fi])
359    
360     AC_ARG_ENABLE(mousewheel,
361 pcg 1.8 [ --enable-mousewheel enable scrolling via mouse wheel or buttons 4 & 5],
362 pcg 1.1 [if test x$enableval = xyes -o x$enableval = xno; then
363     support_mousewheel=$enableval
364     fi])
365    
366     AC_ARG_ENABLE(slipwheeling,
367 pcg 1.8 [ --enable-slipwheeling enable slip wheel scrolling (requires previous)],
368 pcg 1.1 [if test x$enableval = xyes -o x$enableval = xno; then
369     support_mouseslipwheel=$enableval
370     fi])
371    
372     AC_ARG_ENABLE(dmalloc,
373     [ --enable-dmalloc enable Gray Watson's malloc - for debugging use],
374     [if test x$enableval = xyes; then
375     MALLOC_TYPE=G
376     DEBUG=-DDEBUG_MALLOC
377     DLIB="-L/usr/local/lib -ldmalloc"
378     DINCLUDE=-I/usr/local/include
379     fi])
380    
381     AC_ARG_ENABLE(dlmalloc,
382     [ --enable-dlmalloc enable Doug Lea's malloc - for production use
383     NOTE: enable only one malloc package],
384     [if test x$enableval = xyes; then
385     MALLOC_TYPE=D
386     DEBUG=
387     DLIB="-L/usr/local/lib -ldlmalloc"
388     DINCLUDE=
389     fi])
390    
391     AC_ARG_ENABLE(smart-resize,
392     [ --enable-smart-resize enable smart growth/shrink behaviour],
393     [if test x$enableval = xyes; then
394     AC_DEFINE(SMART_RESIZE, 1, Define to use "smart" resize behavior)
395     fi])
396    
397 pcg 1.5 AC_ARG_ENABLE(256-color,
398     [ --enable-256-color enable 256-color support],
399     [if test x$enableval = xyes; then
400     AC_DEFINE(TTY_256COLOR, 1, Define if you want 256 colour support)
401     fi])
402 pcg 1.1
403     AC_ARG_ENABLE(cursor-blink,
404 pcg 1.6 [ --enable-cursor-blink enable blinking cursor],
405 pcg 1.1 [if test x$enableval = xyes -o x$enableval = xno; then
406     support_cursor_blink=$enableval
407     fi])
408    
409 pcg 1.6 AC_ARG_ENABLE(text-blink,
410 pcg 1.7 [ --enable-text-blink enable blinking text],
411 pcg 1.6 [if test x$enableval = xyes -o x$enableval = xno; then
412     support_text_blink=$enableval
413     fi])
414    
415 pcg 1.1 AC_ARG_ENABLE(pointer-blank,
416 pcg 1.6 [ --enable-pointer-blank enable pointer blank when typing or inactive pointer],
417 pcg 1.1 [if test x$enableval = xyes -o x$enableval = xno; then
418     support_pointer_blank=$enableval
419     fi])
420    
421     AC_ARG_WITH(term,
422 pcg 1.17 [ --with-term=NAME set the terminal to NAME (default: rxvt)],
423 pcg 1.1 [if test x$withval != x; then
424     AC_DEFINE_UNQUOTED(TERMENV, "$withval",Set TERM to the value given by configure) term="$withval"
425     fi])
426    
427     AC_ARG_WITH(terminfo,
428     [ --with-terminfo=PATH set the path to the terminfo tree to PATH],
429     [if test x$withval != x; then
430     AC_DEFINE_UNQUOTED(RXVT_TERMINFO, "$withval", Set TERMINFO value to the value given by configure) terminfo="$withval"
431     fi])
432    
433     dnl# --------------------------------------------------------------------------
434    
435     AC_DEFINE(PROTOTYPES, 1, Define if you need function prototypes)
436    
437     dnl# --------------------------------------------------------------------------
438     dnl# Supply default CFLAGS, if not specified by `CFLAGS=flags ./configure'
439     dnl#
440     if test -z "$CFLAGS"; then
441     if test -z "$CCOPTS"; then
442     CCOPTS='-O'
443     dnl> if test "x$GCC" = xyes; then
444     dnl> if test x$system = xLinux; then
445     dnl> CCOPTS="$CCOPTS "'-O2 -fno-strength-reduce'
446     dnl> fi
447     dnl> fi
448     fi
449     CFLAGS="$CCOPTS"
450     fi
451    
452     AC_PATH_PROG(MV, mv, mv)
453     AC_PATH_PROG(RM, rm, rm)
454     AC_PATH_PROG(CP, cp, cp)
455     AC_PATH_PROG(LN, ln, ln)
456     AC_PATH_PROG(SED, sed, sed)
457     AC_PATH_PROG(ECHO, echo, echo)
458     AC_PATH_PROG(CMP, cmp, cmp)
459     AC_PATH_PROG(TBL, tbl)
460    
461     dnl# need a neat way to detect SVR4 or its features
462     dnl# in src/command.c we use these functions:
463     dnl# grantpt(), unlockpt(), ptsname(), which are defined in <sys/ptms.h>
464     dnl# - but are these also defined for other systems?
465    
466     dnl# hack to find if this is SVR4 -- who knows?
467     dnl## AC_MSG_CHECKING(for SVR4)
468     dnl## AC_EGREP_CPP(yes,
469     dnl## [#if defined (SVR4) || defined (_SVR4) || defined (__svr4__)
470     dnl## yes;
471     dnl## #endif
472     dnl## ], [AC_MSG_RESULT(yes); AC_DEFINE(PERHAPS_SVR4)], AC_MSG_RESULT(perhaps not?))
473    
474     AC_PATH_XTRA
475    
476     dnl# the only reasonable way to find libXpm is do-it-yourself
477     dnl# only check if we want xpm-background
478    
479     if test x$support_xpm = xyes; then
480     VT_FIND_LIBXPM
481     if test x$no_xpm = xyes; then
482     support_xpm=needsmanualspecification
483     fi
484     fi
485    
486     dnl# --------------------------------------------------------------------------
487     dnl# CHECKING FOR HEADER FILES
488     dnl# --------------------------------------------------------------------------
489     AC_HEADER_SYS_WAIT
490     AC_CHECK_HEADERS( \
491     assert.h \
492     fcntl.h \
493     grp.h \
494     libc.h \
495     lastlog.h \
496     stdarg.h \
497     stdlib.h \
498     string.h \
499     termios.h \
500     unistd.h \
501     sys/byteorder.h \
502     sys/ioctl.h \
503     sys/select.h \
504     sys/sockio.h \
505     sys/strredir.h \
506     sys/time.h \
507     utmp.h \
508     utmpx.h \
509     stdint.h \
510     )
511    
512     AC_HEADER_TIME
513    
514     dnl# check to allow both <termios.h> and <sys/ioctl.h>
515     AC_CACHE_CHECK(whether termios.h and sys/ioctl.h may both be included, rxvt_cv_header_sysioctl,
516 root 1.31 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>
517 pcg 1.1 #include <sys/ioctl.h>
518     #ifdef HAVE_TERMIOS_H
519     #include <termios.h>
520 root 1.31 #endif]], [[int a = ECHO;]])],[rxvt_cv_header_sysioctl=yes],[rxvt_cv_header_sysioctl=no])])
521 pcg 1.1
522     dnl# ELF systems may want to store paths for dynamic libraries.
523     dnl# Lets see if the compiler can accept "-Rpath" or "-Wl,-Rpath"
524     dnl# At least one version of SunOS wants "-R path" but it's not checked yet.
525     if test -n "$GCC"; then
526     LDARG="-Wl,"
527     else
528     LDARG=""
529     fi
530     changequote(, )dnl
531     R_TRANSLATE='s/-L\([^ ]*\)/-L\1 '$LDARG'-rpath '$LDARG'\1/g'
532     changequote([, ])dnl
533    
534     ac_save_CFLAGS=$CFLAGS
535     ac_save_LIBS=$LIBS
536     CFLAGS="$CFLAGS $X_CFLAGS"
537     LIBS=`echo "$LIBS $X_LIBS $X_EXTRA_LIBS -lX11" | sed "$R_TRANSLATE"`
538     AC_CACHE_CHECK([for -rpath dynamic library path recording], rxvt_cv_rpath,
539 root 1.31 [AC_RUN_IFELSE([AC_LANG_SOURCE([[
540 pcg 1.1 main()
541     {
542     exit(0);
543     (void) XOpenDisplay("foobar");
544 root 1.31 }]])],[rxvt_cv_rpath=yes],[rxvt_cv_rpath=no],[dnl
545     AC_MSG_WARN(You may need to check the LIBS line)])])
546 pcg 1.1 if test x$rxvt_cv_rpath != xyes; then
547     changequote(, )dnl
548     R_TRANSLATE='s/-L\([^ ]*\)/-L\1 '$LDARG'-R\1/g'
549     changequote([, ])dnl
550     LIBS=`echo "$ac_save_LIBS $X_LIBS $X_EXTRA_LIBS -lX11" | sed "$R_TRANSLATE"`
551     AC_CACHE_CHECK([for -R dynamic library path recording], rxvt_cv_R,
552 root 1.31 [AC_RUN_IFELSE([AC_LANG_SOURCE([[
553 pcg 1.1 main()
554     {
555     exit(0);
556     (void) XOpenDisplay("foobar");
557 root 1.31 }]])],[rxvt_cv_R=yes],[rxvt_cv_R=no],[rxvt_cv_R=no])])
558 pcg 1.1 if test x$rxvt_cv_R != xyes; then
559     LIBS="$ac_save_LIBS $X_LIBS $X_EXTRA_LIBS -lX11"
560     fi
561     fi
562    
563     AC_CACHE_CHECK([for XPointer], rxvt_cv_xpointer,
564 root 1.31 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <X11/Xlib.h>]], [[XPointer dummy;]])],[rxvt_cv_xpointer=yes],[rxvt_cv_xpointer=no])])
565 pcg 1.1 if test x$rxvt_cv_xpointer = xyes; then
566     AC_DEFINE(HAVE_XPOINTER, 1, Define if you have XPointer typedef)
567     fi
568     LIBS=$ac_save_LIBS
569     CFLAGS=$ac_save_CFLAGS
570    
571    
572     AC_C_CONST
573     AC_C_INLINE
574    
575     dnl> AC_HEADER_STDC dnl# skip this test, Sun always fails anyhow.
576    
577     dnl# --------------------------------------------------------------------------
578     dnl# CHECKING FOR MISSING TYPEDEFS
579     dnl# --------------------------------------------------------------------------
580     dnl# Missing typedefs and replacements
581     AC_TYPE_MODE_T
582     dnl> AC_CHECK_TYPE(umode_t, int)
583     dnl> AC_CHECK_TYPE(off_t, long)
584     AC_TYPE_PID_T
585     AC_TYPE_UID_T
586    
587    
588     AC_CHECK_SIZEOF(char, 1)
589     AC_CHECK_SIZEOF(short, 2)
590     AC_CHECK_SIZEOF(int, 4)
591     AC_CHECK_SIZEOF(long, 4)
592     AC_CHECK_SIZEOF(long long, 8)
593     AC_CHECK_SIZEOF(int *, 4)
594    
595     dnl# see usage below
596     AC_DEFUN(RXVT_CHECK_SIZE,
597     [AC_CACHE_CHECK([for $2], $1,
598 root 1.31 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdint.h>]], [[$2 dummy;]])],[$1=yes],[dnl
599 pcg 1.1 if test $ac_cv_sizeof_char -ge $3; then
600     $1="$4 char"
601     else
602     if test $ac_cv_sizeof_short -ge $3; then
603     $1="$4 short"
604     else
605     if test $ac_cv_sizeof_int -ge $3; then
606     $1="$4 int"
607     else
608     if test $ac_cv_sizeof_long -ge $3; then
609     $1="$4 long"
610     else
611     if test $ac_cv_sizeof_long_long -ge $3; then
612     $1="$4 long long"
613     else
614     $1="$4 $5" # we _must_ have a (possibly wrong) default
615     fi
616     fi
617     fi
618     fi
619     fi])])]
620     if test x"$$1" != xyes; then
621     $6="typedef $$1 $2;"
622     else
623     if test x"$4" = x; then
624     $6="/* typedef $5 $2; */"
625     else
626     $6="/* typedef $4 $5 $2; */"
627     fi
628     fi dnl
629     )
630     dnl#
631     dnl# Look for types the system may know about anyway.
632     dnl#
633     RXVT_CHECK_SIZE(rxvt_cv_int16_t, int16_t, 2, , short, rxvt_int16_typedef)
634     AC_SUBST(rxvt_int16_typedef)
635     RXVT_CHECK_SIZE(rxvt_cv_uint16_t, uint16_t, 2, unsigned, short, rxvt_uint16_typedef)
636     AC_SUBST(rxvt_uint16_typedef)
637     RXVT_CHECK_SIZE(rxvt_cv_int32_t, int32_t, 4, , int, rxvt_int32_typedef)
638     AC_SUBST(rxvt_int32_typedef)
639     RXVT_CHECK_SIZE(rxvt_cv_uint32_t, uint32_t, 4, unsigned, int, rxvt_uint32_typedef)
640     AC_SUBST(rxvt_uint32_typedef)
641     dnl RXVT_CHECK_SIZE(rxvt_cv_int64_t, int64_t, 8, , long long, rxvt_int64_typedef)
642     dnl AC_SUBST(rxvt_int64_typedef)
643     dnl RXVT_CHECK_SIZE(rxvt_cv_uint64_t, uint64_t, 8, unsigned, long long, rxvt_uint64_typedef)
644     dnl AC_SUBST(rxvt_uint64_typedef)
645     dnl#
646     dnl# Now look for another we use
647     dnl#
648     if test $ac_cv_sizeof_int_p -eq 8; then
649     rxvt_intp_define="#define intp_t int64_t"
650     rxvt_u_intp_define="#define u_intp_t u_int64_t"
651     else
652     if test $ac_cv_sizeof_int_p -eq 4; then
653     rxvt_intp_define="#define intp_t int32_t"
654     rxvt_u_intp_define="#define u_intp_t u_int32_t"
655     else
656     if test $ac_cv_sizeof_int_p -eq 2; then
657     rxvt_intp_define="#define intp_t int16_t"
658     rxvt_u_intp_define="#define u_intp_t u_int16_t"
659     else
660     rxvt_intp_define="#error set intp_t"
661     rxvt_u_intp_define="#error set u_intp_t"
662     fi
663     fi
664     fi
665     AC_SUBST(rxvt_intp_define)
666     AC_SUBST(rxvt_u_intp_define)
667    
668     dnl# --------------------------------------------------------------------------
669     dnl# CHECKING FOR LIBRARY FUNCTIONS
670     dnl# --------------------------------------------------------------------------
671     AC_TYPE_SIGNAL
672     dnl> AC_FUNC_VPRINTF
673    
674     dnl# Note: On Ultrix, setsid() does weirdo stuff, disable it
675     case "$host_alias" in
676     *ultrix) ac_cv_func_setsid='no' ;;
677     *) break;;
678     esac
679    
680     AC_CHECK_FUNCS( \
681     atexit \
682     revoke \
683     unsetenv \
684     setutent \
685     seteuid \
686     setreuid \
687     setsid \
688     setpgrp \
689     setpgid \
690     openpty \
691     _getpty \
692     grantpt \
693     unlockpt \
694     isastream \
695     on_exit \
696     nanosleep \
697     updwtmp \
698     ttyslot \
699     )
700     dnl# Note: On NetBSD, openpty() exists in libutil. Don't pull it in
701    
702     dnl# --------------------------------------------------------------------------
703     dnl# DO ALL UTMP AND WTMP CHECKING
704     dnl# --------------------------------------------------------------------------
705     dnl# check for host field in utmp structure
706    
707     dnl# --------------------------------------------
708     AC_CHECK_HEADER(utmp.h,
709     [AC_CACHE_CHECK([for struct utmp], rxvt_cv_struct_utmp,
710 root 1.31 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
711 pcg 1.1 #include <stdint.h>
712 root 1.31 #include <utmp.h>]], [[struct utmp ut;]])],[rxvt_cv_struct_utmp=yes],[rxvt_cv_struct_utmp=no])])
713 pcg 1.1 if test x$rxvt_cv_struct_utmp = xyes; then
714     AC_DEFINE(HAVE_STRUCT_UTMP, 1, Define if utmp.h has struct utmp)
715     fi
716     ]
717    
718     AC_CACHE_CHECK(for ut_host in utmp struct, rxvt_cv_struct_utmp_host,
719 root 1.31 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
720     #include <utmp.h>]], [[struct utmp ut; ut.ut_host;]])],[rxvt_cv_struct_utmp_host=yes],[rxvt_cv_struct_utmp_host=no])])
721 pcg 1.1 if test x$rxvt_cv_struct_utmp_host = xyes; then
722     AC_DEFINE(HAVE_UTMP_HOST, 1, Define if struct utmp contains ut_host)
723     fi
724    
725     AC_CACHE_CHECK(for ut_pid in utmp struct, rxvt_cv_struct_utmp_pid,
726 root 1.31 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
727     #include <utmp.h>]], [[struct utmp ut; ut.ut_pid;]])],[rxvt_cv_struct_utmp_pid=yes],[rxvt_cv_struct_utmp_pid=no])])
728 pcg 1.1 if test x$rxvt_cv_struct_utmp_pid = xyes; then
729     AC_DEFINE(HAVE_UTMP_PID, 1, Define if struct utmp contains ut_pid)
730     fi
731     ) dnl# AC_CHECK_HEADER(utmp.h
732    
733     dnl# --------------------------------------------
734    
735     AC_CHECK_HEADER(utmpx.h,
736     [AC_CACHE_CHECK([for struct utmpx], rxvt_cv_struct_utmpx,
737 root 1.31 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
738     #include <utmpx.h>]], [[struct utmpx ut;]])],[rxvt_cv_struct_utmpx=yes],[rxvt_cv_struct_utmpx=no])])
739 pcg 1.1 if test x$rxvt_cv_struct_utmpx = xyes; then
740     AC_DEFINE(HAVE_STRUCT_UTMPX, 1, Define if utmpx.h has struct utmpx)
741     fi
742     ]
743    
744     AC_CACHE_CHECK(for host in utmpx struct, rxvt_cv_struct_utmpx_host,
745 root 1.31 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
746     #include <utmpx.h>]], [[struct utmpx utx; utx.ut_host;]])],[rxvt_cv_struct_utmpx_host=yes],[rxvt_cv_struct_utmpx_host=no])])
747 pcg 1.1 if test x$rxvt_cv_struct_utmpx_host = xyes; then
748     AC_DEFINE(HAVE_UTMPX_HOST, 1, Define if struct utmpx contains ut_host)
749     fi
750     ) dnl# AC_CHECK_HEADER(utmpx.h
751    
752    
753     dnl# --------------------------------------------------------------------------
754     dnl# check for struct lastlog
755     AC_CACHE_CHECK(for struct lastlog, rxvt_cv_struct_lastlog,
756 root 1.31 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
757 pcg 1.1 #include <utmp.h>
758     #ifdef HAVE_LASTLOG_H
759     #include <lastlog.h>
760     #endif
761 root 1.31 ]], [[struct lastlog ll;]])],[rxvt_cv_struct_lastlog=yes],[rxvt_cv_struct_lastlog=no])])
762 pcg 1.1 if test x$rxvt_cv_struct_lastlog = xyes; then
763     AC_DEFINE(HAVE_STRUCT_LASTLOG, 1, Define if utmp.h or lastlog.h has struct lastlog)
764     fi
765    
766     dnl# check for struct lastlogx
767     AC_CACHE_CHECK(for struct lastlogx, rxvt_cv_struct_lastlogx,
768 root 1.31 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
769 pcg 1.1 #include <utmpx.h>
770     #ifdef HAVE_LASTLOG_H
771     #include <lastlog.h>
772     #endif
773 root 1.31 ]], [[struct lastlogx ll;]])],[rxvt_cv_struct_lastlogx=yes],[rxvt_cv_struct_lastlogx=no])])
774 pcg 1.1 if test x$rxvt_cv_struct_lastlogx = xyes; then
775     AC_DEFINE(HAVE_STRUCT_LASTLOGX, 1, Define if utmpx.h or lastlog.h has struct lastlogx)
776     fi
777    
778     dnl# --------------------------------------------------------------------------
779     dnl# FIND FILES
780     dnl# --------------------------------------------------------------------------
781    
782     dnl# find utmp
783     AC_CACHE_CHECK(where utmp is located, rxvt_cv_path_utmp,
784 root 1.31 [AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdio.h>
785 pcg 1.1 #include <sys/types.h>
786     #include <utmp.h>
787     #include <errno.h>
788     main()
789     {
790     char **u, *utmplist[] = {
791     "/var/run/utmp", "/var/adm/utmp", "/etc/utmp", "/usr/etc/utmp", "/usr/adm/utmp", NULL };
792     FILE *a, *f=fopen("conftestval", "w");
793     if (!f) exit(1);
794     #ifdef UTMP_FILE
795     fprintf(f, "%s\n", UTMP_FILE);
796     exit(0);
797     #endif
798     #ifdef _PATH_UTMP
799     fprintf(f, "%s\n", _PATH_UTMP);
800     exit(0);
801     #endif
802     for (u = utmplist; *u; u++) {
803     if ((a = fopen(*u, "r")) != NULL || errno == EACCES) {
804     fprintf(f, "%s\n", *u);
805     exit(0);
806     }
807     }
808     exit(0);
809 root 1.31 }]])],[rxvt_cv_path_utmp=`cat conftestval`],[rxvt_cv_path_utmp=],[dnl
810     AC_MSG_WARN(Define RXVT_UTMP_FILE in config.h manually)])])
811 pcg 1.1 if test x$rxvt_cv_path_utmp != x; then
812     AC_DEFINE_UNQUOTED(RXVT_UTMP_FILE, "$rxvt_cv_path_utmp", Define location of utmp)
813     fi
814    
815     dnl# --------------------------------------------------------------------------
816    
817     dnl# find utmpx - if a utmp file exists at the same location and is more than
818     dnl# a day newer, then dump the utmpx. People leave lots of junk around.
819     AC_CACHE_CHECK(where utmpx is located, rxvt_cv_path_utmpx,
820 root 1.31 [AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdio.h>
821 pcg 1.1 #include <sys/types.h>
822     #include <utmpx.h>
823     #include <errno.h>
824     #include <sys/stat.h>
825     #ifdef HAVE_STRING_H
826     #include <string.h>
827     #endif
828     main()
829     {
830     char **u, *p, *utmplist[] = {
831     #ifdef UTMPX_FILE
832     UTMPX_FILE,
833     #endif
834     #ifdef _PATH_UTMPX
835     _PATH_UTMPX,
836     #endif
837     "/var/adm/utmpx", "/etc/utmpx", NULL };
838     FILE *a, *f=fopen("conftestval", "w");
839     struct stat statu, statux;
840     if (!f) exit(1);
841     for (u = utmplist; *u; u++) {
842     if ((a = fopen(*u, "r")) != NULL || errno == EACCES) {
843     if (stat(*u, &statux) < 0)
844     continue;
845     p = strdup(*u);
846     p[strlen(p) - 1] = '\0';
847     if (stat(p, &statu) >= 0
848     && (statu.st_mtime - statux.st_mtime > 86400))
849     continue;
850     fprintf(f, "%s\n", *u);
851     exit(0);
852     }
853     }
854     exit(0);
855 root 1.31 }]])],[rxvt_cv_path_utmpx=`cat conftestval`],[rxvt_cv_path_utmpx=],[dnl
856     AC_MSG_WARN(Define RXVT_UTMPX_FILE in config.h manually)])])
857 pcg 1.1 if test x$rxvt_cv_path_utmpx != x; then
858     AC_DEFINE_UNQUOTED(RXVT_UTMPX_FILE, "$rxvt_cv_path_utmpx", Define location of utmpx)
859     fi
860    
861     dnl# --------------------------------------------------------------------------
862    
863     dnl# find wtmp
864     AC_CACHE_CHECK(where wtmp is located, rxvt_cv_path_wtmp,
865 root 1.31 [AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdio.h>
866 pcg 1.1 #include <sys/types.h>
867     #ifdef HAVE_UTMP_H
868     #include <utmp.h>
869     #endif
870     #include <errno.h>
871     main()
872     {
873     char **w, *wtmplist[] = {
874     "/var/log/wtmp", "/var/adm/wtmp", "/etc/wtmp", "/usr/etc/wtmp", "/usr/adm/wtmp", NULL };
875     FILE *a, *f=fopen("conftestval", "w");
876     if (!f) exit(1);
877     #ifdef WTMP_FILE
878     fprintf(f, "%s\n", WTMP_FILE);
879     exit(0);
880     #endif
881     #ifdef _PATH_WTMP
882     fprintf(f, "%s\n", _PATH_WTMP);
883     exit(0);
884     #endif
885     for (w = wtmplist; *w; w++) {
886     if ((a = fopen(*w, "r")) != NULL || errno == EACCES) {
887     fprintf(f, "%s\n", *w);
888     exit(0);
889     }
890     }
891     exit(0);
892 root 1.31 }]])],[rxvt_cv_path_wtmp=`cat conftestval`],[rxvt_cv_path_wtmp=],[dnl
893     AC_MSG_WARN(Define RXVT_WTMP_FILE in config.h manually)])])
894 pcg 1.1 if test x$rxvt_cv_path_wtmp != x; then
895     AC_DEFINE_UNQUOTED(RXVT_WTMP_FILE, "$rxvt_cv_path_wtmp", Define location of wtmp)
896     fi
897     dnl# --------------------------------------------------------------------------
898    
899     dnl# find wtmpx
900     AC_CACHE_CHECK(where wtmpx is located, rxvt_cv_path_wtmpx,
901 root 1.31 [AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdio.h>
902 pcg 1.1 #ifdef HAVE_UTMPX_H
903     #include <utmpx.h>
904     #endif
905     #include <errno.h>
906     main()
907     {
908     char **w, *wtmplist[] = {
909     "/var/log/wtmpx", "/var/adm/wtmpx", NULL };
910     FILE *a, *f=fopen("conftestval", "w");
911     if (!f) exit(1);
912     #ifdef WTMPX_FILE
913     fprintf(f, "%s\n", WTMPX_FILE);
914     exit(0);
915     #endif
916     #ifdef _PATH_WTMPX
917     fprintf(f, "%s\n", _PATH_WTMPX);
918     exit(0);
919     #endif
920     for (w = wtmplist; *w; w++) {
921     if ((a = fopen(*w, "r")) != NULL || errno == EACCES) {
922     fprintf(f, "%s\n", *w);
923     exit(0);
924     }
925     }
926     exit(0);
927 root 1.31 }]])],[rxvt_cv_path_wtmpx=`cat conftestval`],[rxvt_cv_path_wtmpx=],[dnl
928     AC_MSG_WARN(Define RXVT_WTMPX_FILE in config.h manually)])])
929 pcg 1.1 if test x$rxvt_cv_path_wtmpx != x; then
930     AC_DEFINE_UNQUOTED(RXVT_WTMPX_FILE, "$rxvt_cv_path_wtmpx", Define location of wtmpx)
931     fi
932     dnl# --------------------------------------------------------------------------
933    
934     dnl# find lastlog
935     AC_CACHE_CHECK(where lastlog is located, rxvt_cv_path_lastlog,
936 root 1.31 [AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdio.h>
937 pcg 1.1 #include <sys/types.h>
938     #ifdef HAVE_UTMPX_H
939     #include <utmpx.h>
940     #elif defined(HAVE_UTMP_H)
941     #include <utmp.h>
942     #endif
943     #ifdef HAVE_LASTLOG_H
944     #include <lastlog.h>
945     #endif
946     #include <errno.h>
947     main()
948     {
949     char **w, *lastloglist[] = { "/var/log/lastlog", NULL };
950     FILE *a, *f=fopen("conftestval", "w");
951     if (!f) exit(1);
952     #ifdef LASTLOG_FILE
953     fprintf(f, "%s\n", LASTLOG_FILE);
954     exit(0);
955     #endif
956     #ifdef _PATH_LASTLOG
957     fprintf(f, "%s\n", _PATH_LASTLOG);
958     exit(0);
959     #endif
960     for (w = lastloglist; *w; w++) {
961     if ((a = fopen(*w, "r")) != NULL || errno == EACCES) {
962     fprintf(f, "%s\n", *w);
963     exit(0);
964     }
965     }
966     exit(0);
967 root 1.31 }]])],[rxvt_cv_path_lastlog=`cat conftestval`],[rxvt_cv_path_lastlog=],[dnl
968     AC_MSG_WARN(Define RXVT_LASTLOG_FILE in config.h manually)])])
969 pcg 1.1 if test x$rxvt_cv_path_lastlog != x; then
970     AC_DEFINE_UNQUOTED(RXVT_LASTLOG_FILE, "$rxvt_cv_path_lastlog", Define location of lastlog)
971     if test -d "$rxvt_cv_path_lastlog"; then
972     AC_DEFINE(LASTLOG_IS_DIR, 1, Define if lastlog is provided via a directory)
973     fi
974     fi
975     dnl# --------------------------------------------------------------------------
976    
977     dnl# find lastlogx
978     AC_CACHE_CHECK(where lastlogx is located, rxvt_cv_path_lastlogx,
979 root 1.31 [AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdio.h>
980 pcg 1.1 #ifdef HAVE_UTMPX_H
981     #include <utmpx.h>
982     #endif
983     #include <errno.h>
984     main()
985     {
986     char **w, *wtmplist[] = { "/var/log/lastlogx", "/var/adm/lastlogx", NULL };
987     FILE *a, *f=fopen("conftestval", "w");
988     if (!f) exit(1);
989     #ifdef LASTLOGX_FILE
990     fprintf(f, "%s\n", LASTLOGX_FILE);
991     exit(0);
992     #endif
993     #ifdef _PATH_LASTLOGX
994     fprintf(f, "%s\n", _PATH_LASTLOGX);
995     exit(0);
996     #endif
997     for (w = wtmplist; *w; w++) {
998     if ((a = fopen(*w, "r")) != NULL || errno == EACCES) {
999     fprintf(f, "%s\n", *w);
1000     exit(0);
1001     }
1002     }
1003     exit(0);
1004 root 1.31 }]])],[rxvt_cv_path_lastlogx=`cat conftestval`],[rxvt_cv_path_lastlogx=],[dnl
1005     AC_MSG_WARN(Define RXVT_LASTLOGX_FILE in config.h manually)])])
1006 pcg 1.1 if test x$rxvt_cv_path_lastlogx != x; then
1007     AC_DEFINE_UNQUOTED(RXVT_LASTLOGX_FILE, "$rxvt_cv_path_lastlogx", Define location of lastlogx)
1008     fi
1009    
1010     dnl# --------------------------------------------------------------------------
1011    
1012     dnl# find ttys/ttytab
1013     AC_CACHE_CHECK(where ttys/ttytab is located, rxvt_cv_path_ttytab,
1014     [for ttys_file in dnl
1015     /etc/ttys /etc/ttytab;
1016     do
1017     if test -f "$ttys_file" ; then
1018     rxvt_cv_path_ttytab=$ttys_file
1019     break
1020     fi
1021     done
1022     ])
1023     if test x$rxvt_cv_path_ttytab != x; then
1024     AC_DEFINE_UNQUOTED(TTYTAB_FILENAME, "$rxvt_cv_path_ttytab", Define location of ttys/ttytab)
1025     fi
1026    
1027     dnl# --------------------------------------------------------------------------
1028     dnl# --------------------------------------------------------------------------
1029    
1030     dnl# this is a really hack test for some basic Xlocale stuff
1031     ac_save_LIBS=$LIBS
1032     ac_save_CFLAGS=$CFLAGS
1033     CFLAGS="$CFLAGS $X_CFLAGS"
1034     LIBS="$LIBS $X_LIBS $X_EXTRA_LIBS -lX11"
1035     if test x$rxvt_cv_rpath = xyes -o x$rxvt_cv_R = xyes; then
1036     LIBS=`echo $LIBS | sed "$R_TRANSLATE"`
1037     fi
1038     AC_CACHE_CHECK(for working Xlocale, rxvt_cv_func_xlocale,
1039 root 1.31 [AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <X11/Xlib.h>
1040 pcg 1.1 main() {
1041     char *p;
1042     if ((p = XSetLocaleModifiers("@im=none")) != NULL && *p)
1043     exit (XSupportsLocale() ? 0 : 1);
1044     else
1045 root 1.31 exit (1);}]])],[dnl
1046     rxvt_cv_func_xlocale=yes],[rxvt_cv_func_xlocale=no],[dnl
1047     AC_MSG_WARN(Define NO_XLOCALE in config.h manually)])])
1048 pcg 1.1 if test x$rxvt_cv_func_xlocale = xyes; then
1049     AC_DEFINE(HAVE_XLOCALE, 1, Define if Xlocale support works)
1050     fi
1051    
1052     AC_CACHE_CHECK(for working X setlocale, rxvt_cv_func_xsetlocale,
1053 root 1.31 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#define X_LOCALE 1
1054     #include <X11/Xlocale.h>]], [[setlocale(LC_CTYPE, "");]])],[rxvt_cv_func_xsetlocale=yes],[rxvt_cv_func_xsetlocale=no])])
1055 pcg 1.1 if test x$rxvt_cv_func_xsetlocale = xyes; then
1056     AC_DEFINE(HAVE_XSETLOCALE, 1, Define if setlocale (defined to Xsetlocale) works)
1057     fi
1058     LIBS=$ac_save_LIBS
1059     CFLAGS=$ac_save_CFLAGS
1060    
1061     AC_CACHE_CHECK(for working plain setlocale, rxvt_cv_func_setlocale,
1062 root 1.31 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <clocale>]], [[setlocale(LC_CTYPE, "");]])],[rxvt_cv_func_setlocale=yes],[rxvt_cv_func_setlocale=no])])
1063 pcg 1.1 if test x$rxvt_cv_func_setlocale = xyes; then
1064     AC_DEFINE(HAVE_SETLOCALE, 1, Define if plain old setlocale works)
1065     fi
1066    
1067     AC_CACHE_CHECK(for working nl_langinfo, rxvt_cv_func_nl_langinfo,
1068 root 1.31 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <langinfo.h>]], [[nl_langinfo(CODESET);]])],[rxvt_cv_func_nl_langinfo=yes],[rxvt_cv_func_nl_langinfo=no])])
1069 pcg 1.1 if test x$rxvt_cv_func_nl_langinfo = xyes; then
1070     AC_DEFINE(HAVE_NL_LANGINFO, 1, Define if nl_langinfo(CODESET) works)
1071     fi
1072    
1073 root 1.30 AC_CACHE_CHECK(for broken XIM callback, rxvt_broken_ximcb,
1074     [AC_COMPILE_IFELSE([
1075     #include <X11/Xlib.h>
1076    
1077     void im_destroy_cb (XIC unused1, XPointer client_data, XPointer unused3);
1078    
1079     void f() {
1080     XIMCallback cb;
1081     cb.callback = im_destroy_cb;
1082     }
1083     ],rxvt_broken_ximcb=yes,rxvt_broken_ximcb=no)])
1084    
1085     if test x$rxvt_broken_ximcb = xyes; then
1086     AC_DEFINE(XIMCB_PROTO_BROKEN, 1, Define if your XIMCallback specifies XIC as first type.)
1087     fi
1088    
1089 pcg 1.1 AC_CACHE_CHECK(for getpt, rxvt_cv_func_getpt,
1090 root 1.31 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#define _GNU_SOURCE
1091 pcg 1.1 #ifdef HAVE_STDLIB_H
1092 pcg 1.20 # include <cstdlib>
1093 root 1.31 #endif]], [[(void)getpt();]])],[rxvt_cv_func_getpt=yes],[rxvt_cv_func_getpt=no])])
1094 pcg 1.1 if test x$rxvt_cv_func_getpt = xyes; then
1095     AC_DEFINE(HAVE_GETPT, 1, Define if you have _GNU_SOURCE getpt() )
1096     fi
1097    
1098     dnl# if we don't guess right then it's up to the user
1099     AC_CACHE_CHECK(for pty/tty type, rxvt_cv_ptys,
1100     [if test x$ac_cv_func_openpty = xyes; then
1101     rxvt_cv_ptys=OPENPTY
1102     else if test x$ac_cv_func__getpty = xyes; then
1103     rxvt_cv_ptys=SGI4
1104     else if test -c /dev/ttyp20; then
1105     rxvt_cv_ptys=SCO
1106     else if test -c /dev/ptym/clone; then
1107     rxvt_cv_ptys=HPUX
1108     else if test x$rxvt_cv_func_getpt = xyes; then
1109     rxvt_cv_ptys=GLIBC
1110     else if test -c /dev/ptc -a -c /dev/pts; then
1111     rxvt_cv_ptys=PTC
1112     else if test -c /dev/ptc -a -d /dev/pts; then
1113     rxvt_cv_ptys=PTC
1114     else if test -c /dev/ptmx -a -c /dev/pts/0; then
1115     rxvt_cv_ptys=STREAMS
1116     else if test x$ac_cv_func_grantpt = xyes && test x$ac_cv_func_unlockpt = xyes; then
1117     dnl# catch CYGWIN
1118     rxvt_cv_ptys=STREAMS
1119     else
1120     rxvt_cv_ptys=BSD
1121     fi
1122     fi
1123     fi
1124     fi
1125     fi
1126     fi
1127     fi
1128     fi
1129     fi
1130     ])
1131    
1132     if test x$rxvt_cv_ptys = xOPENPTY; then
1133     AC_DEFINE(PTYS_ARE_OPENPTY, 1, Define for this pty type)
1134     fi
1135     if test x$rxvt_cv_ptys = xSCO; then
1136     AC_DEFINE(PTYS_ARE_NUMERIC, 1, Define for this pty type)
1137     fi
1138     if test x$rxvt_cv_ptys = xSTREAMS; then
1139     AC_DEFINE(PTYS_ARE_PTMX, 1, Define for this pty type)
1140     fi
1141     if test x$rxvt_cv_ptys = xPTC; then
1142     AC_DEFINE(PTYS_ARE_PTC, 1, Define for this pty type)
1143     fi
1144     if test x$rxvt_cv_ptys = xSGI4; then
1145     AC_DEFINE(PTYS_ARE__GETPTY, 1, Define for this pty type)
1146     fi
1147     if test x$rxvt_cv_ptys = xCONVEX; then
1148     AC_DEFINE(PTYS_ARE_GETPTY, 1, Define for this pty type)
1149     fi
1150     if test x$rxvt_cv_ptys = xGLIBC; then
1151     AC_DEFINE(PTYS_ARE_GETPT, 1, Define for this pty type)
1152     fi
1153     if test x$rxvt_cv_ptys = xHPUX; then
1154     AC_DEFINE(PTYS_ARE_CLONE, 1, Define for this pty type)
1155     fi
1156     if test x$rxvt_cv_ptys = xBSD -o x$rxvt_cv_ptys = xHPUX -o x$rxvt_cv_ptys = xGLIBC; then
1157     AC_DEFINE(PTYS_ARE_SEARCHED, 1, Define for this pty type)
1158     fi
1159    
1160    
1161 root 1.31 AS_MESSAGE(checking for pty ranges...)
1162 pcg 1.1 ptys=`echo /dev/pty??`
1163     pch1=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\).$/\1/g' | sort -u | tr -d '\012'`
1164     pch2=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\)$/\1/g' | sort -u | tr -d '\012'`
1165     if test x$pch1 != x; then
1166     AC_DEFINE_UNQUOTED(PTYCHAR1, "$pch1", Define for first char in devptyXX)
1167     fi
1168     if test x$pch2 != x; then
1169     AC_DEFINE_UNQUOTED(PTYCHAR2, "$pch2", Define for second char in devptyXX)
1170     fi
1171    
1172     dnl# --------------------------------------------------------------------------
1173     dnl# now add and remove other stuff
1174     dnl# --------------------------------------------------------------------------
1175 root 1.27 if test x$support_8bitctrls = xyes; then
1176     AC_DEFINE(EIGHT_BIT_CONTROLS, 1, Define if you want 8 bit control sequences)
1177 root 1.28 fi
1178     if test x$support_fading = xyes; then
1179     AC_DEFINE(OFF_FOCUS_FADING, 1, Define if you want faded colors when focus is lost)
1180 root 1.27 fi
1181 pcg 1.25 if test x$support_tinting = xyes; then
1182     AC_DEFINE(TINTING, 1, Define if you want your background to be tinted)
1183     fi
1184 pcg 1.1 if test x$support_inheritpixmap = xyes; then
1185     AC_DEFINE(TRANSPARENT, 1, Define if you want your background to use the parent window background)
1186     fi
1187     if test x$support_keepscrolling = xno; then
1188     AC_DEFINE(NO_SCROLLBAR_BUTTON_CONTINUAL_SCROLLING, 1, Define for continual scrolling when you keep the scrollbar button pressed)
1189     fi
1190     if test x$support_selectionscrolling = xyes; then
1191     AC_DEFINE(SELECTION_SCROLLING, 1, Define to allow scrolling when the selection moves to the top or bottom of the screen)
1192     fi
1193     if test x$support_menubar = xyes; then
1194     AC_DEFINE(MENUBAR, 1, Define if you want Menubar support)
1195     fi
1196     if test x$support_frills = xno; then
1197     AC_DEFINE(NO_FRILLS, 1, Define if you don't want handling for rarely used features)
1198     fi
1199     if test x$support_linespace = xno; then
1200     AC_DEFINE(NO_LINESPACE, 1, Define if you don't want support linespace)
1201     fi
1202     if test x$support_24bit = xyes; then
1203     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)
1204     fi
1205     if test x$support_mousewheel = xyes; then
1206     AC_DEFINE(MOUSE_WHEEL, 1, Define to use wheel events (button4 and button5) to scroll)
1207     fi
1208     if test x$support_mouseslipwheel = xyes; then
1209     AC_DEFINE(MOUSE_SLIP_WHEELING, 1, Define to have CTRL cause wheel events to accelerate scrolling. Release CTRL to halt scrolling)
1210     fi
1211     if test x$support_utmp = xyes; then
1212     AC_DEFINE(UTMP_SUPPORT, 1, Define if you want to have utmp/utmpx support)
1213     fi
1214     if test x$support_wtmp = xyes; then
1215     AC_DEFINE(WTMP_SUPPORT, 1, Define if you want to have wtmp support when utmp/utmpx is enabled)
1216     fi
1217     if test x$support_lastlog = xyes; then
1218     AC_DEFINE(LASTLOG_SUPPORT, 1, Define if you want to have lastlog support when utmp/utmpx is enabled)
1219     fi
1220     if test x$support_xim = xyes -o x$multichar_set = xyes; then
1221     if test x$rxvt_cv_func_xlocale = xyes; then
1222     AC_DEFINE(USE_XIM, 1, Define if you want to have XIM (X Input Method) protocol support - required for multibyte characters input)
1223     fi
1224     fi
1225     if test x$support_xpm = xyes; then
1226     AC_DEFINE(XPM_BACKGROUND, 1, Define if you want to have sexy-looking background pixmaps. Needs libXpm)
1227     fi
1228     if test x$support_scroll_rxvt = xyes; then
1229     AC_DEFINE(RXVT_SCROLLBAR, 1, Support Rxvt original style scrollbars)
1230     scrolltypes="rxvt"
1231     fi
1232     if test x$support_scroll_next = xyes; then
1233     AC_DEFINE(NEXT_SCROLLBAR, 1, Support NeXT style scrollbars)
1234     scrolltypes="$scrolltypes next"
1235     fi
1236     if test x$support_scroll_xterm = xyes; then
1237     AC_DEFINE(XTERM_SCROLLBAR, 1, Support Xterm style scrollbars)
1238     scrolltypes="$scrolltypes xterm"
1239     fi
1240 pcg 1.11 if test x$support_scroll_plain = xyes; then
1241     AC_DEFINE(PLAIN_SCROLLBAR, 1, Support plain style scrollbars)
1242     scrolltypes="$scrolltypes plain"
1243     fi
1244 pcg 1.1 if test x$support_pointer_blank = xyes; then
1245     AC_DEFINE(POINTER_BLANK, 1, Define if you want hide the pointer while typing)
1246     fi
1247     if test x$support_cursor_blink = xyes; then
1248     AC_DEFINE(CURSOR_BLINK, 1, Define if you want blinking cursor support)
1249     fi
1250 pcg 1.7 if test x$support_text_blink = xyes; then
1251 pcg 1.6 AC_DEFINE(TEXT_BLINK, 1, Define if you want blinking text support)
1252     fi
1253 pcg 1.1 if test x$support_unicode3 = xyes; then
1254     AC_DEFINE(UNICODE_3, 1, Define if you want to represent unicode characters outside plane 0)
1255     fi
1256 pcg 1.18 if test x$support_combining = xyes; then
1257 pcg 1.21 AC_DEFINE(ENABLE_COMBINING, 1, Define if you want to automatically compose combining characters)
1258 pcg 1.18 fi
1259 pcg 1.1 if test x$codesets = xall; then
1260 pcg 1.18 codesets=jp,jp-ext,kr,cn,cn-ext
1261 pcg 1.1 fi
1262     for codeset in `echo $codesets | tr "[a-z,\\-]" "[A-Z _]"`; do
1263 pcg 1.9 AC_DEFINE(ENCODING_EU, 1, Define if you want european extended codesets)
1264 pcg 1.16 AC_DEFINE(ENCODING_VN, 1, Define if you want vietnamese codesets)
1265 pcg 1.1 case "$codeset" in
1266     JP ) AC_DEFINE(ENCODING_JP, 1, Define if you want japanese codesets) ;;
1267     JP_EXT ) AC_DEFINE(ENCODING_JP_EXT, 1, Define if you want extended japanese codesets) ;;
1268     KR ) AC_DEFINE(ENCODING_KR, 1, Define if you want korean codesets) ;;
1269     CN ) AC_DEFINE(ENCODING_CN, 1, Define if you want chinese codesets) ;;
1270     CN_EXT ) AC_DEFINE(ENCODING_CN_EXT, 1, Define if you want extended chinese codesets) ;;
1271     esac
1272     done
1273    
1274     dnl> AC_CHECK_FUNCS(gettimeofday putenv select socket)
1275    
1276     CFLAGS=${CFLAGS--O}
1277     LDFLAGS=${LDFLAGS--O}
1278    
1279     CPPFLAGS="$CPPFLAGS"
1280     AC_SUBST(DEBUG)
1281     AC_SUBST(DINCLUDE)
1282     AC_SUBST(CFLAGS)
1283     AC_SUBST(CPPFLAGS)
1284     AC_SUBST(LDFLAGS)
1285     AC_SUBST(X_CFLAGS)
1286    
1287     dnl# Attack the libs
1288     if test x$rxvt_cv_rpath = xyes -o x$rxvt_cv_R = xyes; then
1289     DLIB=`echo $DLIB | sed "$R_TRANSLATE"`
1290     LIBS=`echo $LIBS | sed "$R_TRANSLATE"`
1291     X_LIBS=`echo $X_LIBS | sed "$R_TRANSLATE"`
1292     X_EXTRA_LIBS=`echo $X_EXTRA_LIBS | sed "$R_TRANSLATE"`
1293     XPM_LIBS=`echo $XPM_LIBS | sed "$R_TRANSLATE"`
1294     fi
1295     AC_SUBST(DLIB)
1296     AC_SUBST(LIBS)
1297     AC_SUBST(X_LIBS)
1298     AC_SUBST(X_EXTRA_LIBS)
1299    
1300     if test x$support_addstrings = xno; then
1301     AC_DEFINE(NO_STRINGS, 1, Define if you don't need to use our replacement string functions)
1302     fi
1303    
1304     dnl# common parts of the Makefile
1305     MCOMMON=./autoconf/Make.common
1306     AC_SUBST_FILE(MCOMMON)
1307    
1308     AC_ARG_PROGRAM
1309    
1310     dnl# test for "sun" or "__sun__" before include sys_ioctl
1311    
1312     dnl# revert HAVE_BLAH_H into a "#include <blah.h>"
1313     AC_DEFUN(RXVT_DEFINE_TO_INCLUDE, dnl
1314     [if test "$$3" = "$4" -o "$$5" = "$6"; then
1315     $1="#include <$2>"
1316     else
1317     $1="/* #include <$2> */"
1318     fi dnl
1319     AC_SUBST($1)])
1320    
1321     RXVT_DEFINE_TO_INCLUDE(include_stdint_h, stdint.h, ac_cv_header_stdint_h, yes, notset, dontmatch)
1322 pcg 1.20 RXVT_DEFINE_TO_INCLUDE(include_stdarg_h, cstdarg, ac_cv_header_stdarg_h, yes, notset, dontmatch)
1323     RXVT_DEFINE_TO_INCLUDE(include_stdlib_h, cstdlib, ac_cv_header_stdlib_h, yes, notset, dontmatch)
1324 pcg 1.1 RXVT_DEFINE_TO_INCLUDE(include_unistd_h, unistd.h, ac_cv_header_unistd_h, yes, notset, dontmatch)
1325 pcg 1.20 RXVT_DEFINE_TO_INCLUDE(include_string_h, cstring, ac_cv_header_string_h, yes, notset, dontmatch)
1326 pcg 1.1 RXVT_DEFINE_TO_INCLUDE(include_fcntl_h, fcntl.h, ac_cv_header_fcntl_h, yes, notset, dontmatch)
1327     RXVT_DEFINE_TO_INCLUDE(include_util_h, util.h, ac_cv_header_util_h, yes, notset, dontmatch)
1328     RXVT_DEFINE_TO_INCLUDE(include_assert_h, assert.h, ac_cv_header_assert_h, yes, notset, dontmatch)
1329     RXVT_DEFINE_TO_INCLUDE(include_sys_ioctl_h, sys/ioctl.h, rxvt_cv_header_sysioctl, yes, notset, dontmatch)
1330     RXVT_DEFINE_TO_INCLUDE(include_sys_select_h, sys/select.h, ac_cv_header_sys_select_h, yes, notset, dontmatch)
1331     RXVT_DEFINE_TO_INCLUDE(include_sys_strredir_h, sys/strredir.h, ac_cv_header_sys_strredir_h, yes, notset, dontmatch)
1332     RXVT_DEFINE_TO_INCLUDE(include_sys_time_h, sys/time.h, ac_cv_header_sys_time_h, yes, notset, dontmatch)
1333     RXVT_DEFINE_TO_INCLUDE(include_time_h, time.h, ac_cv_header_sys_time_h, no, ac_cv_header_time, yes)
1334    
1335     if test x$support_xft = xyes; then
1336     LIBS="$LIBS `pkg-config xft --libs`"
1337     CFLAGS="$CFLAGS `pkg-config xft --cflags`"
1338     CPPFLAGS="$CPPFLAGS `pkg-config xft --cflags`"
1339    
1340     AC_CHECK_HEADERS(X11/Xft/Xft.h,,[support_xft=no])
1341     AC_CHECK_LIB(Xft,XftDrawString32,,[support_xft=no])
1342 pcg 1.5
1343     if test x$support_xft = xyes; then
1344     AC_DEFINE(XFT, 1, Define to enable xft support)
1345     fi
1346 pcg 1.1 fi
1347    
1348 root 1.31 AC_CONFIG_FILES([autoconf/Make.common \
1349 pcg 1.1 Makefile \
1350     doc/Makefile \
1351     src/Makefile \
1352     src/test/Makefile \
1353     src/rxvtlib.h \
1354     W11/Makefile \
1355 root 1.31 ])
1356     AC_OUTPUT
1357 pcg 1.1
1358     echo "Configuration:
1359    
1360     Rxvt version: $VERSION : $DATE
1361     Source code location: $srcdir
1362     Install path: ${prefix}/bin
1363 pcg 1.16 Compiler: $CXX
1364     Compiler flags: $CFLAGS
1365     Linker: $LINKER"
1366 pcg 1.1
1367     if test "$MALLOC_TYPE" = S; then
1368     echo " malloc support: system default"
1369     fi
1370     if test "$MALLOC_TYPE" = G; then
1371     echo " malloc support: Gray Watson's dmalloc"
1372     fi
1373     if test "$MALLOC_TYPE" = D; then
1374     echo " malloc support: Doug Lea's malloc"
1375     fi
1376    
1377     if test x$support_xpm = xyes; then
1378     echo " Xpm library: $XPM_LIBS"
1379     fi
1380    
1381     echo "
1382     The following are set in config.h
1383     "
1384     echo " pty/tty type: "$rxvt_cv_ptys
1385     if test x$support_utmp != xyes; then
1386 pcg 1.22 echo " utmp support: disabled"
1387     echo
1388 pcg 1.1 else
1389     echo " utmp support: enabled
1390     utmp file: $rxvt_cv_path_utmp
1391     utmpx file: $rxvt_cv_path_utmpx
1392     wtmp file: $rxvt_cv_path_wtmp
1393     wtmpx file: $rxvt_cv_path_wtmpx
1394     lastlog file: $rxvt_cv_path_lastlog
1395 pcg 1.22 ttys/ttytab file: $rxvt_cv_path_ttytab"
1396     echo
1397 pcg 1.1 fi
1398     if test x$term != x; then
1399 pcg 1.19 echo " set TERM to: $term"
1400 pcg 1.1 fi
1401     if test x$terminfo != x; then
1402 pcg 1.19 echo " set TERMINFO to: $terminfo"
1403     fi
1404     echo " default resource name: $RESNAME"
1405     echo " resource class: $RESCLASS"
1406     if test x$RESFALLBACK != x; then
1407     echo " resource class fallback: $RESFALLBACK"
1408 pcg 1.1 fi
1409 pcg 1.19 echo
1410 pcg 1.1 if test x$rxvt_cv_ptys = xUNKNOWN; then
1411     echo ".----------------------------------------------------------------."
1412     echo ". WARNING: could not determine pty/tty type. Do not build until ."
1413     echo ". the appropriate PTYS_ARE_* is defined in config.h ."
1414     echo ".----------------------------------------------------------------."
1415     fi
1416     if test x$support_xpm = xneedsmanualspecification; then
1417     echo ".----------------------------------------------------------------."
1418     echo ". WARNING: --enable-xpm-background was specified however the ."
1419     echo ". XPM includes files and libraries could not be found. ."
1420     echo ". XPM backgrounds are now being DISABLED! If you want ."
1421     echo ". to use them you should rerun configure with the ."
1422     echo ". appropriate --with-xpm-includes=/path/to/xpm/includes ."
1423     echo ". and --with-xpm-library=/path/to/xpm/library lines. ."
1424     echo ".----------------------------------------------------------------."
1425     fi
1426     if test x$support_xim = xyes -a x$rxvt_cv_func_xlocale = xno; then
1427     echo ".----------------------------------------------------------------."
1428     echo ". WARNING: --enable-xim was specified however the locale support ."
1429     echo ". functions could not be found. ."
1430     echo ". XIM is now being DISABLED! ."
1431     echo ".----------------------------------------------------------------."
1432     fi
1433 pcg 1.22
1434     echo " *** Please check src/feature.h for further options ***"
1435     echo
1436    
1437     echo ".----------------------------------------------------------------."
1438     echo ". NOTE: most features are disabled by default, try ."
1439     echo ". configure --help to get an idea of the optional features ."
1440     echo ".----------------------------------------------------------------."
1441     echo
1442