diff options
author | gokhale <asgokhale@users.noreply.github.com> | 1997-05-16 21:18:29 +0000 |
---|---|---|
committer | gokhale <asgokhale@users.noreply.github.com> | 1997-05-16 21:18:29 +0000 |
commit | 7c0d7057784fe64e20ea02898826ad8d5f78557b (patch) | |
tree | fe2d21c37345f02d55b9404aae898f69572ec680 /TAO/TAO_IDL | |
parent | 7246bc25ef87fee64e42df48af5574eb3802e3d1 (diff) | |
download | ATCD-7c0d7057784fe64e20ea02898826ad8d5f78557b.tar.gz |
TAO IDL Compiler based on SunSoft's IDL front end version 1.3
Diffstat (limited to 'TAO/TAO_IDL')
-rw-r--r-- | TAO/TAO_IDL/ANNOUNCEMENT | 131 | ||||
-rw-r--r-- | TAO/TAO_IDL/CHANGES | 122 | ||||
-rw-r--r-- | TAO/TAO_IDL/ChangeLog | 4 | ||||
-rw-r--r-- | TAO/TAO_IDL/INSTALL | 229 | ||||
-rw-r--r-- | TAO/TAO_IDL/Makefile | 44 | ||||
-rw-r--r-- | TAO/TAO_IDL/README | 233 | ||||
-rw-r--r-- | TAO/TAO_IDL/idl_make_vars | 62 |
7 files changed, 825 insertions, 0 deletions
diff --git a/TAO/TAO_IDL/ANNOUNCEMENT b/TAO/TAO_IDL/ANNOUNCEMENT new file mode 100644 index 00000000000..870db6f6006 --- /dev/null +++ b/TAO/TAO_IDL/ANNOUNCEMENT @@ -0,0 +1,131 @@ +WHAT: + +SunSoft, Inc., Mountain View, California, has placed the source code to +Project DOE's Interface Definition Language (IDL) compiler front end +(CFE) on OMG's file server, making the implementation publicly +available. This release is identified by the version number 1.3. + +Project DOE is SunSoft's corporate-wide development effort to integrate +distributed object technology into the Solaris O/S. OMG (Object Management +Group) is the industry wide body formed to create specifications for +distributed object technology. It currently has more than 370 members. OMG +IDL is part of OMG's CORBA 1.1 specification and provides a standardized +way for defining object interfaces. OMG IDL forms the basis for distributed +object interactionin Project DOE. + +The SunSoft OMG IDL CFE provides a complete framework for building +CORBA 1.1-compliant preprocessors for OMG IDL. By using this standard +implementation, developers of OMG IDL compilers will save many months +of work and enhance the portability and interoperability of OMG +IDL-interfaced objects. + +The SunSoft OMG IDL CFE allows convenient and fast integration of new back +ends to the compiler. The release consists of a front end which converts +OMG IDL to an intermediate format, a compiler framework driver, an example +implementation of a compiler back end, and a set of protocols for +interaction between the front and back ends. The SunSoft OMG IDL CFE +parser uses components generated by yacc and lex. + +The SunSoft OMG IDL CFE is designed to allow easy extension of OMG IDL +without impacting existing back-end implementations. As the CORBA +specification evolves, any new updates to the IDE CFE will be placed +by SunSoft on the OMG server. + +This release provides a directory with many examples of OMG IDL +specifications to allow users to become familiar with the process of +writing OMG IDL code. + +For more information send email to idl-cfe@sun.com. + +HOW: + +The SunSoft OMG IDL CFE is available at no charge through anonymous FTP +in source form on the OMG file server, omg.org. Please retrieve the +file OMG_IDL_CFE_1.3.tar.Z from the directory pub/OMG_IDL_CFE_1.3. Please +let us know who you are if you retrieve the compiler front end using this +method, by sending email to idl-cfe@sun.com. + +You can also retrieve the software by using the OMG mail server program. +Send email with the subject 'help' to omg_idl@omg.org, and the mail server +will respond with instructions on how to retrieve the software. + +WHEN: + +The SunSoft OMG IDL CFE is available now. + +CONTACT: + +Please let us know who you are if you decide to use this software, and how +you use it. Please send email to: + + idl-cfe@sun.com + +This address can also be used to report problems, bugs, suggestions and +send general comments. + +We ask that if you make extensions or modifications to this source release, +please make these extensions available to others using the OMG IDL compiler +front end, by sending the modified sources to the above email address. This +will help us evaluate your extensions for inclusion in a future version. It +also ensures your investment in these extensions when new versions of the +CFE are released. + +NOTE: + +SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are +trademarks or registered trademarks of Sun Microsystems, Inc. + +COPYRIGHT NOTICE: + +Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United +States of America. All Rights Reserved. + +This product is protected by copyright and distributed under the following +license restricting its use. + +The Interface Definition Language Compiler Front End (CFE) is made +available for your use provided that you include this license and copyright +notice on all media and documentation and the software program in which +this product is incorporated in whole or part. You may copy and extend +functionality (but may not remove functionality) of the Interface +Definition Language CFE without charge, but you are not authorized to +license or distribute it to anyone else except as part of a product or +program developed by you or with the express written consent of Sun +Microsystems, Inc. ("Sun"). + +The names of Sun Microsystems, Inc. and any of its subsidiaries or +affiliates may not be used in advertising or publicity pertaining to +distribution of Interface Definition Language CFE as permitted herein. + +This license is effective until terminated by Sun for failure to comply +with this license. Upon termination, you shall destroy or return all code +and documentation for the Interface Definition Language CFE. + +INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED AS IS WITH NO WARRANTIES OF +ANY KIND INCLUDING THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS +FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR ARISING FROM A COURSE OF +DEALING, USAGE OR TRADE PRACTICE. + +INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT +ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES +TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. + +SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH +RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY +INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. + +IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES BE LIABLE FOR +ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, INDIRECT AND CONSEQUENTIAL +DAMAGES, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +Use, duplication, or disclosure by the government is subject to +restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in +Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR +52.227-19. + +Sun, Sun Microsystems and the Sun logo are trademarks or registered +trademarks of Sun Microsystems, Inc. + +SunSoft, Inc. +2550 Garcia Avenue +Mountain View, California 94043 diff --git a/TAO/TAO_IDL/CHANGES b/TAO/TAO_IDL/CHANGES new file mode 100644 index 00000000000..ae6fca7bcea --- /dev/null +++ b/TAO/TAO_IDL/CHANGES @@ -0,0 +1,122 @@ +CHANGES WHICH AFFECT BE WRITERS +-=============================- + +INTRODUCTION + +This file describes changes that affect BE writers. It contains IMPORTANT +INFORMATION for BE writers who wish to migrate a BE written to operate with +release 1.2 to operate with release 1.3. It is likely that not following +these instructions will result in a compilable but malfunctioning compiler. + +AST INHERITANCE CHANGES + +The AST has been reorganized so that AST_Union and AST_Exception now +inherit from AST_Structure. This means that constructors of BE classes +which inherit from AST_Union or AST_Exception now need to explicitly call +an initializer for AST_Structure in their init section. + +We repeat below the information given in the file WRITING_A_BE, in the +section entitled "WRITING A BE". + +AST_EXCEPTION + +The signature for constructors of classes inheriting from AST_Exception +should now be: + + BE_Exception::BE_Exception(UTL_ScopedName *n, + UTL_StrList *p) + : AST_Decl(AST_Decl::NT_except, n, p), + AST_Structure(AST_Decl::NT_except, n, p), + UTL_Scope(AST_Decl::NT_except) + +AST_UNION + +The signature for constructors of classes inheriting from AST_Union should +now be: + + BE_Union::BE_Union(AST_ConcreteType *dt, + UTL_ScopedName *n, + UTL_StrList *p) + : AST_Union(dt, n, p), + AST_Structure(AST_Decl::NT_union, n, p), + AST_Decl(AST_Decl::NT_union, n, p), + UTL_Scope(AST_Decl::NT_union) + +IDL_BOOL TYPE + +To increase portability and reduce dependency of the sources on POSIX +compliance in targets of ports, IDL now provides its own boolean type which +is named idl_bool. It provides two truth values, I_TRUE and I_FALSE. + +UTL_SCOPEDNAME TYPE + +The UTL_ScopedName type is now a list of Identifier nodes; in previous +releases it used to be a list of String nodes. If your BE constructs scoped +names this change will prevent recompilation until you modify your +constructor calls to invoke constructors for Identifier instead of for +String. The signature of the constructor is: + + Identifier::Identifier(char *, long x=1, long y=0, long z=I_FALSE) + +The additional arguments which can be defaulted to the values indicated are +included for future use. + +COPYRIGHT + +Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United +States of America. All Rights Reserved. + +This product is protected by copyright and distributed under the following +license restricting its use. + +The Interface Definition Language Compiler Front End (CFE) is made +available for your use provided that you include this license and copyright +notice on all media and documentation and the software program in which +this product is incorporated in whole or part. You may copy and extend +functionality (but may not remove functionality) of the Interface +Definition Language CFE without charge, but you are not authorized to +license or distribute it to anyone else except as part of a product or +program developed by you or with the express written consent of Sun +Microsystems, Inc. ("Sun"). + +The names of Sun Microsystems, Inc. and any of its subsidiaries or +affiliates may not be used in advertising or publicity pertaining to +distribution of Interface Definition Language CFE as permitted herein. + +This license is effective until terminated by Sun for failure to comply +with this license. Upon termination, you shall destroy or return all code +and documentation for the Interface Definition Language CFE. + +INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED AS IS WITH NO WARRANTIES OF +ANY KIND INCLUDING THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS +FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR ARISING FROM A COURSE OF +DEALING, USAGE OR TRADE PRACTICE. + +INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT +ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES +TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. + +SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH +RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY +INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. + +IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES BE LIABLE FOR +ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, INDIRECT AND CONSEQUENTIAL +DAMAGES, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +Use, duplication, or disclosure by the government is subject to +restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in +Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR +52.227-19. + +Sun, Sun Microsystems and the Sun logo are trademarks or registered +trademarks of Sun Microsystems, Inc. + +SunSoft, Inc. +2550 Garcia Avenue +Mountain View, California 94043 + +NOTE: + +SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are +trademarks or registered trademarks of Sun Microsystems, Inc. diff --git a/TAO/TAO_IDL/ChangeLog b/TAO/TAO_IDL/ChangeLog new file mode 100644 index 00000000000..229ea395947 --- /dev/null +++ b/TAO/TAO_IDL/ChangeLog @@ -0,0 +1,4 @@ +Fri May 16 16:01:19 1997 Aniruddha Gokhale <gokhale@mambo.cs.wustl.edu> + + * + diff --git a/TAO/TAO_IDL/INSTALL b/TAO/TAO_IDL/INSTALL new file mode 100644 index 00000000000..6fcaa710042 --- /dev/null +++ b/TAO/TAO_IDL/INSTALL @@ -0,0 +1,229 @@ +INTERFACE DEFINITION LANGUAGE INSTALLATION GUIDE +-==============================================- + +INTRODUCTION + +This file describes the installation process for OMG_IDL_CFE version 1.3. +This file explains how to: + +- install the source code +- modify the sources to customize them for different configurations +- modify the sources to implement your own back end + +TESTED CONFIGURATIONS + +This release has been tested and is believed to operate correctly on: +- SunPro Sparcworks 2.x and 3.0 on SunOS 4.1.x +- SunPro Sparcworks 2.x and 3.0 on Solaris 2.3 +- g++ 2.5.8 on SunOS 4.1.x +- g++ 2.5.8 on Solaris 2.3 + +This is the first release of OMG IDL CFE which is preconfigured to compile +correctly for Solaris 2.x and with SunPro SparcWorks compilers. + +CUSTOMIZATION + +The release contains a file idl_make_vars in the current directory, which +is included in each Makefile. This file defines all the customizable +variables for the CFE. + +OSV should be set to a string denoting the operating system upon which you +wish to build the CFE. The CFE as shipped is preconfigured to compile +correctly on Solaris 2.x (OSV=SOLARIS2), and has also been tested on SunOS +4.1.x (OSV=SUNOS4). It contains code donated by HP which enables it to be +compiled on Apollo Domain systems (OSV=apollo) and HPUX systems (OSV=hpux), +but these two configurations have not been tested. + +C++ and CCC should be set to identify the C++ compiler you will use to +compile this release. Their values should be identical. Both are set to +address differences between various make programs - some predefine CCC, +others use C++ to denote the C++ compiler. The possible values are CC +(which uses the Sparcworks compilers on SunOS 4.1 and Solaris 2.3) and g++, +which uses the installed version of GNU C++. + +CCFLAGS should be set to a list of flags to pass to the C++ compiler. As +shipped, this list is -g. NOTE: We have not extensively tested the release +with optimization turned on. + +CPP_FLAGS should be set to a list of flags to pass to the C++ preprocessor. +Use this variable to enable or disable specific customizations you make to +the BE or CFE sources. + +YFLAGS should be set to a list of flags to pass to the Yacc program. As +shipped, the list is -d -t, which causes Yacc to generate y.tab.h and +y.tab.c files. + +LEXFLAGS should be set to a list of flags to pass to the Lex program. As +shipped, the list -t. + +RANLIB should be set to the location of the ranlib program on your system. +As shipped this is ranlib. If your system has no ranlib you can set this +variable to ':' or /bin/true. As shipped the variable is preset to +/bin/true since Solaris 2.x does not use ranlib. + +AR should be set to the location of the ar program on your system. As +shipped this is ar. If your system has a different mechanism for creating +libraries, you should modify the value of this variable accordingly. + +ARFLAGS should be set to the flags to be passed to the ar program. As +shipped this is 'crv'. + +INSTALLATION + +a. Disk space requirements + +This distribution requires approximately 350 KBytes when compressed. When +uncompressed, untarred and compiled, approximately 10 MBytes of disk space +are consumed on a Sun 4. + +b. Getting the software + +Use anonymous FTP to omg.org and supply your e-mail address as password. +Change directories to pub/OMG_IDL_CFE_1.3, set bin and get the compressed +tar file OMG_IDL_CFE_1.3.tar.Z. + +The distribution may, in the future, be made available from other archives +on the Internet. However, omg.org will always have the most up-to-date +version of this software. + +After transferring this file, uncompress it and untar it in a directory of +your choice. + +c. Compiling it + +If you are using a Sparcstation running Solaris 2.x and have the SunPro +Sparcworks compilers installed, you may directly install the software. If +your hardware or operating system configurations are different, read and +follow the instructions in the previous section first. + +At the root directory of the release, issue + + % make + +or + + % make all + +This will compile the provided sources and the sources found in the be +directory. Executing this make target causes 'make all' to be invoked in +each subdirectory, resulting in building the libraries for each component +and finally a link step producing an executable IDL compiler. + +In order to make only the compiler front end components, without compiling +the sources found in the be directory and without building an executable, +issue + + % make libs + +This will build the libraries in the ast, fe, util, driver and narrow +directories. To build only the be, issue + + % make be + +To build all libraries without creating an executable, issue + + % make all_libs + +To remove all files created by the build process, issue + + % make clean + +This will not remove any files created by Yacc and Lex, because you may be +using the ones provided in the distribution (see below). + +d. Yacc and Lex + +Some installations may not have a C++ aware Yacc and Lex processor. For +these installations, we have included the output of yacc and lex in the +release. If you need to use these files to build the release because you +don't have access to a C++ capable Yacc or Lex, go to the "fe" directory, +issue the command: + + % touch lex.yy.cc y.tab.cc y.tab.hh + +This will ensure that the processed files appear to be newer than the +source files they were produced from and will cause "make" to skip their +production. + +NOTE: The files provided in the distribution have been produced on Solaris +2.3 and may contain OS-specific #include directives. If you intend to use +these files, you may have to edit them to make them work in your +environment. The provided files are known to compile cleanly without +modification with both SunPro Sparcworks compilers and GNU C++ on both +SunOS 4.1 and Solaris 2.3. We have not tested the grammar and lexer input +files with bison or flex. + +IMPLEMENTING A BACK END + +To implement your own back end, you can start with the provided sources in +the be directory and modify them. The Makefile understands the 'make all' +target and will generate libbe.a in the demo_be directory. As set up, the +variable CPP_FLAGS allows you to place include files either in the current +directory or in the include directory. Alternatively, you can place your +include files in a new directory and modify CPP_FLAGS to cause the C++ +preprocessor to search this new directory for referenced include files, by +adding a new -I directive. + +Additional detail on the structure and function of back ends, and on the +protocol which a back end must implement, are found in the document +entitled WRITING_A_BE. + +COPYRIGHT + +Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United +States of America. All Rights Reserved. + +This product is protected by copyright and distributed under the following +license restricting its use. + +The Interface Definition Language Compiler Front End (CFE) is made +available for your use provided that you include this license and copyright +notice on all media and documentation and the software program in which +this product is incorporated in whole or part. You may copy and extend +functionality (but may not remove functionality) of the Interface +Definition Language CFE without charge, but you are not authorized to +license or distribute it to anyone else except as part of a product or +program developed by you or with the express written consent of Sun +Microsystems, Inc. ("Sun"). + +The names of Sun Microsystems, Inc. and any of its subsidiaries or +affiliates may not be used in advertising or publicity pertaining to +distribution of Interface Definition Language CFE as permitted herein. + +This license is effective until terminated by Sun for failure to comply +with this license. Upon termination, you shall destroy or return all code +and documentation for the Interface Definition Language CFE. + +INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED AS IS WITH NO WARRANTIES OF +ANY KIND INCLUDING THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS +FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR ARISING FROM A COURSE OF +DEALING, USAGE OR TRADE PRACTICE. + +INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT +ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES +TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. + +SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH +RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY +INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. + +IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES BE LIABLE FOR +ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, INDIRECT AND CONSEQUENTIAL +DAMAGES, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +Use, duplication, or disclosure by the government is subject to +restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in +Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR +52.227-19. + +Sun, Sun Microsystems and the Sun logo are trademarks or registered +trademarks of Sun Microsystems, Inc. + +SunSoft, Inc. +2550 Garcia Avenue +Mountain View, California 94043 + +NOTE: + +SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are +trademarks or registered trademarks of Sun Microsystems, Inc. diff --git a/TAO/TAO_IDL/Makefile b/TAO/TAO_IDL/Makefile new file mode 100644 index 00000000000..e0575247e4c --- /dev/null +++ b/TAO/TAO_IDL/Makefile @@ -0,0 +1,44 @@ +#---------------------------------------------------------------------------- +# $Id$ +# +# Top-level Makefile for the TAO IDL compiler +#---------------------------------------------------------------------------- + +#---------------------------------------------------------------------------- +# Local macros +#---------------------------------------------------------------------------- + +INFO = +DIRS = driver fe ast util narrow be +BIN = tao +LIBS = -ldrv -lfe -last -lutil -lnarrow -lbe +CLONE = + +#---------------------------------------------------------------------------- +# Include macros and targets +#---------------------------------------------------------------------------- + +include $(WRAPPER_ROOT)/include/makeinclude/wrapper_macros.GNU +include $(WRAPPER_ROOT)/include/makeinclude/macros.GNU +include $(WRAPPER_ROOT)/include/makeinclude/rules.common.GNU +include $(WRAPPER_ROOT)/include/makeinclude/rules.nested.GNU +include $(WRAPPER_ROOT)/include/makeinclude/rules.nolocal.GNU + +#---------------------------------------------------------------------------- +# Local targets +#---------------------------------------------------------------------------- + +all: + $(CXX) -g -o tao $(LIBS) -lthread + +tags: + rm -f TAO + etags include/*.h be_include/*.h \ + ast/*.cpp util/*.cpp narrow/*.cpp driver/*.cpp fe/*.cpp be/*.cpp + +clean: + rm -f tao + +realclean: + rm -f tao TAGS + diff --git a/TAO/TAO_IDL/README b/TAO/TAO_IDL/README new file mode 100644 index 00000000000..6d73554acce --- /dev/null +++ b/TAO/TAO_IDL/README @@ -0,0 +1,233 @@ +INTERFACE DEFINITION LANGUAGE COMPILER FRONT END +-==============================================- + +INTRODUCTION + +Welcome to the publicly available source release of SunSoft's +implementation of the compiler front end (CFE) for OMG Interface Definition +Language! This is Release 1.3 of the CFE. + +The Interface Definition Language (IDL) implementation is divided into +three parts: + +- A main program for driving the compilation process +- A parser and attendant utilities +- One or more back ends (BEs) for taking the processed input and producing + output in a target language and target format + +WARNINGS + +This is a preliminary version. This software is made available AS IS and +WITH NO GUARANTEES. Please read the copyright notice attached at the +bottom of this file. + +IMPORTANT NOTICE FOR USERS OF OMG IDL CFE VERSION 1.2. + +Please carefully read the file CHANGES to obtain IMPORTANT INFORMATION on +changes in that may affect the manner in which a BE is constructed. You +must follow instructions contained in the file CHANGES to obtain a +functional BE if you are migrating an existing BE from OMG IDL CFE v. 1.2. + +TARGET AUDIENCE + +Who should use this release? + +- You can use this source release to create a stand alone parser for OMG + Interface Definition Language. This may be useful to verify the legality + of IDL input. +- Developers of OMG Interface Definition Language compilers should use this + release as a basis for writing their back ends, to obtain a common + framework for their compiler and to provide portable and uniform + parsing of IDL input. + +HOW TO OBTAIN THIS SOFTWARE + +Please use anonymous FTP to omg.org and supply your e-mail address as the +password. Then change directories to pub/OMG_IDL_CFE_1.3, set binary transfer +and get the file OMG_IDL_CFE_1.3.TAR.Z. This file includes copies of all +individual documentation files in the directory. + +Precompiled binaries constructed from the sources in this release will be +made available shortly, in the directory pub/OMG_IDL_CFE_1.3/bin. These +binaries are useful for parsing IDL source and for learning about the +language. Precompiled binaries for Solaris 2.x and for SunOS 4.x will be +provided. + +You can also use the mail server program to retrieve this software. Send +email with the subject 'help' to omg_idl@omg.org, and the mail server will +respond with instructions on how to retrieve the software. + +Copies of this software may be made available from archives other than +omg.org. New versions made available by Sun will be placed on omg.org and a +message will be sent to this newsgroup announcing its availability. + +Finally, the SunSoft OMG IDL CFE is also available on magnetic tape for a +nominal media charge directly from SunSoft. Please refer to part number +DIDL-100-STP when ordering. + +CONTACT POINT + +Please let us know who you are if you decide to use this software, and how +you use it. Please send e-mail to: + + idl-cfe@sun.com + +This address can also be used to report problems, bugs, suggestions and +send general comments. + +WHAT IS PROVIDED IN THE RELEASE + +Provided in this release are: + +- A main program for driving an Interface Definition Language compiler +- A parser for the Interface Definition Language grammar which builds an + internal representation of the input parsed. This internal + representation, named an Abstract Syntax Tree (AST), is used as input to + a back end +- Some utility functions used by the parser +- A demonstration back end (BE) which exercises the front end but produces + no translated output +- Documentation of the public interfaces and of the contract between + the compiler front end and a back end + +OPERATION + +A complete compiler operates in two passes: + +- The first pass, provided in this release, parses the IDL input and + produces an internal representation, called an Abstract Syntax Tree (AST). + This pass also does a complete syntax and semantics check of the input + provided to ensure that exactly legal IDL input is accepted. If a syntax + or semantic error is discovered, the second pass is not invoked. +- The second pass, provided by compiler developers, takes the AST and + produces output in the language and format of choice. A demonstration + back end is provided in the release. + +HOW TO USE THIS SOFTWARE + +To create a complete compiler from OMG Interface Definition Language to a +target language, compiler developers will: + +- Write a back end (BE) to take the internal representation of the input + parsed and translate it to the target language and format. You will + probably want to replace the BE directory in this source tree with your + own BE directory +- Link the BE with the sources provided here to produce a complete + compiler. + +DOCUMENTATION + +The OMG Interface Definition Language is fully described in the CORBA +documentation, Chapter 4. This document may be obtained from OMG. + +This release also provides the following documents: + +- This README file, describing the release +- INSTALL, describing installation of the software +- WRITING_A_BE contains all the information needed to start writing a back + end for this distribution +- CHANGES_IN_AST describes changes that affect migration of BEs written + against version 1.2 to version 1.3. +- CLI, describing the command line interface to the CFE +- ROADMAP, describing the directory structure for the source code. This + file will assist a developer in understanding the structure of the code + and navigating it +- PROBLEMS, describing a list of issues that may be addressed in future + releases +- BUG_REPORT, containing a form for use in reporting bugs and problems + with the IDL CFE + +ENVIRONMENT + +The INSTALL file explains how to customize the software for specific +platforms. The source distribution expects the following environment: + +- Sparcstation 1, 2, or 10 hardware +- SunPro SparcWorks 3.x or 4.0 + +As preconfigured, it compiles on Solaris 2.x. It can be reconfigured to +compile on SunOS 4.x, HPUX or Apollo Domain OS. As far as is known, no use +is made of Sun Make-specific features, and the Makefiles should be usable +with other make programs. + +This release has been tested and is believed to operate correctly with: +- SunPro Sparcworks 2.x and 3.0 on SunOS 4.1.x +- SunPro Sparcworks 2.x and 3.0 on Solaris 2.3 +- g++ 2.5.8 on SunOS 4.1.x +- g++ 2.5.8 on Solaris 2.3 + +INSTALLATION + +This release is targetted for Sun workstations running Solaris 2.x. The +process of installing this software is described in detail in the file +INSTALL in this directory. The INSTALL file also describes how to customize +the release for your own environment if it is different. + +KNOWN PROBLEMS + +A list of known deficiencies is provided in the file PROBLEMS in this +directory. If you find a problem which is not mentioned in it, please +report it as described below. Please read this file now to be apprised of +the problems found so far with this release. + +COPYRIGHT + +This copyright notice appears on all files. Please read it! + +Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United +States of America. All Rights Reserved. + +This product is protected by copyright and distributed under the following +license restricting its use. + +The Interface Definition Language Compiler Front End (CFE) is made +available for your use provided that you include this license and copyright +notice on all media and documentation and the software program in which +this product is incorporated in whole or part. You may copy and extend +functionality (but may not remove functionality) of the Interface +Definition Language CFE without charge, but you are not authorized to +license or distribute it to anyone else except as part of a product or +program developed by you or with the express written consent of Sun +Microsystems, Inc. ("Sun"). + +The names of Sun Microsystems, Inc. and any of its subsidiaries or +affiliates may not be used in advertising or publicity pertaining to +distribution of Interface Definition Language CFE as permitted herein. + +This license is effective until terminated by Sun for failure to comply +with this license. Upon termination, you shall destroy or return all code +and documentation for the Interface Definition Language CFE. + +INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED AS IS WITH NO WARRANTIES OF +ANY KIND INCLUDING THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS +FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR ARISING FROM A COURSE OF +DEALING, USAGE OR TRADE PRACTICE. + +INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT +ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES +TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. + +SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH +RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY +INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. + +IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES BE LIABLE FOR +ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, INDIRECT AND CONSEQUENTIAL +DAMAGES, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +Use, duplication, or disclosure by the government is subject to +restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in +Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR +52.227-19. + +Sun, Sun Microsystems and the Sun logo are trademarks or registered +trademarks of Sun Microsystems, Inc. + +SunSoft, Inc. +2550 Garcia Avenue +Mountain View, California 94043 + +NOTE: + +SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are +trademarks or registered trademarks of Sun Microsystems, Inc. diff --git a/TAO/TAO_IDL/idl_make_vars b/TAO/TAO_IDL/idl_make_vars new file mode 100644 index 00000000000..f061649d004 --- /dev/null +++ b/TAO/TAO_IDL/idl_make_vars @@ -0,0 +1,62 @@ +# Makefile include file for IDL compiler +# +# What OS we're compiling on. +# +# As shipped the CFE is preconfigured for SOLARIS 2.x +# =================================================== +# +# Uncomment the next line for SOLARIS 2.x +OSV = SOLARIS2 +# Uncomment the next line for SUNOS 4.x +# OSV = SUNOS4 +# Uncomment the next line for HPUX +# OSV = hpux +# Uncomment the next line for Apollo Domain +# OSV = apollo +# +# IDL_CFE_VERSION Defines what the current IDL CFE version is +IDL_CFE_VERSION = \"1.3.0\" +# +# Define LEXFLAGS to pass to lex +LEXFLAGS = -t +# +# Define YFLAGS to pass to yacc +YFLAGS = -t -d +# +# C++ What C++ compiler to use +# +# Also define CCC which is used instead of C++ in +# some versions of make. Make sure they refer to the +# same executable; if you modify one please also modify +# the other to be identical. +# +# Uncomment these two lines if you're using SunPro Sparcworks C++ compilers +# (Tested for SunPro Sparcworks 2.x with SunOS 4.x and Solaris 2.x, for +# SunPro Sparcworks 3.0 with Solaris 2.x) +C++ = CC +CCC = CC +# Uncomment these two lines if you're using g++ (tested for SunOS 4.x and +# Solaris 2.x only, with g++ 2.5.8) +# C++ = g++ +# CCC = g++ +# +# What flags to pass to the C preprocessor +CPPFLAGS += -I../include -I. -D$(OSV) \ + -DCPP_LOCATION=\"$(C++)\" \ + -DIDL_CFE_VERSION=$(IDL_CFE_VERSION) \ +# +# What flags to pass to the CC phase +CCFLAGS += -g +# +# What ranlib to use +# +# Uncomment the following line for SunOS 4.x and others which have ranlib +# RANLIB = ranlib +# Uncomment the following line for Solaris 2.x and others which don't have it +RANLIB = /bin/true +# +# What ar to use +AR = ar +# +# What flags to give to ar +ARFLAGS = crv |