[CMake] Getting CMake to run on OpenVMS

Alan Antonuk antonuka at msu.edu
Fri Sep 28 11:27:21 EDT 2007


Update:
I've ported the bootstrap script to DCL (yuck) and it has most of the
functionality of the bash version of the script.
I decided to take a dependency on the A9 porting library a.k.a. "The
Jackets" (http://h71000.www7.hp.com/openvms/products/ips/porting.html) to
help with some of the small issues I was having with compatibility of unix
header files.  It also includes a port of gmake (3.76.1).

Compiling the bootstrap I run into only one issue:
In ProcessUNIX.c, there is a sigaction struct, and the version on VMS does
not have the sa_sigaction member of the sigaction struct, and
correspondingly the SA_SIGINFO constant is not defined.  The sigaction
struct looks like this:
 void        (*sa_handler)(int);
 sigset_t    sa_mask;
 int         sa_flags;

As a fix would I get correct results if I were to instead of sa_sigaction,
assign to sa_handler (the Unix manpage seems to claim that on some
implementations sa_sigaction and sa_handler are a union - so they end up
being called for the same reasons.  My logic maybe flawed here.

-Alan

On 9/20/07, Bill Hoffman <bill.hoffman at kitware.com> wrote:
>
> Alan Antonuk wrote:
> > Hi;
> >
> > I'm trying to get cmake to run on the OpenVMS operating system with a
> > goal of eventually getting ITK to run on VMS.  Searching through this
> > list and on the website it doesn't appear as if this effort has been
> > made.  My first question: has anyone successfully got cmake to run on
> > VMS?
> >
> > I am prepared to put in the effort to get cmake to run on
> > OpenVMS.  Looking at a mail-thread
> > (http://public.kitware.com/pipermail/cmake/2006-October/011622.html
> > <http://public.kitware.com/pipermail/cmake/2006-October/011622.html>)
> > posted earlier I can answer those questions:
> > 1.) Is it command-line based?  Does it support scripting in any form?
> > ANSWER: Yes it is command line based, and it does support scripting
> > called DCL - which is not compatible in anyway unix versions of *sh
> > 2.) What would the build sequence look like for a simple hello-world.c
> > program?
> > ANSWER:
> > $ CC /OBJECT=hello-world.OBJ hello-world.c
> > $ LINK hello-world.obj /EXECUTABLE=hello-world.EXE
> > C++ is similar
> > $ CXX /OBJECT= hello-world.OBJ hello-world.cpp
> > $ CXXLINK hello-world.OBJ /EXECUTABLE=hello-world.EXE
> >
> > 3.) Is there a make tool or native build tool of some kind?
> > ANSWER: Yes there's a utility called MMS which uses a syntax very
> > similar to make with some key differences (
> > http://h71000.www7.hp.com/doc/73FINAL/5825/5825_014.htm - look at
> > Appendix B)
> >
> > My plan of attack for porting cmake - would be to port the bootstrap
> > file to use the DCL scripting language, and then go from there trying
> > to build it.  Is this a sensible way to go?
> I looked into this in the past.  My approach was going to be to first
> use gmake on OpenVMS which is ported.  So, if you used the cmake "Unix
> Makefiles" generator and gmake, you should be able to just create some
> platform files to get this going.
>
> -Bill
>
>


-- 
+––– –– –  –   –     –      –
| Alan Antonuk
| antonuka at msu.edu, aega at umich.edu
  tel cell: (734) 646-4476
| tel work: (734) 647-1386
  addr: 1705 Morehead Dr., Ann Arbor, MI 48103
| aim: alanxz1
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://public.kitware.com/pipermail/cmake/attachments/20070928/77e1ec87/attachment.htm


More information about the CMake mailing list