ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/configure.ac
Revision: 1.29
Committed: Wed Jan 25 21:03:03 2006 UTC (18 years, 4 months ago) by root
Branch: MAIN
CVS Tags: rel-7_3
Changes since 1.28: +0 -11 lines
Log Message:
*** empty log message ***

File Contents

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