You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
491 lines
14 KiB
491 lines
14 KiB
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. |
|
"
|
|
|