Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Message-ID: <71A0F7B0F1F4F94F85F3D64C4BD0CCFE03EEE8CC@bmkc1svmail01.am.mfg> From: "Parker, Ron" To: "'cygwin AT cygwin DOT com'" Subject: Patch and directions for compiling GNU screen 3.9.15 on Cygwin Date: Fri, 21 Nov 2003 14:50:18 -0600 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----_=_NextPart_000_01C3B071.12D11070" ------_=_NextPart_000_01C3B071.12D11070 Content-Type: text/plain; charset="iso-8859-1" I created a patch for GNU screen 3.9.15 that will allow it to be compiled and installed on Cygwin. The patch is attached below, the basic build and install procedure is: $ tar xzf {tar-path}/screen-3.9.15.tar.gz $ cd screen-3.9.15 $ patch -p1 -s <{patch-path}/screen-3.9.15-cygwin.diff $ autoconf $ ./configure $ make $ make install Manual add the termcap and terminfo settings for screen. $ cd terminfo $ cat screencap >>/etc/termcap $ tic screeninfo.src If everything works as planned screen should now be in /usr/local/bin. See if it is: $ which screen The patch is attached. ------_=_NextPart_000_01C3B071.12D11070 Content-Type: application/octet-stream; name="screen-3.9.15-cygwin.diff" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="screen-3.9.15-cygwin.diff" diff -Naur screen-3.9.15.orig/Makefile.in screen-3.9.15/Makefile.in=0A= --- screen-3.9.15.orig/Makefile.in 2003-03-13 05:19:53.000000000 = -0600=0A= +++ screen-3.9.15/Makefile.in 2003-11-21 12:31:37.749882800 -0600=0A= @@ -13,12 +13,14 @@=0A= =0A= prefix =3D @prefix@=0A= exec_prefix =3D @exec_prefix@=0A= +EXEEXT =3D @EXEEXT@=0A= +=0A= =0A= # don't forget to change mandir and infodir in doc/Makefile.=0A= bindir =3D $(exec_prefix)/bin=0A= =0A= VERSION =3D @VERSION@=0A= -SCREEN =3D screen-$(VERSION)=0A= +SCREEN =3D screen-$(VERSION)$(EXEEXT)=0A= =0A= ETCSCREENRC =3D `sed < config.h -n -e '/define = ETCSCREENRC/s/^.*"\([^"]*\)"/\1/p'`=0A= SCREENENCODINGS =3D `sed < config.h -n -e '/define = SCREENENCODINGS/s/^.*"\([^"]*\)"/\1/p'`=0A= @@ -73,7 +75,7 @@=0A= install_bin: .version screen=0A= -if [ -f $(DESTDIR)$(bindir)/$(SCREEN) ] && [ ! -f = $(DESTDIR)$(bindir)/$(SCREEN).old ]; \=0A= then mv $(DESTDIR)$(bindir)/$(SCREEN) = $(DESTDIR)$(bindir)/$(SCREEN).old; fi=0A= - $(INSTALL_PROGRAM) screen $(DESTDIR)$(bindir)/$(SCREEN)=0A= + $(INSTALL_PROGRAM) screen$(EXEEXT) $(DESTDIR)$(bindir)/$(SCREEN)=0A= -chown root $(DESTDIR)$(bindir)/$(SCREEN) && chmod 4755 = $(DESTDIR)$(bindir)/$(SCREEN)=0A= # This doesn't work if $(bindir)/screen is a symlink=0A= -if [ -f $(DESTDIR)$(bindir)/screen ] && [ ! -f = $(DESTDIR)$(bindir)/screen.old ]; then mv $(DESTDIR)$(bindir)/screen = $(DESTDIR)$(bindir)/screen.old; fi=0A= diff -Naur screen-3.9.15.orig/configure.in = screen-3.9.15/configure.in=0A= --- screen-3.9.15.orig/configure.in 2003-02-24 07:03:21.000000000 = -0600=0A= +++ screen-3.9.15/configure.in 2003-11-21 12:17:43.269106000 -0600=0A= @@ -9,6 +9,8 @@=0A= AC_INIT(screen.c)=0A= AC_CONFIG_HEADER(config.h)=0A= =0A= +dnl AC_EXEEXT=0A= +=0A= dnl=0A= dnl Define some useful macros=0A= dnl=0A= diff -Naur screen-3.9.15.orig/misc.c screen-3.9.15/misc.c=0A= --- screen-3.9.15.orig/misc.c 2003-02-21 14:30:57.000000000 -0600=0A= +++ screen-3.9.15/misc.c 2003-11-21 10:57:51.281250000 -0600=0A= @@ -642,7 +642,7 @@=0A= */=0A= # endif /* NEEDSETENV */=0A= #else /* USESETENV */=0A= -# if defined(linux) || defined(__convex__) || (BSD >=3D 199103)=0A= +# if defined(linux) || defined(__convex__) || (BSD >=3D 199103) || = defined(__CYGWIN__)=0A= setenv(var, value, 1);=0A= # else=0A= setenv(var, value);=0A= diff -Naur screen-3.9.15.orig/pty.c screen-3.9.15/pty.c=0A= --- screen-3.9.15.orig/pty.c 2003-02-14 07:44:20.000000000 -0600=0A= +++ screen-3.9.15/pty.c 2003-11-21 11:01:01.968750000 -0600=0A= @@ -38,7 +38,9 @@=0A= =0A= /* for solaris 2.1, Unixware (SVR4.2) and possibly others */=0A= #ifdef HAVE_SVR4_PTYS=0A= -# include =0A= +# ifndef __CYGWIN__=0A= +# include =0A= +# endif=0A= #endif=0A= =0A= #if defined(sun) && defined(LOCKPTY) && !defined(TIOCEXCL)=0A= diff -Naur screen-3.9.15.orig/utmp.c screen-3.9.15/utmp.c=0A= --- screen-3.9.15.orig/utmp.c 2002-09-06 04:45:32.000000000 -0500=0A= +++ screen-3.9.15/utmp.c 2003-11-21 11:00:29.484375000 -0600=0A= @@ -93,7 +93,7 @@=0A= static int initutmp __P((void));=0A= static void setutent __P((void));=0A= #endif=0A= -#if defined(linux) && defined(GETUTENT)=0A= +#if (defined(linux) || defined(__CYGWIN__)) && defined(GETUTENT)=0A= static struct utmp *xpututline __P((struct utmp *utmp));=0A= # define pututline xpututline=0A= #endif=0A= @@ -110,7 +110,9 @@=0A= # if defined(hpux) /* cruel hpux release 8.0 */=0A= # define pututline _pututline=0A= # endif /* hpux */=0A= +# ifndef __CYGWIN__=0A= extern struct utmp *getutline(), *pututline();=0A= +# endif=0A= # if defined(_SEQUENT_)=0A= extern struct utmp *ut_add_user(), *ut_delete_user();=0A= extern char *ut_find_host();=0A= @@ -593,7 +595,7 @@=0A= struct utmp *u;=0A= {=0A= u->ut_type =3D DEAD_PROCESS;=0A= -#if !defined(linux) || defined(EMPTY)=0A= +#if !defined(linux) && !defined(__CYGWIN__) || defined(EMPTY)=0A= u->ut_exit.e_termination =3D 0;=0A= u->ut_exit.e_exit =3D 0;=0A= #endif=0A= @@ -862,7 +864,7 @@=0A= }=0A= # endif /* BUGGYGETLOGIN */=0A= =0A= -#if defined(linux) && defined(GETUTENT)=0A= +#if (defined(linux) || defined(__CYGWIN__)) && defined(GETUTENT)=0A= # undef pututline=0A= =0A= /* aargh, linux' pututline returns void! */=0A= ------_=_NextPart_000_01C3B071.12D11070 Content-Type: text/plain; charset=us-ascii -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/ ------_=_NextPart_000_01C3B071.12D11070--