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