1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
$! DCL command procedure to compile C binding for PGPLOT for
$! OpenVMS VAX and AXP
$!----------------------------------------------------------------------
$ DELETE = "DELETE/NOLOG/NOCONFIRM"
$ PURGE = "PURGE/NOLOG/NOCONFIRM"
$!
$ ON WARNING THEN EXIT
$ PROC = P1
$ IF PROC.EQS."" THEN PROC = "[]"
$ PGPLOT = F$PARSE(PROC,,,"DEVICE","SYNTAX_ONLY") + -
F$PARSE(PROC,,,"DIRECTORY","SYNTAX_ONLY")
$ CPG = PGPLOT - "]" + ".CPG]"
$ SRC = PGPLOT - "]" + ".SRC]"
$ ECHO = "WRITE SYS$OUTPUT"
$!
$! Check for VMS or AXP.
$!
$ ON WARNING THEN GOTO VAX
$ MACHINE=F$GETSYI("ARCH_NAME")
$ GOTO START
$ VAX: MACHINE="VAX"
$ START: ON WARNING THEN GOTO EXIT
$!
$! Compile the PGBIND program.
$!
$ ECHO "Compiling PGBIND for OpenVMS ", MACHINE
$ CC 'CPG'PGBIND.C
$ IF MACHINE .EQS. "VAX"
$ THEN
$ LINK PGBIND, SYS$INPUT:/OPT
SYS$SHARE:VAXCRTL/SHARE
$ ELSE
$ LINK PGBIND
$ ENDIF
$ PGBIND == "$"+F$SEARCH("PGBIND.EXE", 3)
$!
$! Run PGBIND to generate the header file and wrapper routines.
$!
$ ECHO "Creating C header file and C wrapper routines"
$ SEARCH 'SRC'PG*.F "C%" /NOHEADING/OUTPUT=PROTO.TXT
$ PGBIND vms -h -w PROTO.TXT
$!
$! Compile them.
$!
$ ECHO "Compiling C wrapper routines"
$ FILES = "CPG*.C"
$LOOP:
$ FILE = F$SEARCH(FILES,1)
$ IF FILE .EQS. "" THEN GOTO ENDLOOP
$ NAME = F$PARSE(FILE,,,"NAME","SYNTAX_ONLY")
$ ECHO NAME
$ CC/NOWARNINGS 'FILE'
$ GOTO LOOP
$ ENDLOOP:
$!
$! Create the library.
$!
$ ECHO "Creating PGPLOT C interface library"
$ LIBRARY/CREATE/NOLOG CPGPLOT.OLB CPG*.OBJ
$ PURG CPGPLOT.OLB
$!
$! Remove intermediate files.
$!
$ DELETE pgbind.obj;*,pgbind.exe;*,cpg*.obj;*,cpg*.c;*,proto.txt;*
$!
$! Compile the demo program.
$!
$ ECHO "Compiling demo program CPGDEMO"
$ CC 'CPG'CPGDEMO /INCLUDE_DIRECTORY=[]
$ LINK/NOUSER CPGDEMO,CPGPLOT.OLB/LIB,GRPSHR.OLB/LIB
$ DELETE CPGDEMO.OBJ;*
$ PURGE CPGDEMO.EXE
$ SET PROT=(S:RWED,O:RWED,G:RE,W:RE) cpgplot.h, cpgplot.olb, cpgdemo.exe
$!
$ EXIT: EXIT
|