version 1.4, 2001/01/26 20:20:36
|
version 1.5, 2001/02/26 10:36:34
|
|
|
-- | -- |
| |
$Log$ | $Log$ |
|
Revision 1.5 2001/02/26 10:36:34 karl |
|
Clean Up Text |
|
|
Revision 1.4 2001/01/26 20:20:36 karl | Revision 1.4 2001/01/26 20:20:36 karl |
Clean up Readme with MB comments | Clean up Readme with MB comments |
| |
|
|
-- | -- |
| |
Tagline: Pegasus is an object manager for DMTF CIM objects written in C++ | Tagline: Pegasus is an object manager for DMTF CIM objects written in C++ |
and supported buy The Open Group |
and supported by The Open Group |
| |
Pegasus is an object manager for DMTF CIM objects. It is written in C++ and |
Pegasus is an open-source object manager for DMTF CIM objects. It is written |
includes the Object manager, a set of defined interfaces, and SDKs for both |
in C++ and includes the Object manager, a set of defined interfaces, and SDKs |
client, providers, and services extensions. It is maintained consistent with |
for both client, providers, and services extensions. It is maintained |
the DMTF CIM and WBEM specifications except for any exceptions noted in the |
consistent with the DMTF CIM and WBEM specifications except for any exceptions |
documentation. |
noted in the documentation. |
| |
This distribution represents a work in progress towards building a Pegasus | This distribution represents a work in progress towards building a Pegasus |
release. Pegasus is open source and is covered under the following license. | release. Pegasus is open source and is covered under the following license. |
|
|
| |
Pegasus Server - WBEM/CIM Server with interfaces for providers and clients | Pegasus Server - WBEM/CIM Server with interfaces for providers and clients |
| |
Pegasus Repository - Today Pegasus provides a defined class repository |
Pegasus Repositories - Today Pegasus provides a defined class repository |
interface and a simple file based class repository. Future will include |
interface and a simple file based class repository. It also includes |
the object [MEB: instance?] repository |
an instance repository. Note that these repository were created for |
|
functionality, not efficieny. It is expected that they will be replaced |
|
with other implementations of the respository function as the need arrses. |
| |
Pegasus Client SDK - Tools for building Pegasus clients based on the Pegasus | Pegasus Client SDK - Tools for building Pegasus clients based on the Pegasus |
C++ interfaces and using the WBEM HTTP/XML protocols or directly | C++ interfaces and using the WBEM HTTP/XML protocols or directly |
|
|
and the recept of the response as WEB pages. This has proven useful as a | and the recept of the response as WEB pages. This has proven useful as a |
test tool and can be used for a wide variety of demonstrations. | test tool and can be used for a wide variety of demonstrations. |
| |
Pegasus Providers - Future (Version 1.0) |
Pegasus Provider SDK - Tools for build Pegasus clients based on the Pegasus |
|
C++ interfaces. |
|
|
|
Pegasus Providers - A sampling of key providers to make the environment |
|
complete as well as test providers and demonstration providers for the |
|
Pegasus. |
| |
Pegasus Service Extensions - Future (version 1.0) | Pegasus Service Extensions - Future (version 1.0) |
| |
Pegasus MOF Compiler - Future (Version 0.9) |
Pegasus MOF Compiler - FA standalone compiler for MOF files that can be used |
|
to install MOF into the Pegasus schema repository and also to check syntax |
| |
Pegasus Dependencies | Pegasus Dependencies |
==================== | ==================== |
|
|
| |
http://www.cs.wustl.edu/~schmidt/ACE_wrappers/ACE-5.1.tar.gz | http://www.cs.wustl.edu/~schmidt/ACE_wrappers/ACE-5.1.tar.gz |
| |
COMMENTS: Pegasus only uses limited facilities from ACE. However, today we |
COMMENTS: Pegasus only uses limited facilities from ACE. We actively |
|
discourage the Pegasus team from using other functions of ACE. We expect to |
|
eliminate our dependence on ACE as the only TCP tool in the near future. |
|
However, today we |
demand the installation of the complete ACE library. One of the action items | demand the installation of the complete ACE library. One of the action items |
for the future is to provide a more limited ACE library and possibly even to | for the future is to provide a more limited ACE library and possibly even to |
provide an environment independent of ACE. This will depend on the demands of |
provide an environment independent of ACE. |
the users. |
|
| |
2. To simplify the building of Pegasus across multiple platforms we have | 2. To simplify the building of Pegasus across multiple platforms we have |
standardized on a set of build tools including: GNUMAKE. We are using GNUAKE | standardized on a set of build tools including: GNUMAKE. We are using GNUAKE |
|
|
make with Windows environment. It is provided as an alternative to requiring a | make with Windows environment. It is provided as an alternative to requiring a |
number of UNIX utilities (SH, RM, etc.) on the windows platform and | number of UNIX utilities (SH, RM, etc.) on the windows platform and |
effectively provides the functions of these utilities that GNUMAKE needs. | effectively provides the functions of these utilities that GNUMAKE needs. |
MU is not required on UNIX or LINUX platforms |
MU is not required on UNIX or LINUX platforms. |
| |
NOTE: The binary for MU.EXE is not distributed in the Pegasus bin directory. | NOTE: The binary for MU.EXE is not distributed in the Pegasus bin directory. |
You must build it separately. MU source code is part of the distribution | You must build it separately. MU source code is part of the distribution |
|
|
NOTE: We will make a copy of the binary available on the MSB WEB site to | NOTE: We will make a copy of the binary available on the MSB WEB site to |
eliminate the requirement to build this utility. | eliminate the requirement to build this utility. |
| |
|
4. FLEX and BISON - These tools were used to develop the compiler, anybody |
|
intending to recompile the compiler from scratch will be required to have |
|
these tools. |
|
|
|
5. DOC++ - The Pegasus documentation is taken from a combination of text files |
|
and the Pegasus header files themselves. This documentation is formatted with |
|
DOC++ and GAWK. These tools are required if the documentation is to be |
|
recreated but we expect that only the core team will be recreating |
|
documentaiton. |
|
|
| |
The Pegasus Directory Structure | The Pegasus Directory Structure |
=============================== | =============================== |
|
|
This structure is generally as follows | This structure is generally as follows |
| |
Pegasus Pegasus Root directory | Pegasus Pegasus Root directory |
build Destination for all intermediate files from build |
|
bin Destination for executable and DLL modules from |
|
Pegasus build |
build Default destination for runtime if PEGASUS_HOME |
lib Destination for Pegasus LIB modules |
is not specified. Does not exist if PEGASUS_HOME |
obj Destination for object modules |
is specified |
cgi-bin Source for the Pegasus WEB Based Test client |
|
doc Miscelaneous Pegasus Documents. |
|
|
cgi Source for the Pegasus WEB Based Test client |
|
cgi-bin CGI Directories for WEB demonstration. |
|
This directory is normally empty but can |
|
be populated from the runtime with the make |
|
from cgi. |
|
htdocs HTML Pages for Pegasus WEB emonstration |
|
doc Miscellaneous Pegasus Documents. |
DevManual Source and build files for developes manual | DevManual Source and build files for developes manual |
html HTML files for the Browser test client. |
|
mak General make files (used by other makes) | mak General make files (used by other makes) |
Repository This Directory containes the created repository |
|
src All Pegasus Source Files | src All Pegasus Source Files |
ACEExample Test directrory with examples of the use of ACE | ACEExample Test directrory with examples of the use of ACE |
Clients Source for various test clients and client SDK | Clients Source for various test clients and client SDK |
|
|
Repository | Repository |
tests Tests for Repository Functions | tests Tests for Repository Functions |
Server Pegasus Server Modules | Server Pegasus Server Modules |
Providers Pegasus Provider SDK and tes providers |
Providers Pegasus test and required providers |
|
|
Utils | Utils |
html Output from the Pegasus Manual compilartion. |
|
|
Runtime Directories |
|
$PEGASUS_HOME$ Home directory for runtime. All compiler, linker |
|
documentation creation, etc. is put here. |
|
bin Destination for executable and DLL modules from |
|
Pegasus build |
|
Manual HTML output of the Pegasus Manual |
|
lib Destination for Pegasus LIB modules |
|
obj Destination for object modules |
|
Repository This Directory containes the created repository |
|
|
| |
In the near future we will add directories for: | In the near future we will add directories for: |
| |
Service Extensions | Service Extensions |
|
Servers - Today the server executable is built from /server/test. |
| |
Installation | Installation |
============ | ============ |
|
|
======================================== | ======================================== |
| |
Pegasus is buildable and runnable on either Linux or WIndows Platforms today. | Pegasus is buildable and runnable on either Linux or WIndows Platforms today. |
It uses a common build system for the two platforms based on build files and |
It uses a common build system for the two platforms based on build files in |
|
each directory, a recursive build strucutre to execute the multiple makes and |
GUNMAKE. | GUNMAKE. |
| |
Generally we support four targets in our make system: |
Generally we support the followingtargets in our make system: |
| |
| |
C:\> make clean |
C:\> make clean - Clean out all objects, libs, and executables |
C:\> make depend |
C:\> make depend - Create the dependencies |
C:\> make | C:\> make |
C:\> make tests |
C:\> make tests - Execute all tests except client server tests |
|
C:\> make rebuild - Clean and rebuild including the respository |
|
C:\> make world |
| |
The Pegasus Client server tests are executed separately from the above because | The Pegasus Client server tests are executed separately from the above because |
they require the initiation of separate process for the Pegasus server and | they require the initiation of separate process for the Pegasus server and |
|
|
Generally the build commands are as follows: | Generally the build commands are as follows: |
| |
1. There is a Makefile in the Pegasus root. Simply executing make in the | 1. There is a Makefile in the Pegasus root. Simply executing make in the |
Pegasus root directory will make everything. |
Pegasus root directory will make everything. Make rebuild will clean and |
|
rebuild everything. |
| |
2. In order to provide a working class repository for Pegasus until the | 2. In order to provide a working class repository for Pegasus until the |
MOF compiler is integrated, There is a utility to load the CIM Schema from | MOF compiler is integrated, There is a utility to load the CIM Schema from |
|
|
| |
"make tests" | "make tests" |
| |
5. To run the Client/Server tests provided, simply type |
5. To run the integral unit code tests provided, simply type |
| |
"make tests" | "make tests" |
| |
|
|
Build Variables | Build Variables |
=============== | =============== |
| |
The build system depends on the following environment variables |
The build system depends on the following environment variables build set. |
|
These variables must be set as part of the installation of the Pegasus source |
|
tree before you can compile or run Pegasus. |
| |
PEGASUS_ACE_ROOT - required (points to ACE_wrappers directory). This must | PEGASUS_ACE_ROOT - required (points to ACE_wrappers directory). This must |
be set before you initiate make | be set before you initiate make |
| |
PEGASUS_BUILD - optional (points to build directory; defaults to build |
|
directory under root of pegasus distribution). This must be set before you |
|
iniiate |
|
make |
|
|
|
PEGASUS_OS_TYPE - optional. The is currently set to windows. If you build | PEGASUS_OS_TYPE - optional. The is currently set to windows. If you build |
on Linux you must change this before initiating make. |
on any platform except windows you must change this before initiating |
|
make. |
| |
PEGASUS_ROOT - Points to the root directory of the Pegasus tree. |
PEGASUS_ROOT - Root directory of the Pegasus tree. |
|
PEGASUS_HOME - Home directory for all of the Pegasus runtime elements. |
|
If this does not exist, $PEGASUS_ROOT$/build is assumed. |
| |
COMMENTS: In the future, we will probably automate this more. However, | COMMENTS: In the future, we will probably automate this more. However, |
setting these variables today is manual. | setting these variables today is manual. |
|
|
| |
1. Obtain, unpack and build the ACE_Wrappers package for Linux. | 1. Obtain, unpack and build the ACE_Wrappers package for Linux. |
| |
2. Define an environment variable called ACE_ROOT that points to the root of |
2. Define an environment variable called ACE_ROOT that points to the |
the ACE_WRAPPERS distribution. For example |
root of the ACE_WRAPPERS distribution. For example |
| |
IMPORT PEGASUS_ACE_ROOT=\local\ACE_Wrappers | IMPORT PEGASUS_ACE_ROOT=\local\ACE_Wrappers |
| |
|
|
3. Define an environment variable PEGASUS_ROOT that points to the | 3. Define an environment variable PEGASUS_ROOT that points to the |
root of the Pegasus Distribution | root of the Pegasus Distribution |
| |
4. Append %PEGASUS_ROOT%/bin to your path |
|
| |
|
4. Define the environment variable PEGASUS_HOME where you want the |
|
runtime elements (executables, objects, libraries, etc.) to go. |
5. Unpack the ace distribution. | 5. Unpack the ace distribution. |
| |
ATTN: Unpack with what since ZIP. |
|
| |
5. Build using the make commands defined in the section on General Build. |
6. Append %PEGASUS_ROOT%/bin to your path |
|
|
|
7. From the %PEGASUS_ROOT% directory build using the make commands |
|
defined in the section on General Build. |
| |
make world | make world |
make tests | make tests |
| |
Building Pegasus on NT or Windows 2000 With Visual C++ |
Building Pegasus on NT or Windows 2000 With Microsoft Visual C++ |
======================================================= |
================================================================ |
| |
Today we build Pegasus on Windows NT using a set of make files contained | Today we build Pegasus on Windows NT using a set of make files contained |
in the source distribution, the Microsoft compilers (tested so far with | in the source distribution, the Microsoft compilers (tested so far with |
|
|
| |
| |
1. Setup the environment variables and path for the Micrososft Visual C | 1. Setup the environment variables and path for the Micrososft Visual C |
compiler. |
compiler. Typically this can be done by running the VCVARS32.BAT file |
Typically this can be done by running the VCVARS32.BAT file supplied with |
supplied with Microsoft Visual C++. (contained in the same directory |
Microsoft Visual |
as cl.exe). |
C++. (contained in the same directory as cl.exe). |
|
| |
2. Define an environment variable called ACE_ROOT that points to the | 2. Define an environment variable called ACE_ROOT that points to the |
root of the ACE_Wrappers distribution. For example: | root of the ACE_Wrappers distribution. For example: |
|
|
| |
C:\> set PEGASUS_ROOT=c:/pegasus | C:\> set PEGASUS_ROOT=c:/pegasus |
| |
Now append %PEGASUS_ROOT%/bin to your path like this: |
|
| |
set path=%path%;%PEGASUS_ROOT%/bin |
4. Setup the PEGASUS_HOME environment variable |
|
set PEGASUS_HOME=c:/PegasusRun |
|
|
|
Now append %PEGASUS_HOME%/bin to your path like this: |
| |
4. Unpack and build the ACE_Wrappers distribution for windows. |
set path=%path%;%PEGASUS_HOME%/bin |
|
|
|
5. Unpack and build the ACE_Wrappers distribution for windows. |
| |
As an example, we created a file called %ACE_ROOT%/ace/config.h | As an example, we created a file called %ACE_ROOT%/ace/config.h |
containing the following: | containing the following: |
|
|
| |
%ACE_ROOT%/ace/ace.dsw | %ACE_ROOT%/ace/ace.dsw |
| |
From the build menu we picked "ace.dll". For me it built without complaint. |
From the build menu we picked "ace.dll". For me it built without |
|
complaint. |
| |
The ACE package can be built in several configurations: | The ACE package can be built in several configurations: |
| |
|
|
acemfc.dll - ACE with Microsoft MFC support | acemfc.dll - ACE with Microsoft MFC support |
acemfcd.dll - The ACE MFC version with debugging. | acemfcd.dll - The ACE MFC version with debugging. |
| |
ace.dll is used for the server build acemfc is used for the client builds. |
ace.dll is used for the server build acemfc is used for the client |
|
builds. |
| |
NOTE: In the near future we will be building debugging options into Pegasus |
NOTE: In the near future we will be building debugging options into |
and at that time the aced and acemfcd libraries will also be required. |
Pegasus and at that time the aced and acemfcd libraries will also be |
|
required. |
| |
Each library can be built separately from Microsoft Visual C++. | Each library can be built separately from Microsoft Visual C++. |
| |
5. Unpack the Pegasus distribution. On Windows systems, PKzip25 or WINZIP can |
6. Unpack the Pegasus distribution. On Windows systems, PKzip25 or |
be used. Be certain to use the option that expands the directory tree of the |
WINZIP can be used. Be certain to use the option that expands the |
files. This expansion will create a directory called ./pegasus |
directory tree of the files. This expansion will create a directory |
|
called ./pegasus |
| |
If you are using pkzip25.exe do this: | If you are using pkzip25.exe do this: |
C:\> pkzip25 -extract -recurse -directories pegasus.zip | C:\> pkzip25 -extract -recurse -directories pegasus.zip |
|
|
This will create a directory tree called ./pegasus under the | This will create a directory tree called ./pegasus under the |
current directory. | current directory. |
| |
ATTN: Define for Linux also |
|
| |
6. Change directory to %PEGASUS_ROOT% and type "make world". See the general |
7. Change directory to %PEGASUS_ROOT% and type "make world". See the |
build section for the full set of make commands. |
general build section for the full set of make commands. |
| |
This builds Pegasus and all of its examples. | This builds Pegasus and all of its examples. |
| |
|
|
The documentation is currently in preperation. The preliminary documentation | The documentation is currently in preperation. The preliminary documentation |
is not provided with this snapshot but is avialable from the OpenGroup Pegasus | is not provided with this snapshot but is avialable from the OpenGroup Pegasus |
WEB pages. The current documentation is maintained both as a manual created | WEB pages. The current documentation is maintained both as a manual created |
under the tool DOC++ in the subdirectory manual/html and as other miscelaneous |
under the tool DOC++ in the runtime subdirectory manual/html and as other |
documentation in the doc directory. |
miscelaneous documentation in the doc directory. |
| |
Note that the Pegasus WEB site at The Open Group will be the source of most | Note that the Pegasus WEB site at The Open Group will be the source of most |
documentation in the future and today is the source of most discussion and | documentation in the future and today is the source of most discussion and |
|
|
| |
| |
| |
|
|
|
|