[omniORB] omniORB and Cygwin

Douglas Brown Doug.Brown at shadysoft.com
Mon Dec 8 21:13:16 GMT 2003


Hi folks,

I am including a patch for omniORB-4.0.3 that permits it to be used in a
Cygwin environment. To apply the patch:

1) install the complete Cygwin tool set; verify that it works correctly. See
http://www.cygwin.com for details.
2) extract the patch from this mail message and install it in the Cygwin
/tmp directory. This usually maps to c:\cygwin\tmp if you have installed
Cygwin in a standard way on your Windows box.
3) start a Cygwin bash shell. All of the following steps and commands should
be executed within bash:
a) install omniOrb source code as normal (e.g., mkdir /dvl; cd /dvl; tar
xzvf omniORB-4.0.3.tar.gz)
b) cd into the omniORB-4.0.3 directory (e.g., cd /dvl/omniORB-4.0.3)
c) apply the patch (e.g., patch -p1 < /tmp/omni.cygwin.patch)
d) configure and make omniORB as normal for a Unix environment (i.e., mkdir
build; cd build; ../configure <your options>; make)

Note, do not try to build on a SAMBA share, since the file permission
mapping will probably be incorrect. This could make the build fail when DLLs
used in linking are not readable or the scripts are not executable. Compile
on a standard windows share to avoid this problem.

This patch also assumes that you have installed the *complete* Cygwin tool
chain, not just the minimal tool chain needed to compile omniORB with
Microsoft Visual C++. It also assumes that your Cygwin environment is
completely current: g++ v3.3.1, bash v2.05b.0(1)-release, patch v2.5.8, make
v3.8.0, ld v 2.14.90 20030901, python v2.3.2, etc. The patch might work with
some previous versions of Cygwin tools, but I have not tested it and can't
be sure. You can update your Cygwin installation using the setup.exe tool
from their website. You should not need any other tools or compilers beyond
what is included in Cygwin.

Most of the included changes are just minor tweaks to the build system. For
example, I added the generation of import libraries to the builds. I also
changed the output directories where products are installed to match up with
Windows a little better. For example, all DLLs and import libraries are
installed in ${BUILD_DIR}/bin, while static libraries are installed in
${BUILD_DIR}/lib. Other than that, I've kept the structure the same as
before. Also, the patch shouldn't effect non-Cygwin environments. I tested
this on Linux just to be sure; even after applying the patch, omniORB on
Linux builds and executes just as before.

I have built and successfully run every example except for partcl. Also, all
of the utilities seem to work correctly: catior, nameclt, omniNames, etc.
Although I generated both static and dynamic libs, all of the executable
tools, utilities, and examples use dynamic libs only in order to keep the
file sizes down. Make sure the bin directory with all of the DLLS is in the
path when you execute any of those tools. Run cygcheck if you are not sure.

If someone at omniORB would review these changes, clean them up if needed,
and incorporate them into the code base, I'd appreciate it. If you're happy
with the results, my next step would be to add omniORB as a maintained
package to Cygwin itself.


Doug
-------------- next part --------------
A non-text attachment was scrubbed...
Name: omni.cygwin.patch
Type: application/octet-stream
Size: 12014 bytes
Desc: not available
Url : http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20031208/7b6fe4ff/omni.cygwin-0001.obj


More information about the omniORB-list mailing list