1 INTERFACE DEFINITION LANGUAGE INSTALLATION GUIDE
2 -==============================================-
6 This file describes the installation process for OMG_IDL_CFE version 1.3.
7 This file explains how to:
9 - install the source code
10 - modify the sources to customize them for different configurations
11 - modify the sources to implement your own back end
15 This release has been tested and is believed to operate correctly on:
16 - SunPro Sparcworks 2.x and 3.0 on SunOS 4.1.x
17 - SunPro Sparcworks 2.x and 3.0 on Solaris 2.3
18 - g++ 2.5.8 on SunOS 4.1.x
19 - g++ 2.5.8 on Solaris 2.3
21 This is the first release of OMG IDL CFE which is preconfigured to compile
22 correctly for Solaris 2.x and with SunPro SparcWorks compilers.
26 The release contains a file idl_make_vars in the current directory, which
27 is included in each Makefile. This file defines all the customizable
28 variables for the CFE.
30 OSV should be set to a string denoting the operating system upon which you
31 wish to build the CFE. The CFE as shipped is preconfigured to compile
32 correctly on Solaris 2.x (OSV=SOLARIS2), and has also been tested on SunOS
33 4.1.x (OSV=SUNOS4). It contains code donated by HP which enables it to be
34 compiled on Apollo Domain systems (OSV=apollo) and HPUX systems (OSV=hpux),
35 but these two configurations have not been tested.
37 C++ and CCC should be set to identify the C++ compiler you will use to
38 compile this release. Their values should be identical. Both are set to
39 address differences between various make programs - some predefine CCC,
40 others use C++ to denote the C++ compiler. The possible values are CC
41 (which uses the Sparcworks compilers on SunOS 4.1 and Solaris 2.3) and g++,
42 which uses the installed version of GNU C++.
44 CCFLAGS should be set to a list of flags to pass to the C++ compiler. As
45 shipped, this list is -g. NOTE: We have not extensively tested the release
46 with optimization turned on.
48 CPP_FLAGS should be set to a list of flags to pass to the C++ preprocessor.
49 Use this variable to enable or disable specific customizations you make to
50 the BE or CFE sources.
52 YFLAGS should be set to a list of flags to pass to the Yacc program. As
53 shipped, the list is -d -t, which causes Yacc to generate y.tab.h and
56 LEXFLAGS should be set to a list of flags to pass to the Lex program. As
59 RANLIB should be set to the location of the ranlib program on your system.
60 As shipped this is ranlib. If your system has no ranlib you can set this
61 variable to ':' or /bin/true. As shipped the variable is preset to
62 /bin/true since Solaris 2.x does not use ranlib.
64 AR should be set to the location of the ar program on your system. As
65 shipped this is ar. If your system has a different mechanism for creating
66 libraries, you should modify the value of this variable accordingly.
68 ARFLAGS should be set to the flags to be passed to the ar program. As
69 shipped this is 'crv'.
73 a. Disk space requirements
75 This distribution requires approximately 350 KBytes when compressed. When
76 uncompressed, untarred and compiled, approximately 10 MBytes of disk space
77 are consumed on a Sun 4.
79 b. Getting the software
81 Use anonymous FTP to omg.org and supply your e-mail address as password.
82 Change directories to pub/OMG_IDL_CFE_1.3, set bin and get the compressed
83 tar file OMG_IDL_CFE_1.3.tar.Z.
85 The distribution may, in the future, be made available from other archives
86 on the Internet. However, omg.org will always have the most up-to-date
87 version of this software.
89 After transferring this file, uncompress it and untar it in a directory of
94 If you are using a Sparcstation running Solaris 2.x and have the SunPro
95 Sparcworks compilers installed, you may directly install the software. If
96 your hardware or operating system configurations are different, read and
97 follow the instructions in the previous section first.
99 At the root directory of the release, issue
107 This will compile the provided sources and the sources found in the be
108 directory. Executing this make target causes 'make all' to be invoked in
109 each subdirectory, resulting in building the libraries for each component
110 and finally a link step producing an executable IDL compiler.
112 In order to make only the compiler front end components, without compiling
113 the sources found in the be directory and without building an executable,
118 This will build the libraries in the ast, fe, util, driver and narrow
119 directories. To build only the be, issue
123 To build all libraries without creating an executable, issue
127 To remove all files created by the build process, issue
131 This will not remove any files created by Yacc and Lex, because you may be
132 using the ones provided in the distribution (see below).
136 Some installations may not have a C++ aware Yacc and Lex processor. For
137 these installations, we have included the output of yacc and lex in the
138 release. If you need to use these files to build the release because you
139 don't have access to a C++ capable Yacc or Lex, go to the "fe" directory,
142 % touch lex.yy.cc y.tab.cc y.tab.hh
144 This will ensure that the processed files appear to be newer than the
145 source files they were produced from and will cause "make" to skip their
148 NOTE: The files provided in the distribution have been produced on Solaris
149 2.3 and may contain OS-specific #include directives. If you intend to use
150 these files, you may have to edit them to make them work in your
151 environment. The provided files are known to compile cleanly without
152 modification with both SunPro Sparcworks compilers and GNU C++ on both
153 SunOS 4.1 and Solaris 2.3. We have not tested the grammar and lexer input
154 files with bison or flex.
156 IMPLEMENTING A BACK END
158 To implement your own back end, you can start with the provided sources in
159 the be directory and modify them. The Makefile understands the 'make all'
160 target and will generate libbe.a in the demo_be directory. As set up, the
161 variable CPP_FLAGS allows you to place include files either in the current
162 directory or in the include directory. Alternatively, you can place your
163 include files in a new directory and modify CPP_FLAGS to cause the C++
164 preprocessor to search this new directory for referenced include files, by
165 adding a new -I directive.
167 Additional detail on the structure and function of back ends, and on the
168 protocol which a back end must implement, are found in the document
169 entitled WRITING_A_BE.
173 Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United
174 States of America. All Rights Reserved.
176 This product is protected by copyright and distributed under the following
177 license restricting its use.
179 The Interface Definition Language Compiler Front End (CFE) is made
180 available for your use provided that you include this license and copyright
181 notice on all media and documentation and the software program in which
182 this product is incorporated in whole or part. You may copy and extend
183 functionality (but may not remove functionality) of the Interface
184 Definition Language CFE without charge, but you are not authorized to
185 license or distribute it to anyone else except as part of a product or
186 program developed by you or with the express written consent of Sun
187 Microsystems, Inc. ("Sun").
189 The names of Sun Microsystems, Inc. and any of its subsidiaries or
190 affiliates may not be used in advertising or publicity pertaining to
191 distribution of Interface Definition Language CFE as permitted herein.
193 This license is effective until terminated by Sun for failure to comply
194 with this license. Upon termination, you shall destroy or return all code
195 and documentation for the Interface Definition Language CFE.
197 INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED AS IS WITH NO WARRANTIES OF
198 ANY KIND INCLUDING THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS
199 FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR ARISING FROM A COURSE OF
200 DEALING, USAGE OR TRADE PRACTICE.
202 INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT
203 ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES
204 TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT.
206 SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH
207 RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY
208 INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF.
210 IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES BE LIABLE FOR
211 ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, INDIRECT AND CONSEQUENTIAL
212 DAMAGES, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
214 Use, duplication, or disclosure by the government is subject to
215 restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in
216 Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR
219 Sun, Sun Microsystems and the Sun logo are trademarks or registered
220 trademarks of Sun Microsystems, Inc.
224 Mountain View, California 94043
228 SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are
229 trademarks or registered trademarks of Sun Microsystems, Inc.