[pcre-dev] Some requests for the PCRE for z/OS

Top Page
Delete this message
Author: Ze'ev Atlas
Date:  
To: pcre exim
Subject: [pcre-dev] Some requests for the PCRE for z/OS
Hello all
The PCRE for z/OS port is now complete in beta release 0.1b

I decided to manage the download files myself rather then having the file on the contrib directory.  Philip, Please remove the file from the directory (also the current file does not contain the correct documentation).  Instead please add this URL:  http://www.vsoft-software.com/downloads.html (The download file is in the bottom of the page) to the README.

I would like to suggest that the port should also be mentioned in the NON-AUTOTOOLS-BUILD document as the port is certainly a full build of PCRE and it is also definitely non-autotool-build.  Let me suggest this write-up:
-------------------------------------------------------------------------

BUILDING PCRE ON z/OS (IBM Mainfram)

_________________________________
These notes on the port of PCRE to z/OS were supplied by Ze'ev Atlas, whose email address has the local part zatlas1 and the domain yahoo.com. The port was for version 8.31 in November 2012.  The port is currently maintained and is downloadable in http://www.vsoft-software.com/downloads.html.

Installing PCRE
The port is done by automatic process and involved some source changes, generating binder parameters and JCL scripts.  All the products of the port process are provided in text files:
1. LICENSE      - license file
2. ADDJCL.JCL   - JCL to load the JCL, ADDMEM and LICENSE
3. ADDMEM.REX   - a Rexx utility to load VB members to VB source library
4. zos.jcl.txt  - the supplied installation JCL
5. zos.load.txt - the supplied source code
6. zos.lked.txt - the supplied Binder parameters
7. zos.test.txt - the supplied test suite
8. zos.cob.txt  - the supplied COBOL components
9. pcre_native_zOS_port.Vn.nx.txt - documentation file

Step 1: create libraries:
Use your own high level qualifier instead of HLQ to create these libraries, using ISPF 3.2
HLQ.PCRE.CNTLLIB - regular source library - LRECL=80,RECFM=FB
HLQ.PCRE.JCLLIB  - regular source library - LRECL=80,RECFM=FB; caps off
HLQ.PCRE.LOADLIB - load module library, must be a PDSE - BLKSIZE=27998,RECFM=U
HLQ.PCRE.SRCE    - source library - but LRECL=255,RECFM=VB; caps off
HLQ.PCRE.TESTLIB - source library - but LRECL=4014,RECFM=VB; caps off
HLQ.PCRE.COB     - regular source library - LRECL=80,RECFM=FB; caps off
Optional HLQ.PCRE.SYSOUT  - a library to store test results - LRECL=133,RECFM=FBA

Step 2: Load files
Load all files starting with zos and addmem.rex to the mainframe.  My convention, reflected in the JCL, is to drop the txt suffix, so, for example, zos.jcl.txt will become HLQ.ZOS.JCL.
Important: 
addmem.rex, addjcl.jcl, zos.jcl.txt, zos.cob.txt and zos.lked.txt should be uploaded with attributes LRECL 80, FB; 
zos.load.txt should to be uploaded with attributes LRECL 255, VB;
zos.test.txt should be uploaded with attributes LRECL 4014, VB;

Step 3: Load the libraries
1. Use the ADDJCL.JCL IEBUPDTE job in this package to load the HLQ.ZOS.JCL to    the HLQ.PCRE.JCLLIB and the HLQ.ADDMEM.REX to the HLQ.PCRE.CNTLLIB.
2. Adjust the various JCL to point to the above libraries.  The JCL members    contain // SET statements after the JOB statement.  Locate those that deal    with the high level qualifiers and change them to your own.
3. Run HLQ.PCRE.JCLLIB(ADDMEM) to load load zos.load & zos.lked into    HLQ.PCRE.SRCE & HLQ.PCRE.CNTLLIB respectively.  Loading zos.load is pretty    slow process.
4. Run HLQ.PCRE.JCLLIB(ADDTEST) to load zos.test into HLQ.PCRE.TESTLIB.
5. Run HLQ.PCRE.JCLLIB(ADDCOB) to load zos.cob into HLQ.PCRE.COB.

Step 4: Build PCRE
1. Run HLQ.PCRE.JCLLIB(DFTABLES) to compile link and run DFTABLES and generate your own HLQ.PCRE.SRCE(CHARTAB8)
2. Run HLQ.PCRE.JCLLIB(COMPCRE) to compile and link the whole package.
3. Run HLQ.PCRE.JCLLIB(COBCL) to compile and link the PCOBDEMO, COBOL demo program.
4. You may now modify and run HLQ.PCRE.JCLLIB(TESTPCRE) to see test results.
   Please do not use any run option except of -q for now.  Similarly, you may run HLQ.PCRE.JCLLIB(TESTPCOB) and HLQ.PCRE.JCLLIB(TESTDEMO), to see demo results in both COBOL and C.

Usage note: Use HLQ.PCRE.LOADLIB in the binder's //SYSLIB DD and when necessary in runtime //STEPLIB DD.  Compiling C modules requires adding HLQ.PCRE.SRCE in the //USERLIB DD.  Compiling COBOL modules requires adding HLQ.PCRE.COB in the //SYSLIB DD.

Please refer to the documentation for the new function names (adhering to z/OS limitations of 8 alphanumeric uppercase characters and other considerations.

-------------------------------------------------------
 
Ze'ev Atlas