axiom-developer
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Axiom-developer] openpty again, again


From: humberto
Subject: [Axiom-developer] openpty again, again
Date: Fri, 01 Dec 2006 20:42:35 -0400

I worked some on the patch, trying to incorporate the suggestions from:

http://lists.nongnu.org/archive/html/axiom-developer/2006-11/msg00687.html

How does it look now?

==== Patch <openpty-again> level 1
Source: [No source]
Target: 10b040b6-da22-0410-adf4-f09dab594101:/local:349
Log:

=== ChangeLog.build-improvements
==================================================================
--- ChangeLog.build-improvements        (revision 349)
+++ ChangeLog.build-improvements        (patch openpty-again level 1)
@@ -1,3 +1,13 @@
+2006-12-01  Humberto Ortiz-Zuazaga <address@hidden>
+
+       * configure.ac.pamphlet: incorporated suggested changes from:
+       
http://lists.nongnu.org/archive/html/axiom-developer/2006-11/msg00687.html
+
+2006-11-29  Humberto Ortiz-Zuazaga <address@hidden>
+
+       * configure.ac.pamphlet: added tests for openpty, pty.h,
+       util.h and libutil
+
 2006-11-29  Gabriel Dos Reis  <address@hidden>
 
        * configure.ac.pamphlet: Fix typo.
=== config/axiom-c-macros.h.in
==================================================================
--- config/axiom-c-macros.h.in  (revision 349)
+++ config/axiom-c-macros.h.in  (patch openpty-again level 1)
@@ -9,6 +9,12 @@
 /* Define to 1 if you have the <memory.h> header file. */
 #undef HAVE_MEMORY_H
 
+/* Define to 1 if you have the `openpty' function. */
+#undef HAVE_OPENPTY
+
+/* Define to 1 if you have the <pty.h> header file. */
+#undef HAVE_PTY_H
+
 /* Define to 1 if you have the <stdint.h> header file. */
 #undef HAVE_STDINT_H
 
@@ -30,6 +36,9 @@
 /* Define to 1 if you have the <unistd.h> header file. */
 #undef HAVE_UNISTD_H
 
+/* Define to 1 if you have the <util.h> header file. */
+#undef HAVE_UTIL_H
+
 /* Linux flavour */
 #undef LINUXplatform
 
=== config/var-def.mk
==================================================================
--- config/var-def.mk   (revision 349)
+++ config/var-def.mk   (patch openpty-again level 1)
@@ -118,6 +118,7 @@
 
 AXIOM_X11_CFLAGS = @X_CFLAGS@ 
 AXIOM_X11_LDFLAGS = @X_LIBS@ @X_PRE_LIBS@ -lX11 @X_EXTRA_LIBS@
+EXTRA_LIBS = @EXTRA_LIBS@
 
 axiom_includes = -I$(axiom_src_srcdir)/include -I$(axiom_configdir)
 
=== configure.ac.pamphlet
==================================================================
--- configure.ac.pamphlet       (revision 349)
+++ configure.ac.pamphlet       (patch openpty-again level 1)
@@ -683,8 +683,41 @@
 fi
 @
 
+\subsubsection{openpty}
 
+[[clef]] and [[sman]] use ptys to communicate with [[AXIOMsys]]. The
+existing code in silver doesn't work on MacOS X. We will try to build
+with the Unix98 standard [[openpty]] function. We need to detect two
+headers and a library. Linux has openpty defined in [[pty.h]], MacOS X
+define it in [[util.h]]. FreeBSD is supposed to have a definition in
+[[libutil.h]].
 
+<<headers>>=
+ AC_CHECK_HEADER([util.h], 
+                    [AC_DEFINE([HAVE_UTIL_H])],
+                    [AC_CHECK_HEADER([pty.h])
+                    ]) # HAVE_UTIL_H or HAVE_PTY_H
+
+ AC_CHECK_DECL([openpty], [], [],
+                  [#if HAVE_UTIL_H
+                   # include <util.h>
+                   #elif HAVE_PTY_H
+                   # include <pty.h>
+                   #endif
+                  ]) # HAVE_OPENPTY_DECL
+@
+
+On linux the openpty function is in [[libutil]]. We need to add that to
+the list of libraries, at least for [[sman]] and [[clef]].
+
+<<extra libraries>>=
+AC_CHECK_LIB([util], [openpty],
+                 [AC_DEFINE([HAVE_OPENPTY])
+                  EXTRA_LIBS="$EXTRA_LIBS -lutil"
+                 ]) # HAVE_OPENPTY
+AC_SUBST(EXTRA_LIBS)
+@
+
 \section{A note about comments}
 \label{sec:comment}
 
@@ -727,6 +760,8 @@
 
 <<headers>>
 
+<<extra libraries>>
+
 <<define AXIOM>>
 
 <<platform specific bits>>
=== src/clef/ChangeLog.build-improvements
==================================================================
--- src/clef/ChangeLog.build-improvements       (revision 349)
+++ src/clef/ChangeLog.build-improvements       (patch openpty-again level 1)
@@ -1,3 +1,7 @@
+2006-11-29  Humberto Ortiz-Zuazaga <address@hidden>
+
+       * Makefile.pamphlet: add -lutil to clef link flags if needed
+
 2006-11-26  Gabriel Dos Reis  <address@hidden>
 
        * edible.c.pamphlet: Include "axiom-c-macros.h"
=== src/clef/Makefile.pamphlet
==================================================================
--- src/clef/Makefile.pamphlet  (revision 349)
+++ src/clef/Makefile.pamphlet  (patch openpty-again level 1)
@@ -23,7 +23,7 @@
 
 clef_objects = $(clef_sources:.c=.$(OBJEXT)) 
 
