Example of rebuilding PAW on VMS systems
$!
$! Build various versions of \PAW{}
$!
$ set noon
$!
$ architecture=f$edit(f$getsyi("ARCH_NAME"),"UPCASE")
$!
$ if architecture .eqs. "ALPHA"
$ then
$ cc:==cc/standard=vaxc
$ link:==link/nonative
$ endif
$!
$ ypatchy cern:['cern_level'.src.car]paw.car pawmain.for :go
+USE,CZ.
+USE,MAIN.
+USE,P=PAW,D=0PAMAIN.
+EXE.
+KEEP,PAWSIZ.
PARAMETER (NWPAW=500000)
+PAM,T=C.
+QUIT.
$!
$ ypatchy cern:['cern_level'.src.car]paw.car pawpp.for :go
+USE,CZ.
+USE,MAIN,MOTIF.
+USE,P=PAW,D=0PAMAINM.
+EXE.
+KEEP,PAWSIZ.
PARAMETER (NWPAW=500000)
+PAM,T=C.
+QUIT.
$!
$ create czdummy.for
subroutine czdummy
entry czopen
entry czclos
entry czputa
entry czgeta
entry czputc
entry czgetc
entry cztcp
entry CONNECT
entry GETHOSTBYNAME
entry GETSERVBYNAME
entry HTONS
entry INET_ADDR
entry RECV
entry SELECT
entry SEND
entry SETSOCKOPT
entry SHUTDOWN
entry SOCKET
entry multinet_get_socket_errno_addr
entry socket_close
entry socket_ioctl
entry socket_perror
end
$!
$ create gethostname.c
/*
* return the node name
*/
#include <descrip.h>
#include <lnmdef.h>
int
gethostname( node, len )
char *node;
int len;
{
$DESCRIPTOR( tabnam, "LNM$SYSTEM" );
$DESCRIPTOR( lognam, "SYS$NODE" );
int length = 0;
struct {
short buffer_length;
short item_code;
char *buffer_address;
int *return_length;
int item_list_end;
} itmlst; /* Disabled auto initialization = { len - 1,
LNM$_STRING, node, &length, 0 }; */
char *p = node;
/* Manual initialization code inserted by CRL on 931206 */
itmlst.buffer_length = (len - 1);
itmlst.item_code = LNM$_STRING;
itmlst.buffer_address = node;
itmlst.return_length = &length;
itmlst.item_list_end = 0;
sys$trnlnm( 0, &tabnam, &lognam, 0, &itmlst );
while( p[0] != '\\ 0' && p[0] != ':' )
p++;
p[0] = '\\ 0';
return( 0 );
}
$!
$! Compile the main program(s) if found
$!
$ if f$search("PAWMAIN.FOR") .nes. ""
$ then
$ write sys$output "Compiling PAWMAIN..."
$ fortran pawmain
$ endif
$!
$ if f$search("PAWPP.FOR") .nes. ""
$ then
$ write sys$output "Compiling PAWPP..."
$ fortran pawpp
$ endif
$!
$ if f$search("GETHOSTNAME.C") .nes. ""
$ then
$ write sys$output "Compiling GETHOSTNAME..."
$ cc gethostname
$ endif
$!
$ if f$search("CZDUMMY.FOR") .nes. ""
$ then
$ write sys$output "Compiling CZDUMMY (dummy TCP/IP routines)..."
$ fortran czdummy
$ endif
$!
$! Linking of PAW/GKS version
$!
$! Licensed software required: GTS-GRAL GKS (installed and distributed by CERN)
$!
$ if architecture .eqs. "ALPHA"
$ then
$ write sys$output "PAW/GKS only available on VAX/VMS"
$ else
$ write sys$output "Link GTS-GRAL GKS version of PAW..."
$ cernlib pawlib,mathlib,packlib,graflib,packlib
$ link/exe=pawgks pawmain,czdummy,'LIB$
$ endif
$!
$! Linking of PAW/DEC-GKS
$! Licensed software required: DEC-GKS from Digital
$!
$ write sys$output "Link DEC-GKS version of PAW..."
$ cernlib pawlib,mathlib,packlib,graflib/dgks,packlib
$ link/exe=pawdgks pawmain,czdummy,'LIB$
$!
$! Linking of PAW/X11
$! Licensed software required: Motif 1.1
$!
$ write sys$output "Link PAW/X11..."
$ cernlib pawlib,mathlib,packlib,graflib/x11,packlib
$ link/exe=pawx11 pawmain,gethostname,czdummy,'LIB$
$!
$! Linking of PAW/X11_M
$! Licensed software required: Motif 1.1, Multinet TCP/IP
$!
$ write sys$output "Link PAW/X11_M..."
$ cernlib pawlib,mathlib,packlib,graflib/x11,packlib
$ if architecture .eqs. "ALPHA"
$ then
$ link/exe=pawx11_m -
pawmain,'LIB$',sys$input/opt
multinet_socket_library/share
sys$library:decc$shr/share
$ else
$ link/exe=pawx11_m -
pawmain,'LIB$',sys$input/opt
multinet_socket_library/share
sys$library:vaxcrtl/share
$ endif
$!
$! Linking of PAW/X11_U
$! Licensed software required: Motif 1.1, DEC TCP/IP (UCX)
$!
$ write sys$output "Link PAW/X11_U..."
$ cernlib pawlib,mathlib,packlib,graflib/x11,packlib
$ if architecture .eqs. "ALPHA"
$ then
$ link/exe=pawx11_u -
pawmain,'LIB$',sys$library:ucx$ipc/lib,sys$input/opt
sys$library:ucx$ipc_shr/share
sys$library:decc$shr/share
$ else
$ link/exe=pawx11_u -
pawmain,'LIB$',sys$library:ucx$ipc/lib,sys$input/opt
sys$library:ucx$ipc_shr/share
sys$library:vaxcrtl/share
$ endif
$!
$! Linking of PAW/X11_DECW
$! Licensed software required: DECWindows
$!
$ write sys$output "Link PAW/X11_DECW..."
$ if architecture .eqs. "ALPHA"
$ then
$ write sys$output "This option only available on VAX/VMS"
$ else
$ lib$:==CERN:['cern_level'.LIB]PAWLIB/LIB,PACKLIB/LIB,MATHLIB/LIB,-
GRAFLIB/LIB,GRAFX11/LIB,PACKLIB/LIB,KERNLIB/LIB"
$ link/exe=pawx11_decw -
pawmain,gethostname,czdummy,'LIB$',sys$input/opt
cern:[decw]decw$xlibshr/share
cern:[decw]decw$dwtlibshr/share
cern:[decw]decw$transport_common/share
sys$library:vaxcrtl/share
$ endif
$!
$! Linking of PAW/X11_DECW_M
$! Licensed software required: DECWindows, Multinet
$!
$ write sys$output "Link PAW/X11_DECW_M..."
$ if architecture .eqs. "ALPHA"
$ then
$ write sys$output "This option only available on VAX/VMS"
$ else
$ lib$:==CERN:['cern_level'.LIB]PAWLIB/LIB,PACKLIB/LIB,MATHLIB/LIB,-
GRAFLIB/LIB,GRAFX11/LIB,PACKLIB/LIB,KERNLIB/LIB"
$ link/exe=pawx11_decw_m -
pawmain,'LIB$',sys$input/opt
multinet_socket_library/share
cern:[decw]decw$xlibshr/share
cern:[decw]decw$dwtlibshr/share
cern:[decw]decw$transport_common/share
sys$library:vaxcrtl/share
$ endif
$!
$! Linking of PAW++ with Multinet
$!
$ write sys$output "Link PAW++ with Multinet..."
$ cernlib pawlib,mathlib,packlib,graflib/motif,packlib
$ if architecture .eqs. "ALPHA"
$ then
$ link/exe=pawpp -
pawpp,'LIB$',sys$input/opt
multinet_socket_library/share
sys$library:decc$shr/share
$ else
$ link/exe=pawpp -
pawpp,'LIB$',sys$input/opt
multinet_socket_library/share
sys$library:vaxcrtl/share
$ endif
$!
$! Linking of PAW++ with DEC TCP/IP (UCX)
$!
$ write sys$output "Link PAW++ with UCX..."
$ cernlib pawlib,mathlib,packlib,graflib/motif,packlib
$ if architecture .eqs. "ALPHA"
$ then
$ link/exe=pawpp_u -
pawpp,'LIB$',sys$input/opt
sys$library:ucx$ipc_shr/share
sys$library:decc$shr/share
$ else
$ link/exe=pawpp_u -
pawpp,'LIB$',sys$library:ucx$ipc/lib,sys$input/opt
sys$library:ucx$ipc_shr/share
sys$library:vaxcrtl/share
$ endif
$!
$!
$! Linking of PAW++ without Multinet
$!
$ write sys$output "Link PAW++ without Multinet..."
$ cernlib pawlib,mathlib,packlib,graflib/motif,packlib
$ if architecture .eqs. "ALPHA"
$ then
$ link/exe=pawpp_dnet -
pawpp,czdummy,gethostname,'LIB$',sys$input/opt
sys$library:decc$shr/share
$ else
$ link/exe=pawpp_dnet -
pawpp,czdummy,gethostname,'LIB$',sys$input/opt
sys$library:vaxcrtl/share
$ endif