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