| [7] | 1 | XWP Helpers 0.9.6 README | 
|---|
|  | 2 | (W) Ulrich Mller, October 26, 2000 | 
|---|
|  | 3 | Last updated October 26, 2000, Ulrich Mller | 
|---|
|  | 4 |  | 
|---|
|  | 5 |  | 
|---|
|  | 6 | 0. CONTENTS OF THIS FILE | 
|---|
|  | 7 | ======================== | 
|---|
|  | 8 |  | 
|---|
|  | 9 | 1. LICENSE, COPYRIGHT, DISCLAIMER | 
|---|
|  | 10 | 2. INTRODUCTION | 
|---|
|  | 11 | 3. CREATING CODE DOCUMENTATION | 
|---|
|  | 12 | 4. COMPILING | 
|---|
|  | 13 | 5. INCLUDING HEADER FILES | 
|---|
|  | 14 |  | 
|---|
|  | 15 |  | 
|---|
|  | 16 | 1. LICENSE, COPYRIGHT, DISCLAIMER | 
|---|
|  | 17 | ================================= | 
|---|
|  | 18 |  | 
|---|
|  | 19 | Copyright (C) 1997-2000 Ulrich Mller, | 
|---|
|  | 20 | Christian Langanke, | 
|---|
|  | 21 | and others (see the individual source files). | 
|---|
|  | 22 |  | 
|---|
|  | 23 | This program is free software; you can redistribute it and/or modify | 
|---|
|  | 24 | it under the terms of the GNU General Public License as contained in | 
|---|
|  | 25 | the file COPYING in this distribution. | 
|---|
|  | 26 |  | 
|---|
|  | 27 | This program is distributed in the hope that it will be useful, | 
|---|
|  | 28 | but WITHOUT ANY WARRANTY; without even the implied warranty of | 
|---|
|  | 29 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 
|---|
|  | 30 |  | 
|---|
|  | 31 |  | 
|---|
|  | 32 | 2. INTRODUCTION | 
|---|
|  | 33 | =============== | 
|---|
|  | 34 |  | 
|---|
|  | 35 | Welcome to the XWorkplace Helpers. | 
|---|
|  | 36 |  | 
|---|
|  | 37 | This CVS archive is intended to support OS/2 developers with any | 
|---|
|  | 38 | code they might need writing OS/2 programs. | 
|---|
|  | 39 |  | 
|---|
|  | 40 | The XWPHelpers are presently used in XWorkplace and WarpIN. They | 
|---|
|  | 41 | started out from various code snippets I created for XFolder, | 
|---|
|  | 42 | the predecessor of XWorkplace. I then isolated the code which could | 
|---|
|  | 43 | be used independently and put that code into separate directories | 
|---|
|  | 44 | in the WarpIN CVS repository (also at Netlabs). | 
|---|
|  | 45 |  | 
|---|
|  | 46 | At Warpstock Europe 2000 in Karlsruhe, I talked to a number of | 
|---|
|  | 47 | developers and then decided that this should become an independent | 
|---|
|  | 48 | Netlabs CVS archive so that other people can more easily contribute. | 
|---|
|  | 49 |  | 
|---|
|  | 50 | Even though the helpers are called "XWorkplace helpers", they | 
|---|
|  | 51 | have nothing to do with WPS and SOM programming. They can help | 
|---|
|  | 52 | any OS/2 programmer. | 
|---|
|  | 53 |  | 
|---|
|  | 54 | The XWPHelpers offer you frequently used code for writing all | 
|---|
|  | 55 | sorts of OS/2 programs, including: | 
|---|
|  | 56 |  | 
|---|
|  | 57 | --  standard C code which is independent of the OS/2 platform; | 
|---|
|  | 58 |  | 
|---|
|  | 59 | --  OS/2-specific code which can be used in any OS/2 program | 
|---|
|  | 60 | (text mode or PM); | 
|---|
|  | 61 |  | 
|---|
|  | 62 | --  PM-specific code which assists you in writing PM programs. | 
|---|
|  | 63 |  | 
|---|
|  | 64 | The XWPHelpers can be compiled with EMX/GCC or IBM VisualAge | 
|---|
|  | 65 | C++ 3.08. They can be used with C or C++ programs. | 
|---|
|  | 66 |  | 
|---|
|  | 67 |  | 
|---|
|  | 68 | Getting Sources from Netlabs CVS | 
|---|
|  | 69 | -------------------------------- | 
|---|
|  | 70 |  | 
|---|
|  | 71 | First set the CVS enviroment: | 
|---|
|  | 72 | CVSROOT=:pserver:guest@www.netlabs.org:d:/netlabs.src/xwphelpers | 
|---|
|  | 73 | USER=guest | 
|---|
|  | 74 |  | 
|---|
|  | 75 | Then, to check out the most current XWPHelpers sources, create | 
|---|
|  | 76 | a subdirectory in your CVS root dir called "xwphelpers". | 
|---|
|  | 77 |  | 
|---|
|  | 78 | Do a "cvs login" with "readonly" as your password and do a | 
|---|
|  | 79 | "cvs checkout ." from the "xwphelpers" subdirectory. Don't forget | 
|---|
|  | 80 | the dot. | 
|---|
|  | 81 |  | 
|---|
|  | 82 | Alternatively, use the Netlabs Open Source Archive Client (NOSAC). | 
|---|
|  | 83 | See http://www.netlabs.org/nosa for details. | 
|---|
|  | 84 |  | 
|---|
|  | 85 | In any case, I strongly recommend to create a file in $(HOME) | 
|---|
|  | 86 | called ".cvsrc" and add "cvs -z9" in there to enable maximum | 
|---|
|  | 87 | compression during transfers. This greatly speeds up things. | 
|---|
|  | 88 |  | 
|---|
|  | 89 |  | 
|---|
|  | 90 | 3. CREATING CODE DOCUMENTATION | 
|---|
|  | 91 | ============================== | 
|---|
|  | 92 |  | 
|---|
|  | 93 | The XWPHelpers do not come with pre-made documentation. However, | 
|---|
|  | 94 | you can automatically have documentation generated from the sources | 
|---|
|  | 95 | using my "xdoc" utility, which resides in the main directory of | 
|---|
|  | 96 | the helpers. (The source code for xdoc is in the WarpIN CVS | 
|---|
|  | 97 | repository because it shares some C++ code with WarpIN.) | 
|---|
|  | 98 |  | 
|---|
|  | 99 | To have the code generated, call "createdoc.cmd" in the main | 
|---|
|  | 100 | directory. This will call xdoc in turn with the proper parameters | 
|---|
|  | 101 | and create a new "HTML" directory, from where you should start | 
|---|
|  | 102 | with the "index.html" file. | 
|---|
|  | 103 |  | 
|---|
|  | 104 |  | 
|---|
|  | 105 | 4. COMPILING | 
|---|
|  | 106 | ============ | 
|---|
|  | 107 |  | 
|---|
|  | 108 | Compiling is a bit tricky because the code and the makefiles | 
|---|
|  | 109 | were designed to be independent of any single project. As a | 
|---|
|  | 110 | result, I had to used environment variables in order to pass | 
|---|
|  | 111 | parameters to the makefiles. | 
|---|
|  | 112 |  | 
|---|
|  | 113 | The most important environment variable is PROJECT_BASE_DIR. | 
|---|
|  | 114 | This should point to the root directory of your own project. | 
|---|
|  | 115 | In this directory, src\helpers\makefile expects a file called | 
|---|
|  | 116 | "setup.in" which sets up more environment variables. You can | 
|---|
|  | 117 | take the one from the XWPHelpers makefile as a template. | 
|---|
|  | 118 |  | 
|---|
|  | 119 | See the top of src\helpers\makefile for additional variables. | 
|---|
|  | 120 |  | 
|---|
|  | 121 | Of course, nothing stops you from writing your own makefile | 
|---|
|  | 122 | if you find all this to complicated. However, if you choose | 
|---|
|  | 123 | to use my makefile from within your own project, you can | 
|---|
|  | 124 | then simply change to the src\helpers directory and start a | 
|---|
|  | 125 | second nmake from your own makefile like this: | 
|---|
|  | 126 |  | 
|---|
|  | 127 | @cd xxx\src\helpers | 
|---|
|  | 128 | nmake -nologo "PROJECT_BASE_DIR=C:\myproject" "MAINMAKERUNNING=YES" | 
|---|
|  | 129 | @cd olddir | 
|---|
|  | 130 |  | 
|---|
|  | 131 |  | 
|---|
|  | 132 | 5. INCLUDING HEADER FILES | 
|---|
|  | 133 | ========================= | 
|---|
|  | 134 |  | 
|---|
|  | 135 | The "include policy" of the helpers is that the "include" | 
|---|
|  | 136 | directory in the helpers source tree should be part of your | 
|---|
|  | 137 | include path. This way you can include helper headers in | 
|---|
|  | 138 | your own project code using | 
|---|
|  | 139 |  | 
|---|
|  | 140 | #include "helpers\header.h" | 
|---|
|  | 141 |  | 
|---|
|  | 142 | so that the helpers headers won't interfere with your own | 
|---|
|  | 143 | headers. | 
|---|
|  | 144 |  | 
|---|
|  | 145 |  | 
|---|
|  | 146 |  | 
|---|