building pvm with gcc and cygwin

Mumit Khan khan@xraylith.wisc.EDU
Mon May 31 21:10:00 GMT 1999


"Isselmou Ould-Dellahy" <iod@ccrl.mot.com> writes:
> 
> I'm trying to compile pvm3.4 for NT box, using
> gcc and cygwin tools. While installing pvm the only
> two compiler choices were Borland C++ and Visual C++.
> 
> Did anybody try this before ?
> Is there any cygwin pre-compiled libpvm3.a for NT ?

I've taken a look, but that's about it. Here're the few things I recall:

- need to get rpc port. I've use Corinna's RPC port (See the FAQ or
  Cygwin home page for info).
- need to figure out how to run portmap and all that.
- Cygwin doesn't implement some of the netdb routines (endservent for
  example), so rexec is disabled. Not a big deal.
- I built without readline (forgot to add to CYGWIN.def), but again
  no big deal.

I'm sending you the patches against 3.4.0, but you should know that I have
not tested it at all, but it does build the whole bit. Some of the flags
in conf/CYGWIN.def are probably quite wrong, so you'll need to play
attention to those. Wholly unsupported (by me that is), so you're on your
own. However, this should get you started ...

Please check over conf/CYGWIN.def before you do anything else. I've 
used X11R6.4, but my paths are probably the same as yours.

If you can't build this for some reason, and *really* must have pre-built
binaries, drop me a private note. 

btw, you may not too impressed with the performance of it ...

Tue May  4 22:48:51  1999  Mumit Khan  <khan@xraylith.wisc.edu>

	* conf/CYGWIN.def: New file.
	* conf/CYGWIN.m4: New file.
	* lib/pvmgetarch: Add CYGWIN detection.
	* src/lpvm.h: Don't include netinet/tcp.h if NO_NETINET_TCP_H
	is defined.
	* src/lpvmglob.c: Likewise.
	* src/mppmsg.c: Likewise.
	* src/pvmd.c: Likewise.
	* examples/Makefile.aimk: Add missing EXESFX when copying.
	* gexamples/Makefile.aimk: Likewise.
	* pvmgs/Makefile.aimk: Likewise.
	* xep/Makefile.aimk: Add local X11 include and library paths; add
	-lSM -lICE.

