ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/configure.ac
Revision: 1.36
Committed: Wed Feb 8 22:49:03 2006 UTC (18 years, 4 months ago) by root
Branch: MAIN
CVS Tags: rel-7_7, rel-7_6, rel-7_8, rel-7_9, rel-8_1, rel-8_0, rel-8_2
Changes since 1.35: +1 -1 lines
Log Message:
*** empty log message ***

File Contents

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