Discussion:
[omniORB] Running Example Echo for omniORB-4.1.1
charles bartlett
2008-01-10 01:39:19 UTC
Permalink
In src/examples/echo/README, the instruction is to:
"Edit ../../../config/config.mk to select the appropriate platform." I
am using Ubuntu 7.10; it is not listed. I tried choosing "platform =
i586_linux_2.0", but that led to many errors on "make all".

Firstly, the make does not find omniidl, which is located
in /usr/local/bin in my installation not ../../../bin/i586_linux_2.0.

Please indicate appropriate platform choice, otherwise I will need to
deconstruct your make files. For example, due to the makefile, omniidl
is invoked with options " -bcxx -Wba -Wbtp" whereas in omniORB.pdf, only
the first option is indicated. Alternatively, I could try to make purely
based upon information in your pdf file.

Thanks very much.
Duncan Grisby
2008-01-10 22:51:21 UTC
Permalink
Post by charles bartlett
"Edit ../../../config/config.mk to select the appropriate platform." I
am using Ubuntu 7.10; it is not listed. I tried choosing "platform =
i586_linux_2.0", but that led to many errors on "make all".
That README file is obsolete. I didn't realise it was still in the
distribution. I'll remove it.

Assuming you used the autoconf configure script, you don't need to do
anything about config.mk -- that's for the old build system that's only
still there for weird platforms that can't support autoconf.

To build the examples, just use make in the src/examples directory, in
the tree you used to build omniORB itself.

e.g.

$ cd omniORB-4.1.1
$ mkdir build
$ cd build
$ ../configure
$ make
$ sudo make install
$ cd src/examples
$ make

Duncan.
--
-- Duncan Grisby --
-- ***@grisby.org --
-- http://www.grisby.org --
charles bartlett
2008-01-11 09:26:35 UTC
Permalink
When I do what you suggest, after the final make command - I get a
message asking me to make a selection in "../../../config/config.mk to
select the appropriate platform" and the build stops.

This is not surprising since I was doing a make in src/examples/echo
before and typically make files are setup to recursively make
subdirectories and I observed the same message prior to making a
selection when I built in ././echo.

What is surprising is that my installation seems to be working properly:
a). I installed omniORB4.1.1 and omniORBpy which uses it; then I used
the .py examples and they worked
b). I didn't see any errors on the install following the commands you
provided below
c). I actually did get the echo examples to work using omniORB4.1.1,
i.e. C++ by doing make -n eg2 in echo and duplicating (by hand) the
build commands it generated with replacements based upon where things
really are in my installation; also eg2_clt and echo_srv.py worked
together showing C++ to python omniORB/omniORBpy compatibility

Given that I can build the examples for omniORB, I am less concerned
about the failure of make for the examples as you suggested. However, it
would be convenient if it was working.

A suggestion: it seems natural to derive programs using omniORB from the
examples. For the Python case, it is very easy to do so. For C++, one
most likely would like to quickly divorce from your build system.
However, the set of make files is fairly involved. Perhaps you could add
a comment to your documentation where you state how to easily extract
the build steps for any given example, including switches, libraries
used etc. One can dig it out, as I did, but it took me a few hours. You
make some comments along these lines in your installation notes, but a
user would really like a quick and easy way to duplicate the commands to
build any of the examples.

Thanks for any further comments on the above.
Post by Duncan Grisby
Post by charles bartlett
"Edit ../../../config/config.mk to select the appropriate platform." I
am using Ubuntu 7.10; it is not listed. I tried choosing "platform =
i586_linux_2.0", but that led to many errors on "make all".
That README file is obsolete. I didn't realise it was still in the
distribution. I'll remove it.
Assuming you used the autoconf configure script, you don't need to do
anything about config.mk -- that's for the old build system that's only
still there for weird platforms that can't support autoconf.
To build the examples, just use make in the src/examples directory, in
the tree you used to build omniORB itself.
e.g.
$ cd omniORB-4.1.1
$ mkdir build
$ cd build
$ ../configure
$ make
$ sudo make install
$ cd src/examples
$ make
Duncan.
Duncan Grisby
2008-01-17 16:14:59 UTC
Permalink
Post by charles bartlett
When I do what you suggest, after the final make command - I get a
message asking me to make a selection in "../../../config/config.mk to
select the appropriate platform" and the build stops.
You haven't done what I suggest. You are executing make in the source
tree, not a suitably configured build tree.

[...]
Post by charles bartlett
A suggestion: it seems natural to derive programs using omniORB from the
examples. For the Python case, it is very easy to do so. For C++, one
most likely would like to quickly divorce from your build system.
Indeed. The omniORB build system is over-complex and convoluted, but it
has the advantage that it works on all platforms that omniORB builds on.
Replacing it with something simpler is really hard because there are so
many platform differences to cope with.
Post by charles bartlett
However, the set of make files is fairly involved. Perhaps you could add
a comment to your documentation where you state how to easily extract
the build steps for any given example, including switches, libraries
used etc. One can dig it out, as I did, but it took me a few hours. You
make some comments along these lines in your installation notes, but a
user would really like a quick and easy way to duplicate the commands to
build any of the examples.
The problem is that the options required are different for each
platform, and there are a lot of platforms. The easiest way to work out
the options for your platform is to build the examples (properly, in the
build tree), and see the options that are used.

If you come up with some simple makefiles for your platform, why don't
you contribute them to the project by putting them on the Wiki?

Duncan.
--
-- Duncan Grisby --
-- ***@grisby.org --
-- http://www.grisby.org --
charles bartlett
2008-01-17 20:38:56 UTC
Permalink
Thanks for your response.

Thanks for pointing out the difference between the build and source
tree. I'll try make again there.

I'll attempt to produce my own simplified make for my platform for a
selection of the examples and how I derived it from observing the
supplied make - and place it on the wiki.

Charles
Post by Duncan Grisby
Post by charles bartlett
When I do what you suggest, after the final make command - I get a
message asking me to make a selection in "../../../config/config.mk to
select the appropriate platform" and the build stops.
You haven't done what I suggest. You are executing make in the source
tree, not a suitably configured build tree.
[...]
Post by charles bartlett
A suggestion: it seems natural to derive programs using omniORB from the
examples. For the Python case, it is very easy to do so. For C++, one
most likely would like to quickly divorce from your build system.
Indeed. The omniORB build system is over-complex and convoluted, but it
has the advantage that it works on all platforms that omniORB builds on.
Replacing it with something simpler is really hard because there are so
many platform differences to cope with.
Post by charles bartlett
However, the set of make files is fairly involved. Perhaps you could add
a comment to your documentation where you state how to easily extract
the build steps for any given example, including switches, libraries
used etc. One can dig it out, as I did, but it took me a few hours. You
make some comments along these lines in your installation notes, but a
user would really like a quick and easy way to duplicate the commands to
build any of the examples.
The problem is that the options required are different for each
platform, and there are a lot of platforms. The easiest way to work out
the options for your platform is to build the examples (properly, in the
build tree), and see the options that are used.
If you come up with some simple makefiles for your platform, why don't
you contribute them to the project by putting them on the Wiki?
Duncan.
Loading...