-clef_LDADD = -L$(abs_top_builddir)/src/lib -lspad
+clef_LDADD = -L$(abs_top_builddir)/src/lib -lspad $(EXTRA_LIBS)
 clef_DEPENDENCIES =
 @
 
=== src/lib/ChangeLog.build-improvements
==================================================================
--- src/lib/ChangeLog.build-improvements        (revision 349)
+++ src/lib/ChangeLog.build-improvements        (patch openpty-again level 1)
@@ -1,3 +1,7 @@
+2006-11-29  Humberto Ortiz Zuazaga <address@hidden>
+
+       * openpty.c.pamphlet: use openpty if available
+
 2006-11-26  Gabriel Dos Reis  <address@hidden>
 
        * XDither.c.pamphlet: Include axiom-c-macros.h
=== src/lib/openpty.c.pamphlet
==================================================================
--- src/lib/openpty.c.pamphlet  (revision 349)
+++ src/lib/openpty.c.pamphlet  (patch openpty-again level 1)
@@ -10,17 +10,9 @@
 \tableofcontents
 \eject
 \section{MAC OSX and BSD platform changes}
-Since we have no other information we are adding the [[MACOSXplatform]] 
variable
-to the list everywhere we find [[LINUXplatform]]. This may not be correct but
-we have no way to know yet. We have also added the [[BSDplatform]] variable.
-MAC OSX is some variant of BSD. These should probably be merged but we
-cannot yet prove that.
-<<mac osx platform change 1>>=
-#if defined(SUN4OS5platform) ||defined(ALPHAplatform) || defined(HP10platform) 
|| defined(LINUXplatform) || defined(MACOSXplatform) || defined(BSDplatform)
-@
-<<mac osx platform change 2>>=
-#if defined(SUNplatform) || defined(HP9platform) || defined(LINUXplatform) || 
defined(MACOSXplatform) || defined(BSDplatform)
-@
+We should really use autotools to check for Unix 98 pty support.
+Before this is done below we hardcode information about each platform.
+
 \section{License}
 <<license>>=
 /*
@@ -71,7 +63,24 @@
 #include <stropts.h>
 #endif
 
+#ifdef HAVE_OPENPTY_DECL
+#  if HAVE_UTIL_H
+#    include <util.h>
+#  elif HAVE_PTY_H
+#    include <pty.h>
+# endif
+#elif HAVE_OPENPTY
+/* The symbol openpty is allegedly present but its
+   declaration was not found in any of the above headers.
+   So, we fake it here.  Note this is NOT a prototype
+   declaration.  */
+int openpty();
+#else 
+#  define AXIOM_DONT_USE_OPENPTY 1
+#endif
 
+#define AXIOM_USE_OPENPTY !AXIOM_DONT_USE_OPENPTY
+
 #include "openpty.H1"
 
 
@@ -97,6 +106,9 @@
 int  
 ptyopen(int *controller,int * server, char *controllerPath,char * serverPath)
 {
+#if AXIOM_USE_OPENPTY
+  return openpty(controller, server, serverPath, 0, 0);
+#else
 #if defined(SUNplatform) || defined (HP9platform) || defined(RTplatform) 
||defined(AIX370platform) || defined(BSDplatform)
   int looking = 1, i;
   int oflag = O_RDWR;                  /* flag for opening the pty */
@@ -140,7 +152,8 @@
   return(fdm);
 #endif
 
-<<mac osx platform change 1>>
+/* MAC OS X 10.3 does not support Unix 98 pty's */
+#if defined(SUN4OS5platform) ||defined(ALPHAplatform) || defined(HP10platform) 
|| defined(LINUXplatform) || defined(BSDplatform)
 extern int grantpt(int);
 extern int unlockpt(int);
 extern char* ptsname(int);
@@ -192,6 +205,7 @@
   return (*controller);
 
 #endif
+#endif
 }
 
 
@@ -204,7 +218,7 @@
        sprintf(serv, "/dev/ttyp%02x", channelNo);
        channelNo++;
 #endif
-<<mac osx platform change 2>>
+#if defined(SUNplatform) || defined(HP9platform) || defined(LINUXplatform) || 
defined(MACOSXplatform) || defined(BSDplatform)
        static int channelNo = 0;
        static char group[] = "pqrstuvwxyzPQRST";
        static int groupNo = 0;
=== src/sman/ChangeLog.build-improvements
==================================================================
--- src/sman/ChangeLog.build-improvements       (revision 349)
+++ src/sman/ChangeLog.build-improvements       (patch openpty-again level 1)
@@ -1,3 +1,7 @@
+2006-11-29  Humberto Ortiz-Zuazaga <address@hidden>
+
+       * Makefile.pamphlet: add -lutil to sman link flags if needed
+
 2006-11-29  Gabriel Dos Reis  <address@hidden>
 
        * sman.c.pamphlet (should_I_clef): Recover lost return type.
=== src/sman/Makefile.pamphlet
==================================================================
--- src/sman/Makefile.pamphlet  (revision 349)
+++ src/sman/Makefile.pamphlet  (patch openpty-again level 1)
@@ -47,7 +47,7 @@
 sman_sources = sman.c
 sman_SOURCES = $(addsuffix .pamphlet, $(sman_sources))
 sman_objects = $(sman_sources:.c=.$(OBJEXT))
-sman_LDADD = -L$(build_libdir) -lspad
+sman_LDADD = -L$(build_libdir) -lspad $(EXTRA_LIBS)
 sman_DEPENDENCIES =
 
 

==== BEGIN SVK PATCH BLOCK ====
Version: svk 1.08 (darwin)

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
==== END SVK PATCH BLOCK ====




reply via email to

[Prev in Thread] Current Thread [Next in Thread]