dnl# $Id$ AC_INIT(src/feature.h) AM_INIT_AUTOMAKE(Eterm, 0.9) dnl# Set some basic variables DATE="`date '+%d %B %Y'`" AC_SUBST(DATE) AUTHORS="Michael Jennings (mej@eterm.org) and Tuomo Venäläinen (vendu@cc.hut.fi) " AC_SUBST(AUTHORS) AC_DEFINE_UNQUOTED(AUTHORS, "$AUTHORS") dnl# Supply default CFLAGS, if not specified by `CFLAGS=flags ./configure' if test ! -z "${CFLAGS}" -o ! -z "${CCOPTS}"; then CFLAGS_GIVEN=1 else CFLAGS_GIVEN=0 fi if test -z "${CFLAGS}"; then if test -z "${CCOPTS}"; then CCOPTS="-O" fi CFLAGS="$CCOPTS" fi AC_ARG_WITH(cc, [ --with-cc=compiler force Eterm to build with a particular compiler (like pgcc, egcs, etc.)], CC=$withval, if test -z "$CC"; then CC=check fi ) if test "$CC" = "check"; then dnl# Check for Pentium compilers AC_CHECK_PROG(EGCS, egcs, egcs) AC_CHECK_PROG(PGCC, pgcc, pgcc) if test ! -z "$EGCS"; then CC=$EGCS elif test ! -z "$PGCC"; then CC=$PGCC else unset CC fi fi AC_PROG_CC AC_PROG_CPP dnl# These must be run after AC_PROG_CC but before any other macros that use dnl# the C compiler AC_AIX AC_ISC_POSIX AC_MINIX dnl# At least make the attempt to support CygWin32 AC_CYGWIN AC_ARG_PROGRAM AM_PROG_LIBTOOL dnl# Where are we? AC_MSG_CHECKING(for distribution root) DIST_ROOT=`pwd` AC_SUBST(DIST_ROOT) AC_MSG_RESULT($DIST_ROOT) AC_GCC_TRADITIONAL dnl # If using gcc, use -O2. If -g works with it, use that too if test "${CFLAGS_GIVEN}" -ne 1; then if test "$GCC" = "yes"; then if test "$ac_cv_prog_cc_g" = "yes"; then CCOPTS='-g -O2' else CCOPTS='-O2' fi CFLAGS="$CCOPTS" fi fi AC_PROG_INSTALL dnl# Check for host system type AC_CANONICAL_HOST dnl# Check the sanity of what we've done so far AM_SANITY_CHECK dnl# Most people don't want the developer-only clutter AM_MAINTAINER_MODE dnl# If it's there, what the hell? AM_WITH_DMALLOC dnl# Look for needed programs AC_CHECK_PROG(SED, sed, sed, false) AC_CHECK_PROG(RM, rm, rm, true) AC_CHECK_PROG(CP, cp, cp, false) AC_CHECK_PROG(CHMOD, chmod, chmod, true) AC_CHECK_PROG(TAR, tar, tar, tar) AC_CHECK_PROG(MKDIR, mkdir, mkdir, false) AC_CHECK_PROG(CTAGS, ctags, ctags, true) AC_CHECK_PROG(AR, ar, ar, false) AC_CHECK_PROG(MV, mv, mv, true) AC_LN_S AC_CHECK_SIZEOF(int, 4) AC_CHECK_SIZEOF(long, 4) AC_CHECK_SIZEOF(long long, 8) dnl AC_C_BIGENDIAN AC_C_CONST AC_C_INLINE AC_PATH_XTRA if test "$ac_cv_lib_socket_connect" = "yes" ; then SUBLIBS="-lsocket" fi if test "$ac_cv_lib_nsl_gethostbyname" = "yes" ; then SUBLIBS="$SUBLIBS -lnsl" fi dnl# Checks for header files. AC_HEADER_SYS_WAIT AC_CHECK_HEADERS(fcntl.h termios.h \ sys/ioctl.h sys/select.h sys/time.h \ sys/sockio.h sys/byteorder.h \ utmpx.h unistd.h bsd/signal.h regex.h \ regexp.h stdarg.h) AC_HEADER_TIME dnl# Missing typedefs and replacements AC_TYPE_MODE_T AC_CHECK_TYPE(off_t, long) AC_TYPE_PID_T AC_TYPE_UID_T dnl# Checks for library functions. AC_TYPE_SIGNAL AC_CHECK_FUNCS(atexit _exit unsetenv setutent seteuid memmove putenv strsep setresuid setresgid memmem usleep snprintf) dps_snprintf_oflow() dnl# Check for the need for -lutil on BSD systems AC_CHECK_FUNC(login, AC_DEFINE(HAVE_LOGIN) , AC_CHECK_LIB(util, login, LIBS="$LIBS -lutil" ; AC_DEFINE(HAVE_LOGIN) )) AC_CHECK_FUNC(logout, AC_DEFINE(HAVE_LOGOUT) , AC_CHECK_LIB(util, logout, LIBS="$LIBS -lutil" ; AC_DEFINE(HAVE_LOGOUT) )) AC_CHECK_FUNC(getpwuid, , AC_CHECK_LIB(sun, getpwuid, LIBS="$LIBS -lsun")) dnl# Did they want debugging? AC_MSG_CHECKING(for debugging level) AC_ARG_WITH(debugging, [ --with-debugging[=num] enable debugging output, num is an optional level], if test "$withval" = "yes"; then withval=4 else : fi if test "$withval" != "no"; then echo "$withval" AC_DEFINE_UNQUOTED(DEBUG, $withval) else echo "no debugging" fi, echo "4" AC_DEFINE_UNQUOTED(DEBUG, 4) ) dnl# dnl# FEATURES dnl# AC_MSG_CHECKING(for pixmap support) AC_ARG_WITH(imlib, [ --with-imlib[=DIR] compile with Imlib support (Imlib residing in DIR/lib) (default)], if test "$withval" != "no"; then AC_MSG_RESULT(yes) CFLAGS="$CFLAGS -I${withval}/include -L${withval}/lib" GRLIBS="-lImlib" AC_DEFINE(PIXMAP_SUPPORT) AC_DEFINE(PIXMAP_SCROLLBAR) AC_DEFINE(PIXMAP_MENUBAR) AC_DEFINE(BACKING_STORE) else AC_MSG_RESULT(no) GRLIBS="" fi, AC_MSG_RESULT(yes) GRLIBS="-lImlib" AC_DEFINE(PIXMAP_SUPPORT) AC_DEFINE(PIXMAP_SCROLLBAR) AC_DEFINE(PIXMAP_MENUBAR) AC_DEFINE(BACKING_STORE) ) AC_MSG_CHECKING(for transparency support) AC_ARG_ENABLE(trans, [ --enable-trans[=imlib] compile with transparency support ("=imlib" will use Imlib instead of Xlib for transparency)], if test "$enableval" = "imlib"; then AC_MSG_RESULT(yes, using Imlib) AC_DEFINE(PIXMAP_OFFSET) AC_DEFINE(IMLIB_TRANS) elif test "$enableval" != "no"; then AC_MSG_RESULT(yes) AC_DEFINE(PIXMAP_OFFSET) else AC_MSG_RESULT(no) fi, AC_MSG_RESULT(yes) AC_DEFINE(PIXMAP_OFFSET) ) AC_MSG_CHECKING(for utmp support) AC_ARG_ENABLE(utmp, [ --enable-utmp compile with utmp support], if test "$enableval" != "no"; then AC_MSG_RESULT(yes) AC_DEFINE(UTMP_SUPPORT) else AC_MSG_RESULT(no) fi, AC_MSG_RESULT(yes) AC_DEFINE(UTMP_SUPPORT) ) AC_MSG_CHECKING(for backspace key configuration) AC_ARG_WITH(backspace, [ --with-backspace=KEY force backspace to send KEY (KEY is either "bs" for ^H or "del" for ^?)], if test "$withval" = "bs"; then AC_MSG_RESULT(forcing Backspace to send Ctrl-H) AC_DEFINE(FORCE_BACKSPACE) elif test "$withval" = "del"; then AC_MSG_RESULT(forcing Backspace to send Ctrl-?) AC_DEFINE(FORCE_DELETE) else AC_MSG_RESULT(default) fi, AC_MSG_RESULT(default) ) AC_MSG_CHECKING(for delete key configuration) AC_ARG_WITH(delete, [ --with-delete=SETTING force delete to SETTING ("server" to use the X server value always or a quoted string to use a specific string)], if test "$withval" = "server"; then AC_MSG_RESULT(X server value) AC_DEFINE(NO_DELETE_KEY) else AC_MSG_RESULT(forcing Delete to send "$withval") AC_DEFINE_UNQUOTED(KS_DELETE, "$withval") fi, AC_MSG_RESULT(default) AC_DEFINE_UNQUOTED(KS_DELETE, "\177") ) AC_MSG_CHECKING(for multi-charset support) AC_ARG_ENABLE(multi-charset, [ --enable-multi-charset compile with multi-charset support], if test "$enableval" = "yes"; then AC_MSG_RESULT(yes) AC_DEFINE(MULTI_CHARSET) else AC_MSG_RESULT(no) fi, AC_MSG_RESULT(no) ) AC_MSG_CHECKING(for XIM support) AC_ARG_ENABLE(xim, [ --enable-xim compile with XIM support], if test "$enableval" = "yes"; then AC_MSG_RESULT(yes) AC_DEFINE(USE_XIM) XIM="TRUE" else AC_MSG_RESULT(no) XIM="FALSE" fi, AC_MSG_RESULT(no) ) AC_MSG_CHECKING(for Greek keyboard support) AC_ARG_ENABLE(greek, [ --enable-greek compile with support for Greek keyboards], if test "$enableval" = "yes"; then AC_MSG_RESULT(yes) AC_DEFINE(GREEK_SUPPORT) else AC_MSG_RESULT(no) fi, AC_MSG_RESULT(no) ) AC_MSG_CHECKING(which threads library to use) AC_ARG_WITH(threads, [ --with-threads[=STYLE] compile with threads support, STYLE is either "posix" or blank (disabled by default)], case $withval in [yes | posix )] AC_MSG_RESULT(POSIX) THREADS_LIB=posix ;; [* )] AC_MSG_RESULT(none) ;; esac , AC_MSG_RESULT(none)) if test "$THREADS_LIB" = "posix"; then AC_CHECK_LIB(pthread, pthread_create, CFLAGS="$CFLAGS -D_REENTRANT" ; THREADLIBS="-lpthread" AC_DEFINE(USE_POSIX_THREADS) AC_DEFINE(MUTEX_SYNCH) , , -D_REENTRANT -L/usr/lib -L/lib -L/usr/local/lib) fi dnl# dnl# X LIBRARIES dnl# AC_CHECK_LIB(X11, XOpenDisplay, X_LIBS="$X_LIBS -lX11", [ echo "ERROR: You need libX11 to build Eterm. Verify that you have libX11.a or"; echo " libX11.so installed and that it is located in the X libraries"; echo " directory shown above. If it is in a different directory, try using"; echo " the --x-libraries parameter to configure."; AC_MSG_ERROR([Fatal: libX11 not found.])], $X_LIBS $SUBLIBS) AC_CHECK_LIB(Xext, XextAddDisplay, X_LIBS="-lXext $X_LIBS", [ echo "ERROR: You need libXext to build Eterm. Verify that you have libXext.a or"; echo " libXext.so installed and that it is located in the X libraries"; echo " directory shown above. If it is in a different directory, try using"; echo " the --x-libraries parameter to configure."; AC_MSG_ERROR([Fatal: libXext not found.])], $X_LIBS $SUBLIBS) AC_CHECK_LIB(Xext, XShapeQueryExtension, AC_DEFINE(HAVE_X_SHAPE_EXT), , $X_LIBS $SUBLIBS) # check if we need X_LOCALE definition AC_CHECK_LIB(X11, _Xsetlocale, , AC_DEFINE(NO_XLOCALE), , $X_LIBS $SUBLIBS) # check X11R6 for XIM if test "$XIM" = "TRUE"; then AC_CHECK_LIB(X11, XRegisterIMInstantiateCallback, AC_DEFINE(USE_X11R6_XIM), , $X_LIBS $SUBLIBS) fi if test -z "$PIXMAPSED"; then AC_CHECK_PROG(IMLIB_CONFIG, imlib-config, imlib-config, no) if test "$IMLIB_CONFIG" != "no"; then if test "$prefix" = "NONE"; then AC_MSG_CHECKING(imlib-config for prefix) prefix="`$IMLIB_CONFIG --prefix`" AC_MSG_RESULT($prefix) fi AC_MSG_CHECKING(imlib-config for the value of CFLAGS) CFLAGS="$CFLAGS `$IMLIB_CONFIG --cflags`" AC_MSG_RESULT($CFLAGS) AC_MSG_CHECKING(imlib-config for the value of GRLIBS) GRLIBS="$GRLIBS `$IMLIB_CONFIG --libs`" AC_MSG_RESULT($GRLIBS) SAVE_LIBS="$LIBS" LIBS="$GRLIBS" AC_MSG_CHECKING(the sanity of new compile/link flags) AC_TRY_LINK(, , echo "yes", echo "no" ; IMLIB_CONFIG="no" ; AC_WARN(Compile/link failed. Reverting to manual method.) ) LIBS="$SAVE_LIBS" fi if test "$IMLIB_CONFIG" = "no"; then AC_CHECK_LIB(png, png_get_valid, GRLIBS="$GRLIBS -lpng -lz -lm", , $SUBLIBS $X_LIBS -lz -lm) AC_CHECK_LIB(jpeg, jpeg_read_scanlines, GRLIBS="$GRLIBS -ljpeg", , $SUBLIBS $X_LIBS) AC_CHECK_LIB(tiff, TIFFOpen, GRLIBS="$GRLIBS -ltiff", , $SUBLIBS $X_LIBS -lm) AC_CHECK_LIB(gif, DGifOpenFileName, GRLIBS="$GRLIBS -lgif", , $SUBLIBS $X_LIBS) AC_CHECK_LIB(ungif, DGifOpenFileName, GRLIBS="$GRLIBS -lungif", , $SUBLIBS $X_LIBS) AC_CHECK_LIB(Imlib, Imlib_init, , [ echo "WARNING: Imlib was not found or did not correctly link."; echo " Please check config.log to see what the error was."; echo " I will attempt to continue, but things may go wrong."; AC_MSG_WARN([WARNING: libImlib not found. Attempting to continue anyway.])], $GRLIBS $SUBLIBS $X_LIBS) fi fi AC_PREFIX(Eterm) AC_PREFIX(gcc) dnl Stack Tracing toys AC_ARG_ENABLE(stack-trace, [ --disable-stack-trace disable stack trace on abnormal termination], if test "$enableval" = "no"; then AC_DEFINE(NO_STACK_TRACE) NO_STACK_TRACE=1 fi ) if test "$NO_STACK_TRACE" != "1"; then AC_PATH_PROG(DBX, dbx, no) if test "$DBX" != "no"; then AC_DEFINE_UNQUOTED(DBX, "$DBX") fi AC_PATH_PROG(GDB, gdb, no) if test "$GDB" != "no"; then AC_DEFINE_UNQUOTED(GDB, "$GDB") fi AC_PATH_PROG(PSTACK, pstack, no, $PATH:/usr/proc/bin:/usr/sbin) if test "$PSTACK" != "no"; then AC_DEFINE_UNQUOTED(PSTACK, "$PSTACK") fi AC_CHECK_LIB(cl, U_STACK_TRACE, LIBS="$LIBS -lcl") fi AC_MSG_CHECKING(for Linux 2.1 or higher) OS_NAME=`uname -s` if test "$OS_NAME" = "Linux"; then OS_REV=`uname -r` OS_MAJOR=`echo $OS_REV | cut -d. -f1` OS_MINOR=`echo $OS_REV | cut -d. -f2` if test "$OS_MAJOR" -ge "2" -a "$OS_MINOR" -ge "1"; then AC_MSG_RESULT(yes) AC_DEFINE(NEED_LINUX_HACK) else AC_MSG_RESULT(no) fi else AC_MSG_RESULT(no) fi dnl# Enable/disable humor AC_ARG_WITH(sense-of-humor, [ --without-sense-of-humor Specify this if you have no sense of humor], if test "$withval" = "no"; then HUMOR=none fi) if test -z "$HUMOR"; then AC_CHECK_LIB(Kenny, life_signs, , [ echo " Oh my god, they killed Kenny! You bastards!" ]) fi AC_DEFINE_UNQUOTED(CONFIG_SEARCH_PATH, "~/.Eterm/themes:~/.Eterm:${prefix}/share/Eterm/themes:${prefix}/share/Eterm") CFLAGS=${CFLAGS--O} LDFLAGS=${LDFLAGS--O} CPPFLAGS="$CPPFLAGS" AC_SUBST(CC) AC_SUBST(CFLAGS) AC_SUBST(CPPFLAGS) AC_SUBST(LDFLAGS) AC_SUBST(LIBS) AC_SUBST(THREADLIBS) AC_SUBST(GRLIBS) basedir=. AM_CONFIG_HEADER(config.h) AC_OUTPUT(Makefile \ bg/Makefile \ doc/Makefile \ utils/Makefile \ libmej/Makefile \ pix/Makefile \ src/Makefile \ src/graphics/Makefile \ themes/Makefile \ Eterm.spec \ ) dnl If we're not building with Imlib support, don't build Esetroot if test -z "$GRLIBS"; then sed -e 's/^bin_PROGRAMS.*$//g' doc/Makefile > doc/Makefile.new mv doc/Makefile.new doc/Makefile fi echo " $PACKAGE $VERSION Configuration: -------------- Source code location: ${srcdir} Compiler: ${CC} ${CFLAGS} Host System Type: ${host} Graphics libraries: ${GRLIBS} X libraries/paths: ${X_LIBS} Install path: ${prefix} See src/feature.h for further configuration information. Now type 'make' to build $PACKAGE $VERSION. "