repo: rxvt-unicode-sixel action: commit revision: path_from: revision_from: f03f3a570e5a2b4be1a7ab6068b470118b27205f: path_to: revision_to:
commit f03f3a570e5a2b4be1a7ab6068b470118b27205f Author: Emanuele GiaquintaDate: Tue Jan 17 12:21:41 2006 +0000 *** empty log message *** diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000000000000000000000000000000000000..b2940b838c453c06f31ebeceeabb501392c91959 --- /dev/null +++ b/configure.ac @@ -0,0 +1,1562 @@ +dnl# -*- sh -*- +dnl# +dnl# Process this file with autoconf to produce a configure script. +dnl# + +AC_INIT +AC_PREREQ(2.50) +AC_CONFIG_SRCDIR([src/feature.h]) +AC_CONFIG_HEADER(config.h:config.h.in) + +AC_CANONICAL_HOST + +dnl RXVT version +changequote(, )dnl +VERSION=`sed -n -e 's/^.*[ \t]VERSION.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h` +DATE=`sed -n -e 's/^.*[ \t]DATE.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h` +dnl LIBVERSION=`sed -n -e 's/^.*[ \t]LIBVERSION.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h` +changequote([, ])dnl +AC_SUBST(VERSION)dnl +AC_SUBST(DATE)dnl +AC_SUBST(LSMDATE)dnl +AC_SUBST(LIBVERSION)dnl +echo "" +echo "configuring for rxvt $VERSION" +echo "" + +orig_CXXFLAGS="$CXXFLAGS" + +dnl# Checks for programs. +dnl AC_MAKE_SET + +AC_PROG_CC +AC_PROG_CXX +AC_PROG_CPP +AC_PROG_INSTALL +AC_PROG_AWK + +AC_LANG(C) + +dnl# -------------------------------------------------------------------------- +dnl# Supply default CFLAGS, if not specified by `CFLAGS=flags ./configure' +dnl# +if test -z "$orig_CXXFLAGS"; then + if test x$GCC = xyes && test "x$GXX" = xyes; then + CXXFLAGS="-g -O3" + else + CXXFLAGS="-O" + fi + CFLAGS="$CXXFLAGS" +fi + +LINKER="$CXX" +if test x$GCC = xyes && test x$GXX = xyes; then + AC_CHECK_LIB(supc++, main, [ + LINKER="$CC" + LIBS="$LIBS -lsupc++" + ]) +fi +AC_SUBST(LINKER,[$LINKER]) + +AC_DEFINE(_GNU_SOURCE, 1, Use all glibc features.) + +case $host in + *-*-solaris* ) + AC_DEFINE(_XOPEN_SOURCE_EXTENDED, 1, Needed to get declarations for msg_control and msg_controllen on Solaris) + AC_DEFINE(_XOPEN_SOURCE, 2, Needed to get declarations for msg_control and msg_controllen on Solaris) + AC_DEFINE(__EXTENSIONS__, 1, Needed to get declarations for msg_control and msg_controllen on Solaris) + ;; +esac + +dnl if test x$GXX = xyes; then +dnl CXXFLAGS="$CXXFLAGS" dnl I once had -fno-exceptions, but I am using them now... +dnl fi + +AC_LANG(C++) + +dnl# system hacks +AC_AIX +AC_ISC_POSIX + +dnl# FreeBSD needs to link libxpg4 +AC_CHECK_FUNC(setlocale, [], [AC_CHECK_LIB(xpg4, setlocale, [LIBS="$LIBS -lxpg4"])]) + +dnl# solaris needs to link libnsl and socket +AC_CHECK_FUNC(gethostbyname, [], [AC_CHECK_LIB(nsl, gethostbyname, [LIBS="$LIBS -lnsl"])]) +AC_CHECK_FUNC(socket, [], [AC_CHECK_LIB(socket, socket, [LIBS="$LIBS -lsocket"])]) + +dnl# more solaris +AC_CHECK_FUNC(sched_yield, [], [AC_CHECK_LIB(rt, sched_yield, [LIBS="$LIBS -lrt"])]) + +dnl# sched_yield to improve terminal efficiency +AC_MSG_CHECKING(for sched_yield support) +AC_TRY_LINK([#include ],[sched_yield ()], + [AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_SCHED_YIELD, 1, Define if you have sched-h and sched_yield)], + [AC_MSG_RESULT(no)]) + +dnl AC_ENABLE_SHARED(no)dnl# libtool +dnl AC_ENABLE_STATIC(yes)dnl# libtool +dnl AC_PROG_LIBTOOL()dnl# libtool + +MALLOC_TYPE=S + +support_frills=yes +support_inheritpixmap=yes +support_tinting=yes +support_fading=yes +support_keepscrolling=yes +support_selectionscrolling=yes +support_mousewheel=yes +support_mouseslipwheel=yes +support_utmp=yes +support_wtmp=yes +support_lastlog=yes +support_text_blink=yes +support_pointer_blank=yes +support_scroll_rxvt=yes +support_scroll_next=yes +support_scroll_xterm=yes +support_scroll_plain=yes +support_xim=yes +support_xpm=yes +support_xft=yes +support_unicode3=no +support_combining=yes +support_8bitctrls=no +support_iso14755=yes +support_styles=yes +support_perl=yes +codesets=all + +dnl# -------------------------------------------------------------------------- +dnl# CHECKING COMMAND LINE OPTIONS +dnl# -------------------------------------------------------------------------- + +if test "x$enable_shared" = xyes; then + AC_DEFINE(LIBRXVT, 1, Build shared library version - specify via configure only) + INSTALL_LIBRXVT=yes +fi +AC_SUBST(INSTALL_LIBRXVT) + +AC_ARG_ENABLE(everything, + [ --enable-everything enable standard non-multichoice features + NOTE: this option is order dependent + NOTE: automatically enabled with --enable-shared], + [ + if test x$enableval = xno; then + support_24bit=no + support_frills=no + support_inheritpixmap=no + support_tinting=no + support_fading=no + support_keepscrolling=no + support_selectionscrolling=no + support_lastlog=no + support_mousewheel=no + support_mouseslipwheel=no + support_text_blink=no + support_pointer_blank=no + support_scroll_rxvt=no + support_scroll_next=no + support_scroll_xterm=no + support_scroll_plain=no + support_utmp=no + support_wtmp=no + support_xim=no + support_xpm=no + support_xft=no + support_unicode3=no + support_combining=no + support_8bitctrls=no + support_iso14755=no + support_styles=no + support_perl=no + codesets= + fi + if test x$enableval = xyes; then + support_24bit=yes + support_frills=yes + support_inheritpixmap=yes + support_tinting=yes + support_fading=yes + support_keepscrolling=yes + support_selectionscrolling=yes + support_lastlog=yes + support_mousewheel=yes + support_mouseslipwheel=yes + support_text_blink=yes + support_pointer_blank=yes + support_scroll_rxvt=yes + support_scroll_next=yes + support_scroll_xterm=yes + support_scroll_plain=yes + support_utmp=yes + support_wtmp=yes + support_xim=yes + support_xpm=yes + support_xft=yes + support_unicode3=yes + support_combining=yes + #support_8bitctrls=yes + support_iso14755=yes + support_styles=yes + support_perl=yes + codesets=all + fi + ]) + +AC_ARG_ENABLE(unicode3, + [ --enable-unicode3 use 21 instead of 16 bits to represent unicode characters], + [if test x$enableval = xyes -o x$enableval = xno; then + support_unicode3=$enableval + fi]) + +AC_ARG_ENABLE(combining, + [ --enable-combining enable composition of base and combining characters], + [if test x$enableval = xyes -o x$enableval = xno; then + support_combining=$enableval + fi]) + +AC_ARG_ENABLE(xft, + [ --enable-xft enable xft support on systems that have it], + [if test x$enableval = xyes -o x$enableval = xno; then + support_xft=$enableval + fi]) + +AC_ARG_ENABLE(font-styles, + [ --enable-font-styles enable bold and italic support], + [if test x$enableval = xyes -o x$enableval = xno; then + support_styles=$enableval + fi]) + +AC_ARG_ENABLE(utmp, + [ --enable-utmp enable utmp (utmpx) support], + [if test x$enableval = xyes -o x$enableval = xno; then + support_utmp=$enableval + fi]) + +AC_ARG_ENABLE(wtmp, + [ --enable-wtmp enable wtmp (wtmpx) support (requires --enable-utmp)], + [if test x$enableval = xyes -o x$enableval = xno; then + support_wtmp=$enableval + fi]) + +AC_ARG_ENABLE(lastlog, + [ --enable-lastlog enable lastlog support (requires --enable-utmp)], + [if test x$enableval = xyes -o x$enableval = xno; then + support_lastlog=$enableval + fi]) + +AC_ARG_ENABLE(xpm-background, + [ --enable-xpm-background enable XPM background pixmaps], + [if test x$enableval = xyes -o x$enableval = xno; then + support_xpm=$enableval + fi]) + +AC_ARG_ENABLE(transparency, + [ --enable-transparency enable transparent backgrounds], + [if test x$enableval = xyes -o x$enableval = xno; then + support_inheritpixmap=$enableval + fi]) + +AC_ARG_ENABLE(tinting, + [ --enable-tinting enable tinting of transparent bg], + [if test x$enableval = xyes -o x$enableval = xno; then + support_tinting=$enableval + fi]) + +AC_ARG_ENABLE(fading, + [ --enable-fading enable colors fading when off focus], + [if test x$enableval = xyes -o x$enableval = xno; then + support_fading=$enableval + fi]) + +AC_ARG_ENABLE(rxvt-scroll, + [ --enable-rxvt-scroll enable rxvt style scrollbar], + [if test x$enableval = xyes -o x$enableval = xno; then + support_scroll_rxvt=$enableval + fi]) + +AC_ARG_ENABLE(next-scroll, + [ --enable-next-scroll enable NeXT style scrollbar], + [if test x$enableval = xyes -o x$enableval = xno; then + support_scroll_next=$enableval + fi]) + +AC_ARG_ENABLE(xterm-scroll, + [ --enable-xterm-scroll enable Xterm style scrollbar], + [if test x$enableval = xyes -o x$enableval = xno; then + support_scroll_xterm=$enableval + fi]) + +AC_ARG_ENABLE(perl, + [ --enable-perl enable embedded perl interpreter], + [if test x$enableval = xyes -o x$enableval = xno; then + support_perl=$enableval + fi]) + +AC_ARG_ENABLE(plain-scroll, + [ --enable-plain-scroll enable plain style scrollbar], + [if test x$enableval = xyes -o x$enableval = xno; then + support_scroll_plain=$enableval + fi]) + +dnl AC_ARG_ENABLE(half-shadow, +dnl [ --enable-half-shadow use half width/height shadow on rxvt scrollbar], +dnl [if test x$enableval = xyes; then +dnl AC_DEFINE(HALFSHADOW, 1, Define if you want the depth of scrollbars and menus to be less) +dnl fi]) + +AC_ARG_WITH(codesets, + [ --with-codesets=NAME,.. compile in additional codesets (jp,jp_ext,kr,zh,zh_ext,all)], + [codesets="$withval"]) + +AC_ARG_ENABLE(xim, + [ --enable-xim XIM (X Input Method) protocol support], + [if test x$enableval = xyes -o x$enableval = xno; then + support_xim=$enableval + fi]) + +AC_ARG_ENABLE(ttygid, + [ --enable-ttygid enable tty setting to group named "tty"], + [if test x$enableval = xyes; then + AC_DEFINE(TTY_GID_SUPPORT, 1, Define to change gid of ttys to group tty) + fi]) + +AC_ARG_ENABLE(backspace-key, + [ --disable-backspace-key disable handling of the backspace key], + [if test x$enableval = xno; then + AC_DEFINE(NO_BACKSPACE_KEY, 1, Define if you don't want support for the backspace key) + fi]) + +AC_ARG_ENABLE(delete-key, + [ --disable-delete-key disable handling of the delete key], + [if test x$enableval = xno; then + AC_DEFINE(NO_DELETE_KEY, 1, Define if you don't want support for the (non-keypad) delete key) + fi]) + +AC_ARG_ENABLE(resources, + [ --disable-resources disable all resource checking], + [if test x$enableval = xno; then + AC_DEFINE(NO_RESOURCES, 1, Define if you don't want any resources read) + fi]) + +AC_ARG_ENABLE(8bitctrls, + [ --enable-8bitctrls enable 8 bit control sequences (not recommended)], + [if test x$enableval = xyes -o x$enableval = xno; then + support_8bitctrls=$enableval + fi]) + +RESFALLBACK=Rxvt +AC_ARG_ENABLE(fallback, + [ --enable-fallback(=CLASS) fall back on CLASS resources in addition to URxvt ones (default: Rxvt)], + [ + test x$enableval = xyes && enableval=Rxvt + test x$enableval = xno && enableval= + RESFALLBACK="$enableval" + ]) + +if test x$RESFALLBACK != x; then + AC_DEFINE_UNQUOTED(RESFALLBACK, "$RESFALLBACK", [Fallback resource class]) +fi + +RESNAME=urxvt +AC_ARG_WITH(res-name, + [ --with-res-name=NAME use this as default resource name (default: urxvt)], + [RESNAME="$withval"]) +AC_DEFINE_UNQUOTED(RESNAME,"$RESNAME", [Default resource name]) + +RESCLASS=URxvt +AC_ARG_WITH(res-class, + [ --with-res-class=CLASS use this as the resource class (default: URxvt)], + [RESCLASS="$withval"]) +AC_DEFINE_UNQUOTED(RESCLASS,"$RESCLASS", [Resource class]) + +RXVTNAME=urxvt +AC_ARG_WITH(name, + [ --with-name=NAME set the basename for the installed binaries (default: urxvt)], + [RXVTNAME="$withval"]) +AC_DEFINE_UNQUOTED(RXVTNAME,"$RXVTNAME", [Binary base name]) + +RXVTNAME=`echo "$RXVTNAME"|sed "$program_transform_name"` +AC_SUBST(RXVTNAME) + +AC_ARG_ENABLE(swapscreen, + [ --disable-swapscreen disable swap screen support], + [if test x$enableval = xno; then + AC_DEFINE(NO_SECONDARY_SCREEN, 1, Disable the secondary screen. Many programs use the secondary screen as their workplace) + fi]) + +AC_ARG_ENABLE(iso14755, + [ --enable-iso14755 enable support for extended ISO 14755 modes], + [if test x$enableval = xyes -o x$enableval = xno; then + support_iso14755=$enableval + fi]) + +AC_ARG_ENABLE(frills, + [ --enable-frills enable support for rarely used features], + [if test x$enableval = xyes -o x$enableval = xno; then + support_frills=$enableval + fi]) + +AC_ARG_ENABLE(24bit, + [ --enable-24bit enable support for using 24bit visuals if available], + [if test x$enableval = xyes -o x$enableval = xno; then + support_24bit=$enableval + fi]) + +AC_ARG_ENABLE(keepscrolling, + [ --enable-keepscrolling enable continual scrolling on scrollbar arrow press], + [if test x$enableval = xyes -o x$enableval = xno; then + support_keepscrolling=$enableval + fi]) + +AC_ARG_ENABLE(selectionscrolling, + [ --enable-selectionscrolling enable scrolling during selections], + [if test x$enableval = xyes -o x$enableval = xno; then + support_selectionscrolling=$enableval + fi]) + +AC_ARG_ENABLE(mousewheel, + [ --enable-mousewheel enable scrolling via mouse wheel or buttons 4 & 5], + [if test x$enableval = xyes -o x$enableval = xno; then + support_mousewheel=$enableval + fi]) + +AC_ARG_ENABLE(slipwheeling, + [ --enable-slipwheeling enable slip wheel scrolling (requires previous)], + [if test x$enableval = xyes -o x$enableval = xno; then + support_mouseslipwheel=$enableval + fi]) + +AC_ARG_ENABLE(dmalloc, + [ --enable-dmalloc enable Gray Watson's malloc - for debugging use], + [if test x$enableval = xyes; then + MALLOC_TYPE=G + DEBUG=-DDEBUG_MALLOC + DLIB="-L/usr/local/lib -ldmalloc" + DINCLUDE=-I/usr/local/include + fi]) + +AC_ARG_ENABLE(dlmalloc, + [ --enable-dlmalloc enable Doug Lea's malloc - for production use + NOTE: enable only one malloc package], + [if test x$enableval = xyes; then + MALLOC_TYPE=D + DEBUG= + DLIB="-L/usr/local/lib -ldlmalloc" + DINCLUDE= + fi]) + +AC_ARG_ENABLE(smart-resize, + [ --enable-smart-resize enable smart growth/shrink behaviour], + [if test x$enableval = xyes; then + AC_DEFINE(SMART_RESIZE, 1, Define to use "smart" resize behavior) + fi]) + +AC_ARG_ENABLE(text-blink, + [ --enable-text-blink enable blinking text], + [if test x$enableval = xyes -o x$enableval = xno; then + support_text_blink=$enableval + fi]) + +AC_ARG_ENABLE(pointer-blank, + [ --enable-pointer-blank enable pointer blank when typing or inactive pointer], + [if test x$enableval = xyes -o x$enableval = xno; then + support_pointer_blank=$enableval + fi]) + +AC_ARG_WITH(term, + [ --with-term=NAME set the terminal to NAME (default: rxvt)], + [if test x$withval != x; then + AC_DEFINE_UNQUOTED(TERMENV, "$withval",Set TERM to the value given by configure) term="$withval" + fi]) + +AC_ARG_WITH(terminfo, + [ --with-terminfo=PATH set the path to the terminfo tree to PATH], + [if test x$withval != x; then + AC_DEFINE_UNQUOTED(RXVT_TERMINFO, "$withval", Set TERMINFO value to the value given by configure) terminfo="$withval" + fi]) + +dnl# -------------------------------------------------------------------------- + +AC_DEFINE(PROTOTYPES, 1, Define if you need function prototypes) + +AC_PATH_PROG(MV, mv, mv) +AC_PATH_PROG(RM, rm, rm) +AC_PATH_PROG(CP, cp, cp) +AC_PATH_PROG(LN, ln, ln) +AC_PATH_PROG(SED, sed, sed) +AC_PATH_PROG(ECHO, echo, echo) +AC_PATH_PROG(CMP, cmp, cmp) +AC_PATH_PROG(TBL, tbl) +AC_PATH_PROG(TIC, tic) + +dnl# need a neat way to detect SVR4 or its features +dnl# in src/command.c we use these functions: +dnl# grantpt(), unlockpt(), ptsname(), which are defined in +dnl# - but are these also defined for other systems? + +dnl# hack to find if this is SVR4 -- who knows? +dnl## AC_MSG_CHECKING(for SVR4) +dnl## AC_EGREP_CPP(yes, +dnl## [#if defined (SVR4) || defined (_SVR4) || defined (__svr4__) +dnl## yes; +dnl## #endif +dnl## ], [AC_MSG_RESULT(yes); AC_DEFINE(PERHAPS_SVR4)], AC_MSG_RESULT(perhaps not?)) + +AC_PATH_XTRA + +dnl# the only reasonable way to find libXpm is do-it-yourself +dnl# only check if we want xpm-background + +if test x$support_xpm = xyes; then + VT_FIND_LIBXPM + if test x$no_xpm = xyes; then + support_xpm=needsmanualspecification + fi +fi + +dnl# -------------------------------------------------------------------------- +dnl# CHECKING FOR HEADER FILES +dnl# -------------------------------------------------------------------------- +AC_HEADER_SYS_WAIT +AC_CHECK_HEADERS( \ + assert.h \ + fcntl.h \ + grp.h \ + libc.h \ + lastlog.h \ + stdarg.h \ + stdlib.h \ + string.h \ + termios.h \ + unistd.h \ + sys/byteorder.h \ + sys/ioctl.h \ + sys/select.h \ + sys/sockio.h \ + sys/strredir.h \ + sys/stropts.h \ + sys/time.h \ + utmp.h \ + utmpx.h \ + stdint.h \ + pty.h \ + util.h \ + libutil.h \ + wchar.h \ + cwchar \ + clocale \ +) + +AC_HEADER_TIME + +dnl# check to allow both and +AC_CACHE_CHECK(whether termios.h and sys/ioctl.h may both be included, rxvt_cv_header_sysioctl, +[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include +#include +#ifdef HAVE_TERMIOS_H +#include +#endif]], [[int a = ECHO;]])],[rxvt_cv_header_sysioctl=yes],[rxvt_cv_header_sysioctl=no])]) + +dnl# ELF systems may want to store paths for dynamic libraries. +dnl# Lets see if the compiler can accept "-Rpath" or "-Wl,-Rpath" +dnl# At least one version of SunOS wants "-R path" but it's not checked yet. +if test -n "$GCC"; then + LDARG="-Wl," +else + LDARG="" +fi +changequote(, )dnl +R_TRANSLATE='s/-L\([^ ]*\)/-L\1 '$LDARG'-rpath '$LDARG'\1/g' +changequote([, ])dnl + +ac_save_CFLAGS=$CFLAGS +ac_save_LIBS=$LIBS +CFLAGS="$CFLAGS $X_CFLAGS" +LIBS=`echo "$LIBS $X_LIBS $X_EXTRA_LIBS -lX11" | sed "$R_TRANSLATE"` +AC_CACHE_CHECK([for -rpath dynamic library path recording], rxvt_cv_rpath, +[AC_RUN_IFELSE([AC_LANG_SOURCE([[ +main() +{ + exit(0); + (void) XOpenDisplay("foobar"); +}]])],[rxvt_cv_rpath=yes],[rxvt_cv_rpath=no],[dnl + AC_MSG_WARN(You may need to check the LIBS line)])]) +if test x$rxvt_cv_rpath != xyes; then + changequote(, )dnl + R_TRANSLATE='s/-L\([^ ]*\)/-L\1 '$LDARG'-R\1/g' + changequote([, ])dnl + LIBS=`echo "$ac_save_LIBS $X_LIBS $X_EXTRA_LIBS -lX11" | sed "$R_TRANSLATE"` + AC_CACHE_CHECK([for -R dynamic library path recording], rxvt_cv_R, +[AC_RUN_IFELSE([AC_LANG_SOURCE([[ +main() +{ + exit(0); + (void) XOpenDisplay("foobar"); +}]])],[rxvt_cv_R=yes],[rxvt_cv_R=no],[rxvt_cv_R=no])]) + if test x$rxvt_cv_R != xyes; then + LIBS="$ac_save_LIBS $X_LIBS $X_EXTRA_LIBS -lX11" + fi +fi + +AC_CACHE_CHECK([for XPointer], rxvt_cv_xpointer, +[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[XPointer dummy;]])],[rxvt_cv_xpointer=yes],[rxvt_cv_xpointer=no])]) +if test x$rxvt_cv_xpointer = xyes; then + AC_DEFINE(HAVE_XPOINTER, 1, Define if you have XPointer typedef) +fi +LIBS=$ac_save_LIBS +CFLAGS=$ac_save_CFLAGS + + +AC_C_CONST +AC_C_INLINE + +dnl> AC_HEADER_STDC dnl# skip this test, Sun always fails anyhow. + +dnl# -------------------------------------------------------------------------- +dnl# CHECKING FOR MISSING TYPEDEFS +dnl# -------------------------------------------------------------------------- +dnl# Missing typedefs and replacements +AC_TYPE_MODE_T +dnl> AC_CHECK_TYPE(umode_t, int) +dnl> AC_CHECK_TYPE(off_t, long) +AC_TYPE_PID_T +AC_TYPE_UID_T + +AC_CHECK_SIZEOF(short, 2) +AC_CHECK_SIZEOF(int, 4) +dnl AC_CHECK_SIZEOF(long, 4) +AC_CHECK_SIZEOF(long long, 8) +AC_CHECK_SIZEOF(int *, 4) + +dnl# see usage below +AC_DEFUN(RXVT_CHECK_SIZE, + [AC_CACHE_CHECK([for $2], $1, + [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[$2 dummy;]])],[$1=yes],[dnl +if test "$ac_cv_sizeof_char" -ge $3; then + $1="$4 char" +else + if test "$ac_cv_sizeof_short" -ge $3; then + $1="$4 short" + else + if test "$ac_cv_sizeof_int" -ge $3; then + $1="$4 int" + else + if test "$ac_cv_sizeof_long" -ge $3; then + $1="$4 long" + else + if test "$ac_cv_sizeof_long_long" -ge $3; then + $1="$4 long long" + else + $1="$4 $5" # we _must_ have a (possibly wrong) default + fi + fi + fi + fi +fi])])] +if test x"$$1" != xyes; then + $6="typedef $$1 $2;" +else + if test x"$4" = x; then + $6="/* typedef $5 $2; */" + else + $6="/* typedef $4 $5 $2; */" + fi +fi dnl +) +dnl# +dnl# Look for types the system may know about anyway. +dnl# +RXVT_CHECK_SIZE(rxvt_cv_int16_t, int16_t, 2, , short, rxvt_int16_typedef) +AC_SUBST(rxvt_int16_typedef) +RXVT_CHECK_SIZE(rxvt_cv_uint16_t, uint16_t, 2, unsigned, short, rxvt_uint16_typedef) +AC_SUBST(rxvt_uint16_typedef) +RXVT_CHECK_SIZE(rxvt_cv_int32_t, int32_t, 4, , int, rxvt_int32_typedef) +AC_SUBST(rxvt_int32_typedef) +RXVT_CHECK_SIZE(rxvt_cv_uint32_t, uint32_t, 4, unsigned, int, rxvt_uint32_typedef) +AC_SUBST(rxvt_uint32_typedef) +dnl RXVT_CHECK_SIZE(rxvt_cv_int64_t, int64_t, 8, , long long, rxvt_int64_typedef) +dnl AC_SUBST(rxvt_int64_typedef) +dnl RXVT_CHECK_SIZE(rxvt_cv_uint64_t, uint64_t, 8, unsigned, long long, rxvt_uint64_typedef) +dnl AC_SUBST(rxvt_uint64_typedef) +dnl# +dnl# Now look for another we use +dnl# +if test "$ac_cv_sizeof_int_p" -eq 8; then + rxvt_intp_define="#define intp_t int64_t" + rxvt_u_intp_define="#define u_intp_t u_int64_t" +else + if test "$ac_cv_sizeof_int_p" -eq 4; then + rxvt_intp_define="#define intp_t int32_t" + rxvt_u_intp_define="#define u_intp_t u_int32_t" + else + if test "$ac_cv_sizeof_int_p" -eq 2; then + rxvt_intp_define="#define intp_t int16_t" + rxvt_u_intp_define="#define u_intp_t u_int16_t" + else + rxvt_intp_define="#error set intp_t" + rxvt_u_intp_define="#error set u_intp_t" + fi + fi +fi +AC_SUBST(rxvt_intp_define) +AC_SUBST(rxvt_u_intp_define) + +dnl# -------------------------------------------------------------------------- +dnl# CHECKING FOR LIBRARY FUNCTIONS +dnl# -------------------------------------------------------------------------- +AC_TYPE_SIGNAL +dnl> AC_FUNC_VPRINTF + +dnl# Note: On Ultrix, setsid() does weirdo stuff, disable it +case "$host_alias" in + *ultrix) ac_cv_func_setsid='no' ;; + *) break;; +esac + +AC_CHECK_FUNCS( \ + atexit \ + revoke \ + unsetenv \ + setutent \ + seteuid \ + setreuid \ + setsid \ + setpgrp \ + setpgid \ + _getpty \ + getpt \ + posix_openpt \ + grantpt \ + unlockpt \ + isastream \ + on_exit \ + nanosleep \ + updwtmp \ + updwtmpx \ + ttyslot \ +) + +dnl# -------------------------------------------------------------------------- +dnl# DO ALL UTMP AND WTMP CHECKING +dnl# -------------------------------------------------------------------------- +dnl# check for host field in utmp structure + +dnl# -------------------------------------------- +AC_CHECK_HEADER(utmp.h, +[AC_CACHE_CHECK([for struct utmp], rxvt_cv_struct_utmp, +[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include +#include +#include ]], [[struct utmp ut;]])],[rxvt_cv_struct_utmp=yes],[rxvt_cv_struct_utmp=no])]) +if test x$rxvt_cv_struct_utmp = xyes; then + AC_DEFINE(HAVE_STRUCT_UTMP, 1, Define if utmp.h has struct utmp) +fi +] + +AC_CACHE_CHECK(for ut_host in utmp struct, rxvt_cv_struct_utmp_host, +[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include +#include ]], [[struct utmp ut; ut.ut_host;]])],[rxvt_cv_struct_utmp_host=yes],[rxvt_cv_struct_utmp_host=no])]) +if test x$rxvt_cv_struct_utmp_host = xyes; then + AC_DEFINE(HAVE_UTMP_HOST, 1, Define if struct utmp contains ut_host) +fi + +AC_CACHE_CHECK(for ut_pid in utmp struct, rxvt_cv_struct_utmp_pid, +[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include +#include ]], [[struct utmp ut; ut.ut_pid;]])],[rxvt_cv_struct_utmp_pid=yes],[rxvt_cv_struct_utmp_pid=no])]) +if test x$rxvt_cv_struct_utmp_pid = xyes; then + AC_DEFINE(HAVE_UTMP_PID, 1, Define if struct utmp contains ut_pid) +fi +) dnl# AC_CHECK_HEADER(utmp.h + +dnl# -------------------------------------------- + +AC_CHECK_HEADER(utmpx.h, +[AC_CACHE_CHECK([for struct utmpx], rxvt_cv_struct_utmpx, +[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include +#include ]], [[struct utmpx ut;]])],[rxvt_cv_struct_utmpx=yes],[rxvt_cv_struct_utmpx=no])]) +if test x$rxvt_cv_struct_utmpx = xyes; then + AC_DEFINE(HAVE_STRUCT_UTMPX, 1, Define if utmpx.h has struct utmpx) +fi +] + +AC_CACHE_CHECK(for host in utmpx struct, rxvt_cv_struct_utmpx_host, +[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include +#include ]], [[struct utmpx utx; utx.ut_host;]])],[rxvt_cv_struct_utmpx_host=yes],[rxvt_cv_struct_utmpx_host=no])]) +if test x$rxvt_cv_struct_utmpx_host = xyes; then + AC_DEFINE(HAVE_UTMPX_HOST, 1, Define if struct utmpx contains ut_host) +fi + +AC_CACHE_CHECK(for session in utmpx struct, rxvt_cv_struct_utmpx_session, +[AC_TRY_COMPILE([#include +#include ], +[struct utmpx utx; utx.ut_session;], +rxvt_cv_struct_utmpx_session=yes, rxvt_cv_struct_utmpx_session=no)]) +if test x$rxvt_cv_struct_utmpx_session = xyes; then + AC_DEFINE(HAVE_UTMPX_SESSION, 1, Define if struct utmpx contains ut_session) +fi +) dnl# AC_CHECK_HEADER(utmpx.h + +dnl# -------------------------------------------------------------------------- +dnl# check for struct lastlog +AC_CACHE_CHECK(for struct lastlog, rxvt_cv_struct_lastlog, +[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include +#include +#ifdef HAVE_LASTLOG_H +#include +#endif +]], [[struct lastlog ll;]])],[rxvt_cv_struct_lastlog=yes],[rxvt_cv_struct_lastlog=no])]) +if test x$rxvt_cv_struct_lastlog = xyes; then + AC_DEFINE(HAVE_STRUCT_LASTLOG, 1, Define if utmp.h or lastlog.h has struct lastlog) +fi + +dnl# check for struct lastlogx +AC_CACHE_CHECK(for struct lastlogx, rxvt_cv_struct_lastlogx, +[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include +#include +#ifdef HAVE_LASTLOG_H +#include +#endif +]], [[struct lastlogx ll;]])],[rxvt_cv_struct_lastlogx=yes],[rxvt_cv_struct_lastlogx=no])]) +if test x$rxvt_cv_struct_lastlogx = xyes; then + AC_DEFINE(HAVE_STRUCT_LASTLOGX, 1, Define if utmpx.h or lastlog.h has struct lastlogx) +fi + +dnl# -------------------------------------------------------------------------- +dnl# FIND FILES +dnl# -------------------------------------------------------------------------- + +dnl# find utmp +AC_CACHE_CHECK(where utmp is located, rxvt_cv_path_utmp, +[AC_RUN_IFELSE([AC_LANG_SOURCE([[#include +#include +#include +#include +main() +{ + char **u, *utmplist[] = { + "/var/run/utmp", "/var/adm/utmp", "/etc/utmp", "/usr/etc/utmp", "/usr/adm/utmp", NULL }; + FILE *a, *f=fopen("conftestval", "w"); + if (!f) exit(1); +#ifdef UTMP_FILE + fprintf(f, "%s\n", UTMP_FILE); + exit(0); +#endif +#ifdef _PATH_UTMP + fprintf(f, "%s\n", _PATH_UTMP); + exit(0); +#endif + for (u = utmplist; *u; u++) { + if ((a = fopen(*u, "r")) != NULL || errno == EACCES) { + fprintf(f, "%s\n", *u); + exit(0); + } + } + exit(0); +}]])],[rxvt_cv_path_utmp=`cat conftestval`],[rxvt_cv_path_utmp=],[dnl + AC_MSG_WARN(Define RXVT_UTMP_FILE in config.h manually)])]) +if test x$rxvt_cv_path_utmp != x; then + AC_DEFINE_UNQUOTED(RXVT_UTMP_FILE, "$rxvt_cv_path_utmp", Define location of utmp) +fi + +dnl# -------------------------------------------------------------------------- + +dnl# find utmpx - if a utmp file exists at the same location and is more than +dnl# a day newer, then dump the utmpx. People leave lots of junk around. +AC_CACHE_CHECK(where utmpx is located, rxvt_cv_path_utmpx, +[AC_RUN_IFELSE([AC_LANG_SOURCE([[#include +#include +#include +#include +#include +#ifdef HAVE_STRING_H +#include +#endif +main() +{ + char **u, *p, *utmplist[] = { +#ifdef UTMPX_FILE + UTMPX_FILE, +#endif +#ifdef _PATH_UTMPX + _PATH_UTMPX, +#endif + "/var/adm/utmpx", "/etc/utmpx", NULL }; + FILE *a, *f=fopen("conftestval", "w"); + struct stat statu, statux; + if (!f) exit(1); + for (u = utmplist; *u; u++) { + if ((a = fopen(*u, "r")) != NULL || errno == EACCES) { + if (stat(*u, &statux) < 0) + continue; + p = strdup(*u); + p[strlen(p) - 1] = '\0'; + if (stat(p, &statu) >= 0 + && (statu.st_mtime - statux.st_mtime > 86400)) + continue; + fprintf(f, "%s\n", *u); + exit(0); + } + } + exit(0); +}]])],[rxvt_cv_path_utmpx=`cat conftestval`],[rxvt_cv_path_utmpx=],[dnl + AC_MSG_WARN(Define RXVT_UTMPX_FILE in config.h manually)])]) +if test x$rxvt_cv_path_utmpx != x; then + AC_DEFINE_UNQUOTED(RXVT_UTMPX_FILE, "$rxvt_cv_path_utmpx", Define location of utmpx) +fi + +dnl# -------------------------------------------------------------------------- + +dnl# find wtmp +AC_CACHE_CHECK(where wtmp is located, rxvt_cv_path_wtmp, +[AC_RUN_IFELSE([AC_LANG_SOURCE([[#include +#include +#ifdef HAVE_UTMP_H +#include +#endif +#include +main() +{ + char **w, *wtmplist[] = { + "/var/log/wtmp", "/var/adm/wtmp", "/etc/wtmp", "/usr/etc/wtmp", "/usr/adm/wtmp", NULL }; + FILE *a, *f=fopen("conftestval", "w"); + if (!f) exit(1); +#ifdef WTMP_FILE + fprintf(f, "%s\n", WTMP_FILE); + exit(0); +#endif +#ifdef _PATH_WTMP + fprintf(f, "%s\n", _PATH_WTMP); + exit(0); +#endif + for (w = wtmplist; *w; w++) { + if ((a = fopen(*w, "r")) != NULL || errno == EACCES) { + fprintf(f, "%s\n", *w); + exit(0); + } + } + exit(0); +}]])],[rxvt_cv_path_wtmp=`cat conftestval`],[rxvt_cv_path_wtmp=],[dnl + AC_MSG_WARN(Define RXVT_WTMP_FILE in config.h manually)])]) +if test x$rxvt_cv_path_wtmp != x; then + AC_DEFINE_UNQUOTED(RXVT_WTMP_FILE, "$rxvt_cv_path_wtmp", Define location of wtmp) +fi +dnl# -------------------------------------------------------------------------- + +dnl# find wtmpx +AC_CACHE_CHECK(where wtmpx is located, rxvt_cv_path_wtmpx, +[AC_RUN_IFELSE([AC_LANG_SOURCE([[#include +#ifdef HAVE_UTMPX_H +#include +#endif +#include +main() +{ + char **w, *wtmplist[] = { + "/var/log/wtmpx", "/var/adm/wtmpx", NULL }; + FILE *a, *f=fopen("conftestval", "w"); + if (!f) exit(1); +#ifdef WTMPX_FILE + fprintf(f, "%s\n", WTMPX_FILE); + exit(0); +#endif +#ifdef _PATH_WTMPX + fprintf(f, "%s\n", _PATH_WTMPX); + exit(0); +#endif + for (w = wtmplist; *w; w++) { + if ((a = fopen(*w, "r")) != NULL || errno == EACCES) { + fprintf(f, "%s\n", *w); + exit(0); + } + } + exit(0); +}]])],[rxvt_cv_path_wtmpx=`cat conftestval`],[rxvt_cv_path_wtmpx=],[dnl + AC_MSG_WARN(Define RXVT_WTMPX_FILE in config.h manually)])]) +if test x$rxvt_cv_path_wtmpx != x; then + AC_DEFINE_UNQUOTED(RXVT_WTMPX_FILE, "$rxvt_cv_path_wtmpx", Define location of wtmpx) +fi +dnl# -------------------------------------------------------------------------- + +dnl# find lastlog +AC_CACHE_CHECK(where lastlog is located, rxvt_cv_path_lastlog, +[AC_RUN_IFELSE([AC_LANG_SOURCE([[#include +#include +#ifdef HAVE_UTMPX_H +#include +#elif defined(HAVE_UTMP_H) +#include +#endif +#ifdef HAVE_LASTLOG_H +#include +#endif +#include +main() +{ + char **w, *lastloglist[] = { "/var/log/lastlog", NULL }; + FILE *a, *f=fopen("conftestval", "w"); + if (!f) exit(1); +#ifdef LASTLOG_FILE + fprintf(f, "%s\n", LASTLOG_FILE); + exit(0); +#endif +#ifdef _PATH_LASTLOG + fprintf(f, "%s\n", _PATH_LASTLOG); + exit(0); +#endif + for (w = lastloglist; *w; w++) { + if ((a = fopen(*w, "r")) != NULL || errno == EACCES) { + fprintf(f, "%s\n", *w); + exit(0); + } + } + exit(0); +}]])],[rxvt_cv_path_lastlog=`cat conftestval`],[rxvt_cv_path_lastlog=],[dnl + AC_MSG_WARN(Define RXVT_LASTLOG_FILE in config.h manually)])]) +if test x$rxvt_cv_path_lastlog != x; then + AC_DEFINE_UNQUOTED(RXVT_LASTLOG_FILE, "$rxvt_cv_path_lastlog", Define location of lastlog) + if test -d "$rxvt_cv_path_lastlog"; then + AC_DEFINE(LASTLOG_IS_DIR, 1, Define if lastlog is provided via a directory) + fi +fi +dnl# -------------------------------------------------------------------------- + +dnl# find lastlogx +AC_CACHE_CHECK(where lastlogx is located, rxvt_cv_path_lastlogx, +[AC_RUN_IFELSE([AC_LANG_SOURCE([[#include +#ifdef HAVE_UTMPX_H +#include +#endif +#include +main() +{ + char **w, *wtmplist[] = { "/var/log/lastlogx", "/var/adm/lastlogx", NULL }; + FILE *a, *f=fopen("conftestval", "w"); + if (!f) exit(1); +#ifdef LASTLOGX_FILE + fprintf(f, "%s\n", LASTLOGX_FILE); + exit(0); +#endif +#ifdef _PATH_LASTLOGX + fprintf(f, "%s\n", _PATH_LASTLOGX); + exit(0); +#endif + for (w = wtmplist; *w; w++) { + if ((a = fopen(*w, "r")) != NULL || errno == EACCES) { + fprintf(f, "%s\n", *w); + exit(0); + } + } + exit(0); +}]])],[rxvt_cv_path_lastlogx=`cat conftestval`],[rxvt_cv_path_lastlogx=],[dnl + AC_MSG_WARN(Define RXVT_LASTLOGX_FILE in config.h manually)])]) +if test x$rxvt_cv_path_lastlogx != x; then + AC_DEFINE_UNQUOTED(RXVT_LASTLOGX_FILE, "$rxvt_cv_path_lastlogx", Define location of lastlogx) +fi + +dnl# -------------------------------------------------------------------------- + +dnl# find ttys/ttytab +AC_CACHE_CHECK(where ttys/ttytab is located, rxvt_cv_path_ttytab, +[for ttys_file in dnl + /etc/ttys /etc/ttytab; +do + if test -f "$ttys_file" ; then + rxvt_cv_path_ttytab=$ttys_file + break + fi +done +]) +if test x$rxvt_cv_path_ttytab != x; then + AC_DEFINE_UNQUOTED(TTYTAB_FILENAME, "$rxvt_cv_path_ttytab", Define location of ttys/ttytab) +fi + +dnl# -------------------------------------------------------------------------- +dnl# -------------------------------------------------------------------------- + +dnl# this is a really hack test for some basic Xlocale stuff +ac_save_LIBS=$LIBS +ac_save_CFLAGS=$CFLAGS +CFLAGS="$CFLAGS $X_CFLAGS" +LIBS="$LIBS $X_LIBS $X_EXTRA_LIBS -lX11" +if test x$rxvt_cv_rpath = xyes -o x$rxvt_cv_R = xyes; then + LIBS=`echo $LIBS | sed "$R_TRANSLATE"` +fi +AC_CACHE_CHECK(for working Xlocale, rxvt_cv_func_xlocale, +[AC_RUN_IFELSE([AC_LANG_SOURCE([[#include +main() { +char *p; +if ((p = XSetLocaleModifiers("@im=none")) != NULL && *p) +exit (XSupportsLocale() ? 0 : 1); +else +exit (1);}]])],[dnl + rxvt_cv_func_xlocale=yes],[rxvt_cv_func_xlocale=no],[dnl + AC_MSG_WARN(Define NO_XLOCALE in config.h manually)])]) +if test x$rxvt_cv_func_xlocale = xyes; then + AC_DEFINE(HAVE_XLOCALE, 1, Define if Xlocale support works) +fi + +AC_CACHE_CHECK(for working X setlocale, rxvt_cv_func_xsetlocale, +[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#define X_LOCALE 1 +#include ]], [[setlocale(LC_CTYPE, "");]])],[rxvt_cv_func_xsetlocale=yes],[rxvt_cv_func_xsetlocale=no])]) +if test x$rxvt_cv_func_xsetlocale = xyes; then + AC_DEFINE(HAVE_XSETLOCALE, 1, Define if setlocale (defined to Xsetlocale) works) +fi +LIBS=$ac_save_LIBS +CFLAGS=$ac_save_CFLAGS + +AC_CACHE_CHECK(for working plain setlocale, rxvt_cv_func_setlocale, +[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[setlocale(LC_CTYPE, "");]])],[rxvt_cv_func_setlocale=yes],[rxvt_cv_func_setlocale=no])]) +if test x$rxvt_cv_func_setlocale = xyes; then + AC_DEFINE(HAVE_SETLOCALE, 1, Define if plain old setlocale works) +fi + +AC_CACHE_CHECK(for working nl_langinfo, rxvt_cv_func_nl_langinfo, +[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[nl_langinfo(CODESET);]])],[rxvt_cv_func_nl_langinfo=yes],[rxvt_cv_func_nl_langinfo=no])]) +if test x$rxvt_cv_func_nl_langinfo = xyes; then + AC_DEFINE(HAVE_NL_LANGINFO, 1, Define if nl_langinfo(CODESET) works) +fi + +AC_CACHE_CHECK(for unix-compliant filehandle passing ability, rxvt_can_pass_fds, +[AC_TRY_LINK([ +#include +#include +],[ +{ + msghdr msg; + iovec iov; + char buf [100]; + char data = 0; + + iov.iov_base = &data; + iov.iov_len = 1; + + msg.msg_iov = &iov; + msg.msg_iovlen = 1; + msg.msg_control = buf; + msg.msg_controllen = sizeof buf; + + cmsghdr *cmsg = CMSG_FIRSTHDR (&msg); + cmsg->cmsg_level = SOL_SOCKET; + cmsg->cmsg_type = SCM_RIGHTS; + cmsg->cmsg_len = 100; + + *(int *)CMSG_DATA (cmsg) = 5; + + return sendmsg (3, &msg, 0); +} +],[rxvt_can_pass_fds=yes],[rxvt_can_pass_fds=no])]) +if test x$rxvt_can_pass_fds = xyes; then + AC_DEFINE(HAVE_UNIX_FDPASS, 1, Define if sys/socket.h defines the necessary macros/functions for file handle passing) +fi + +AC_CACHE_CHECK(for broken XIM callback, rxvt_broken_ximcb, +[AC_COMPILE_IFELSE([ +#include + +void im_destroy_cb (XIC unused1, XPointer client_data, XPointer unused3); + +void f() { + XIMCallback cb; + cb.callback = im_destroy_cb; +} +],rxvt_broken_ximcb=yes,rxvt_broken_ximcb=no)]) + +if test x$rxvt_broken_ximcb = xyes; then + AC_DEFINE(XIMCB_PROTO_BROKEN, 1, Define if your XIMCallback specifies XIC as first type.) +fi + +if test x$ac_cv_func_getpt = xno -a x$ac_cv_func_posix_openpt = xno; then + AC_CHECK_FUNC(openpty, [], [AC_CHECK_LIB(util, openpty, [LIBS="$LIBS -lutil"])]) +fi + +dnl# if we don't guess right then it's up to the user +AC_CACHE_CHECK(for pty/tty type, rxvt_cv_ptys, +[if test x$ac_cv_func_openpty = xyes -o x$ac_cv_lib_util_openpty = xyes; then + rxvt_cv_ptys=OPENPTY + else if test x$ac_cv_func_getpt = xyes; then + rxvt_cv_ptys=GLIBC + else if test x$ac_cv_func_posix_openpt = xyes; then + rxvt_cv_ptys=POSIX + else if test x$ac_cv_func__getpty = xyes; then + rxvt_cv_ptys=SGI4 + else if test -c /dev/ttyp20; then + rxvt_cv_ptys=SCO + else if test -c /dev/ptym/clone; then + rxvt_cv_ptys=HPUX + else if test -c /dev/ptc -a -c /dev/pts; then + rxvt_cv_ptys=PTC + else if test -c /dev/ptc -a -d /dev/pts; then + rxvt_cv_ptys=PTC + else if test -c /dev/ptmx -a -c /dev/pts/0; then + rxvt_cv_ptys=STREAMS + else if test x$ac_cv_func_grantpt = xyes && test x$ac_cv_func_unlockpt = xyes; then +dnl# catch CYGWIN + rxvt_cv_ptys=STREAMS + else + rxvt_cv_ptys=BSD +fi +fi +fi +fi +fi +fi +fi +fi +fi +fi +]) + +if test x$rxvt_cv_ptys = xGLIBC; then + AC_DEFINE(PTYS_ARE_GETPT, 1, Define for this pty type) +fi +if test x$rxvt_cv_ptys = xPOSIX; then + AC_DEFINE(PTYS_ARE_POSIX, 1, Define for this pty type) +fi +if test x$rxvt_cv_ptys = xOPENPTY; then + AC_DEFINE(PTYS_ARE_OPENPTY, 1, Define for this pty type) +fi +if test x$rxvt_cv_ptys = xSCO; then + AC_DEFINE(PTYS_ARE_NUMERIC, 1, Define for this pty type) +fi +if test x$rxvt_cv_ptys = xSTREAMS; then + AC_DEFINE(PTYS_ARE_PTMX, 1, Define for this pty type) +fi +if test x$rxvt_cv_ptys = xPTC; then + AC_DEFINE(PTYS_ARE_PTC, 1, Define for this pty type) +fi +if test x$rxvt_cv_ptys = xSGI4; then + AC_DEFINE(PTYS_ARE__GETPTY, 1, Define for this pty type) +fi +if test x$rxvt_cv_ptys = xHPUX; then + AC_DEFINE(PTYS_ARE_CLONE, 1, Define for this pty type) +fi +if test x$rxvt_cv_ptys = xBSD -o x$rxvt_cv_ptys = xHPUX -o x$rxvt_cv_ptys = xPOSIX; then + AC_DEFINE(PTYS_ARE_SEARCHED, 1, Define for this pty type) +fi + + +AS_MESSAGE(checking for pty ranges...) +ptys=`echo /dev/pty??` +pch1=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\).$/\1/g' | sort -u | tr -d '\012'` +pch2=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\)$/\1/g' | sort -u | tr -d '\012'` +if test x$pch1 != x; then + AC_DEFINE_UNQUOTED(PTYCHAR1, "$pch1", Define for first char in devptyXX) +fi +if test x$pch2 != x; then + AC_DEFINE_UNQUOTED(PTYCHAR2, "$pch2", Define for second char in devptyXX) +fi + +dnl# -------------------------------------------------------------------------- +dnl# now add and remove other stuff +dnl# -------------------------------------------------------------------------- +if test x$support_xft = xyes; then + LIBS="$LIBS `pkg-config xft --libs`" + CPPFLAGS="$CPPFLAGS `pkg-config xft --cflags`" + + AC_CHECK_HEADERS(X11/Xft/Xft.h,,[support_xft=no]) + AC_CHECK_LIB(Xft,XftDrawString32,,[support_xft=no]) + + if test x$support_xft = xyes; then + AC_DEFINE(XFT, 1, Define to enable xft support) + fi +fi +if test x$support_styles = xyes; then + AC_DEFINE(ENABLE_STYLES, 1, Define if you want bold and italic support) +fi +if test x$support_iso14755 = xyes; then + AC_DEFINE(ISO_14755, 1, Define if you want ISO 14755 extended support) +fi +if test x$support_8bitctrls = xyes; then + AC_DEFINE(EIGHT_BIT_CONTROLS, 1, Define if you want 8 bit control sequences) +fi +if test x$support_fading = xyes; then + AC_DEFINE(OFF_FOCUS_FADING, 1, Define if you want faded colors when focus is lost) +fi +if test x$support_tinting = xyes; then + AC_DEFINE(TINTING, 1, Define if you want your background to be tinted) +fi +if test x$support_inheritpixmap = xyes; then + AC_DEFINE(TRANSPARENT, 1, Define if you want your background to use the parent window background) +fi +if test x$support_keepscrolling = xno; then + AC_DEFINE(NO_SCROLLBAR_BUTTON_CONTINUAL_SCROLLING, 1, Define for continual scrolling when you keep the scrollbar button pressed) +fi +if test x$support_selectionscrolling = xyes; then + AC_DEFINE(SELECTION_SCROLLING, 1, Define to allow scrolling when the selection moves to the top or bottom of the screen) +fi +if test x$support_frills = xyes; then + AC_DEFINE(ENABLE_FRILLS, 1, Define if you want handling for rarely used but handy features) +fi +if test x$support_24bit = xyes; then + 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) +fi +if test x$support_mousewheel = xyes; then + AC_DEFINE(MOUSE_WHEEL, 1, Define to use wheel events (button4 and button5) to scroll) +fi +if test x$support_mouseslipwheel = xyes; then + AC_DEFINE(MOUSE_SLIP_WHEELING, 1, Define to have CTRL cause wheel events to accelerate scrolling. Release CTRL to halt scrolling) +fi +if test x$support_utmp = xyes; then + AC_DEFINE(UTMP_SUPPORT, 1, Define if you want to have utmp/utmpx support) +fi +if test x$support_wtmp = xyes; then + AC_DEFINE(WTMP_SUPPORT, 1, Define if you want to have wtmp support when utmp/utmpx is enabled) +fi +if test x$support_lastlog = xyes; then + AC_DEFINE(LASTLOG_SUPPORT, 1, Define if you want to have lastlog support when utmp/utmpx is enabled) +fi +if test x$support_xim = xyes -o x$multichar_set = xyes; then + if test x$rxvt_cv_func_xlocale = xyes; then + AC_DEFINE(USE_XIM, 1, Define if you want to have XIM (X Input Method) protocol support - required for multibyte characters input) + fi +fi +if test x$support_xpm = xyes; then + AC_DEFINE(XPM_BACKGROUND, 1, Define if you want to have sexy-looking background pixmaps. Needs libXpm) +fi +if test x$support_scroll_rxvt = xyes; then + AC_DEFINE(RXVT_SCROLLBAR, 1, Support Rxvt original style scrollbars) + scrolltypes="rxvt" +fi +if test x$support_scroll_next = xyes; then + AC_DEFINE(NEXT_SCROLLBAR, 1, Support NeXT style scrollbars) + scrolltypes="$scrolltypes next" +fi +if test x$support_scroll_xterm = xyes; then + AC_DEFINE(XTERM_SCROLLBAR, 1, Support Xterm style scrollbars) + scrolltypes="$scrolltypes xterm" +fi +if test x$support_scroll_plain = xyes; then + AC_DEFINE(PLAIN_SCROLLBAR, 1, Support plain style scrollbars) + scrolltypes="$scrolltypes plain" +fi +if test x$support_pointer_blank = xyes; then + AC_DEFINE(POINTER_BLANK, 1, Define if you want hide the pointer while typing) +fi +if test x$support_text_blink = xyes; then + AC_DEFINE(TEXT_BLINK, 1, Define if you want blinking text support) +fi +if test x$support_unicode3 = xyes; then + AC_DEFINE(UNICODE_3, 1, Define if you want to represent unicode characters outside plane 0) +fi +if test x$support_combining = xyes; then + AC_DEFINE(ENABLE_COMBINING, 1, Define if you want to automatically compose combining characters) +fi +if test x$codesets = xall; then + codesets=jp,jp-ext,kr,zh,zh-ext +fi +AC_DEFINE(ENCODING_EU, 1, Define if you want european extended codesets) +AC_DEFINE(ENCODING_VN, 1, Define if you want vietnamese codesets) +for codeset in `echo $codesets | tr "[a-z,\\-]" "[A-Z _]"`; do + case "$codeset" in + JP ) AC_DEFINE(ENCODING_JP, 1, Define if you want japanese codesets) ;; + JP_EXT ) AC_DEFINE(ENCODING_JP_EXT, 1, Define if you want extended japanese codesets) ;; + KR ) AC_DEFINE(ENCODING_KR, 1, Define if you want korean codesets) ;; + ZH ) AC_DEFINE(ENCODING_ZH, 1, Define if you want chinese codesets) ;; + ZH_EXT ) AC_DEFINE(ENCODING_ZH_EXT, 1, Define if you want extended chinese codesets) ;; + esac +done + +IF_PERL=\# +if test x$support_perl = xyes; then + AC_PATH_PROG(PERL, perl5) + AC_PATH_PROG(PERL, perl) + + AC_MSG_CHECKING(for $PERL suitability) + if $PERL -MExtUtils::Embed -e "use v5.8" >/dev/null 2>/dev/null; then + + save_CXXFLAGS="$CXXFLAGS" + save_LIBS="$LIBS" + CXXFLAGS="$CXXFLAGS `$PERL -MExtUtils::Embed -e ccopts`" + LIBS="$LIBS `$PERL -MExtUtils::Embed -e ldopts`" + AC_TRY_LINK([ +#include +#include +#include +],[ + PerlInterpreter *perl = perl_alloc (); +],[rxvt_perl_link=yes],[rxvt_perl_link=no]) + CXXFLAGS="$save_CXXFLAGS" + LIBS="$save_LIBS" + + if test x$rxvt_perl_link = xyes; then + AC_MSG_RESULT(ok) + AC_DEFINE(ENABLE_PERL, 1, Define if you can embed a perl interpreter) + IF_PERL= + PERL_O=rxvtperl.o + PERLFLAGS="`$PERL -MExtUtils::Embed -e ccopts`" + PERLLIB="`$PERL -MExtUtils::Embed -e ldopts`" + PERLPRIVLIBEXP="`$PERL -MConfig -e 'print $Config{privlibexp}'`" + else + support_perl=no + AC_MSG_RESULT([no, unable to link]) + fi + else + AC_MSG_ERROR(no working perl found, or perl not version >= 5.8) + support_perl=no + fi +fi +AC_SUBST(PERLLIB) +AC_SUBST(PERLFLAGS) +AC_SUBST(PERLPRIVLIBEXP) +AC_SUBST(PERL) +AC_SUBST(IF_PERL) +AC_SUBST(PERL_O) + +if test x$support_perl = xyes; then + support_frills=yes +fi + +dnl> AC_CHECK_FUNCS(gettimeofday putenv select socket) + +CFLAGS=${CFLAGS--O} +LDFLAGS=${LDFLAGS--O} + +CPPFLAGS="$CPPFLAGS" +AC_SUBST(DEBUG) +AC_SUBST(DINCLUDE) +AC_SUBST(CFLAGS) +AC_SUBST(CPPFLAGS) +AC_SUBST(LDFLAGS) +AC_SUBST(X_CFLAGS) + +dnl# Attack the libs +if test x$rxvt_cv_rpath = xyes -o x$rxvt_cv_R = xyes; then + DLIB=`echo $DLIB | sed "$R_TRANSLATE"` + LIBS=`echo $LIBS | sed "$R_TRANSLATE"` + X_LIBS=`echo $X_LIBS | sed "$R_TRANSLATE"` + X_EXTRA_LIBS=`echo $X_EXTRA_LIBS | sed "$R_TRANSLATE"` + XPM_LIBS=`echo $XPM_LIBS | sed "$R_TRANSLATE"` +fi +AC_SUBST(DLIB) +AC_SUBST(LIBS) +AC_SUBST(X_LIBS) +AC_SUBST(X_EXTRA_LIBS) + +AC_ARG_PROGRAM + +dnl# test for "sun" or "__sun__" before include sys_ioctl + +dnl# revert HAVE_BLAH_H into a "#include " +AC_DEFUN(RXVT_DEFINE_TO_INCLUDE, dnl +[if test "$$3" = "$4" -o "$$5" = "$6"; then + $1="#include <$2>" +else + $1="/* #include <$2> */" +fi dnl +AC_SUBST($1)]) + +RXVT_DEFINE_TO_INCLUDE(include_stdint_h, stdint.h, ac_cv_header_stdint_h, yes, notset, dontmatch) +RXVT_DEFINE_TO_INCLUDE(include_stdarg_h, cstdarg, ac_cv_header_stdarg_h, yes, notset, dontmatch) +RXVT_DEFINE_TO_INCLUDE(include_stdlib_h, cstdlib, ac_cv_header_stdlib_h, yes, notset, dontmatch) +RXVT_DEFINE_TO_INCLUDE(include_unistd_h, unistd.h, ac_cv_header_unistd_h, yes, notset, dontmatch) +RXVT_DEFINE_TO_INCLUDE(include_string_h, cstring, ac_cv_header_string_h, yes, notset, dontmatch) +RXVT_DEFINE_TO_INCLUDE(include_fcntl_h, fcntl.h, ac_cv_header_fcntl_h, yes, notset, dontmatch) +RXVT_DEFINE_TO_INCLUDE(include_util_h, util.h, ac_cv_header_util_h, yes, notset, dontmatch) +RXVT_DEFINE_TO_INCLUDE(include_assert_h, assert.h, ac_cv_header_assert_h, yes, notset, dontmatch) +RXVT_DEFINE_TO_INCLUDE(include_sys_ioctl_h, sys/ioctl.h, rxvt_cv_header_sysioctl, yes, notset, dontmatch) +RXVT_DEFINE_TO_INCLUDE(include_sys_select_h, sys/select.h, ac_cv_header_sys_select_h, yes, notset, dontmatch) +RXVT_DEFINE_TO_INCLUDE(include_sys_strredir_h, sys/strredir.h, ac_cv_header_sys_strredir_h, yes, notset, dontmatch) +RXVT_DEFINE_TO_INCLUDE(include_sys_time_h, sys/time.h, ac_cv_header_sys_time_h, yes, notset, dontmatch) +RXVT_DEFINE_TO_INCLUDE(include_time_h, time.h, ac_cv_header_sys_time_h, no, ac_cv_header_time, yes) + +AC_CONFIG_FILES([Makefile \ +doc/Makefile \ +src/Makefile \ +src/rxvtlib.h \ +]) +AC_OUTPUT + +echo "Configuration: + + Rxvt version: $VERSION : $DATE + Source code location: $srcdir + Install path: ${prefix}/bin + Compiler: $CXX + Compiler flags: $CFLAGS + Linker: $LINKER" + +if test "$MALLOC_TYPE" = S; then + echo " malloc support: system default" +fi +if test "$MALLOC_TYPE" = G; then + echo " malloc support: Gray Watson's dmalloc" +fi +if test "$MALLOC_TYPE" = D; then + echo " malloc support: Doug Lea's malloc" +fi + +if test x$support_xpm = xyes; then + echo " Xpm library: $XPM_LIBS" +fi + +echo " +The following are set in config.h +" +echo " pty/tty type: "$rxvt_cv_ptys +if test x$support_utmp != xyes; then + echo " utmp support: disabled" + echo +else + echo " utmp support: enabled + utmp file: $rxvt_cv_path_utmp + utmpx file: $rxvt_cv_path_utmpx + wtmp file: $rxvt_cv_path_wtmp + wtmpx file: $rxvt_cv_path_wtmpx + lastlog file: $rxvt_cv_path_lastlog + ttys/ttytab file: $rxvt_cv_path_ttytab + embedded perl: $support_perl" + echo +fi +if test x$term != x; then + echo " set TERM to: $term" +fi +if test x$terminfo != x; then + echo " set TERMINFO to: $terminfo" +fi +echo " default resource name: $RESNAME" +echo " resource class: $RESCLASS" +if test x$RESFALLBACK != x; then + echo " resource class fallback: $RESFALLBACK" +fi +echo +if test x$rxvt_cv_ptys = xUNKNOWN; then + echo ".----------------------------------------------------------------." + echo ". WARNING: could not determine pty/tty type. Do not build until ." + echo ". the appropriate PTYS_ARE_* is defined in config.h ." + echo ".----------------------------------------------------------------." +fi +if test x$support_xpm = xneedsmanualspecification; then + echo ".----------------------------------------------------------------." + echo ". WARNING: --enable-xpm-background was specified however the ." + echo ". XPM includes files and libraries could not be found. ." + echo ". XPM backgrounds are now being DISABLED! If you want ." + echo ". to use them you should rerun configure with the ." + echo ". appropriate --with-xpm-includes=/path/to/xpm/includes ." + echo ". and --with-xpm-library=/path/to/xpm/library lines. ." + echo ".----------------------------------------------------------------." +fi +if test x$support_xim = xyes -a x$rxvt_cv_func_xlocale = xno; then + echo ".----------------------------------------------------------------." + echo ". WARNING: --enable-xim was specified however the locale support ." + echo ". functions could not be found. ." + echo ". XIM is now being DISABLED! ." + echo ".----------------------------------------------------------------." +fi + +echo " *** Optionally check src/feature.h for further options ***" +echo + +echo ".----------------------------------------------------------------." +echo ". NOTE: some features are disabled by default, try ." +echo ". configure --help to get an idea of the optional features, ." +echo ". or read ./README.configure ." +echo ". ." +echo ". The script ./reconf gives a reasonable baseline, try it if ." +echo ". you do not want to read documentation and still want some ." +echo ". useful features. ." +echo ".----------------------------------------------------------------." +echo +
-----END OF PAGE-----