summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Adler <madler@alumni.caltech.edu>2016-12-30 19:48:07 -0800
committerMark Adler <madler@alumni.caltech.edu>2016-12-30 20:00:57 -0800
commitd46546544a1ec20671c7e5a9135ad7c6e83bb927 (patch)
tree1a53b5523d77adb3e27a5bb3f09afe9f4e448b9a
parentf12d3dc367e51bcefba80217c645fa5de05e699c (diff)
downloadzlib-d46546544a1ec20671c7e5a9135ad7c6e83bb927.tar.gz
zlib-d46546544a1ec20671c7e5a9135ad7c6e83bb927.tar.bz2
zlib-d46546544a1ec20671c7e5a9135ad7c6e83bb927.zip
Replace as400 with os400 for OS/400 support (Monnerat).
-rw-r--r--as400/bndsrc215
-rw-r--r--as400/compile.clp110
-rw-r--r--as400/readme.txt115
-rw-r--r--os400/README40048
-rw-r--r--os400/bndsrc100
-rw-r--r--os400/make.sh366
-rw-r--r--os400/zlib.inc (renamed from as400/zlib.inc)8
7 files changed, 518 insertions, 444 deletions
diff --git a/as400/bndsrc b/as400/bndsrc
deleted file mode 100644
index 98814fd..0000000
--- a/as400/bndsrc
+++ /dev/null
@@ -1,215 +0,0 @@
1STRPGMEXP PGMLVL(*CURRENT) SIGNATURE('ZLIB')
2
3/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
4/* Version 1.1.3 entry points. */
5/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
6
7/********************************************************************/
8/* *MODULE ADLER32 ZLIB 01/02/01 00:15:09 */
9/********************************************************************/
10
11 EXPORT SYMBOL("adler32")
12
13/********************************************************************/
14/* *MODULE COMPRESS ZLIB 01/02/01 00:15:09 */
15/********************************************************************/
16
17 EXPORT SYMBOL("compress")
18 EXPORT SYMBOL("compress2")
19
20/********************************************************************/
21/* *MODULE CRC32 ZLIB 01/02/01 00:15:09 */
22/********************************************************************/
23
24 EXPORT SYMBOL("crc32")
25 EXPORT SYMBOL("get_crc_table")
26
27/********************************************************************/
28/* *MODULE DEFLATE ZLIB 01/02/01 00:15:09 */
29/********************************************************************/
30
31 EXPORT SYMBOL("deflate")
32 EXPORT SYMBOL("deflateEnd")
33 EXPORT SYMBOL("deflateSetDictionary")
34 EXPORT SYMBOL("deflateCopy")
35 EXPORT SYMBOL("deflateReset")
36 EXPORT SYMBOL("deflateParams")
37 EXPORT SYMBOL("deflatePrime")
38 EXPORT SYMBOL("deflateInit_")
39 EXPORT SYMBOL("deflateInit2_")
40
41/********************************************************************/
42/* *MODULE GZIO ZLIB 01/02/01 00:15:09 */
43/********************************************************************/
44
45 EXPORT SYMBOL("gzopen")
46 EXPORT SYMBOL("gzdopen")
47 EXPORT SYMBOL("gzsetparams")
48 EXPORT SYMBOL("gzread")
49 EXPORT SYMBOL("gzwrite")
50 EXPORT SYMBOL("gzprintf")
51 EXPORT SYMBOL("gzputs")
52 EXPORT SYMBOL("gzgets")
53 EXPORT SYMBOL("gzputc")
54 EXPORT SYMBOL("gzgetc")
55 EXPORT SYMBOL("gzflush")
56 EXPORT SYMBOL("gzseek")
57 EXPORT SYMBOL("gzrewind")
58 EXPORT SYMBOL("gztell")
59 EXPORT SYMBOL("gzeof")
60 EXPORT SYMBOL("gzclose")
61 EXPORT SYMBOL("gzerror")
62
63/********************************************************************/
64/* *MODULE INFLATE ZLIB 01/02/01 00:15:09 */
65/********************************************************************/
66
67 EXPORT SYMBOL("inflate")
68 EXPORT SYMBOL("inflateEnd")
69 EXPORT SYMBOL("inflateSetDictionary")
70 EXPORT SYMBOL("inflateSync")
71 EXPORT SYMBOL("inflateReset")
72 EXPORT SYMBOL("inflateInit_")
73 EXPORT SYMBOL("inflateInit2_")
74 EXPORT SYMBOL("inflateSyncPoint")
75
76/********************************************************************/
77/* *MODULE UNCOMPR ZLIB 01/02/01 00:15:09 */
78/********************************************************************/
79
80 EXPORT SYMBOL("uncompress")
81
82/********************************************************************/
83/* *MODULE ZUTIL ZLIB 01/02/01 00:15:09 */
84/********************************************************************/
85
86 EXPORT SYMBOL("zlibVersion")
87 EXPORT SYMBOL("zError")
88
89/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
90/* Version 1.2.1 additional entry points. */
91/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
92
93/********************************************************************/
94/* *MODULE COMPRESS ZLIB 01/02/01 00:15:09 */
95/********************************************************************/
96
97 EXPORT SYMBOL("compressBound")
98
99/********************************************************************/
100/* *MODULE DEFLATE ZLIB 01/02/01 00:15:09 */
101/********************************************************************/
102
103 EXPORT SYMBOL("deflateBound")
104
105/********************************************************************/
106/* *MODULE GZIO ZLIB 01/02/01 00:15:09 */
107/********************************************************************/
108
109 EXPORT SYMBOL("gzungetc")
110 EXPORT SYMBOL("gzclearerr")
111
112/********************************************************************/
113/* *MODULE INFBACK ZLIB 01/02/01 00:15:09 */
114/********************************************************************/
115
116 EXPORT SYMBOL("inflateBack")
117 EXPORT SYMBOL("inflateBackEnd")
118 EXPORT SYMBOL("inflateBackInit_")
119
120/********************************************************************/
121/* *MODULE INFLATE ZLIB 01/02/01 00:15:09 */
122/********************************************************************/
123
124 EXPORT SYMBOL("inflateCopy")
125
126/********************************************************************/
127/* *MODULE ZUTIL ZLIB 01/02/01 00:15:09 */
128/********************************************************************/
129
130 EXPORT SYMBOL("zlibCompileFlags")
131
132/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
133/* Version 1.2.5 additional entry points. */
134/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
135
136/********************************************************************/
137/* *MODULE ADLER32 ZLIB 01/02/01 00:15:09 */
138/********************************************************************/
139
140 EXPORT SYMBOL("adler32_combine")
141 EXPORT SYMBOL("adler32_combine64")
142
143/********************************************************************/
144/* *MODULE CRC32 ZLIB 01/02/01 00:15:09 */
145/********************************************************************/
146
147 EXPORT SYMBOL("crc32_combine")
148 EXPORT SYMBOL("crc32_combine64")
149
150/********************************************************************/
151/* *MODULE GZLIB ZLIB 01/02/01 00:15:09 */
152/********************************************************************/
153
154 EXPORT SYMBOL("gzbuffer")
155 EXPORT SYMBOL("gzoffset")
156 EXPORT SYMBOL("gzoffset64")
157 EXPORT SYMBOL("gzopen64")
158 EXPORT SYMBOL("gzseek64")
159 EXPORT SYMBOL("gztell64")
160
161/********************************************************************/
162/* *MODULE GZREAD ZLIB 01/02/01 00:15:09 */
163/********************************************************************/
164
165 EXPORT SYMBOL("gzclose_r")
166
167/********************************************************************/
168/* *MODULE GZWRITE ZLIB 01/02/01 00:15:09 */
169/********************************************************************/
170
171 EXPORT SYMBOL("gzclose_w")
172
173/********************************************************************/
174/* *MODULE INFLATE ZLIB 01/02/01 00:15:09 */
175/********************************************************************/
176
177 EXPORT SYMBOL("inflateMark")
178 EXPORT SYMBOL("inflatePrime")
179 EXPORT SYMBOL("inflateReset2")
180 EXPORT SYMBOL("inflateUndermine")
181
182/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
183/* Version 1.2.6 additional entry points. */
184/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
185
186/********************************************************************/
187/* *MODULE DEFLATE ZLIB 01/02/01 00:15:09 */
188/********************************************************************/
189
190 EXPORT SYMBOL("deflateResetKeep")
191 EXPORT SYMBOL("deflatePending")
192
193/********************************************************************/
194/* *MODULE GZWRITE ZLIB 01/02/01 00:15:09 */
195/********************************************************************/
196
197 EXPORT SYMBOL("gzgetc_")
198
199/********************************************************************/
200/* *MODULE INFLATE ZLIB 01/02/01 00:15:09 */
201/********************************************************************/
202
203 EXPORT SYMBOL("inflateResetKeep")
204
205/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
206/* Version 1.2.8 additional entry points. */
207/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
208
209/********************************************************************/
210/* *MODULE INFLATE ZLIB 01/02/01 00:15:09 */
211/********************************************************************/
212
213 EXPORT SYMBOL("inflateGetDictionary")
214
215ENDPGMEXP
diff --git a/as400/compile.clp b/as400/compile.clp
deleted file mode 100644
index 83478d0..0000000
--- a/as400/compile.clp
+++ /dev/null
@@ -1,110 +0,0 @@
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.1') TGTRLS(&TGTRLS)
109
110 ENDPGM
diff --git a/as400/readme.txt b/as400/readme.txt
deleted file mode 100644
index 77a1720..0000000
--- a/as400/readme.txt
+++ /dev/null
@@ -1,115 +0,0 @@
1 ZLIB version 1.2.8.1 for AS400 installation instructions
2
3I) From an AS400 *SAVF file:
4
51) Unpacking archive to an AS400 save file
6
7On the AS400:
8
9_ Create the ZLIB AS400 library:
10
11 CRTLIB LIB(ZLIB) TYPE(*PROD) TEXT('ZLIB compression API library')
12
13_ Create a work save file, for example:
14
15 CRTSAVF FILE(ZLIB/ZLIBSAVF)
16
17On a PC connected to the target AS400:
18
19_ Unpack the save file image to a PC file "ZLIBSAVF"
20_ Upload this file into the save file on the AS400, for example
21 using ftp in BINARY mode.
22
23
242) Populating the ZLIB AS400 source library
25
26On the AS400:
27
28_ Extract the saved objects into the ZLIB AS400 library using:
29
30RSTOBJ OBJ(*ALL) SAVLIB(ZLIB) DEV(*SAVF) SAVF(ZLIB/ZLIBSAVF) RSTLIB(ZLIB)
31
32
333) Customize installation:
34
35_ Edit CL member ZLIB/TOOLS(COMPILE) and change parameters if needed,
36 according to the comments.
37
38_ Compile this member with:
39
40 CRTCLPGM PGM(ZLIB/COMPILE) SRCFILE(ZLIB/TOOLS) SRCMBR(COMPILE)
41
42
434) Compile and generate the service program:
44
45_ This can now be done by executing:
46
47 CALL PGM(ZLIB/COMPILE)
48
49
50
51II) From the original source distribution:
52
531) On the AS400, create the source library:
54
55 CRTLIB LIB(ZLIB) TYPE(*PROD) TEXT('ZLIB compression API library')
56
572) Create the source files:
58
59 CRTSRCPF FILE(ZLIB/SOURCES) RCDLEN(112) TEXT('ZLIB library modules')
60 CRTSRCPF FILE(ZLIB/H) RCDLEN(112) TEXT('ZLIB library includes')
61 CRTSRCPF FILE(ZLIB/TOOLS) RCDLEN(112) TEXT('ZLIB library control utilities')
62
633) From the machine hosting the distribution files, upload them (with
64 FTP in text mode, for example) according to the following table:
65
66 Original AS400 AS400 AS400 AS400
67 file file member type description
68 SOURCES Original ZLIB C subprogram sources
69 adler32.c ADLER32 C ZLIB - Compute the Adler-32 checksum of a dta strm
70 compress.c COMPRESS C ZLIB - Compress a memory buffer
71 crc32.c CRC32 C ZLIB - Compute the CRC-32 of a data stream
72 deflate.c DEFLATE C ZLIB - Compress data using the deflation algorithm
73 gzclose.c GZCLOSE C ZLIB - Close .gz files
74 gzlib.c GZLIB C ZLIB - Miscellaneous .gz files IO support
75 gzread.c GZREAD C ZLIB - Read .gz files
76 gzwrite.c GZWRITE C ZLIB - Write .gz files
77 infback.c INFBACK C ZLIB - Inflate using a callback interface
78 inffast.c INFFAST C ZLIB - Fast proc. literals & length/distance pairs
79 inflate.c INFLATE C ZLIB - Interface to inflate modules
80 inftrees.c INFTREES C ZLIB - Generate Huffman trees for efficient decode
81 trees.c TREES C ZLIB - Output deflated data using Huffman coding
82 uncompr.c UNCOMPR C ZLIB - Decompress a memory buffer
83 zutil.c ZUTIL C ZLIB - Target dependent utility functions
84 H Original ZLIB C and ILE/RPG include files
85 crc32.h CRC32 C ZLIB - CRC32 tables
86 deflate.h DEFLATE C ZLIB - Internal compression state
87 gzguts.h GZGUTS C ZLIB - Definitions for the gzclose module
88 inffast.h INFFAST C ZLIB - Header to use inffast.c
89 inffixed.h INFFIXED C ZLIB - Table for decoding fixed codes
90 inflate.h INFLATE C ZLIB - Internal inflate state definitions
91 inftrees.h INFTREES C ZLIB - Header to use inftrees.c
92 trees.h TREES C ZLIB - Created automatically with -DGEN_TREES_H
93 zconf.h ZCONF C ZLIB - Compression library configuration
94 zlib.h ZLIB C ZLIB - Compression library C user interface
95 as400/zlib.inc ZLIB.INC RPGLE ZLIB - Compression library ILE RPG user interface
96 zutil.h ZUTIL C ZLIB - Internal interface and configuration
97 TOOLS Building source software & AS/400 README
98 as400/bndsrc BNDSRC Entry point exportation list
99 as400/compile.clp COMPILE CLP Compile sources & generate service program
100 as400/readme.txt README TXT Installation instructions
101
1024) Continue as in I)3).
103
104
105
106
107Notes: For AS400 ILE RPG programmers, a /copy member defining the ZLIB
108 API prototypes for ILE RPG can be found in ZLIB/H(ZLIB.INC).
109 Please read comments in this member for more information.
110
111 Remember that most foreign textual data are ASCII coded: this
112 implementation does not handle conversion from/to ASCII, so
113 text data code conversions must be done explicitely.
114
115 Mainly for the reason above, always open zipped files in binary mode.
diff --git a/os400/README400 b/os400/README400
new file mode 100644
index 0000000..601f1ae
--- /dev/null
+++ b/os400/README400
@@ -0,0 +1,48 @@
1 ZLIB version 1.2.8 for OS/400 installation instructions
2
31) Download and unpack the zlib tarball to some IFS directory.
4 (i.e.: /path/to/the/zlib/ifs/source/directory)
5
6 If the installed IFS command suppors gzip format, this is straightforward,
7else you have to unpack first to some directory on a system supporting it,
8then move the whole directory to the IFS via the network (via SMB or FTP).
9
102) Edit the configuration parameters in the compilation script.
11
12 EDTF STMF('/path/to/the/zlib/ifs/source/directory/os400/make.sh')
13
14Tune the parameters according to your needs if not matching the defaults.
15Save the file and exit after edition.
16
173) Enter qshell, then work in the zlib OS/400 specific directory.
18
19 QSH
20 cd /path/to/the/zlib/ifs/source/directory/os400
21
224) Compile and install
23
24 sh make.sh
25
26The script will:
27- create the libraries, objects and IFS directories for the zlib environment,
28- compile all modules,
29- create a service program,
30- create a static and a dynamic binding directory,
31- install header files for C/C++ and for ILE/RPG, both for compilation in
32 DB2 and IFS environments.
33
34That's all.
35
36
37Notes: For OS/400 ILE RPG programmers, a /copy member defining the ZLIB
38 API prototypes for ILE RPG can be found in ZLIB/H(ZLIB.INC).
39 In the ILE environment, the same definitions are available from
40 file zlib.inc located in the same IFS include directory as the
41 C/C++ header files.
42 Please read comments in this member for more information.
43
44 Remember that most foreign textual data are ASCII coded: this
45 implementation does not handle conversion from/to ASCII, so
46 text data code conversions must be done explicitely.
47
48 Mainly for the reason above, always open zipped files in binary mode.
diff --git a/os400/bndsrc b/os400/bndsrc
new file mode 100644
index 0000000..934d781
--- /dev/null
+++ b/os400/bndsrc
@@ -0,0 +1,100 @@
1STRPGMEXP PGMLVL(*CURRENT) SIGNATURE('ZLIB')
2
3/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
4/* Version 1.1.3 entry points. */
5/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
6
7 EXPORT SYMBOL("adler32")
8 EXPORT SYMBOL("compress")
9 EXPORT SYMBOL("compress2")
10 EXPORT SYMBOL("crc32")
11 EXPORT SYMBOL("get_crc_table")
12 EXPORT SYMBOL("deflate")
13 EXPORT SYMBOL("deflateEnd")
14 EXPORT SYMBOL("deflateSetDictionary")
15 EXPORT SYMBOL("deflateCopy")
16 EXPORT SYMBOL("deflateReset")
17 EXPORT SYMBOL("deflateParams")
18 EXPORT SYMBOL("deflatePrime")
19 EXPORT SYMBOL("deflateInit_")
20 EXPORT SYMBOL("deflateInit2_")
21 EXPORT SYMBOL("gzopen")
22 EXPORT SYMBOL("gzdopen")
23 EXPORT SYMBOL("gzsetparams")
24 EXPORT SYMBOL("gzread")
25 EXPORT SYMBOL("gzwrite")
26 EXPORT SYMBOL("gzprintf")
27 EXPORT SYMBOL("gzputs")
28 EXPORT SYMBOL("gzgets")
29 EXPORT SYMBOL("gzputc")
30 EXPORT SYMBOL("gzgetc")
31 EXPORT SYMBOL("gzflush")
32 EXPORT SYMBOL("gzseek")
33 EXPORT SYMBOL("gzrewind")
34 EXPORT SYMBOL("gztell")
35 EXPORT SYMBOL("gzeof")
36 EXPORT SYMBOL("gzclose")
37 EXPORT SYMBOL("gzerror")
38 EXPORT SYMBOL("inflate")
39 EXPORT SYMBOL("inflateEnd")
40 EXPORT SYMBOL("inflateSetDictionary")
41 EXPORT SYMBOL("inflateSync")
42 EXPORT SYMBOL("inflateReset")
43 EXPORT SYMBOL("inflateInit_")
44 EXPORT SYMBOL("inflateInit2_")
45 EXPORT SYMBOL("inflateSyncPoint")
46 EXPORT SYMBOL("uncompress")
47 EXPORT SYMBOL("zlibVersion")
48 EXPORT SYMBOL("zError")
49
50/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
51/* Version 1.2.1 additional entry points. */
52/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
53
54 EXPORT SYMBOL("compressBound")
55 EXPORT SYMBOL("deflateBound")
56 EXPORT SYMBOL("gzungetc")
57 EXPORT SYMBOL("gzclearerr")
58 EXPORT SYMBOL("inflateBack")
59 EXPORT SYMBOL("inflateBackEnd")
60 EXPORT SYMBOL("inflateBackInit_")
61 EXPORT SYMBOL("inflateCopy")
62 EXPORT SYMBOL("zlibCompileFlags")
63
64/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
65/* Version 1.2.5 additional entry points. */
66/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
67
68 EXPORT SYMBOL("adler32_combine")
69 EXPORT SYMBOL("adler32_combine64")
70 EXPORT SYMBOL("crc32_combine")
71 EXPORT SYMBOL("crc32_combine64")
72 EXPORT SYMBOL("gzbuffer")
73 EXPORT SYMBOL("gzoffset")
74 EXPORT SYMBOL("gzoffset64")
75 EXPORT SYMBOL("gzopen64")
76 EXPORT SYMBOL("gzseek64")
77 EXPORT SYMBOL("gztell64")
78 EXPORT SYMBOL("gzclose_r")
79 EXPORT SYMBOL("gzclose_w")
80 EXPORT SYMBOL("inflateMark")
81 EXPORT SYMBOL("inflatePrime")
82 EXPORT SYMBOL("inflateReset2")
83 EXPORT SYMBOL("inflateUndermine")
84
85/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
86/* Version 1.2.6 additional entry points. */
87/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
88
89 EXPORT SYMBOL("deflateResetKeep")
90 EXPORT SYMBOL("deflatePending")
91 EXPORT SYMBOL("gzgetc_")
92 EXPORT SYMBOL("inflateResetKeep")
93
94/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
95/* Version 1.2.8 additional entry points. */
96/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
97
98 EXPORT SYMBOL("inflateGetDictionary")
99
100ENDPGMEXP
diff --git a/os400/make.sh b/os400/make.sh
new file mode 100644
index 0000000..ddbfb16
--- /dev/null
+++ b/os400/make.sh
@@ -0,0 +1,366 @@
1#!/bin/sh
2#
3# ZLIB compilation script for the OS/400.
4#
5#
6# This is a shell script since make is not a standard component of OS/400.
7
8
9################################################################################
10#
11# Tunable configuration parameters.
12#
13################################################################################
14
15TARGETLIB='ZLIB' # Target OS/400 program library
16STATBNDDIR='ZLIB_A' # Static binding directory.
17DYNBNDDIR='ZLIB' # Dynamic binding directory.
18SRVPGM="ZLIB" # Service program.
19IFSDIR='/zlib' # IFS support base directory.
20TGTCCSID='500' # Target CCSID of objects
21DEBUG='*NONE' # Debug level
22OPTIMIZE='40' # Optimisation level
23OUTPUT='*NONE' # Compilation output option.
24TGTRLS='V6R1M0' # Target OS release
25
26export TARGETLIB STATBNDDIR DYNBNDDIR SRVPGM IFSDIR
27export TGTCCSID DEBUG OPTIMIZE OUTPUT TGTRLS
28
29
30################################################################################
31#
32# OS/400 specific definitions.
33#
34################################################################################
35
36LIBIFSNAME="/QSYS.LIB/${TARGETLIB}.LIB"
37
38
39################################################################################
40#
41# Procedures.
42#
43################################################################################
44
45# action_needed dest [src]
46#
47# dest is an object to build
48# if specified, src is an object on which dest depends.
49#
50# exit 0 (succeeds) if some action has to be taken, else 1.
51
52action_needed()
53
54{
55 [ ! -e "${1}" ] && return 0
56 [ "${2}" ] || return 1
57 [ "${1}" -ot "${2}" ] && return 0
58 return 1
59}
60
61
62# make_module module_name source_name [additional_definitions]
63#
64# Compile source name into module if needed.
65# As side effect, append the module name to variable MODULES.
66# Set LINK to "YES" if the module has been compiled.
67
68make_module()
69
70{
71 MODULES="${MODULES} ${1}"
72 MODIFSNAME="${LIBIFSNAME}/${1}.MODULE"
73 CSRC="`basename \"${2}\"`"
74
75 if action_needed "${MODIFSNAME}" "${2}"
76 then :
77 elif [ ! "`sed -e \"/<source name=\\\"${CSRC}\\\">/,/<\\\\/source>/!d\" \
78 -e '/<depend /!d' \
79 -e 's/.* name=\"\\([^\"]*\\)\".*/\\1/' < \"${TOPDIR}/treebuild.xml\" |
80 while read HDR
81 do if action_needed \"${MODIFSNAME}\" \"${IFSDIR}/include/${HDR}\"
82 then echo recompile
83 break
84 fi
85 done`" ]
86 then return 0
87 fi
88
89 CMD="CRTCMOD MODULE(${TARGETLIB}/${1}) SRCSTMF('${2}')"
90 CMD="${CMD} SYSIFCOPT(*IFS64IO) OPTION(*INCDIRFIRST)"
91 CMD="${CMD} LOCALETYPE(*LOCALE) FLAG(10)"
92 CMD="${CMD} INCDIR('${IFSDIR}/include' ${INCLUDES})"
93 CMD="${CMD} TGTCCSID(${TGTCCSID}) TGTRLS(${TGTRLS})"
94 CMD="${CMD} OUTPUT(${OUTPUT})"
95 CMD="${CMD} OPTIMIZE(${OPTIMIZE})"
96 CMD="${CMD} DBGVIEW(${DEBUG})"
97 system "${CMD}"
98 LINK=YES
99}
100
101
102# Determine DB2 object name from IFS name.
103
104db2_name()
105
106{
107 basename "${1}" |
108 tr 'a-z-' 'A-Z_' |
109 sed -e 's/\..*//' \
110 -e 's/^\(.\).*\(.........\)$/\1\2/'
111}
112
113
114# Force enumeration types to be the same size as integers.
115
116copy_hfile()
117
118{
119 sed -e '1i\
120#pragma enum(int)\
121' "${@}" -e '$a\
122#pragma enum(pop)\
123'
124}
125
126
127################################################################################
128#
129# Script initialization.
130#
131################################################################################
132
133SCRIPTDIR=`dirname "${0}"`
134
135case "${SCRIPTDIR}" in
136/*) ;;
137*) SCRIPTDIR="`pwd`/${SCRIPTDIR}"
138esac
139
140while true
141do case "${SCRIPTDIR}" in
142 */.) SCRIPTDIR="${SCRIPTDIR%/.}";;
143 *) break;;
144 esac
145done
146
147# The script directory is supposed to be in ${TOPDIR}/os400.
148
149TOPDIR=`dirname "${SCRIPTDIR}"`
150export SCRIPTDIR TOPDIR
151cd "${TOPDIR}"
152
153
154# Extract the version from the master compilation XML file.
155
156VERSION=`sed -e '/^<package /!d' \
157 -e 's/^.* version="\([0-9.]*\)".*$/\1/' -e 'q' \
158 < treebuild.xml`
159export VERSION
160
161################################################################################
162
163
164# Create the OS/400 library if it does not exist.
165
166if action_needed "${LIBIFSNAME}"
167then CMD="CRTLIB LIB(${TARGETLIB}) TEXT('ZLIB: Data compression API')"
168 system "${CMD}"
169fi
170
171
172# Create the DOCS source file if it does not exist.
173
174if action_needed "${LIBIFSNAME}/DOCS.FILE"
175then CMD="CRTSRCPF FILE(${TARGETLIB}/DOCS) RCDLEN(112)"
176 CMD="${CMD} CCSID(${TGTCCSID}) TEXT('Documentation texts')"
177 system "${CMD}"
178fi
179
180# Copy some documentation files if needed.
181
182for TEXT in "${TOPDIR}/ChangeLog" "${TOPDIR}/FAQ" \
183 "${TOPDIR}/README" "${SCRIPTDIR}/README400"
184do MEMBER="${LIBIFSNAME}/DOCS.FILE/`db2_name \"${TEXT}\"`.MBR"
185
186 if action_needed "${MEMBER}" "${TEXT}"
187 then CMD="CPY OBJ('${TEXT}') TOOBJ('${MEMBER}') TOCCSID(${TGTCCSID})"
188 CMD="${CMD} DTAFMT(*TEXT) REPLACE(*YES)"
189 system "${CMD}"
190 fi
191done
192
193
194# Create the OS/400 source program file for the C header files.
195
196SRCPF="${LIBIFSNAME}/H.FILE"
197
198if action_needed "${SRCPF}"
199then CMD="CRTSRCPF FILE(${TARGETLIB}/H) RCDLEN(112)"
200 CMD="${CMD} CCSID(${TGTCCSID}) TEXT('ZLIB: C/C++ header files')"
201 system "${CMD}"
202fi
203
204
205# Create the IFS directory for the C header files.
206
207if action_needed "${IFSDIR}/include"
208then mkdir -p "${IFSDIR}/include"
209fi
210
211# Copy the header files to DB2 library. Link from IFS include directory.
212
213for HFILE in "${TOPDIR}/"*.h
214do DEST="${SRCPF}/`db2_name \"${HFILE}\"`.MBR"
215
216 if action_needed "${DEST}" "${HFILE}"
217 then copy_hfile < "${HFILE}" > tmphdrfile
218
219 # Need to translate to target CCSID.
220
221 CMD="CPY OBJ('`pwd`/tmphdrfile') TOOBJ('${DEST}')"
222 CMD="${CMD} TOCCSID(${TGTCCSID}) DTAFMT(*TEXT) REPLACE(*YES)"
223 system "${CMD}"
224 # touch -r "${HFILE}" "${DEST}"
225 rm -f tmphdrfile
226 fi
227
228 IFSFILE="${IFSDIR}/include/`basename \"${HFILE}\"`"
229
230 if action_needed "${IFSFILE}" "${DEST}"
231 then rm -f "${IFSFILE}"
232 ln -s "${DEST}" "${IFSFILE}"
233 fi
234done
235
236
237# Install the ILE/RPG header file.
238
239
240HFILE="${SCRIPTDIR}/zlib.inc"
241DEST="${SRCPF}/ZLIB.INC.MBR"
242
243if action_needed "${DEST}" "${HFILE}"
244then CMD="CPY OBJ('${HFILE}') TOOBJ('${DEST}')"
245 CMD="${CMD} TOCCSID(${TGTCCSID}) DTAFMT(*TEXT) REPLACE(*YES)"
246 system "${CMD}"
247 # touch -r "${HFILE}" "${DEST}"
248fi
249
250IFSFILE="${IFSDIR}/include/`basename \"${HFILE}\"`"
251
252if action_needed "${IFSFILE}" "${DEST}"
253then rm -f "${IFSFILE}"
254 ln -s "${DEST}" "${IFSFILE}"
255fi
256
257
258# Create and compile the identification source file.
259
260echo '#pragma comment(user, "ZLIB version '"${VERSION}"'")' > os400.c
261echo '#pragma comment(user, __DATE__)' >> os400.c
262echo '#pragma comment(user, __TIME__)' >> os400.c
263echo '#pragma comment(copyright, "Copyright (C) 1995-2016 Jean-Loup Gailly, Mark Adler. OS/400 version by P. Monnerat.")' >> os400.c
264make_module OS400 os400.c
265LINK= # No need to rebuild service program yet.
266MODULES=
267
268
269# Get source list.
270
271CSOURCES=`sed -e '/<source name="/!d' \
272 -e 's/.* name="\([^"]*\)".*/\1/' < treebuild.xml`
273
274# Compile the sources into modules.
275
276for SRC in ${CSOURCES}
277do MODULE=`db2_name "${SRC}"`
278 make_module "${MODULE}" "${SRC}"
279done
280
281
282# If needed, (re)create the static binding directory.
283
284if action_needed "${LIBIFSNAME}/${STATBNDDIR}.BNDDIR"
285then LINK=YES
286fi
287
288if [ "${LINK}" ]
289then rm -rf "${LIBIFSNAME}/${STATBNDDIR}.BNDDIR"
290 CMD="CRTBNDDIR BNDDIR(${TARGETLIB}/${STATBNDDIR})"
291 CMD="${CMD} TEXT('ZLIB static binding directory')"
292 system "${CMD}"
293
294 for MODULE in ${MODULES}
295 do CMD="ADDBNDDIRE BNDDIR(${TARGETLIB}/${STATBNDDIR})"
296 CMD="${CMD} OBJ((${TARGETLIB}/${MODULE} *MODULE))"
297 system "${CMD}"
298 done
299fi
300
301
302# The exportation file for service program creation must be in a DB2
303# source file, so make sure it exists.
304
305if action_needed "${LIBIFSNAME}/TOOLS.FILE"
306then CMD="CRTSRCPF FILE(${TARGETLIB}/TOOLS) RCDLEN(112)"
307 CMD="${CMD} CCSID(${TGTCCSID}) TEXT('ZLIB: build tools')"
308 system "${CMD}"
309fi
310
311
312DEST="${LIBIFSNAME}/TOOLS.FILE/BNDSRC.MBR"
313
314if action_needed "${SCRIPTDIR}/bndsrc" "${DEST}"
315then CMD="CPY OBJ('${SCRIPTDIR}/bndsrc') TOOBJ('${DEST}')"
316 CMD="${CMD} TOCCSID(${TGTCCSID}) DTAFMT(*TEXT) REPLACE(*YES)"
317 system "${CMD}"
318 # touch -r "${SCRIPTDIR}/bndsrc" "${DEST}"
319 LINK=YES
320fi
321
322
323# Build the service program if needed.
324
325if action_needed "${LIBIFSNAME}/${SRVPGM}.SRVPGM"
326then LINK=YES
327fi
328
329if [ "${LINK}" ]
330then CMD="CRTSRVPGM SRVPGM(${TARGETLIB}/${SRVPGM})"
331 CMD="${CMD} SRCFILE(${TARGETLIB}/TOOLS) SRCMBR(BNDSRC)"
332 CMD="${CMD} MODULE(${TARGETLIB}/OS400)"
333 CMD="${CMD} BNDDIR(${TARGETLIB}/${STATBNDDIR})"
334 CMD="${CMD} TEXT('ZLIB ${VERSION} dynamic library')"
335 CMD="${CMD} TGTRLS(${TGTRLS})"
336 system "${CMD}"
337 LINK=YES
338
339 # Duplicate the service program for a versioned backup.
340
341 BACKUP=`echo "${SRVPGM}${VERSION}" |
342 sed -e 's/.*\(..........\)$/\1/' -e 's/\./_/g'`
343 BACKUP="`db2_name \"${BACKUP}\"`"
344 BKUPIFSNAME="${LIBIFSNAME}/${BACKUP}.SRVPGM"
345 rm -f "${BKUPIFSNAME}"
346 CMD="CRTDUPOBJ OBJ(${SRVPGM}) FROMLIB(${TARGETLIB})"
347 CMD="${CMD} OBJTYPE(*SRVPGM) NEWOBJ(${BACKUP})"
348 system "${CMD}"
349fi
350
351
352# If needed, (re)create the dynamic binding directory.
353
354if action_needed "${LIBIFSNAME}/${DYNBNDDIR}.BNDDIR"
355then LINK=YES
356fi
357
358if [ "${LINK}" ]
359then rm -rf "${LIBIFSNAME}/${DYNBNDDIR}.BNDDIR"
360 CMD="CRTBNDDIR BNDDIR(${TARGETLIB}/${DYNBNDDIR})"
361 CMD="${CMD} TEXT('ZLIB dynamic binding directory')"
362 system "${CMD}"
363 CMD="ADDBNDDIRE BNDDIR(${TARGETLIB}/${DYNBNDDIR})"
364 CMD="${CMD} OBJ((*LIBL/${SRVPGM} *SRVPGM))"
365 system "${CMD}"
366fi
diff --git a/as400/zlib.inc b/os400/zlib.inc
index e6d3397..7341a6d 100644
--- a/as400/zlib.inc
+++ b/os400/zlib.inc
@@ -1,7 +1,7 @@
1 * ZLIB.INC - Interface to the general purpose compression library 1 * ZLIB.INC - Interface to the general purpose compression library
2 * 2 *
3 * ILE RPG400 version by Patrick Monnerat, DATASPHERE. 3 * ILE RPG400 version by Patrick Monnerat, DATASPHERE.
4 * Version 1.2.8.1 4 * Version 1.2.8
5 * 5 *
6 * 6 *
7 * WARNING: 7 * WARNING:
@@ -22,14 +22,14 @@
22 * 22 *
23 * Versioning information. 23 * Versioning information.
24 * 24 *
25 D ZLIB_VERSION C '1.2.8.1' 25 D ZLIB_VERSION C '1.2.8'
26 D ZLIB_VERNUM C X'1281' 26 D ZLIB_VERNUM C X'1280'
27 D ZLIB_VER_MAJOR C 1 27 D ZLIB_VER_MAJOR C 1
28 D ZLIB_VER_MINOR C 2 28 D ZLIB_VER_MINOR C 2
29 D ZLIB_VER_REVISION... 29 D ZLIB_VER_REVISION...
30 D C 8 30 D C 8
31 D ZLIB_VER_SUBREVISION... 31 D ZLIB_VER_SUBREVISION...
32 D C 1 32 D C 0
33 * 33 *
34 * Other equates. 34 * Other equates.
35 * 35 *