[omniORB] generating dependencies for omniORB projects.

Peter Fischer pfischer at ira.uka.de
Thu Jan 29 02:35:28 GMT 2004


Hello Duncan, hello mailing list members,

I write especially to you, Duncan, because I saw that you have to do
most with the topic of generating
dependencies between the files of an application using omniORB.
I use omniORB4.0.1 under Linux and got the echo example 3 run which uses
the naming service.
I now want to extend it, add new classes (and files) and thus have the
problem of how to generate the new dependencies emerging from that.
I have experience in writing C++ applications for some years and are
fairly familiar with GNU make
and the tool qmake to generate dependencies in Makefiles. I am however
new to the tool makedepend
or the omkdepend in the omniORB ODE. I carefully read the omniORB
manual, the README and
.mk files in the build tree, the README to omkdepend and man page of
makedepend.
Hoping that omkdepend would update the dir.mk file of the echo example
with the dependencies for
eg3_srv.cc I issued the following command and got a warning:

> ./../../bin/omkdepend -I../../../include/omniORB4/ -I./ -fdir.mk
eg3_srv.cc
../../../bin/omkdepend: warning:  ignoring option -fdir.mk

It then generated the .d file but did not add something to dir.mk so
that eg3_srv.cc still is not "known"
to make. I also tried to add eg3_srv.cc to the line  CXXSRCS =... in
dir.mk but without success.

So is it the right way to use omkdepend or would you suggest another
way/tool to generate the
Makefiles? - Is the right approach to develop within the directory
structure where the examples are or
is there a cleaner way to develop in my own directory separate from the
omniORB installation?

The tool should not only generate the dependencies between the files of
my project (what all the
general tools like qmake, makedepend etc. do), but also the rules for
generating the stub files from the
idl files using omniidl. I inspected the .mk files and realized that the
rules which tell make how to
create the SK.cc and .hh stub files are in mk/afterdir.mk and that
dir.mk references to it by its rules of
the form

$(eg3_clt): eg3_clt.o $(CORBA_STATIC_STUB_OBJS) $(CORBA_LIB_DEPEND)
 @(libs="$(CORBA_LIB_NODYN)"; $(CXXExecutable))

The $(CORBA_STATIC_STUB_OBJS) is the entry point for generating the stub
objects.

So it would be nice if the tool would only add the new dependencies and
keeping the very powerful
$(CORBA_STATIC_STUB_OBJS) etc. parts so that afterdir.mk & co. can do
the rest for me (since
the rules there are formulated in such a general form that this will
work).

Can you tell me a way how to achieve this or how is the best practice
for generating all dependencies
respectively. This could include IDEs like KDevelop under Linux or
VisualCafe under Windows.
But it would also be interesting for me to hear whether this can be
achieved on the command line under
Linux using appropriate tools.

Thank you if you were so patient to read this and answer me.

Many greetings,

Peter.


--------------------------------------------------------------------
Peter Fischer
Universitaet Karlsruhe
Fakultaet fuer Informatik
Institut fuer Betriebs- und Dialogsysteme
Am Fasanengarten 5
76128 Karlsruhe
E-mail: pfischer at ira.uka.de
--------------------------------------------------------------------






More information about the omniORB-list mailing list