summaryrefslogtreecommitdiff
path: root/os2
diff options
context:
space:
mode:
Diffstat (limited to 'os2')
-rw-r--r--os2/BldLevel.cmd10
-rw-r--r--os2/BldLevel.rc1
-rw-r--r--os2/BldLevelInf.cmd570
-rw-r--r--os2/ChangeLog.os210
-rw-r--r--os2/MySQL-Client.icc46
-rw-r--r--os2/MySQL-Opt.icc47
-rw-r--r--os2/MySQL-Source.icc81
-rw-r--r--os2/MySQL-Sql.icc89
-rw-r--r--os2/MySQL-Util.icc80
-rw-r--r--os2/ReadMe.txt177
-rw-r--r--os2/mysql-inf.wis15
-rw-r--r--os2/mysql.wis127
-rw-r--r--os2/mysqlalt.wis15
13 files changed, 1119 insertions, 149 deletions
diff --git a/os2/BldLevel.cmd b/os2/BldLevel.cmd
new file mode 100644
index 00000000000..2bc85a06abb
--- /dev/null
+++ b/os2/BldLevel.cmd
@@ -0,0 +1,10 @@
+@echo off
+
+REM I'm using resources for BLDLEVEL info, because VA4 linker has the bad
+REM feature of using versionstring content for padding files.
+
+REM To set fixpak level: -P"fixpak level"
+SET MYSQL_VERSION=3.23.42
+SET MYSQL_BUILD=1
+
+BldLevelInf -V%MYSQL_VERSION% -N"MySQL AB, Yuri Dario" -D"MySQL %MYSQL_VERSION% for OS/2 - Build %MYSQL_BUILD%" -Len BldLevel.rc
diff --git a/os2/BldLevel.rc b/os2/BldLevel.rc
new file mode 100644
index 00000000000..fe266a25c3c
--- /dev/null
+++ b/os2/BldLevel.rc
@@ -0,0 +1 @@
+RCDATA 1 { "@#MySQL AB, Yuri Dario:3.23.42#@##1## 10 Sep 2001 11:57:17 paperino::en::::@@MySQL 3.23.42 for OS/2 - Build 1" }
diff --git a/os2/BldLevelInf.cmd b/os2/BldLevelInf.cmd
new file mode 100644
index 00000000000..40a85f3782a
--- /dev/null
+++ b/os2/BldLevelInf.cmd
@@ -0,0 +1,570 @@
+/* $Id: BldLevelInf.cmd,v 1.5 2001/01/26 21:33:13 phaller Exp $
+ *
+ * Adds a Description string to the given .def-file.
+ * Fills in default values; like build time and host.
+ *
+ */
+
+if RxFuncQuery('SysLoadFuncs') = 1 then
+do
+ call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs';
+ call SysLoadFuncs;
+end
+
+
+/*
+ * Set default parameter values.
+ */
+sDefFileIn = '';
+sDefFileOut = '';
+sASDFeatureId = '';
+sCountryCode = '';
+sDateTime = left(' 'date()' 'time(), 26);
+sDescription = 'Odin32';
+sFixPakVer = '';
+sHostname = strip(substr(VALUE('HOSTNAME',,'OS2ENVIRONMENT'), 1, 11));
+sLanguageCode = '';
+sMiniVer = '';
+sVendor = 'Project Odin';
+sVersion = '0.5';
+
+
+/*
+ * Parse parameters.
+ */
+parse arg sArgs
+if (sArgs = '') then
+do
+ call syntax;
+ exit(1);
+end
+
+do while (sArgs <> '')
+ sArgs = strip(sArgs);
+ if (substr(sArgs, 1, 1) = '-' | substr(sArgs, 1, 1) = '/') then
+ do /*
+ * Option.
+ */
+ ch = translate(substr(sArgs, 2, 1));
+ if (pos(ch, 'ACDHLMNPRTV') < 1) then
+ do
+ say 'invalid option:' substr(sArgs, 1, 2);
+ call syntax;
+ exit(2);
+ end
+
+ /* get value and advance sArgs to next or to end. */
+ if (substr(sArgs, 3, 1) = '"') then
+ do
+ iNext = pos('"', sArgs, 4);
+ fQuote = 1;
+ end
+ else
+ do
+ iNext = pos(' ', sArgs, 3);
+ if (iNext <= 0) then
+ iNext = length(sArgs);
+ fQuote = 0;
+ end
+
+ if (iNext > 3 | ch = 'R') then
+ do
+ sValue = substr(sArgs, 3 + fQuote, iNext - 3 - fQuote);
+ sArgs = strip(substr(sArgs, iNext+1));
+ /*say 'iNext:' iNext 'sValue:' sValue 'sArgs:' sArgs; */
+
+ /* check if we're gonna search for something in an file. */
+ if (sValue <> '' & pos('#define=', sValue) > 0) then
+ sValue = LookupDefine(sValue);
+ end
+ else
+ do
+ say 'syntax error near' substr(sArgs, 1, 2)'.';
+ call syntax;
+ exit(3);
+ end
+
+
+ /* set value */
+ select
+ when (ch = 'A') then /* ASD Feature Id */
+ sASDFeatureId = sValue;
+
+ when (ch = 'C') then /* Country code */
+ sCountryCode = sValue;
+
+ when (ch = 'D') then /* Description */
+ sDescription = sValue;
+
+ when (ch = 'H') then /* Hostname */
+ sHostname = sValue;
+
+ when (ch = 'L') then /* Language code */
+ sLanguageCode = sValue;
+
+ when (ch = 'M') then /* MiniVer */
+ sMiniVer = sValue;
+
+ when (ch = 'N') then /* Vendor */
+ sVendor = sValue;
+
+ when (ch = 'R') then /* Vendor */
+ sDescription = ReadDescription(sValue, sDefFile);
+
+ when (ch = 'P') then /* Fixpak version */
+ sFixPakVer = sValue;
+
+ when (ch = 'T') then /* Date Time */
+ sDateTime = sValue;
+
+ when (ch = 'V') then /* Version */
+ sVersion = sValue;
+
+ /* Otherwise it's an illegal option */
+ otherwise
+ say 'invalid option:' substr(sArgs, 1, 2);
+ call syntax;
+ exit(2);
+ end /* select */
+ end
+ else
+ do /*
+ * Defition file...
+ */
+ if (sDefFileOut <> '') then
+ do
+ say 'Syntax error: Can''t specify more than two defintion files!';
+ exit(4);
+ end
+ if (sDefFileIn = '') then
+ parse value sArgs with sDefFileIn' 'sArgs
+ else
+ parse value sArgs with sDefFileOut' 'sArgs
+ sArgs = strip(sArgs);
+ end
+end
+
+
+/* check that a defintion file was specified. */
+if (sDefFileIn = '') then
+do
+ say 'Syntax error: Will have to specify a .def-file to update.';
+ call syntax;
+ exit(5);
+end
+
+
+/*
+ * Trim strings to correct lengths.
+ */
+sVendor = strip(substr(sVendor, 1, 31));
+if (substr(sDateTime, 1, 1) <> ' ') then
+ sDateTime = ' ' || sDateTime;
+sDateTime = left(sDateTime, 26);
+sHostname = strip(substr(sHostname, 1, 11));
+sMiniVer = strip(substr(sMiniVer, 1, 11));
+sDescription = strip(substr(sDescription, 1, 80));
+sCountryCode = strip(substr(sCountryCode, 1, 4));
+sLanguageCode = strip(substr(sLanguageCode, 1, 4));
+sASDFeatureId = strip(substr(sASDFeatureId, 1, 11));
+sFixPakVer = strip(substr(sFixPakVer, 1, 11));
+
+
+/*
+ * Signature
+ */
+sEnhSign = '##1##'
+
+/*
+ * Build description string.
+ */
+sDescription = '@#'sVendor':'sVersion'#@'sEnhSign||,
+ sDateTime||sHostname||,
+ ':'sASDFeatureId':'sLanguageCode':'sCountryCode':'sMiniVer||,
+ '::'sFixPakVer'@@'sDescription;
+
+/*
+ * Update .def-file.
+ */
+call SysFileDelete(sDefFileIn);
+rc = lineout( sDefFileIn, 'RCDATA 1 { "' || sDescription || '" }');
+
+/*rc = UpdateDefFile(sDefFileIn, sDefFileOut, sDescription);*/
+exit(rc);
+
+
+/**
+ * Display script syntax.
+ */
+syntax: procedure
+ say 'Syntax: MakeDesc.cmd [options] <deffile in> <deffile out> [options]'
+ say ' <deffile> Defitionfile which will have an DESCRIPTION appended.'
+ say 'Options:'
+ say ' -A<string> ASD Feature Id.'
+ say ' -C<string> Country code.'
+ say ' -D<string> Description.'
+ say ' -R[deffile] Read description from .def file.'
+ say ' -H<string> Hostname.'
+ say ' -L<string> Language code.'
+ say ' -M<string> MiniVer.'
+ say ' -N<string> Vendor.'
+ say ' -P<string> Fixpak version.'
+ say ' -T<string> Date Time.'
+ say ' -V<string> Version.'
+ say '<string> could be a double qoute qouted string or a single word.'
+ say ' You could also reference #defines in C/C++ include files.'
+ say ' The string should then have this form:'
+ say ' "#define=<DEFINE_NAME>,<includefile.h>"'
+ say '';
+
+ return;
+
+
+/**
+ * Search for a #define in an C/C++ header or source file.
+ *
+ * @returns String containing the defined value
+ * found for the define in the header file.
+ * Quits on fatal errors.
+ * @param A string on the form: "#define=DEFINETOFIND,includefile.h"
+ * @remark Write only code... - let's hope it works.
+ */
+LookupDefine: procedure
+ parse arg '#'sDefine'='sMacro','sIncludeFile
+
+ /*
+ * Validate parameters.
+ */
+ sMacro = strip(sMacro);
+ sIncludeFile = strip(sIncludeFile);
+ if (sMacro = '') then
+ do
+ say 'syntax error: #define=<DEFINE_NAME>,<includefile.h>.';
+ say ' <DEFINE_NAME> was empty.';
+ exit(-20);
+ end
+ if (sIncludeFile = '') then
+ do
+ say 'syntax error: #define=<DEFINE_NAME>,<includefile.h>.';
+ say ' <includefile.h> was empty.';
+ exit(-20);
+ end
+
+
+ sIllegal = translate(translate(sMacro),,
+ '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!',,
+ 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_');
+
+ if (strip(translate(sIllegal, ' ', '!')) <> '') then
+ do
+ say 'syntax error: #define=<DEFINE_NAME>,<includefile.h>.';
+ say ' <DEFINE_NAME> contains illegal charater(s).'
+ say ' 'sMacro;
+ say ' 'translate(sIllegal, ' ', '!');
+ exit(-20);
+ end
+
+ /*
+ * Open include file.
+ */
+ sRc = stream(sIncludeFile, 'c', 'open read');
+ if (pos('READY', sRc) <> 1) then
+ do /* search INCLUDE variable */
+ sFile = SysSearchPath('INCLUDE', sIncludeFile);
+ if (sFile = '') then
+ do
+ say 'Can''t find include file 'sIncludeFile'.';
+ exit(-20);
+ end
+ sIncludeFile = sFile;
+
+ sRc = stream(sIncludeFile, 'c', 'open read');
+ if (pos('READY', sRc) <> 1) then
+ do
+ say 'Failed to open include file' sIncludeFile'.';
+ exit(-20);
+ end
+ end
+
+ /*
+ * Search the file line by line.
+ * We'll check for lines starting with a hash (#) char.
+ * Then check that the word after the hash is 'define'.
+ * Then match the next word with the macro name.
+ * Then then get the next rest of the line to comment or continuation char.
+ * (continuation is not supported)
+ * Finally strip quotes.
+ */
+ sValue = '';
+ do while (lines(sIncludeFile) > 0)
+ sLine = strip(linein(sIncludeFile));
+ if (sLine = '') then
+ iterate;
+ if (substr(sLine, 1, 1) <> '#') then
+ iterate;
+ sLine = substr(sLine, 2);
+ if (word(sLine, 1) <> 'define') then
+ iterate;
+ sLine = strip(substr(sLine, wordpos(sLine, 1) + length('define')+1));
+ if ( substr(sLine, 1, length(sMacro)) <> sMacro,
+ | substr(sLine, length(sMacro)+1, 1) <> ' ') then
+ iterate;
+ sLine = strip(substr(sLine, length(sMacro) + 1));
+ if (sLine = '') then
+ do
+ say 'error: #define' sMacro' is empty.';
+ call stream sIncludeFile, 'c', 'close';
+ exit(-20);
+ end
+
+ chQuote = substr(sLine, 1, 1);
+ if (chQuote = '"' | chQuote = "'") then
+ do /* quoted string */
+ iLastQuote = 0;
+ do forever
+ iLast = pos(chQuote, sLine, 2);
+ if (iLast <= 0) then
+ leave;
+ if (substr(sLine, iLast, 1) = '\') then
+ iterate;
+ iLastQuote = iLast;
+ leave;
+ end
+
+ if (iLastQuote <= 0) then
+ do
+ say 'C/C++ syntax error in 'sIncludefile': didn''t find end quote.';
+ call stream sIncludeFile, 'c', 'close';
+ exit(-20);
+ end
+
+ call stream sIncludeFile, 'c', 'close';
+ sValue = substr(sLine, 2, iLastQuote - 2);
+ say 'Found 'sMacro'='sValue;
+ return sValue;
+ end
+ else
+ do
+ iCommentCPP = pos('//',sLine);
+ iCommentC = pos('/*',sLine);
+ if (iCommentC > 0 & iCommentCPP > 0 & iCommentC > iCommentCPP) then
+ iComment = iCommentCPP;
+ else if (iCommentC > 0 & iCommentCPP > 0 & iCommentC < iCommentCPP) then
+ iComment = iCommentC;
+ else if (iCommentCPP > 0) then
+ iComment = iCommentCPP;
+ else if (iCommentC > 0) then
+ iComment = iCommentC;
+ else
+ iComment = 0;
+
+ if (iComment > 0) then
+ sValue = strip(substr(sLine, 1, iComment-1));
+ else
+ sValue = strip(sLine);
+
+ if (sValue <> '') then
+ do
+ if (substr(sValue, length(sValue)) = '\') then
+ do
+ say 'Found continuation char: Multiline definitions are not supported!\n';
+ call stream sIncludeFile, 'c', 'close';
+ exit(-20);
+ end
+ end
+
+ if (sValue = '') then
+ say 'warning: The #define has no value.';
+
+ call stream sIncludeFile, 'c', 'close';
+ say 'Found 'sMacro'='sValue;
+ return sValue;
+ end
+ end
+
+ call stream sIncludeFile, 'c', 'close';
+ say 'error: didn''t find #define' sMacro'.';
+ exit(-20);
+
+
+
+/**
+ * Reads the description line for a .def-file.
+ * @returns The Description string, with quotes removed.
+ * Empty string is acceptable.
+ * On error we'll terminate the script.
+ * @param sDefFile Filaname of .def-file to read the description from.
+ * @param sDefFile2 Used if sDefFile is empty.
+ * @author knut st. osmundsen (knut.stange.osmundsen@mynd.no)
+ */
+ReadDescription: procedure;
+ parse arg sDefFile, sDefFile2
+
+ /*
+ * Validate parameters.
+ */
+ if (sDefFile = '') then
+ sDefFile = sDefFile2;
+ if (sDefFile = '') then
+ do
+ say 'error: no definition file to get description from.'
+ exit(-1);
+ end
+
+ /*
+ * Open file
+ */
+ rc = stream(sDefFile, 'c', 'open read');
+ if (pos('READY', rc) <> 1) then
+ do
+ say 'error: failed to open deffile file.';
+ exit(-1);
+ end
+
+
+ /*
+ * Search for the 'DESCRIPTION' line.
+ */
+ do while (lines(sDefFile) > 0)
+ sLine = strip(linein(sDefFile));
+ if (sLine = '') then
+ iterate;
+ if (translate(word(sLine, 1)) <> 'DESCRIPTION') then
+ iterate;
+ sLine = strip(substr(sLine, wordpos(sLine, 1) + length('DESCRIPTION')+1));
+
+ ch = substr(sLine, 1, 1);
+ if (ch <> "'" & ch <> '"') then
+ do
+ say 'syntax error: description line in' sDefFile 'is misformed.';
+ call stream sDefFile, 'c', 'close';
+ exit(-10);
+ end
+
+ iEnd = pos(ch, sLine, 2);
+ if (iEnd <= 0) then
+ do
+ say 'syntax error: description line in' sDefFile 'is misformed.';
+ call stream sDefFile, 'c', 'close';
+ exit(-10);
+ end
+
+ call stream sDefFile, 'c', 'close';
+ sValue = substr(sLine, 2, iEnd - 2);
+ say 'Found Description:' sValue;
+ return sValue;
+ end
+
+ call stream sDefFile, 'c', 'close';
+ say 'info: Didn''t find description line in' sDefFile'.';
+ return '';
+
+
+/**
+ * This is a function which reads sDefFileIn into and
+ * internal array and changes the DESCRIPTION text if found.
+ * If DESCRIPTION isn't found, it is added at the end.
+ * The array is written to sDefFileOut.
+ * @returns 0 on succes.
+ * Errorcode on error.
+ * @param sDefFileIn Input .def-file.
+ * @param sDefFileOut Output .def-file. Overwritten.
+ * @param sDescription New description string.
+ * @author knut st. osmundsen (knut.stange.osmundsen@mynd.no)
+ */
+UpdateDefFile: procedure;
+ parse arg sDefFileIn, sDefFileOut, sDescription
+
+ /*
+ * Validate parameters.
+ */
+ if (sDefFileOut = '') then
+ sDefFileOut = sDefFileIn;
+
+ /*
+ * Open file input file.
+ */
+ rc = stream(sDefFileIn, 'c', 'open read');
+ if (pos('READY', rc) <> 1) then
+ do
+ say 'error: failed to open' sDefFileIn 'file.';
+ return 110;
+ end
+
+
+ /*
+ * Search for the 'BLDLEVEL' line.
+ */
+ i = 0;
+ fDescription = 0;
+ do while (lines(sDefFileIn) > 0)
+ /*
+ * Read line.
+ */
+ i = i + 1;
+ asFile.i = linein(sDefFileIn);
+
+ /*
+ * Look for BLDLEVEL;
+ */
+ if (asFile.i = '') then
+ iterate;
+ if (translate(word(strip(asFile.i), 1)) <> 'BLDLEVEL') then
+ iterate;
+ if (fDescription) then
+ do
+ say 'warning: multiple descriptions lines. Line' i 'removed';
+ i = i - 1;
+ iterate;
+ end
+
+ /*
+ * Found description - replace with new description.
+ */
+ asFile.i = "BldLevel = '"||sDescription||"'";
+ fDescription = 1;
+ end
+
+ /*
+ * Add description is none was found.
+ */
+ if (\fDescription) then
+ do
+ i = i + 1;
+ asFile.i = "BldLevel = '"||sDescription||"'";
+ end
+ asFile.0 = i;
+
+
+ /*
+ * Close input file and open output file.
+ */
+ call stream sDefFileIn, 'c', 'close';
+ call SysFileDelete(sDefFileOut);
+ rc = stream(sDefFileOut, 'c', 'open write');
+ if (pos('READY', rc) <> 1) then
+ do
+ say 'error: failed to open outputfile' sDefFileOut 'file.';
+ return 110;
+ end
+
+ /*
+ * Make firstline and write all the lines to the output file.
+ */
+ /*call lineout sDefFileOut, '; Updated by makedesc.cmd', 1;*/
+ do i = 1 to asFile.0
+ rc = lineout(sDefFileOut, asFile.i);
+ if (rc > 0) then
+ do
+ say 'error: failed to write line' i 'to' sDefFileOut'.'
+ call stream sDefFileOut, 'c', 'close';
+ return 5;
+ end
+ end
+
+ /*
+ * Close output file and return succesfully.
+ */
+ call stream sDefFileOut, 'c', 'close';
+ return 0;
+
diff --git a/os2/ChangeLog.os2 b/os2/ChangeLog.os2
index 34547262fe2..8f2604c0453 100644
--- a/os2/ChangeLog.os2
+++ b/os2/ChangeLog.os2
@@ -1,4 +1,14 @@
+2001/09/16
+ - fixed creation directory of temporary files
+ - enabled cached list file for deleting temp open files
+
+2001/09/10
+ - Build source 3.23.42, released
+
+2001/09/08
+ - fixed file api
+
2001/06/12
- fixed support for > 2GB file size, needs also DosOpenL
- mixed 64bit/32bit file size support, dinamic loading of
diff --git a/os2/MySQL-Client.icc b/os2/MySQL-Client.icc
index e00fe28a3c9..7a41567f983 100644
--- a/os2/MySQL-Client.icc
+++ b/os2/MySQL-Client.icc
@@ -6,7 +6,6 @@ include "MySQL-Opt.icc"
include "MySQL-Source.icc"
option ProjectOptions = MySQLOptions
- //, link(defaultlibsname, "readline.lib")
{
option file(genobject, "..\\OBJ\\ZLIB\\")
@@ -16,7 +15,7 @@ option ProjectOptions = MySQLOptions
// optimized precompiled headers
option macros('global', 'yes')
{
- source type('cpp') client_pch
+ source type('cpp') client_global_pch
}
// target source files
source zlib
@@ -27,6 +26,8 @@ option ProjectOptions = MySQLOptions
source type('cpp') my_sys_cli
source type('cpp') strings
source type('cpp') mysqlclientlib
+ source type('cpp') '..\libmysql\dll.c'
+ source BldLevelInfo
}
}
@@ -37,51 +38,84 @@ option ProjectOptions = MySQLOptions
// optimized precompiled headers
option macros('global', 'yes')
{
- source type('cpp') client_pch //, 'sql_string.h'
+ source type('cpp') client_global_pch
}
// target source files
- //source readline
source type('cpp') "..\\client\\mysql.cc"
+ source BldLevelInfo
}
}
+ option file(genobject, "..\\OBJ\\READLINE\\")
+ {
target "..\\bin\\mysqladmin.exe"
{
// optimized precompiled headers
option macros('global', 'yes')
{
- source type('cpp') client_pch //, 'sql_string.h'
+ source type('cpp') client_global_pch
}
// target source files
source type('cpp') "..\\client\\mysqladmin.c"
+ source BldLevelInfo
}
+ }
target "..\\bin\\mysqldump.exe"
{
// optimized precompiled headers
option macros('global', 'yes')
{
- source type('cpp') client_pch
+ source type('cpp') client_global_pch
}
// target source files
source type('cpp') "..\\client\\mysqldump.c"
+ source BldLevelInfo
}
target "..\\bin\\mysqlshow.exe"
{
// target source files
source type('cpp') "..\\client\\mysqlshow.c"
+ source BldLevelInfo
}
target "..\\bin\\mysqlimport.exe"
{
// target source files
source type('cpp') "..\\client\\mysqlimport.c"
+ source BldLevelInfo
}
target "..\\bin\\mysqltest.exe"
{
source type('cpp') "..\\client\\mysqltest.c"
+ source BldLevelInfo
+ }
+
+ target "..\\bin\\mysqlbinlog.exe"
+ {
+ // optimized precompiled headers
+ option macros('global', 'yes')
+ {
+ source type('cpp') client_global_pch
+ }
+ // target source files
+ source type('cpp') "..\\client\\mysqlbinlog.cc"
+ source BldLevelInfo
+ }
+
+ target "..\\bin\\mysqlcheck.exe"
+ {
+ // optimized precompiled headers
+ option macros('global', 'yes')
+ {
+ source type('cpp') client_global_pch
+ }
+
+ // target source files
+ source type('cpp') "..\\client\\mysqlcheck.c"
+ source BldLevelInfo
}
}
diff --git a/os2/MySQL-Opt.icc b/os2/MySQL-Opt.icc
index 5f5cdb7c72f..7045f111d9b 100644
--- a/os2/MySQL-Opt.icc
+++ b/os2/MySQL-Opt.icc
@@ -2,29 +2,30 @@
debug_build = 0
// common options
-option BaseOptions = link(defaultlibsname, "tcpip32.lib")
- ,link(libsearchpath, "..\\lib\\")
- ,link(libsearchpath, "..\\bin\\")
- ,link(pmtype, vio)
- ,link(linkwithmultithreadlib, "yes")
- ,link(linkwithsharedlib, "no")
- ,gen(initauto, "yes")
- ,define("__MT__", )
- ,define("HAVE_BSD_SIGNALS", )
- ,define("INCL_DOS", )
- ,define("INCL_DOSERRORS", )
- ,define("INCL_LONGLONG", )
- ,define("OS2", )
- ,define("USE_TLS", )
- ,lang(signedchars, yes)
- ,incl(searchpath, "..")
- ,incl(searchpath, "..\\include")
- ,incl(searchpath, "..\\my_sys")
- ,incl(searchpath, "..\\regex")
- ,incl(searchpath, "..\\sql")
- ,incl(searchpath, "\\rd\\mysql\\zlib-1.1.3")
- ,incl(searchpath, "\\rd\\mysql\\ufc")
- ,incl(searchpath, "..\\os2")
+option BaseOptions = link(defaultlibsname, "tcpip32.lib")
+ , link(libsearchpath, "..\\lib\\")
+ , link(libsearchpath, "..\\bin\\")
+ , link(pmtype, vio)
+ , link(padding, no)
+ , link(linkwithmultithreadlib, "yes")
+ , link(linkwithsharedlib, "no")
+ , gen(initauto, "yes")
+ , define("__MT__", )
+ , define("HAVE_BSD_SIGNALS", )
+ , define("INCL_DOS", )
+ , define("INCL_DOSERRORS", )
+ , define("INCL_LONGLONG", )
+ , define("OS2", )
+ , define("USE_TLS", )
+ , lang(signedchars, yes)
+ , incl(searchpath, "..")
+ , incl(searchpath, "..\\include")
+ , incl(searchpath, "..\\my_sys")
+ , incl(searchpath, "..\\regex")
+ , incl(searchpath, "..\\sql")
+ , incl(searchpath, "..\\..\\zlib-1.1.3")
+ , incl(searchpath, "..\\..\\ufc")
+ , incl(searchpath, "..\\os2")
option ReleaseOptions = link(debug, "no")
, define("DBUG_OFF", )
diff --git a/os2/MySQL-Source.icc b/os2/MySQL-Source.icc
index 48780857185..134a64dc9b0 100644
--- a/os2/MySQL-Source.icc
+++ b/os2/MySQL-Source.icc
@@ -1,4 +1,4 @@
-group client_pch =
+group client_global_pch =
'os2.h',
'assert.h', 'direct.h', 'errno.h', 'nerrno.h',
'limits.h', 'io.h', 'math.h',
@@ -9,17 +9,46 @@ group client_pch =
'my_base.h', 'config-os2.h', 'my_dir.h',
'global.h', 'thr_alarm.h', 'm_string.h',
'mysql.h', 'zconf.h', 'zlib.h', 'mysys_err.h',
- //'my_os2dirsrch.h',
- 'm_ctype.h',
- 'mysqld_error.h',
+ 'm_ctype.h', 'mysqld_error.h',
'my_list.h', 'my_sys.h', 'my_net.h',
- 'myisam.h', 'myisampack.h', '.\myisam\myisamdef.h'
+ 'myisam.h', 'myisampack.h', '.\myisam\myisamdef.h',
+ '.\regex\regex.h'
+
+group server_global_pch =
+ 'os2.h',
+ 'string.h', 'assert.h', 'share.h', 'stdarg.h', 'stdio.h',
+ 'stdlib.h', 'stddef.h', 'math.h', 'io.h', 'limits.h',
+ 'process.h', 'errno.h', 'nerrno.h', 'sys/types.h',
+ 'sys/time.h', 'sys/stat.h', 'sys/param.h', 'sys/ioccom.h',
+ 'sys/filio.h', 'sys/sockio.h', 'sys/ioctlos2.h','sys/ioctl.h', 'types.h',
+ 'sys/utime.h', 'sys/select.h', 'sys/un.h',
+ 'netinet/in_systm.h', 'netinet/tcp.h',
+
+ 'global.h', 'my_base.h', 'config-os2.h',
+ 'my_dir.h', 'my_sys.h', 'mysql.h',
+ 'my_bitmap.h', 'violite.h', 'mysql_priv.h',
+ 'm_string.h', 'm_ctype.h',
+ 'myisam.h', 'myisampack.h', '.\myisam\myisamdef.h',
+ 'sql_string.h', 'item.h', 'unireg.h',
+ 'field.h', 'sql_lex.h', 'sql_list.h',
+ 'md5.h', 'sql_acl.h', 'slave.h',
+ 'ha_myisam.h', 'procedure.h', 'sql_select.h',
+ 'errmsg.h', 't_ctype.h', 'direct.h',
+ 'mysys_err.h', 'zconf.h', 'zlib.h',
+ 'my_tree.h', '..\mysys\my_static.h', 'netdb.h',
+ 'thr_alarm.h', 'heap.h', '..\myisam\fulltext.h',
+ '..\myisam\ftdefs.h', 'myisammrg.h',
+ '.\regex\regex.h'
+
+group server_pch =
+ 'ha_heap.h', 'ha_myisammrg.h', 'opt_ft.h',
+ 'hash_filo.h', 'mini_client.h', 'sql_repl.h',
+ 'sql_analyse.h', 'item_create.h', '..\mysys\mysys_priv.h'
group mysqlclientlib =
"..\\client\\readline.cc",
"..\\client\\sql_string.cc",
"..\\client\\completion_hash.cc",
- //"..\\libmysql\\dll.c",
"..\\libmysql\\libmysql.c",
"..\\libmysql\\errmsg.c",
"..\\libmysql\\get_password.c",
@@ -28,17 +57,17 @@ group mysqlclientlib =
"..\\libmysql\\violite.c"
group zlib =
- "\\rd\\mysql\\zlib-1.1.3\\compress.c", "\\rd\\mysql\\zlib-1.1.3\\crc32.c",
- "\\rd\\mysql\\zlib-1.1.3\\deflate.c", "\\rd\\mysql\\zlib-1.1.3\\gzio.c", "\\rd\\mysql\\zlib-1.1.3\\infblock.c",
- "\\rd\\mysql\\zlib-1.1.3\\infcodes.c", "\\rd\\mysql\\zlib-1.1.3\\inffast.c",
- "\\rd\\mysql\\zlib-1.1.3\\inflate.c", "\\rd\\mysql\\zlib-1.1.3\\inftrees.c",
- "\\rd\\mysql\\zlib-1.1.3\\infutil.c", "\\rd\\mysql\\zlib-1.1.3\\trees.c", "\\rd\\mysql\\zlib-1.1.3\\uncompr.c",
- "\\rd\\mysql\\zlib-1.1.3\\zutil.c", "\\rd\\mysql\\zlib-1.1.3\\adler32.c"
+ "..\\..\\zlib-1.1.3\\compress.c", "..\\..\\zlib-1.1.3\\crc32.c",
+ "..\\..\\zlib-1.1.3\\deflate.c", "..\\..\\zlib-1.1.3\\gzio.c", "..\\..\\zlib-1.1.3\\infblock.c",
+ "..\\..\\zlib-1.1.3\\infcodes.c", "..\\..\\zlib-1.1.3\\inffast.c",
+ "..\\..\\zlib-1.1.3\\inflate.c", "..\\..\\zlib-1.1.3\\inftrees.c",
+ "..\\..\\zlib-1.1.3\\infutil.c", "..\\..\\zlib-1.1.3\\trees.c", "..\\..\\zlib-1.1.3\\uncompr.c",
+ "..\\..\\zlib-1.1.3\\zutil.c", "..\\..\\zlib-1.1.3\\adler32.c"
group ufc =
- "\\rd\\mysql\\ufc\\crypt.c",
- "\\rd\\mysql\\ufc\\crypt_util.c",
- "\\rd\\mysql\\ufc\\crypt-entry.c"
+ "..\\..\\ufc\\crypt.c",
+ "..\\..\\ufc\\crypt_util.c",
+ "..\\..\\ufc\\crypt-entry.c"
group sql =
"..\\sql\\convert.cc",
@@ -106,7 +135,7 @@ group sql =
"..\\sql\\sql_test.cc",
"..\\sql\\sql_update.cc",
"..\\sql\\sql_udf.cc",
- "..\\sql\\sql_yacc.cc",
+ "..\\sql\\sql_yacc.c",
"..\\sql\\table.cc",
"..\\sql\\thr_malloc.cc",
"..\\sql\\time.cc",
@@ -140,8 +169,6 @@ group strings =
"..\\strings\\ctype-sjis.c",
"..\\strings\\ctype-tis620.c",
"..\\strings\\ctype-ujis.c",
- "..\\strings\\ctype_extra_sources.c",
- "..\\strings\\ctype_autoconf.c",
"..\\strings\\ctype.c",
"..\\strings\\int2str.c",
"..\\strings\\is_prefix.c",
@@ -162,6 +189,8 @@ group strings =
"..\\strings\\strxmov.c",
"..\\strings\\strxnmov.c"
+/*
+*/
group heap = "..\\heap\\hp_block.c", "..\\heap\\hp_clear.c",
"..\\heap\\hp_close.c", "..\\heap\\hp_create.c", "..\\heap\\hp_delete.c",
@@ -242,7 +271,8 @@ group strings =
"..\\mysys\\my_thr_init.c", "..\\mysys\\my_vsnprintf.c",
"..\\mysys\\my_write.c", "..\\mysys\\ptr_cmp.c",
"..\\mysys\\queues.c", "..\\mysys\\raid.cc",
- "..\\mysys\\safemalloc.c", "..\\mysys\\string.c",
+ //"..\\mysys\\safemalloc.c",
+ "..\\mysys\\string.c",
"..\\mysys\\thr_alarm.c",
"..\\mysys\\thr_mutex.c", "..\\mysys\\thr_rwlock.c",
"..\\mysys\\tree.c", "..\\mysys\\typelib.c"
@@ -254,11 +284,13 @@ group strings =
"..\\myisam\\ft_search.c", "..\\myisam\\ft_static.c",
"..\\myisam\\ft_stopwords.c", "..\\myisam\\ft_update.c",
"..\\myisam\\mi_cache.c", "..\\myisam\\mi_changed.c",
- "..\\myisam\\mi_check.c", "..\\myisam\\mi_checksum.c",
+ //"..\\myisam\\mi_check.c",
+ "..\\myisam\\mi_checksum.c",
"..\\myisam\\mi_close.c", "..\\myisam\\mi_create.c",
"..\\myisam\\mi_dbug.c", "..\\myisam\\mi_delete.c",
"..\\myisam\\mi_delete_all.c", "..\\myisam\\mi_delete_table.c",
"..\\myisam\\mi_dynrec.c", "..\\myisam\\mi_extra.c",
+ //"..\\myisam\\mi_error.c",
"..\\myisam\\mi_info.c", "..\\myisam\\mi_key.c",
"..\\myisam\\mi_locking.c", "..\\myisam\\mi_log.c",
"..\\myisam\\mi_open.c", "..\\myisam\\mi_packrec.c",
@@ -271,8 +303,8 @@ group strings =
"..\\myisam\\mi_rsamepos.c", "..\\myisam\\mi_scan.c",
"..\\myisam\\mi_search.c", "..\\myisam\\mi_static.c",
"..\\myisam\\mi_statrec.c", "..\\myisam\\mi_unique.c",
- "..\\myisam\\mi_update.c", "..\\myisam\\mi_write.c",
- "..\\myisam\\sort.c"
+ "..\\myisam\\mi_update.c", "..\\myisam\\mi_write.c"
+ //"..\\myisam\\sort.c"
group dbug = "..\\dbug\\dbug.c", "..\\dbug\\factorial.c", "..\\dbug\\sanity.c"
@@ -293,6 +325,7 @@ group strings =
//"..\\readline\\vi_keymap.c",
"..\\readline\\vi_mode.c", "..\\readline\\xmalloc.c"
-group regex = "..\\regex\\regcomp.c", "..\\regex\\regerror.c",
- "..\\regex\\regexec.c", "..\\regex\\regfree.c", "..\\regex\\reginit.c"
+ group regex = "..\\regex\\regcomp.c", "..\\regex\\regerror.c",
+ "..\\regex\\regexec.c", "..\\regex\\regfree.c", "..\\regex\\reginit.c"
+ group BldLevelInfo = 'os2\BldLevel.rc'
diff --git a/os2/MySQL-Sql.icc b/os2/MySQL-Sql.icc
index addb645e2db..c1256d5e39e 100644
--- a/os2/MySQL-Sql.icc
+++ b/os2/MySQL-Sql.icc
@@ -5,6 +5,9 @@ InlineCode = "no"
include "MySQL-Opt.icc"
include "MySQL-Source.icc"
+run before sources('..\sql\sql_yacc.yy') targets('..\sql\sql_yacc.c')
+ 'bison -y -d -o ..\sql\sql_yacc.c ..\sql\sql_yacc.yy'
+
option ProjectOptions = MySQLOptions
, define( "MYSQL_SERVER", "")
{
@@ -16,68 +19,9 @@ option ProjectOptions = MySQLOptions
// optimized precompiled headers
option macros('global', 'yes')
{
- //source type('cpp') gpch
- source type('cpp') 'os2.h'
- source type('cpp')
- //'ctype.h',
- 'string.h', 'assert.h', 'share.h', 'stdarg.h', 'stdio.h',
- 'stdlib.h', 'stddef.h', 'math.h', 'io.h', 'limits.h',
- 'process.h', 'errno.h', 'nerrno.h', 'sys/types.h',
- 'sys/time.h', 'sys/stat.h', 'sys/param.h', 'sys/ioccom.h',
- 'sys/filio.h', 'sys/sockio.h', 'sys/ioctlos2.h','sys/ioctl.h', 'types.h'
-
- source type('cpp')
- 'global.h', 'my_base.h', 'config-os2.h',
- 'my_dir.h', 'my_sys.h', 'mysql.h',
- 'my_bitmap.h', 'violite.h', 'mysql_priv.h',
- 'm_string.h', 'm_ctype.h'
-
- source type('cpp') 'myisam.h'
- source type('cpp') 'myisampack.h'
- source type('cpp') '.\myisam\myisamdef.h'
-
- source type('cpp') 'sql_string.h'
- source type('cpp') 'item.h'
- source type('cpp') 'unireg.h'
- source type('cpp') 'field.h'
- source type('cpp') 'sql_lex.h'
- source type('cpp') 'sql_list.h'
- source type('cpp') 'md5.h'
- source type('cpp') 'sql_acl.h'
- source type('cpp') 'slave.h'
- source type('cpp') 'ha_myisam.h'
- source type('cpp') 'procedure.h'
- source type('cpp') 'sql_select.h'
- source type('cpp') 'errmsg.h'
- source type('cpp') 't_ctype.h'
- source type('cpp') 'direct.h'
- source type('cpp') 'mysys_err.h'
- source type('cpp') 'zconf.h'
- source type('cpp') 'zlib.h'
- source type('cpp') 'my_tree.h'
- source type('cpp') '..\mysys\my_static.h'
- source type('cpp') 'netdb.h'
- source type('cpp') 'thr_alarm.h'
- source type('cpp') 'heap.h'
- source type('cpp') '..\myisam\fulltext.h'
- source type('cpp') '..\myisam\ftdefs.h'
- source type('cpp') 'myisammrg.h'
-
+ source type('cpp') server_global_pch
}
- source type('cpp') 'sys/un.h'
- source type('cpp') 'ha_heap.h'
- source type('cpp') 'ha_myisammrg.h'
- source type('cpp') 'opt_ft.h'
- source type('cpp') 'hash_filo.h'
- source type('cpp') 'mini_client.h'
- source type('cpp') 'sql_repl.h'
- source type('cpp') 'netinet/in_systm.h'
- source type('cpp') 'netinet/tcp.h'
- source type('cpp') 'sql_analyse.h'
- source type('cpp') 'item_create.h'
- source type('cpp') '..\mysys\mysys_priv.h'
- source type('cpp') 'sys/utime.h'
- source type('cpp') 'sys/select.h'
+ source type('cpp') server_pch
// target source files
source "rint.obj"
@@ -93,25 +37,10 @@ option ProjectOptions = MySQLOptions
source type('cpp') my_sys
source type('cpp') my_sys_sql
source type('cpp') strings
- source type('cpp') sql
- }
- }
-/*
- option define( "MYSQL_SERVER", "")
- {
- target "..\\bin\\mysqlbinlog.exe"
- {
- // optimized precompiled headers
- option macros('global', 'yes')
- {
- //source type('cpp') client_pch //, 'sql_string.h'
- }
- // target source files
- source type('cpp')
- "..\\sql\\mysqlbinlog.cc",
- "..\\sql\\mini_client.cc",
- "..\\sql\\net_serv.cc"
+ source type('cpp') sql,
+ "..\\myisam\\mi_check.c",
+ "..\\myisam\\sort.c"
+ source BldLevelInfo
}
}
-*/
}
diff --git a/os2/MySQL-Util.icc b/os2/MySQL-Util.icc
index 61b1f53bc5f..5a7ae2959b9 100644
--- a/os2/MySQL-Util.icc
+++ b/os2/MySQL-Util.icc
@@ -6,20 +6,51 @@ include "MySQL-Opt.icc"
include "MySQL-Source.icc"
option ProjectOptions = MySQLOptions
- , link(defaultlibsname, "common.lib")
- , link(defaultlibsname, "myisam.lib")
- , link(defaultlibsname, "isam.lib")
- , link(defaultlibsname, "mysql.lib")
+ , link(defaultlibsname, "mysql.lib")
{
+ option file(genobject, "..\\OBJ\\ZLIB\\")
+ ,link(exportAll)
+ {
+ target "..\\bin\\mysqlu.dll"
+ {
+ // optimized precompiled headers
+ option macros('global', 'yes')
+ {
+ source type('cpp') client_global_pch
+ }
+ // target source files
+ source zlib, ufc, regex, 'strings\bmove_upp.c'
+ if debug_build {
+ source type('cpp') dbug
+ }
+ source type('cpp') heap
+ source type('cpp') merge
+ source type('cpp') myisam
+ source type('cpp') myisammrg
+ source type('cpp') isam
+ source type('cpp') my_sys
+ source type('cpp') my_sys_cli
+ source type('cpp') my_sys_sql
+ source type('cpp') strings
+ source type('cpp') '..\libmysql\dll.c'
+ source BldLevelInfo
+ }
+ }
+
+
target "..\\bin\\myisamchk.exe"
{
// optimized precompiled headers
option macros('global', 'yes')
{
- source type('cpp') client_pch
+ source type('cpp') client_global_pch
}
- source type('cpp') "..\\myisam\\myisamchk.c"
+ // target source files
+ source type('cpp') "..\\myisam\\myisamchk.c",
+ "..\\myisam\\mi_check.c",
+ "..\\myisam\\sort.c"
+ source BldLevelInfo
}
target "..\\bin\\myisamlog.exe"
@@ -27,11 +58,11 @@ option ProjectOptions = MySQLOptions
// optimized precompiled headers
option macros('global', 'yes')
{
- source type('cpp') client_pch
+ source type('cpp') client_global_pch
}
-
// target source files
source type('cpp') "..\\myisam\\myisamlog.c"
+ source BldLevelInfo
}
target "..\\bin\\myisampack.exe"
@@ -39,10 +70,23 @@ option ProjectOptions = MySQLOptions
// optimized precompiled headers
option macros('global', 'yes')
{
- source type('cpp') client_pch
+ source type('cpp') client_global_pch
}
// target source files
source type('cpp') "..\\myisam\\myisampack.c"
+ source BldLevelInfo
+ }
+
+ target "..\\bin\\test\\comp_err.exe"
+ {
+ // target source files
+ source type('cpp') "..\\extra\\comp_err.c"
+ }
+
+ target "..\\bin\\gen_lex_hash.exe"
+ {
+ // target source files
+ source type('cpp') "..\\sql\\gen_lex_hash.cc"
}
target "..\\bin\\test\\is_test1.exe"
@@ -75,13 +119,13 @@ option ProjectOptions = MySQLOptions
// target source files
source type('cpp') "..\\myisam\\ft_test1.c"
}
-
- //target "..\\bin\\test\\testhash.exe"
+/*
+ target "..\\bin\\test\\testhash.exe"
{
// target source files
- //source type('cpp') "..\\mysys\\testhash.c"
+ source type('cpp') "..\\mysys\\testhash.c"
}
-
+*/
target "..\\bin\\test\\test_charset.exe"
{
// target source files
@@ -99,6 +143,7 @@ option ProjectOptions = MySQLOptions
source type('cpp') "..\\heap\\hp_test2.c"
}
+/*
option define( "MAIN", "")
{
target "..\\bin\\test\\thr_lock.exe"
@@ -107,13 +152,13 @@ option ProjectOptions = MySQLOptions
source type('cpp') "..\\mysys\\thr_lock.c"
}
}
-
+*/
target "..\\bin\\test\\insert_test.exe"
{
// optimized precompiled headers
option macros('global', 'yes')
{
- source type('cpp') client_pch
+ source type('cpp') client_global_pch
}
source type('cpp') "..\\client\\insert_test.c"
}
@@ -126,9 +171,12 @@ option ProjectOptions = MySQLOptions
// optimized precompiled headers
option macros('global', 'yes')
{
- source type('cpp') client_pch
+ source type('cpp') client_global_pch
}
source type('cpp') "..\\client\\thread_test.c"
}
}
+
+run after sources('..\bin\gen_lex_hash.exe') targets('..\sql\lex_hash.h')
+ '..\bin\gen_lex_has.exe > ..\sql\lex_hash.h'
diff --git a/os2/ReadMe.txt b/os2/ReadMe.txt
new file mode 100644
index 00000000000..1a8158df4bf
--- /dev/null
+++ b/os2/ReadMe.txt
@@ -0,0 +1,177 @@
+====================================================
+
+Contents
+--------
+Welcome to the latest port of MySQL for OS/2 and eComStation.
+
+Modules included in this build:
+ - protocol data compression
+ - transaction support
+ - perl BDB/BDI support (not in this package)
+ - Library and header files for C/CPP developers included
+
+This package has been built using IBM VAC++ 4.0
+
+The MySQL server is distributed under the GPL license. Please refer to
+the file COPYING for the license information.
+
+The MySQL client library is distributed under the LGPL license.
+Please refer to the file COPYING for the license information.
+
+Most of the MySQL clients are distributed under the GPL license, but
+some files may be in the public domain.
+
+The latest information about MySQL can be found at: http://www.mysql.com
+
+To get the latest information about this port please subscribe to our
+newsgroup/mailinglist mysql2 at www.egroups.com.
+
+To see what MySQL can do, take a look at the features section in the
+manual. For future plans see the TODO appendix in the manual.
+
+New features/bug fixes history is in the news appendix in the manual.
+
+For the currently known bugs/misfeatures (known errors) see the bugs
+appendix in the manual. The OS/2 section contains notes that are
+specific to the MySQL OS/2 and eComStation version.
+
+Please note that MySQL is a constantly moving target. New builds for
+Linux are made available every week. This port may therefore be a few
+minor versions after the latest Linux/Win32 builds but its generally
+more stable than the "latest and greates" port.
+
+MySQL is brought to you by: TcX DataKonsult AB & MySQL Finland AB
+
+This port is brought to you by:
+
+Yuri Dario <mc6530@mclink.it>, development, porting
+Timo Maier <tam@gmx.de>, documentation, testing
+John M Alfredsson <jma@jmast.se>, documentation, testing
+
+
+Installation
+------------
+Prerequisite:
+
+- OS/2 Warp 3 with FP ?? or later,
+ OS/2 Warp 4 with FP ?? or later,
+ OS/2 Warp Server for e-Business,
+ eComStation 1.0 (prev 1/2 OK)
+- TCPIP 4.x installed (requires 32-bit tcpip stack)
+- WarpIN installer 0.9.14 (ftp://ftp.os2.org/xworkplace/warpin-0-9-14.exe)
+
+Note: probably some fixpak level is required on both Warp3&Warp4 to
+ support >2GB file sizes.
+
+Save the installation archives into a temporary folder and double click
+on the main package; otherwise you can drop the mysql package in your
+WarpIN object or type
+
+ WARPIN MYSQL-3-23-??-BLD1.WPI
+
+from the command line.
+The configuration file for MySQL is named my.cnf and it is placed into
+your %ETC% directory. Usually it located into the boot driver under
+
+ x:\MPTN\ETC
+
+If the installation detect an existing configuration file, this will be
+renamed to my.cnf.bak; your current settings aren't migrated to current
+installation. This file is not deleted by uninstall process.
+Startup options for MySQL daemon could be added there.
+
+As default, client connections uses data compression: if you don't like it,
+remove the following from your %ETC%\my.cnf
+
+ [client]
+ compress
+
+The server switches automatically compression mode on client request.
+
+This release comes with DLL client library MYSQL.DLL: it is installed by
+default into mysql\bin together with client applications. Copy it to your
+x:\OS2\DLL or another directory in your LIBPATH to run command line
+utilities from every place.
+
+
+Documentation
+-------------
+Documentation is provided in separate files. You can use either
+the PDF documentation (requires Adobe Acrobat Reader) or the
+INF documentation (requires OS/2 view or NewView).
+
+The PDF documentation is found in
+
+ MYSQL-3-23-42-PDF.WPI
+
+and the INF documentation is found in
+
+ MYSQL-3-23-28-INF.WPI
+
+The latest documentation in other formats can always be downloaded from
+http://www.mysql.com. However this documentation may not fully apply to
+this port.
+The INF documentation could contain errors because of semi-automatic
+translation from texi original. Also it is not updated as the latest PDF
+manual (sorry, but conversion from texi to ipf requires quite a lot of
+work).
+
+
+Support
+-------
+Since MySQL is a OpenSource freeware product there are no
+formal support options available.
+
+Please subscribe to mysql2 at www.yahoogroups.com to get in contact
+with other users using this port.
+
+http://www.yahoogroups.com/group/mysql2
+
+This newsgroup/mailinglist is the official "home" of this port.
+
+
+Donations
+---------
+Since this software is ported for free, donations are welcome!
+You can get also an extended support, which is not free and subject to
+custom rates.
+Ask in the mailing list for details.
+
+
+Know problems
+-------------
+alter_table.test and show_check are failing, reporting a different status
+message: actually seems only a different text, no bugs in table checking.
+
+
+Apache/2 + PHP
+--------------
+To avoid problems with different socket when you use PHP and Apache
+webserver, get the PHP4 module from the Apache Server for OS/2 homepage
+http://silk.apana.org.au/apache/
+
+
+Developing MySQL
+----------------
+If you want to help us develop MySQL for OS2/eComStation please join
+the mysql2 mailinglist at www.egroups.com and ask for help to set up
+your environment!
+
+All questions that are specific to the OS2/eComStation version should
+be posted to this list! Please remember to include all relevant
+information that may help solve your problem.
+
+Building MySQL (VAC++ 4)
+------------------------
+Apply file and patches found in the src\ directory (if exists).
+Create the following subdirectories
+
+ bin\
+ bin\test
+ lib\
+ obj\
+ obj\zlib
+
+Build os2\MySQL-Client.icc project first.
+Then os2\MySQL-Util.icc; last is os2\MySQL-Sql.icc
+
diff --git a/os2/mysql-inf.wis b/os2/mysql-inf.wis
new file mode 100644
index 00000000000..55259567a2e
--- /dev/null
+++ b/os2/mysql-inf.wis
@@ -0,0 +1,15 @@
+#include "mysql.ih"
+
+<WARPIN VERSION <$WARPIN_VERSION>>
+<HEAD>
+<MSG>
+This is not an installable archive.
+
+Please download and install the main archive:
+
+ mysql-<$MySQL-Ver>-bld1.wpi
+
+</MSG>
+</HEAD>
+</WARPIN>
+ \ No newline at end of file
diff --git a/os2/mysql.wis b/os2/mysql.wis
new file mode 100644
index 00000000000..50207a0c499
--- /dev/null
+++ b/os2/mysql.wis
@@ -0,0 +1,127 @@
+#include "mysql.ih"
+
+<WARPIN VERSION <$WARPIN_VERSION>>
+<HEAD>
+
+<PCK INDEX=1
+ PACKAGEID="TCX Datakonsult AB\MySQL for OS/2\SQL Database Engine\<$MySQL\Ver>"
+ TARGET="?:\usr\local\mysql" BASE
+ TITLE="SQL Database Engine"
+ EXECUTE="$(1)\bootstrap.cmd [bootstrap]"
+ CONFIG.SYS="SET EMXOPT=-h1024 | UNIQUE(-h)"
+ CREATEOBJECT="WPFolder|MySQL <$MySQL.Ver>|<WP_DESKTOP>|OBJECTID=<MYSQL_<$MySQL.Major>_<$MySQL.Minor>_FOLDER>"
+ CREATEOBJECT="WPProgram|Console|<MYSQL_<$MySQL.Major>_<$MySQL.Minor>_FOLDER>|EXENAME=$(1)\bin\mysql.exe;STARTUPDIR=$(1)\bin;ICONFILE=$(1)\bin\icons\mysql-client.ico;OBJECTID=<MYSQL_<$MySQL.Major>_<$MySQL.Minor>_CONSOLE>;"
+ CREATEOBJECT="WPProgram|Start server|<MYSQL_<$MySQL.Major>_<$MySQL.Minor>_FOLDER>|EXENAME=$(1)\bin\mysqld.exe;ICONFILE=$(1)\bin\icons\mysql-startserver.ico;OBJECTID=<MYSQL_<$MySQL.Major>_<$MySQL.Minor>_START>;"
+ CREATEOBJECT="WPProgram|Shutdown server|<MYSQL_<$MySQL.Major>_<$MySQL.Minor>_FOLDER>|EXENAME=$(1)\bin\mysqladmin.exe;STARTUPDIR=$(1)\bin;PARAMETERS=-u root shutdown;ICONFILE=$(1)\bin\icons\mysql-shutdownserver.ico;OBJECTID=<MYSQL_<$MySQL.Major>_<$MySQL.Minor>_SHUTDOWN>;"
+ CREATEOBJECT="WPProgram|Readme first|<MYSQL_<$MySQL.Major>_<$MySQL.Minor>_FOLDER>|EXENAME=e.exe;PARAMETERS=$(1)\ReadMe.txt;OBJECTID=<MYSQL_<$MySQL.Major>_<$MySQL.Minor>_README>;"
+ SELECT
+ >This package will install MySQL for OS/2 SQL engine
+</PCK>
+
+<PCK INDEX=2
+ PACKAGEID="TCX Datakonsult AB\MySQL for OS/2\Developement Kit\<$MySQL\Ver>"
+ TARGET="?:\usr\local\mysql"
+ TITLE="Developement Kit"
+ SELECT
+ >This package will install MySQL for OS/2 sdk
+</PCK>
+
+<PCK INDEX=3
+ PACKAGEID="TCX Datakonsult AB\MySQL for OS/2\PDF manual\<$MySQL\Ver>"
+ TARGET="?:\usr\local\mysql"
+ TITLE="PDF manual"
+ EXTERNAL="mysql-<$MySQL-Ver>-pdf.wpi"
+ CREATEOBJECT="WPShadow|PDF Manual|<MYSQL_<$MySQL.Major>_<$MySQL.Minor>_FOLDER>|SHADOWID=$(1)\docs\manual.pdf"
+ SELECT
+ >This package will install MySQL for OS/2 documentation
+</PCK>
+
+<PCK INDEX=4
+ PACKAGEID="TCX Datakonsult AB\MySQL for OS/2\INF manual\3\23\28"
+ TARGET="?:\usr\local\mysql"
+ TITLE="INF manual"
+ EXTERNAL="mysql-3-23-28-gamma-inf.wpi"
+ CREATEOBJECT="WPProgram|MySQL Manual|<MYSQL_<$MySQL.Major>_<$MySQL.Minor>_FOLDER>|EXENAME=view.exe;PARAMETERS=$(1)\docs\manual.inf;ICONFILE=$(1)\bin\icons\mysql-manual.ico;OBJECTID=<MYSQL_<$MySQL.Major>_<$MySQL.Minor>_INFMANUAL>;"
+ SELECT
+ >This package will install MySQL for OS/2 documentation
+</PCK>
+
+<PCK INDEX=5
+ PACKAGEID="TCX Datakonsult AB\MySQL for OS/2\Test suite\<$MySQL\Ver>"
+ TARGET="?:\usr\local\mysql"
+ TITLE="Test suite"
+ EXTERNAL="mysql-<$MySQL-Ver>-test.wpi"
+ CREATEOBJECT="WPProgram|Run MySQL Test Suite|<MYSQL_<$MySQL.Major>_<$MySQL.Minor>_FOLDER>|EXENAME=$(5)\mysql-test\mysql-test.cmd;PARAMETERS=$(1)\docs\manual.inf;ICONFILE=$(1)\bin\icons\mysql-manual.ico;OBJECTID=<MYSQL_<$MySQL.Major>_<$MySQL.Minor>_TESTSUITE>;"
+ SELECT
+ >This package will install MySQL for OS/2 test suite
+</PCK>
+
+</HEAD>
+
+<!-- Here come the different pages. They are linked by
+ the <NEXTBUTTON> tags, which must have a target.
+ Each page must have a TYPE= attribute, which tells
+ WarpIn what will be visible on that page. -->
+
+<BODY>
+
+<!-- page1: introduction ->>
+<PAGE INDEX=1 TYPE=README>
+<TEXT>
+</TEXT>
+<NEXTBUTTON TARGET=2>~Next</NEXTBUTTON>
+<README FORMAT=HTML>
+
+<P>Welcome to the latest port of <B>MySQL for OS/2 and eComStation</B>.
+<BR>
+<P>You are about to install <B>MySQL <$MySQL.Ver></B>
+
+<BR>
+<BR>
+<P>Select "Next" to continue.
+
+<P>Select "Cancel" to abort installation.
+</README>
+</PAGE>
+
+<!-- show ReadMe.txt -->
+<PAGE INDEX=2 TYPE=README>
+<NEXTBUTTON TARGET=3>~Next</NEXTBUTTON>
+<TEXT>
+</TEXT>
+<README FORMAT=PLAIN EXTRACTFROMPCK="1">ReadMe.txt</README>
+</PAGE>
+
+<!-- show GPL license -->
+<PAGE INDEX=3 TYPE=README>
+<NEXTBUTTON TARGET=4>~I agree</NEXTBUTTON>
+<TEXT>
+By pressing the "I agree" button, you agree to all terms and conditions to the below licence agreement.
+</TEXT>
+<README FORMAT=HTML EXTRACTFROMPCK="1">license.htm</README>
+</PAGE>
+
+
+<!-- The TYPE=CONTAINER will list the packages which can be installed. -->
+
+<PAGE INDEX=4 TYPE=CONTAINER>
+<NEXTBUTTON TARGET=5>~Next</NEXTBUTTON>
+<TEXT>
+Please select the packages which are to be installed. You may change the target paths for the packages.
+</TEXT>
+</PAGE>
+
+<!-- Here's another TYPE=TEXT page before we install.
+ The special target "0" indicates that after this page we
+ should start installation.
+ Note that the TYPE=INSTALL page (which we had in Alpha #3)
+ is no longer supported. -->
+
+<PAGE INDEX=5 TYPE=TEXT>
+<NEXTBUTTON TARGET=0>I~nstall</NEXTBUTTON>
+<TEXT>
+Press "Install" to begin installing this archive.</TEXT>
+</PAGE>
+
+</BODY>
+</WARPIN>
diff --git a/os2/mysqlalt.wis b/os2/mysqlalt.wis
new file mode 100644
index 00000000000..55259567a2e
--- /dev/null
+++ b/os2/mysqlalt.wis
@@ -0,0 +1,15 @@
+#include "mysql.ih"
+
+<WARPIN VERSION <$WARPIN_VERSION>>
+<HEAD>
+<MSG>
+This is not an installable archive.
+
+Please download and install the main archive:
+
+ mysql-<$MySQL-Ver>-bld1.wpi
+
+</MSG>
+</HEAD>
+</WARPIN>
+ \ No newline at end of file