Index: conf/CYGWIN.def
===================================================================
RCS file: CYGWIN.def
diff -N CYGWIN.def
--- /dev/null	Tue May  5 15:32:27 1998
+++ conf/CYGWIN.def	Tue May  4 22:38:50 1999
@@ -0,0 +1,17 @@
+ARCHCFLAGS	=	-DSYSVSTR -DSYSVSIGNAL -DNOUNIXDOM \
+				-DRSHCOMMAND=\"/usr/local/bin/rsh\" \
+				-DNEEDSFFS -DSYSVBFUNC -DNOWAIT3 \
+				-DNOGETDTBLSIZ \
+				-DNOREXEC \
+				-DNO_NETINET_TCP_H \
+				-I/usr/local/include
+ARCHDLIB	=	-L/usr/local/lib -lrpclib
+ARCHDOBJ	=
+ARCHLIB		=	-L/usr/local/lib -lrpclib
+HASRANLIB	=	t
+AR		=	ar
+PVM_ARCH	=	CYGWIN
+MAKE		=	make
+EXESFX		=	.exe
+FC		=	g77
+
Index: conf/CYGWIN.m4
===================================================================
RCS file: CYGWIN.m4
diff -N CYGWIN.m4
--- /dev/null	Tue May  5 15:32:27 1998
+++ conf/CYGWIN.m4	Tue May  4 22:38:50 1999
@@ -0,0 +1,19 @@
+divert(-1)
+undefine(`len')
+#
+# append an underscore to FORTRAN function names
+#
+define(`FUNCTION',`$1_')
+#
+# FORTRAN character strings are passed as follows:
+# a pointer to the base of the string is passed in the normal
+# argument list, and the length is passed by value as an extra
+# argument, after all of the other arguments.
+#
+define(`ARGS',`($1`'undivert(1))')
+define(`SAVE',`divert(1)$1`'divert(0)')
+define(`STRING_ARG',`$1_ptr`'SAVE(`, $1_len')')
+define(`STRING_ARG_DECL',`char * $1_ptr; int $1_len')
+define(`STRING_LEN',`$1_len')
+define(`STRING_PTR',`$1_ptr')
+divert(0)
Index: gexamples/Makefile.aimk
===================================================================
RCS file: /homes/khan/src/CVSROOT/pvm3/gexamples/Makefile.aimk,v
retrieving revision 1.1.1.1
diff -u -3 -p -u -p -r1.1.1.1 Makefile.aimk
--- gexamples/Makefile.aimk	1999/05/04 01:46:26	1.1.1.1
+++ gexamples/Makefile.aimk	1999/05/05 03:38:50
@@ -41,47 +41,47 @@ all:  $(PROGS)
 
 joinleave$(EXESFX): $(SDIR)/joinleave.c
 	$(CC) $(CFLAGS) -o $@ $(SDIR)/joinleave.c $(PVMLIB)
-	cp joinleave $(XDIR)
+	cp joinleave$(EXESFX) $(XDIR)
 
 tst$(EXESFX): $(SDIR)/tst.c
 	$(CC) $(CFLAGS) -o $@ $(SDIR)/tst.c $(PVMLIB)
-	cp tst $(XDIR)
+	cp tst$(EXESFX) $(XDIR)
 
 gs$(EXESFX): $(SDIR)/gs.c
 	$(CC) $(CFLAGS) -o $@ $(SDIR)/gs.c $(PVMLIB)
-	cp gs $(XDIR)
+	cp gs$(EXESFX) $(XDIR)
 
 ge$(EXESFX): $(SDIR)/ge.c
 	$(CC) $(CFLAGS) -o $@ $(SDIR)/ge.c $(PVMLIB)
-	cp ge $(XDIR)
+	cp ge$(EXESFX) $(XDIR)
 
 gexamp$(EXESFX): $(SDIR)/gexamp.c
 	$(CC) $(CFLAGS) -o $@ $(SDIR)/gexamp.c $(PVMLIB)
-	cp gexamp $(XDIR)
+	cp gexamp$(EXESFX) $(XDIR)
 
 thb$(EXESFX): $(SDIR)/thb.c
 	$(CC) $(CFLAGS) -o $@ $(SDIR)/thb.c $(PVMLIB)
-	cp thb $(XDIR)
+	cp thb$(EXESFX) $(XDIR)
 
 tnb$(EXESFX): $(SDIR)/tnb.c
 	$(CC) $(CFLAGS) -o $@ $(SDIR)/tnb.c $(PVMLIB)
-	cp tnb $(XDIR)
+	cp tnb$(EXESFX) $(XDIR)
 
 tjl$(EXESFX): $(SDIR)/tjl.c
 	$(CC) $(CFLAGS) -o $@ $(SDIR)/tjl.c $(PVMLIB)
-	cp tjl $(XDIR)
+	cp tjl$(EXESFX) $(XDIR)
 
 tjf$(EXESFX): $(SDIR)/tjf.c
 	$(CC) $(CFLAGS) -o $@ $(SDIR)/tjf.c $(PVMLIB)
-	cp tjf $(XDIR)
+	cp tjf$(EXESFX) $(XDIR)
 
 trsg$(EXESFX): $(SDIR)/trsg.c
 	$(CC) $(CFLAGS) -o $@ $(SDIR)/trsg.c $(PVMLIB)
-	cp trsg $(XDIR)
+	cp trsg$(EXESFX) $(XDIR)
 
 frsg$(EXESFX): $(SDIR)/frsg.f
 	$(FORT) $(FFLAGS) -o $@ $(SDIR)/frsg.f $(PVMFLIB)
-	cp frsg $(XDIR)
+	cp frsg$(EXESFX) $(XDIR)
 
 clean:
 	rm -f *.o $(PROGS)
Index: lib/pvmgetarch
===================================================================
RCS file: /homes/khan/src/CVSROOT/pvm3/lib/pvmgetarch,v
retrieving revision 1.1.1.1
diff -u -3 -p -u -p -r1.1.1.1 pvmgetarch
--- lib/pvmgetarch	1999/05/04 01:46:26	1.1.1.1
+++ lib/pvmgetarch	1999/05/05 03:38:50
@@ -78,6 +78,7 @@ if [ -f /bin/uname -o -f /usr/bin/uname 
 	realix,M88* )           ARCH=M88K ;;
 	DomainOS,DN* )          ARCH=APOLLO ;;
 	OS/2,i[3456]86 )        ARCH=OS2 ;;
+	CYGWIN*,i[3456]86 )	ARCH=CYGWIN ;;
 	esac
 fi
 
Index: pvmgs/Makefile.aimk
===================================================================
RCS file: /homes/khan/src/CVSROOT/pvm3/pvmgs/Makefile.aimk,v
retrieving revision 1.1.1.1
diff -u -3 -p -u -p -r1.1.1.1 Makefile.aimk
--- pvmgs/Makefile.aimk	1999/05/04 01:46:26	1.1.1.1
+++ pvmgs/Makefile.aimk	1999/05/05 03:38:51
@@ -75,7 +75,7 @@ $(PVMLDIR)/$(LIBGPVM)-mpp:  $(LIBGPVM)-m
 	touch $(PVMLDIR)/$(LIBGPVM)-mpp
 
 $(PVMLDIR)/pvmgs$(EXESFX):  pvmgs$(EXESFX)
-	cp pvmgs $(PVMLDIR)
+	cp pvmgs$(EXESFX) $(PVMLDIR)
 
 pvmgroups$(EXESFX):	pvmgroups.o $(LIBGPVM) $(PVMLIBDEP)
 	$(CC) $(CFLAGS) -o $@ pvmgroups.o $(LIBGPVM) $(LIBS) 
Index: src/lpvm.h
===================================================================
RCS file: /homes/khan/src/CVSROOT/pvm3/src/lpvm.h,v
retrieving revision 1.1.1.1
diff -u -3 -p -u -p -r1.1.1.1 lpvm.h
--- src/lpvm.h	1999/05/04 01:46:26	1.1.1.1
+++ src/lpvm.h	1999/05/05 03:38:51
@@ -91,7 +91,9 @@ Import of PVM 3.4.0
 #include <sys/types.h>
 #ifndef WIN32
 #include <netinet/in.h>
+#ifndef __CYGWIN__
 #include <netinet/tcp.h>
+#endif
 #endif
 
 #ifdef IMA_MPP
Index: src/lpvmglob.c
===================================================================
RCS file: /homes/khan/src/CVSROOT/pvm3/src/lpvmglob.c,v
retrieving revision 1.1.1.1
diff -u -3 -p -u -p -r1.1.1.1 lpvmglob.c
--- src/lpvmglob.c	1999/05/04 01:46:26	1.1.1.1
+++ src/lpvmglob.c	1999/05/05 03:38:51
@@ -111,7 +111,9 @@ Import of PVM 3.4.0
 #include <rpc/types.h>
 #include <rpc/xdr.h>
 #include <netinet/in.h>
+#ifndef NO_NETINET_TCP_H
 #include <netinet/tcp.h>
+#endif
 #endif
 
 #include "pmsg.h"
Index: src/mppmsg.c
===================================================================
RCS file: /homes/khan/src/CVSROOT/pvm3/src/mppmsg.c,v
retrieving revision 1.1.1.1
diff -u -3 -p -u -p -r1.1.1.1 mppmsg.c
--- src/mppmsg.c	1999/05/04 01:46:26	1.1.1.1
+++ src/mppmsg.c	1999/05/05 03:38:51
@@ -45,7 +45,9 @@ static char rcsid[] =
 #include <sys/un.h>
 #endif
 #include <netinet/in.h>
+#ifndef NO_NETINET_TCP_H
 #include <netinet/tcp.h>
+#endif
 #include <pvm3.h>
 #include <pvmproto.h>
 #include "lpvm.h"
Index: src/pvmd.c
===================================================================
RCS file: /homes/khan/src/CVSROOT/pvm3/src/pvmd.c,v
retrieving revision 1.1.1.1
diff -u -3 -p -u -p -r1.1.1.1 pvmd.c
--- src/pvmd.c	1999/05/04 01:46:26	1.1.1.1
+++ src/pvmd.c	1999/05/05 03:38:51
@@ -493,7 +493,9 @@ Import of PVM 3.4.0
 #include <sys/socket.h>
 #include <sys/signal.h>
 #include <netinet/in.h>
+#ifndef NO_NETINET_TCP_H
 #include <netinet/tcp.h>
+#endif
 #include <netdb.h>
 #include <pwd.h>
 #endif
Index: xep/Makefile.aimk
===================================================================
RCS file: /homes/khan/src/CVSROOT/pvm3/xep/Makefile.aimk,v
retrieving revision 1.1.1.1
diff -u -3 -p -u -p -r1.1.1.1 Makefile.aimk
--- xep/Makefile.aimk	1999/05/04 01:46:27	1.1.1.1
+++ xep/Makefile.aimk	1999/05/05 03:38:51
@@ -23,8 +23,11 @@ XDIR		=	$(BDIR)/$(PVM_ARCH)
 CFLOPTS		=	-g
 CFLAGS		=	$(CFLOPTS) -I$(PVMIDIR) -L$(PVMLDIR) $(ARCHCFLAGS)
 LIBS		=	-l$(PVMLIB) $(ARCHLIB) $(OS2XEPLIBS)
-XLIBS		=	-lXaw -lXmu -lXext -lXt -lX11
-XCFLAGS		=	-I/usr/local/X11R5/include -I/usr/local/X11/include \
+XLIBS		=	-lXaw -lXmu -lXext -lXt -lX11 -lSM -lICE
+XCFLAGS		=	-I/usr/local/X11R6.4/include \
+				-I/usr/local/X11R5/include \
+				-I/usr/local/X11/include \
+				-L/usr/local/X11R6.4/lib \
 				-L/usr/local/X11R5/lib -L/usr/local/X11/lib
 
 HEADERS		=	$(SDIR)/hostc.h $(SDIR)/imp.h $(SDIR)/myalloc.h \
Index: examples/Makefile.aimk
===================================================================
RCS file: /homes/khan/src/CVSROOT/pvm3/examples/Makefile.aimk,v
retrieving revision 1.1.1.1
diff -u -3 -p -u -p -r1.1.1.1 Makefile.aimk
--- examples/Makefile.aimk	1999/05/04 01:46:26	1.1.1.1
+++ examples/Makefile.aimk	1999/05/05 03:50:47
@@ -163,7 +163,7 @@ master1$(EXESFX):  $(SDIR)/master1.c $(X
 	$(CC) $(CFLAGS) -o $@ $(SDIR)/master1.c $(LFLAGS) $(LIBS)
 	mv $@ $(XDIR)
 
-master1h:  $(SDIR)/master1.c $(XDIR)
+master1h$(EXESFX):  $(SDIR)/master1.c $(XDIR)
 	$(CC) $(CFLAGS) -o $@ $(SDIR)/master1.c $(LFLAGS) $(HLIBS)
 	mv $@ $(XDIR)
 

--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com




More information about the Cygwin mailing list