X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/9b5284fdc2910385389db6fd0d7bd13690ed2d7e..f00017098478afe94af08f5473fe5e89f976e5cf:/unix/configure.ac diff --git a/unix/configure.ac b/unix/configure.ac index ce000cd2..c0756fdd 100644 --- a/unix/configure.ac +++ b/unix/configure.ac @@ -4,18 +4,41 @@ # * Automake (for aclocal) # If you've got them, running "autoreconf" should work. -AC_INIT +# Version number is substituted by Buildscr for releases, snapshots +# and custom builds out of svn; X.XX shows up in ad-hoc developer +# builds, which shouldn't matter +AC_INIT(putty, X.XX) AC_CONFIG_FILES([Makefile]) AC_CONFIG_HEADERS([uxconfig.h:uxconfig.in]) +AM_INIT_AUTOMAKE([-Wall -Werror foreign]) AC_PROG_INSTALL -AC_PROG_CC -if test "X$GCC" = Xyes; then - PUTTYCFLAGS="-Wall -Werror" -else - PUTTYCFLAGS="" -fi -AC_SUBST(PUTTYCFLAGS) +AC_PROG_RANLIB + +# Mild abuse of the '--enable' option format to allow manual +# specification of setuid or setgid setup in pterm. +setidtype=none +AC_ARG_ENABLE([setuid], + [AS_HELP_STRING([--enable-setuid=USER], + [make pterm setuid to a given user])], + [case "$enableval" in + no) setidtype=none;; + *) setidtype=setuid; setidval="$enableval";; + esac]) +AC_ARG_ENABLE([setgid], + [AS_HELP_STRING([--enable-setgid=GROUP], + [make pterm setgid to a given group])], + [case "$enableval" in + no) setidtype=none;; + *) setidtype=setgid; setidval="$enableval";; + esac]) +AM_CONDITIONAL(HAVE_SETID_CMD, [test "$setidtype" != "none"]) +AS_IF([test "x$setidtype" = "xsetuid"], + [SETID_CMD="chown $setidval"; SETID_MODE="4755"]) +AS_IF([test "x$setidtype" = "xsetgid"], + [SETID_CMD="chgrp $setidval"; SETID_MODE="2755"]) +AC_SUBST(SETID_CMD) +AC_SUBST(SETID_MODE) AC_ARG_WITH([gssapi], [AS_HELP_STRING([--without-gssapi], @@ -27,18 +50,55 @@ WITH_GSSAPI= AS_IF([test "x$with_gssapi" != xno], [AC_DEFINE([WITH_GSSAPI], [1], [Define if building with GSSAPI support.])]) +AC_ARG_WITH([gtk], + [AS_HELP_STRING([--with-gtk=VER], + [specify GTK version to use (`1' or `2')]) +AS_HELP_STRING([--without-gtk], + [do not use GTK (build command-line tools only)])], + [gtk_version_desired="$withval"], + [gtk_version_desired="any"]) + +case "$gtk_version_desired" in + 1 | 2 | any | no) ;; + yes) gtk_version_desired="any" ;; + *) AC_ERROR([Invalid GTK version specified]) +esac + AC_CHECK_HEADERS([utmpx.h sys/select.h],,,[ #include #include ]) -# Look for both GTK 1 and GTK 2. -AM_PATH_GTK([1.2.0], [gtk=1], [gtk=none]) -AM_PATH_GTK_2_0([2.0.0], [gtk=2], []) -if test "$gtk" = "none"; then - all_targets="all-cli" -else - all_targets="all-cli all-gtk" -fi +# Look for both GTK 2 and GTK 1, in descending order of preference. If +# we can't find either, have the makefile only build the CLI programs. + +gtk=none + +case "$gtk_version_desired:$gtk" in + 2:none | any:none) + ifdef([AM_PATH_GTK_2_0],[ + AM_PATH_GTK_2_0([2.0.0], [gtk=2], []) + ],[AC_WARNING([generating configure script without GTK 2 autodetection])]) + ;; +esac + +case "$gtk_version_desired:$gtk" in + 1:none | any:none) + ifdef([AM_PATH_GTK],[ + AM_PATH_GTK([1.2.0], [gtk=1], []) + ],[ + # manual check for gtk1 + AC_PATH_PROG(GTK1_CONFIG, gtk-config, absent) + if test "$GTK1_CONFIG" != "absent"; then + GTK_CFLAGS=`"$GTK1_CONFIG" --cflags` + GTK_LIBS=`"$GTK1_CONFIG" --libs` + gtk=1 + fi + ]) + ;; +esac + +AM_CONDITIONAL(HAVE_GTK, [test "$gtk" != "none"]) + if test "$gtk" = "2"; then ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" @@ -48,7 +108,6 @@ if test "$gtk" = "2"; then CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi -AC_SUBST([all_targets]) AC_SEARCH_LIBS([socket], [xnet]) @@ -63,12 +122,42 @@ AS_IF([test "x$with_gssapi" != xno], [], [AC_DEFINE([NO_GSSAPI_LIB], [1], [Define if we could not find a gssapi library])])])]) -AC_CHECK_LIB(X11, XOpenDisplay) +AC_CHECK_LIB(X11, XOpenDisplay, + [GTK_LIBS="-lX11 $GTK_LIBS" + AC_DEFINE([HAVE_LIBX11],[],[Define if libX11.a is available])]) -AC_CHECK_FUNCS([getaddrinfo ptsname setresuid strsignal updwtmpx]) +AC_CHECK_FUNCS([getaddrinfo posix_openpt ptsname setresuid strsignal updwtmpx]) +AC_CHECK_DECLS([CLOCK_MONOTONIC], [], [], [[#include ]]) +AC_SEARCH_LIBS([clock_gettime], [rt], [AC_DEFINE([HAVE_CLOCK_GETTIME],[],[Define if clock_gettime() is available])]) + +if test "x$GCC" = "xyes"; then + : + AC_SUBST(WARNINGOPTS, ['-Wall -Werror']) +else + : + AC_SUBST(WARNINGOPTS, []) +fi AC_OUTPUT +if test "$gtk_version_desired" = "no"; then cat <