From a6e97b0f3266dbacf81dd58a3a3ed909a0a91271 Mon Sep 17 00:00:00 2001 From: Pekka Riikonen Date: Thu, 31 May 2001 10:17:41 +0000 Subject: [PATCH] updates --- INSTALL | 2 +- acconfig.h | 9 ++ apps/irssi/src/fe-text/Makefile.am | 1 + apps/silc/Makefile.am | 4 +- configure.in.pre | 193 ++++++++++++++++++++++++++++- includes/clientincludes.h | 4 + prepare-clean | 4 +- 7 files changed, 209 insertions(+), 8 deletions(-) diff --git a/INSTALL b/INSTALL index 41f33884..5dedea7e 100644 --- a/INSTALL +++ b/INSTALL @@ -4,7 +4,7 @@ Quick Installation To configure and compile SILC package give the comands: ./configure - make + make (or gmake) make install This will install the SILC binaries and configuration files into the diff --git a/acconfig.h b/acconfig.h index 76a52fb3..ec943f9f 100644 --- a/acconfig.h +++ b/acconfig.h @@ -23,6 +23,15 @@ #undef SILC_SIZEOF_CHAR #undef SILC_SIZEOF_VOID_P +/* macros/curses checks */ +#undef HAS_CURSES +#undef USE_SUNOS_CURSES +#undef USE_BSD_CURSES +#undef USE_SYSV_CURSES +#undef USE_NCURSES +#undef NO_COLOR_CURSES +#undef SCO_FLAVOR + /* Redefs for SOCKS5 library */ #undef SOCKS #undef SOCKS5 diff --git a/apps/irssi/src/fe-text/Makefile.am b/apps/irssi/src/fe-text/Makefile.am index 326eb618..326ec232 100644 --- a/apps/irssi/src/fe-text/Makefile.am +++ b/apps/irssi/src/fe-text/Makefile.am @@ -23,6 +23,7 @@ silc_LDADD = \ $(CURSES_LIBS) \ -L../../../lib -lsilcclient + silc_SOURCES = \ gui-entry.c \ gui-expandos.c \ diff --git a/apps/silc/Makefile.am b/apps/silc/Makefile.am index 20217d08..e216b583 100644 --- a/apps/silc/Makefile.am +++ b/apps/silc/Makefile.am @@ -30,9 +30,11 @@ silc_SOURCES = \ silc_DEPENDENCIES = ../lib/libsilcclient.a ../lib/libsilc.a -LIBS=$(SILC_COMMON_LIBS) +LIBS = $(SILC_COMMON_LIBS) LDADD = -L. -L.. -L../lib -lsilcclient +ADD_INCLUDES = $(CURSES_INCLUDEDIR) + EXTRA_DIST = *.h include $(top_srcdir)/Makefile.defines.in diff --git a/configure.in.pre b/configure.in.pre index 0b1b5ece..1d0c64c2 100644 --- a/configure.in.pre +++ b/configure.in.pre @@ -93,11 +93,196 @@ AC_DEFINE_UNQUOTED(SILC_SIZEOF_CHAR, $ac_cv_sizeof_char) AC_CHECK_SIZEOF(void *, 0) AC_DEFINE_UNQUOTED(SILC_SIZEOF_VOID_P, $ac_cv_sizeof_void_p) +dnl Curses detection: Munged from Midnight Commander's configure.in +AC_DEFUN(AC_CHECK_CURSES,[ + search_ncurses=true + screen_manager="" + has_curses=false + + CFLAGS=${CFLAGS--O} + + AC_SUBST(CURSES_LIBS) + AC_SUBST(CURSES_INCLUDEDIR) + + AC_ARG_WITH(sco, + [ --with-sco Use this to turn on SCO-specific code],[ + if test x$withval = xyes; then + AC_DEFINE(SCO_FLAVOR) + CFLAGS="$CFLAGS -D_SVID3" + fi + ]) + + AC_ARG_WITH(sunos-curses, + [ --with-sunos-curses Used to force SunOS 4.x curses],[ + if test x$withval = xyes; then + AC_USE_SUNOS_CURSES + fi + ]) + + AC_ARG_WITH(osf1-curses, + [ --with-osf1-curses Used to force OSF/1 curses],[ + if test x$withval = xyes; then + AC_USE_OSF1_CURSES + fi + ]) + + AC_ARG_WITH(vcurses, + [ --with-vcurses[=incdir] Used to force SysV curses], + if test x$withval != xyes; then + CURSES_INCLUDEDIR="-I$withval" + fi + AC_USE_SYSV_CURSES + ) + + AC_ARG_WITH(ncurses, + [ --with-ncurses[=dir] Compile with ncurses/locate base dir], + if test x$withval = xno ; then + search_ncurses=false + elif test x$withval != xyes ; then + AC_NCURSES($withval/include, ncurses.h, -L$withval/lib -lncurses, -I$withval/include, "ncurses on $withval/include") + fi + ) + + if $search_ncurses + then + AC_SEARCH_NCURSES() + fi +]) + + +AC_DEFUN(AC_USE_SUNOS_CURSES, [ + search_ncurses=false + screen_manager="SunOS 4.x /usr/5include curses" + AC_MSG_RESULT(Using SunOS 4.x /usr/5include curses) + AC_DEFINE(USE_SUNOS_CURSES) + AC_DEFINE(HAS_CURSES) + has_curses=true + AC_DEFINE(NO_COLOR_CURSES) + AC_DEFINE(USE_SYSV_CURSES) + CURSES_INCLUDEDIR="-I/usr/5include" + CURSES_LIBS="/usr/5lib/libcurses.a /usr/5lib/libtermcap.a" + AC_MSG_RESULT(Please note that some screen refreshs may fail) +]) + +AC_DEFUN(AC_USE_OSF1_CURSES, [ + AC_MSG_RESULT(Using OSF1 curses) + search_ncurses=false + screen_manager="OSF1 curses" + AC_DEFINE(HAS_CURSES) + has_curses=true + AC_DEFINE(NO_COLOR_CURSES) + AC_DEFINE(USE_SYSV_CURSES) + CURSES_LIBS="-lcurses" +]) + +AC_DEFUN(AC_USE_SYSV_CURSES, [ + AC_MSG_RESULT(Using SysV curses) + AC_DEFINE(HAS_CURSES) + has_curses=true + AC_DEFINE(USE_SYSV_CURSES) + search_ncurses=false + screen_manager="SysV/curses" + CURSES_LIBS="-lcurses" +]) + +dnl +dnl Parameters: directory filename cureses_LIBS curses_INCLUDEDIR nicename +dnl +AC_DEFUN(AC_NCURSES, [ + if $search_ncurses + then + if test -f $1/$2 + then + AC_MSG_RESULT(Found ncurses on $1/$2) + + CURSES_LIBS="$3" + AC_CHECK_LIB(ncurses, initscr, [ + ], [ + CHECKLIBS=`echo "$3"|sed 's/-lncurses/-lcurses/g'` + AC_CHECK_LIB(curses, initscr, [ + CURSES_LIBS="$CHECKLIBS" + ],, $CHECKLIBS) + ], $CURSES_LIBS) + CURSES_INCLUDEDIR="$4" + search_ncurses=false + screen_manager=$5 + AC_DEFINE(HAS_CURSES) + has_curses=true + has_ncurses=true + AC_DEFINE(USE_NCURSES) + fi + fi +]) + +AC_DEFUN(AC_SEARCH_NCURSES, [ + AC_CHECKING("location of ncurses.h file") + + AC_NCURSES(/usr/include, ncurses.h, -lncurses,, "ncurses on /usr/include") + AC_NCURSES(/usr/include/ncurses, ncurses.h, -lncurses, -I/usr/include/ncurses, "ncurses on /usr/include/ncurses") + AC_NCURSES(/usr/local/include, ncurses.h, -L/usr/local/lib -lncurses, -I/usr/local/include, "ncurses on /usr/local") + AC_NCURSES(/usr/pkg/include, ncurses.h, -L/usr/pkg/lib -lncurses, -I/usr/pkg/include, "ncurses on /usr/pkg") + AC_NCURSES(/usr/contrib/include, ncurses.h, -L/usr/contrib/lib -lncurses, -I/usr/contrib/include, "ncurses on /usr/contrib") + AC_NCURSES(/usr/local/include/ncurses, ncurses.h, -L/usr/local/lib -L/usr/local/lib/ncurses -lncurses, -I/usr/local/include/ncurses, "ncurses on /usr/local/include/ncurses") + + AC_NCURSES(/usr/local/include/ncurses, curses.h, -L/usr/local/lib -lncurses, -I/usr/local/include/ncurses -DRENAMED_NCURSES, "renamed ncurses on /usr/local/.../ncurses") + + AC_NCURSES(/usr/include/ncurses, curses.h, -lncurses, -I/usr/include/ncurses -DRENAMED_NCURSES, "renamed ncurses on /usr/include/ncurses") + + dnl + dnl We couldn't find ncurses, try SysV curses + dnl + if $search_ncurses + then + AC_EGREP_HEADER(init_color, /usr/include/curses.h, + AC_USE_SYSV_CURSES) + AC_EGREP_CPP(USE_NCURSES,[ +#include +#ifdef __NCURSES_H +#undef USE_NCURSES +USE_NCURSES +#endif +],[ + CURSES_INCLUDEDIR="$CURSES_INCLUDEDIR -DRENAMED_NCURSES" + AC_DEFINE(HAS_CURSES) + has_curses=true + has_ncurses=true + AC_DEFINE(USE_NCURSES) + search_ncurses=false + screen_manager="ncurses installed as curses" +]) + fi + + dnl + dnl Try SunOS 4.x /usr/5{lib,include} ncurses + dnl The flags USE_SUNOS_CURSES, USE_BSD_CURSES and BUGGY_CURSES + dnl should be replaced by a more fine grained selection routine + dnl + if $search_ncurses + then + if test -f /usr/5include/curses.h + then + AC_USE_SUNOS_CURSES + fi + fi + + dnl use whatever curses there happens to be + if $search_ncurses + then + if test -f /usr/include/curses.h + then + CURSES_LIBS="-lcurses" + AC_DEFINE(HAS_CURSES) + has_curses=true + search_ncurses=false + screen_manager="curses" + fi + fi +]) + +AC_CHECK_CURSES +LIBS="$LIBS $CURSES_LIBS" + # Function and library checking -AC_CHECK_FUNC(initscr, ac_initscr_found=1, ac_initscr_found=0) -if test x$ac_initscr_found = x0; then - AC_CHECK_LIB(ncurses, initscr, LIBS="$LIBS -lncurses") -fi AC_CHECK_FUNC(gethostbyname, ac_gethostbyname_found=1, ac_gethostbyname_found=0) if test x$ac_gethostbyname_found = x0; then diff --git a/includes/clientincludes.h b/includes/clientincludes.h index b1dd3aca..3e2c13af 100644 --- a/includes/clientincludes.h +++ b/includes/clientincludes.h @@ -23,7 +23,11 @@ #include "silcdefs.h" +#if defined(USE_NCURSES) && !defined(RENAMED_NCURSES) +#include +#else #include +#endif #include #ifdef HAVE_PATHS_H diff --git a/prepare-clean b/prepare-clean index d229699b..9bcc5497 100755 --- a/prepare-clean +++ b/prepare-clean @@ -25,8 +25,8 @@ echo "Cleaning entire SILC source tree..." echo "All errors and warnings may be safely ignored." -make clean -k -make distclean -k +gmake clean -k +gmake distclean -k rm -f Makefile.am rm -f Makefile.defines rm -f Makefile.defines.in -- 2.24.0