| 1 | /******************************************************************************/ | 
 
 
 
 
 | 2 | /*                                                                            */ | 
 
 
 
 
 | 3 | /*  ZLIB                                                                      */ | 
 
 
 
 
 | 4 | /*                                                                            */ | 
 
 
 
 
 | 5 | /*    Compile sources into modules and link them into a service program.      */ | 
 
 
 
 
 | 6 | /*                                                                            */ | 
 
 
 
 
 | 7 | /******************************************************************************/ | 
 
 
 
 
 | 8 |  | 
 
 
 
 
 | 9 | PGM | 
 
 
 
 
 | 10 |  | 
 
 
 
 
 | 11 | /*      Configuration adjustable parameters.                                  */ | 
 
 
 
 
 | 12 |  | 
 
 
 
 
 | 13 | DCL        VAR(&SRCLIB) TYPE(*CHAR) LEN(10) + | 
 
 
 
 
 | 14 | VALUE('ZLIB')                         /* Source library. */ | 
 
 
 
 
 | 15 | DCL        VAR(&SRCFILE) TYPE(*CHAR) LEN(10) + | 
 
 
 
 
 | 16 | VALUE('SOURCES')                      /* Source member file. */ | 
 
 
 
 
 | 17 | DCL        VAR(&CTLFILE) TYPE(*CHAR) LEN(10) + | 
 
 
 
 
 | 18 | VALUE('TOOLS')                        /* Control member file. */ | 
 
 
 
 
 | 19 |  | 
 
 
 
 
 | 20 | DCL        VAR(&MODLIB) TYPE(*CHAR) LEN(10) + | 
 
 
 
 
 | 21 | VALUE('ZLIB')                         /* Module library. */ | 
 
 
 
 
 | 22 |  | 
 
 
 
 
 | 23 | DCL        VAR(&SRVLIB) TYPE(*CHAR) LEN(10) + | 
 
 
 
 
 | 24 | VALUE('LGPL')                         /* Service program library. */ | 
 
 
 
 
 | 25 |  | 
 
 
 
 
 | 26 | DCL        VAR(&CFLAGS) TYPE(*CHAR) + | 
 
 
 
 
 | 27 | VALUE('OPTIMIZE(40)')                 /* Compile options. */ | 
 
 
 
 
 | 28 |  | 
 
 
 
 
 | 29 | DCL        VAR(&TGTRLS) TYPE(*CHAR) + | 
 
 
 
 
 | 30 | VALUE('V5R3M0')                       /* Target release. */ | 
 
 
 
 
 | 31 |  | 
 
 
 
 
 | 32 |  | 
 
 
 
 
 | 33 | /*      Working storage.                                                      */ | 
 
 
 
 
 | 34 |  | 
 
 
 
 
 | 35 | DCL        VAR(&CMDLEN) TYPE(*DEC) LEN(15 5) VALUE(300)    /* Command length. */ | 
 
 
 
 
 | 36 | DCL        VAR(&CMD) TYPE(*CHAR) LEN(512) | 
 
 
 
 
 | 37 | DCL        VAR(&FIXDCMD) TYPE(*CHAR) LEN(512) | 
 
 
 
 
 | 38 |  | 
 
 
 
 
 | 39 |  | 
 
 
 
 
 | 40 | /*      Compile sources into modules.                                         */ | 
 
 
 
 
 | 41 |  | 
 
 
 
 
 | 42 | CHGVAR     VAR(&FIXDCMD) VALUE('CRTCMOD' *BCAT &CFLAGS *BCAT      + | 
 
 
 
 
 | 43 | 'SYSIFCOPT(*IFS64IO)' *BCAT                            + | 
 
 
 
 
 | 44 | 'DEFINE(''_LARGEFILE64_SOURCE''' *BCAT                 + | 
 
 
 
 
 | 45 | '''_LFS64_LARGEFILE=1'') TGTRLS(' *TCAT &TGTRLS *TCAT  + | 
 
 
 
 
 | 46 | ') SRCFILE(' *TCAT &SRCLIB *TCAT '/' *TCAT             + | 
 
 
 
 
 | 47 | &SRCFILE *TCAT ') MODULE(' *TCAT &MODLIB *TCAT '/') | 
 
 
 
 
 | 48 |  | 
 
 
 
 
 | 49 |  | 
 
 
 
 
 | 50 | CHGVAR     VAR(&CMD) VALUE(&FIXDCMD *TCAT 'ADLER32)') | 
 
 
 
 
 | 51 | CALL       PGM(QCMDEXC) PARM(&CMD &CMDLEN) | 
 
 
 
 
 | 52 |  | 
 
 
 
 
 | 53 | CHGVAR     VAR(&CMD) VALUE(&FIXDCMD *TCAT 'COMPRESS)') | 
 
 
 
 
 | 54 | CALL       PGM(QCMDEXC) PARM(&CMD &CMDLEN) | 
 
 
 
 
 | 55 |  | 
 
 
 
 
 | 56 | CHGVAR     VAR(&CMD) VALUE(&FIXDCMD *TCAT 'CRC32)') | 
 
 
 
 
 | 57 | CALL       PGM(QCMDEXC) PARM(&CMD &CMDLEN) | 
 
 
 
 
 | 58 |  | 
 
 
 
 
 | 59 | CHGVAR     VAR(&CMD) VALUE(&FIXDCMD *TCAT 'DEFLATE)') | 
 
 
 
 
 | 60 | CALL       PGM(QCMDEXC) PARM(&CMD &CMDLEN) | 
 
 
 
 
 | 61 |  | 
 
 
 
 
 | 62 | CHGVAR     VAR(&CMD) VALUE(&FIXDCMD *TCAT 'GZCLOSE)') | 
 
 
 
 
 | 63 | CALL       PGM(QCMDEXC) PARM(&CMD &CMDLEN) | 
 
 
 
 
 | 64 |  | 
 
 
 
 
 | 65 | CHGVAR     VAR(&CMD) VALUE(&FIXDCMD *TCAT 'GZLIB)') | 
 
 
 
 
 | 66 | CALL       PGM(QCMDEXC) PARM(&CMD &CMDLEN) | 
 
 
 
 
 | 67 |  | 
 
 
 
 
 | 68 | CHGVAR     VAR(&CMD) VALUE(&FIXDCMD *TCAT 'GZREAD)') | 
 
 
 
 
 | 69 | CALL       PGM(QCMDEXC) PARM(&CMD &CMDLEN) | 
 
 
 
 
 | 70 |  | 
 
 
 
 
 | 71 | CHGVAR     VAR(&CMD) VALUE(&FIXDCMD *TCAT 'GZWRITE)') | 
 
 
 
 
 | 72 | CALL       PGM(QCMDEXC) PARM(&CMD &CMDLEN) | 
 
 
 
 
 | 73 |  | 
 
 
 
 
 | 74 | CHGVAR     VAR(&CMD) VALUE(&FIXDCMD *TCAT 'INFBACK)') | 
 
 
 
 
 | 75 | CALL       PGM(QCMDEXC) PARM(&CMD &CMDLEN) | 
 
 
 
 
 | 76 |  | 
 
 
 
 
 | 77 | CHGVAR     VAR(&CMD) VALUE(&FIXDCMD *TCAT 'INFFAST)') | 
 
 
 
 
 | 78 | CALL       PGM(QCMDEXC) PARM(&CMD &CMDLEN) | 
 
 
 
 
 | 79 |  | 
 
 
 
 
 | 80 | CHGVAR     VAR(&CMD) VALUE(&FIXDCMD *TCAT 'INFLATE)') | 
 
 
 
 
 | 81 | CALL       PGM(QCMDEXC) PARM(&CMD &CMDLEN) | 
 
 
 
 
 | 82 |  | 
 
 
 
 
 | 83 | CHGVAR     VAR(&CMD) VALUE(&FIXDCMD *TCAT 'INFTREES)') | 
 
 
 
 
 | 84 | CALL       PGM(QCMDEXC) PARM(&CMD &CMDLEN) | 
 
 
 
 
 | 85 |  | 
 
 
 
 
 | 86 | CHGVAR     VAR(&CMD) VALUE(&FIXDCMD *TCAT 'TREES)') | 
 
 
 
 
 | 87 | CALL       PGM(QCMDEXC) PARM(&CMD &CMDLEN) | 
 
 
 
 
 | 88 |  | 
 
 
 
 
 | 89 | CHGVAR     VAR(&CMD) VALUE(&FIXDCMD *TCAT 'UNCOMPR)') | 
 
 
 
 
 | 90 | CALL       PGM(QCMDEXC) PARM(&CMD &CMDLEN) | 
 
 
 
 
 | 91 |  | 
 
 
 
 
 | 92 | CHGVAR     VAR(&CMD) VALUE(&FIXDCMD *TCAT 'ZUTIL)') | 
 
 
 
 
 | 93 | CALL       PGM(QCMDEXC) PARM(&CMD &CMDLEN) | 
 
 
 
 
 | 94 |  | 
 
 
 
 
 | 95 |  | 
 
 
 
 
 | 96 | /*      Link modules into a service program.                                  */ | 
 
 
 
 
 | 97 |  | 
 
 
 
 
 | 98 | CRTSRVPGM  SRVPGM(&SRVLIB/ZLIB) + | 
 
 
 
 
 | 99 | MODULE(&MODLIB/ADLER32     &MODLIB/COMPRESS    + | 
 
 
 
 
 | 100 | &MODLIB/CRC32       &MODLIB/DEFLATE     + | 
 
 
 
 
 | 101 | &MODLIB/GZCLOSE     &MODLIB/GZLIB       + | 
 
 
 
 
 | 102 | &MODLIB/GZREAD      &MODLIB/GZWRITE     + | 
 
 
 
 
 | 103 | &MODLIB/INFBACK     &MODLIB/INFFAST     + | 
 
 
 
 
 | 104 | &MODLIB/INFLATE     &MODLIB/INFTREES    + | 
 
 
 
 
 | 105 | &MODLIB/TREES       &MODLIB/UNCOMPR     + | 
 
 
 
 
 | 106 | &MODLIB/ZUTIL)                          + | 
 
 
 
 
 | 107 | SRCFILE(&SRCLIB/&CTLFILE) SRCMBR(BNDSRC)       + | 
 
 
 
 
 | 108 | TEXT('ZLIB 1.2.8') TGTRLS(&TGTRLS) | 
 
 
 
 
 | 109 |  | 
 
 
 
 
 | 110 | ENDPGM |