home *** CD-ROM | disk | FTP | other *** search
/ rtsi.com / 2014.01.www.rtsi.com.tar / www.rtsi.com / OS9 / OSK / NETWORK / netpbm_src.lzh / NETPBM / VMS / Make_PBMplusShr.com < prev    next >
Text File  |  1996-11-18  |  10KB  |  281 lines

  1. $!
  2. $! Make shareable image out of PBMPLUS libraries.  This command procedure
  3. $! takes no arguments, but must be placed in the top-level PBMPLUS directory.
  4. $!
  5. $! It uses the following input library files:
  6. $!
  7. $!    [.PBM]LIBPBM.OLB,[.PGM]LIBPGM.OLB,[.PPM]LIBPPM.OLB,[.PNM]LIBPNM.OLB
  8. $!
  9. $! This procedure generates the following files if missing or out-of-date:
  10. $!
  11. $!    TRANSVEC.OBJ    Object file containing transfer vector for PBMPLUSSHR.
  12. $!    PBMPLUSSHR.EXE    Shareable image file for PBM libraries.
  13. $!    PBMPLUSSHR.OPT    Linker options file for linking utility program against
  14. $!            the PBMPLUSSHR.EXE shareable image.
  15. $!
  16. $ instruct = 0
  17. $ proc = f$environment("PROCEDURE")
  18. $ proc_cdt = f$cvtime(f$file(proc,"CDT"))
  19. $ if f$search("TRANSVEC.OBJ") .EQS. "" THEN GOTO NEW_TRANSVEC
  20. $ if f$cvtime(f$file("TRANSVEC.OBJ","CDT")) .GTS. PROC_CDT THEN GOTO TRANSVEC_DONE
  21. $ NEW_TRANSVEC:
  22. $ instruct = 1
  23. $ Write SYS$Output "Making new transvec.obj..."
  24. $ Macro /NoList /Object = TRANSVEC.OBJ Sys$Input
  25. ; PMBPLUS_TRANSFER_VECTOR
  26. ; This routine defines a transfer vector for use in creating shareable image
  27. ;
  28. ; define macro to make transfer vector entry for a given routine.  Entry mask 
  29. ; is obtained from routine we are transfering to.  Jump to word past entry 
  30. ; since these are VAX procedures (written in FORTRAN).
  31. ;
  32.     .MACRO TRANSFER_ENTRY routine
  33. ;
  34.     .TRANSFER routine
  35.     .MASK      routine
  36.     JMP      routine + 2
  37. ;
  38.     .ENDM TRANSFER_ENTRY
  39. ;
  40.     .TITLE PBMPLUS_TRANSFER_VECTOR
  41.     .IDENT /01/
  42.     .PSECT PBMPLUS_XVEC PIC,USR,CON,REL,LCL,SHR,EXE,RD,NOWRT,NOVEC
  43. ;
  44. ;    Simply go through iap procedures and declare transfer vector
  45. ;    entry points for them.  New procedure must be added to the END
  46. ;    of this list.
  47. ;
  48. TRANSFER_VECTOR:
  49. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  50. ;Library LIBPBM
  51. ;Module ARGPROC
  52.     TRANSFER_ENTRY BACKGROUND_PROCESS 
  53.     TRANSFER_ENTRY GETOPT
  54.     TRANSFER_ENTRY GETREDIRECTION
  55.     TRANSFER_ENTRY SET_OUTFILE_BINARY
  56.  
  57. ;Module LIBPBM1
  58.     TRANSFER_ENTRY PBM_INIT
  59.     TRANSFER_ENTRY PM_ALLOCARRAY
  60.     TRANSFER_ENTRY PM_ALLOCROW
  61.     TRANSFER_ENTRY PM_BITSTOMAXVAL
  62.     TRANSFER_ENTRY PM_CLOSE
  63.     TRANSFER_ENTRY PM_ERROR                         
  64.     TRANSFER_ENTRY PM_FREEARRAY                     
  65.     TRANSFER_ENTRY PM_FREEROW
  66.     TRANSFER_ENTRY PM_INIT                          
  67.     TRANSFER_ENTRY PM_KEYMATCH                      
  68.     TRANSFER_ENTRY PM_MAXVALTOBITS                  
  69.     TRANSFER_ENTRY PM_MESSAGE
  70.     TRANSFER_ENTRY PM_OPENR                         
  71.     TRANSFER_ENTRY PM_OPENW                         
  72.     TRANSFER_ENTRY PM_PERROR                        
  73.     TRANSFER_ENTRY PM_READBIGLONG
  74.     TRANSFER_ENTRY PM_READBIGSHORT                  
  75.     TRANSFER_ENTRY PM_READLITTLELONG                
  76.     TRANSFER_ENTRY PM_READLITTLESHORT               
  77.     TRANSFER_ENTRY PM_USAGE
  78.     TRANSFER_ENTRY PM_WRITEBIGLONG                  
  79.     TRANSFER_ENTRY PM_WRITEBIGSHORT                 
  80.     TRANSFER_ENTRY PM_WRITELITTLELONG               
  81.     TRANSFER_ENTRY PM_WRITELITTLESHORT
  82.     TRANSFER_ENTRY PM_READ_UNKNOWN_SIZE
  83.  
  84. ;Module LIBPBM2
  85.     TRANSFER_ENTRY PBM_READMAGICNUMBER              
  86.     TRANSFER_ENTRY PBM_READPBM                      
  87.     TRANSFER_ENTRY PBM_READPBMINIT                  
  88.     TRANSFER_ENTRY PBM_READPBMINITREST
  89.     TRANSFER_ENTRY PBM_READPBMROW
  90.  
  91. ;Module LIBPBM3
  92.     TRANSFER_ENTRY PBM_WRITEPBM                     
  93.     TRANSFER_ENTRY PBM_WRITEPBMINIT                 
  94.     TRANSFER_ENTRY PBM_WRITEPBMROW
  95.  
  96. ;Module LIBPBM4
  97.     TRANSFER_ENTRY PBM_GETC                         
  98.     TRANSFER_ENTRY PBM_GETINT                       
  99.     TRANSFER_ENTRY PBM_GETRAWBYTE
  100.  
  101. ;Module LIBPBM5
  102.     TRANSFER_ENTRY PBM_DEFAULTFONT                  
  103.     TRANSFER_ENTRY PBM_DISSECTFONT                  
  104.     TRANSFER_ENTRY PBM_DUMPFONT
  105.     TRANSFER_ENTRY PBM_LOADFONT
  106.     TRANSFER_ENTRY PBM_LOADBDFFONT
  107.     TRANSFER_ENTRY MK_ARGVN
  108. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  109. ;Library LIBPGM
  110. ;Module LIBPGM1
  111.     TRANSFER_ENTRY PGM_INIT                         
  112.     TRANSFER_ENTRY PGM_READPGM                      
  113.     TRANSFER_ENTRY PGM_READPGMINIT                  
  114.     TRANSFER_ENTRY PGM_READPGMINITREST
  115.     TRANSFER_ENTRY PGM_READPGMROW
  116.  
  117. ;Module LIBPGM2
  118.     TRANSFER_ENTRY PGM_WRITEPGM                     
  119.     TRANSFER_ENTRY PGM_WRITEPGMINIT                 
  120.     TRANSFER_ENTRY PGM_WRITEPGMROW
  121.  
  122. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  123. ; Library LIBPPM
  124. ;
  125. ;Module LIBPPM1
  126.     TRANSFER_ENTRY PPM_INIT                         
  127.     TRANSFER_ENTRY PPM_READPPM                      
  128.     TRANSFER_ENTRY PPM_READPPMINIT                  
  129.     TRANSFER_ENTRY PPM_READPPMINITREST
  130.     TRANSFER_ENTRY PPM_READPPMROW
  131.  
  132. ;Module LIBPPM2
  133.     TRANSFER_ENTRY PPM_WRITEPPM                     
  134.     TRANSFER_ENTRY PPM_WRITEPPMINIT                 
  135.     TRANSFER_ENTRY PPM_WRITEPPMROW
  136.  
  137. ;Module LIBPPM3
  138.     TRANSFER_ENTRY PPM_ADDTOCOLORHASH               
  139.     TRANSFER_ENTRY PPM_ADDTOCOLORHIST               
  140.     TRANSFER_ENTRY PPM_ALLOCCOLORHASH               
  141.     TRANSFER_ENTRY PPM_COLORHASHTOCOLORHIST
  142.     TRANSFER_ENTRY PPM_COLORHISTTOCOLORHASH         
  143.     TRANSFER_ENTRY PPM_COMPUTECOLORHASH             
  144.     TRANSFER_ENTRY PPM_COMPUTECOLORHIST             
  145.     TRANSFER_ENTRY PPM_FREECOLORHASH
  146.     TRANSFER_ENTRY PPM_FREECOLORHIST                
  147.     TRANSFER_ENTRY PPM_LOOKUPCOLOR
  148.  
  149. ;Module LIBPPM4
  150.     TRANSFER_ENTRY PPM_COLORNAME                    
  151.     TRANSFER_ENTRY PPM_PARSECOLOR
  152.  
  153. ;Module LIBPPM5
  154.     TRANSFER_ENTRY PPMD_CIRCLE                      
  155.     TRANSFER_ENTRY PPMD_FILL                        
  156.     TRANSFER_ENTRY PPMD_FILLEDRECTANGLE             
  157.     TRANSFER_ENTRY PPMD_FILL_DRAWPROC
  158.     TRANSFER_ENTRY PPMD_FILL_INIT                   
  159.     TRANSFER_ENTRY PPMD_LINE                        
  160.     TRANSFER_ENTRY PPMD_POINT_DRAWPROC              
  161.     TRANSFER_ENTRY PPMD_POLYSPLINE
  162.     TRANSFER_ENTRY PPMD_SETLINECLIP                 
  163.     TRANSFER_ENTRY PPMD_SETLINETYPE                 
  164.     TRANSFER_ENTRY PPMD_SPLINE3
  165.  
  166. ;Module BITIO
  167.     TRANSFER_ENTRY PM_BITINIT
  168.     TRANSFER_ENTRY PM_BITFINI
  169.     TRANSFER_ENTRY PM_BITREAD
  170.     TRANSFER_ENTRY PM_BITWRITE
  171.  
  172. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  173. ; Library LIBPNM
  174. ;Module LIBPNM1
  175.     TRANSFER_ENTRY PNM_INIT                         
  176.     TRANSFER_ENTRY PNM_READPNM                      
  177.     TRANSFER_ENTRY PNM_READPNMINIT                  
  178.     TRANSFER_ENTRY PNM_READPNMROW
  179.  
  180. ;Module LIBPNM2
  181.     TRANSFER_ENTRY PNM_WRITEPNM                     
  182.     TRANSFER_ENTRY PNM_WRITEPNMINIT                 
  183.     TRANSFER_ENTRY PNM_WRITEPNMROW
  184.  
  185. ;Module LIBPNM3
  186.     TRANSFER_ENTRY PNM_BACKGROUNDXEL                
  187.     TRANSFER_ENTRY PNM_BACKGROUNDXELROW             
  188.     TRANSFER_ENTRY PNM_BLACKXEL                     
  189.     TRANSFER_ENTRY PNM_INVERTXEL
  190.     TRANSFER_ENTRY PNM_PROMOTEFORMAT                
  191.     TRANSFER_ENTRY PNM_PROMOTEFORMATROW             
  192.     TRANSFER_ENTRY PNM_WHITEXEL
  193.  
  194. ;Module LIBPNM4
  195.     TRANSFER_ENTRY MEM_CREATE                       
  196.     TRANSFER_ENTRY MEM_FREE                         
  197.     TRANSFER_ENTRY PR_DUMP                          
  198.     TRANSFER_ENTRY PR_LOAD_COLORMAP
  199.     TRANSFER_ENTRY PR_LOAD_HEADER                   
  200.     TRANSFER_ENTRY PR_LOAD_IMAGE
  201. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  202.  
  203. ;    allocate extra space to allow for code modifications without changing 
  204. ;    the size of the shared image.
  205. ;
  206.     .BLKB 2048-<.-TRANSFER_VECTOR>    ; Reserve 4 pages.
  207. ;
  208.     .END
  209.  
  210. $ TRANSVEC_DONE:
  211. $!
  212. $!   Create new options file if needed.
  213. $!
  214. $ if f$search("PBMPLUSSHR.OPT") .EQS. "" THEN GOTO NEW_OPTFILE
  215. $ if f$cvtime(f$file("PBMPLUSSHR.OPT","CDT")) .GTS. PROC_CDT THEN GOTO OPTFILE_DONE
  216. $ NEW_OPTFILE:
  217. $ instruct = 1
  218. $ write sys$output "Making new pbmplusshr.opt..."
  219. $ CREATE PBMPLUSSHR.OPT
  220. PBMplusShr /Share
  221. Sys$Share:VAXCRTL /Share
  222. PSECT_ATTR = ARGPROC_VERSION,GBL,NOSHR
  223. PSECT_ATTR = OPTARG,GBL,NOSHR
  224. PSECT_ATTR = OPTERR,GBL,NOSHR
  225. PSECT_ATTR = OPTIND,GBL,NOSHR
  226. PSECT_ATTR = OPTOPT,GBL,NOSHR
  227. PSECT_ATTR = PGM_PBMMAXVAL,GBL,NOSHR
  228. PSECT_ATTR = PNM_PBMMAXVAL,GBL,NOSHR
  229. PSECT_ATTR = PPM_PBMMAXVAL,GBL,NOSHR
  230. $!
  231. $ OPTFILE_DONE:
  232. $!
  233. $ if f$search("PBMPLUSSHR.EXE") .EQS. "" THEN GOTO NEW_SHAREABLE
  234. $ EXE_CDT = f$cvtime(f$file_attributes("PBMPLUSSHR.EXE","CDT"))
  235. $ if EXE_CDT .LTS. PROC_CDT THEN GOTO NEW_SHAREABLE
  236. $ if f$cvtime(f$file("[.PBM]LIBPBM.OLB","RDT")) .GTS. EXE_CDT THEN GOTO NEW_SHAREABLE
  237. $ if f$cvtime(f$file("[.PGM]LIBPGM.OLB","RDT")) .GTS. EXE_CDT THEN GOTO NEW_SHAREABLE
  238. $ if f$cvtime(f$file("[.PPM]LIBPPM.OLB","RDT")) .GTS. EXE_CDT THEN GOTO NEW_SHAREABLE
  239. $ if f$cvtime(f$file("[.PNM]LIBPNM.OLB","RDT")) .GTS. EXE_CDT THEN GOTO NEW_SHAREABLE
  240. $ GOTO SHAREABLE_DONE
  241. $ NEW_SHAREABLE:
  242. $ instruct = 1
  243. $ write sys$output "Making new pbmplusshr.exe..."
  244. $ Link /Map = PBMPLUSHSR.MAP /Share = SYS$DISK:[]PBMPLUSSHR.EXE Sys$Input/Option
  245. COLLECT=FIRST,PBMPLUS_XVEC
  246. COLLECT=GLOBALS1,PGM_PBMMAXVAL,PNM_PBMMAXVAL,PPM_PBMMAXVAL
  247. COLLECT=GLOBALS2,ARGPROC_VERSION,OPTARG,OPTERR,OPTIND,OPTOPT
  248.  
  249. TRANSVEC.OBJ
  250. [.PBM]LIBPBM/LIB,[.PGM]LIBPGM/LIB,[.PPM]LIBPPM/LIB
  251. [.PNM]LIBPNM/LIB,SYS$SHARE:VAXCRTL/SHARE
  252.  
  253.  
  254. UNSUPPORTED = 1            ! force demand zero pages
  255. GSMATCH=LEQUAL,2,1        ! Major ID = 2, minor ID = 2
  256.  
  257. PSECT_ATTR = ARGPROC_VERSION,NOSHR
  258. PSECT_ATTR = OPTARG,NOSHR
  259. PSECT_ATTR = OPTERR,NOSHR
  260. PSECT_ATTR = OPTIND,NOSHR
  261. PSECT_ATTR = OPTOPT,NOSHR
  262. PSECT_ATTR = PGM_PBMMAXVAL,NOSHR
  263. PSECT_ATTR = PNM_PBMMAXVAL,NOSHR
  264. PSECT_ATTR = PPM_PBMMAXVAL,NOSHR
  265. !PSECT_ATTR = ,LCL,NOSHR
  266. $!
  267. $ SHAREABLE_DONE:
  268. $ if .NOT. instruct then write sys$output "All PBMPLUSSHR files up to date."
  269. $ if .NOT. instruct then exit $status
  270. $ create sys$output
  271.  
  272.     Define the logical name PBMPLUSSHR as "disk:[dir]PBMPLUSSHR", where
  273.     disk and [dir] are the disk and directory containing the
  274.     shareable image PBMPLUSSHR.EXE and linker options file PBMPLUSSHR.OPT.
  275.  
  276.     You can then link an executable against the image with the command
  277.  
  278.         LINK program.OBJ,PBMplusShr/Option
  279.  
  280. $ exit $status
  281.