MantisBT - CMake
View Issue Details
0003974CMakeCMakepublic2006-10-24 10:182016-06-10 14:30
Steve Boyd 
Bill Hoffman 
normalfeaturealways
closedmoved 
 
 
0003974: OpenVMS support
A new feature is needed for CMake to function on OpenVMS operating systems. It should generate files that support MMS which is an OpenVMS make utility.

Some supporting information

VMS is command-line based and has extensive scripting capabilities. Compiling simple programs can be done as follows:

$ c64 hello_world_extended.c
$ link /exe=hello_world_extended.c some_lib/lib

There is an OpenVMS tool called MMS available which is similar to unix make files. This link describes MMS:

http://h71000.www7.hp.com/doc/73FINAL/5825/5825_.htm [^]

To start MMS, type:

$ mms

It uses descrip.mms files to define the build environment (equivalent to Makefile). An example is included here:

==================================================
.IGNORE
FFLAGS =
/FAST/OPT=(LEVEL=5,TUNE=EV68,INL=ALL)/OBJECT=$(MMS$TARGET_NAME).OBJ
FGENER = /ALIGN=(NATURAL, SEQUENCE)/ASSUME=NOACCURACY/OPT=(LEVEL=5,TUNE=GENERIC
,INL=ALL)/OBJECT=$(MMS$TARGET_NAME).OBJ_G

.FOR.OBJ
        $(FORT)$(FFLAGS) UD:$(MMS$TARGET_NAME).FOR
        $(FORT)$(FGENER) UD:$(MMS$TARGET_NAME).FOR
.FOR.INC
        $(FORT)$(FFLAGS) UD:$(MMS$TARGET_NAME).FOR
        $(FORT)$(FGENER) UD:$(MMS$TARGET_NAME).FOR

all :: uct_reconstruction.exe, uct_reconstruction.exe_generic
        write sys$output "UCT_RECONSTRUCTION.EXE generated"

uct_reconstruction.exe :: -
        recoident.opt, -
        uct_reconstruction.obj, -
        scli:uct_reco_constants.inc, -
        calc_fan_beam_angles.obj, -
        rebinning.obj, -
        raw_to_rpro.obj, -
        conereco.obj

        link/exe=uct_reconstruction.exe -
        recoident/opt, -
        uct_reconstruction.obj, -
        calc_fan_beam_angles, -
        rebinning, -
        raw_to_rpro, -
        conereco, -
        scanco_lib/lib

uct_reconstruction.exe_generic :: -
        recoident.opt_g, -
        uct_reconstruction.obj_g, -
        scli:uct_reco_constants.inc, -
        calc_fan_beam_angles.obj_g, -
        raw_to_rpro.obj_g, -
        rebinning.obj_g, -
        conereco.obj_g

        link/exe=uct_reconstruction.exe_generic -
        recoident/opt, -
        uct_reconstruction.obj_g, -
        calc_fan_beam_angles.obj_g, -
        raw_to_rpro.obj_g, -
        rebinning.obj_g, -
        conereco.obj_g, -
        scanco_lib/lib

uct_reconstruction.obj :: ud:uct_reconstruction.for, -
        scli:uct_reco_constants.inc

calc_fan_beam_angles.obj :: ud:calc_fan_beam_angles.for, -
        scli:uct_reco_constants.inc

raw_to_rpro.obj :: ud:raw_to_rpro.for, -
        scli:uct_reco_constants.inc

rebinning.obj :: ud:rebinning.for, -
        scli:uct_reco_constants.inc, -
        scli:ctdata_header_structure.inc

conereco.obj :: ud:conereco.for, -
        scli:uct_reco_constants.inc

==================================================

NOTE 1: The 'ud' in the above file is a system logical that is specific to the system on which this descrip.mms file was generated. Ignore it.

NOTE 2: An alternative to MMS is Madgoat MMK (http://www.madgoat.com/mmk.html [^])
No tags attached.
Issue History
2009-06-10 13:12Brad KingAssigned ToBrad King => Bill Hoffman
2009-06-10 13:15Brad KingNote Added: 0016694
2016-06-10 14:27Kitware RobotNote Added: 0041326
2016-06-10 14:27Kitware RobotStatusassigned => resolved
2016-06-10 14:27Kitware RobotResolutionopen => moved
2016-06-10 14:30Kitware RobotStatusresolved => closed

Notes
(0005516)
Brad King   
2006-10-24 10:31   
I'm assigning this to myself because I asked the reporter to submit it.
(0005520)
Bill Hoffman   
2006-10-24 12:11   
If CMake support for OpenVMS is added, someone needs to run a dashboard at a minimum, and best case give remote access to cmake developers to the machine. But if we spend the time to get it working, then to keep it working a nightly dashboard would have to be in place. Also, does gmake build for VMS? It might be a quicker path for getting something working.
(0005875)
Werner Smekal   
2006-12-05 03:19   
GNUmake is available (at least version 3.60) from here http://h71000.www7.hp.com/freeware/freeware80/ [^] (and maybe other places, scroll down to make). So, using gnu make in vms is possible, but mms and mmk (free version of mms) also use Make syntax as far as i know.

HTH,
Werner
(0005876)
Bill Hoffman   
2006-12-05 08:54   
IF they use make sytanx then it should work, there are no gmake specific constructs in cmake makefiles. However, if it is not a standard make, then it will not work. Basically, someone has to try this... I am thinking gmake will be the easiest way to get it working. Then of course there is the compiler flags and such.
(0016694)
Brad King   
2009-06-10 13:15   
We've made some progress on OpenVMS support, but I've run out of time for now.
I've been working on a system with GNV bash and make.

After the commits below I can bootstrap and get a generated build tree for CMake (currently with one error that is worked around by running "Bootstrap_cmk/cmake ." again by hand). The resulting build tree almost completes, failing only because of a mismatched .EXE extension on the CMake binaries.

COMP: Avoid String.c inclusion by Compaq templates
/cvsroot/CMake/CMake/Source/kwsys/CMakeLists.txt,v <-- Source/kwsys/CMakeLists.txt
new revision: 1.145; previous revision: 1.144
/cvsroot/CMake/CMake/Source/kwsys/String.c,v <-- Source/kwsys/String.c
new revision: 1.2; previous revision: 1.1
/cvsroot/CMake/CMake/Source/kwsys/kwsysPrivate.h,v <-- Source/kwsys/kwsysPrivate.h
new revision: 1.7; previous revision: 1.6
/cvsroot/CMake/CMake/bootstrap,v <-- bootstrap
new revision: 1.119; previous revision: 1.118

BUG: Fix non-select process impl without timeout
/cvsroot/CMake/CMake/Source/kwsys/ProcessUNIX.c,v <-- Source/kwsys/ProcessUNIX.c
new revision: 1.83; previous revision: 1.82

ENH: Teach KWSys Process basic VMS support
/cvsroot/CMake/CMake/Source/kwsys/ProcessUNIX.c,v <-- Source/kwsys/ProcessUNIX.c
new revision: 1.84; previous revision: 1.83

COMP: Use HAVE_SYS_PARAM_H properly in libtar
/cvsroot/CMake/CMake/Utilities/cmtar/append.c,v <-- Utilities/cmtar/append.c
new revision: 1.14; previous revision: 1.13
/cvsroot/CMake/CMake/Utilities/cmtar/decode.c,v <-- Utilities/cmtar/decode.c
new revision: 1.6; previous revision: 1.5
/cvsroot/CMake/CMake/Utilities/cmtar/extract.c,v <-- Utilities/cmtar/extract.c
new revision: 1.15; previous revision: 1.14
/cvsroot/CMake/CMake/Utilities/cmtar/libtar.c,v <-- Utilities/cmtar/libtar.c
new revision: 1.19; previous revision: 1.18
/cvsroot/CMake/CMake/Utilities/cmtar/util.c,v <-- Utilities/cmtar/util.c
new revision: 1.8; previous revision: 1.7
/cvsroot/CMake/CMake/Utilities/cmtar/wrapper.c,v <-- Utilities/cmtar/wrapper.c
new revision: 1.10; previous revision: 1.9

COMP: Fix cmcurl build on VMS
/cvsroot/CMake/CMake/Utilities/cmcurl/setup.h,v <-- Utilities/cmcurl/setup.h
new revision: 1.3; previous revision: 1.2

COMP: Fix cmtar build on VMS
/cvsroot/CMake/CMake/Utilities/cmtar/extract.c,v <-- Utilities/cmtar/extract.c
new revision: 1.16; previous revision: 1.15

BUG: Avoid std::unique algorithm on VMS
/cvsroot/CMake/CMake/Source/cmGlobalUnixMakefileGenerator3.cxx,v <-- Source/cmGlobalUnixMakefileGenerator3.cxx
new revision: 1.134; previous revision: 1.133

ENH: Teach KWSys SystemTools about VMS paths
/cvsroot/CMake/CMake/Source/kwsys/SystemTools.cxx,v <-- Source/kwsys/SystemTools.cxx
new revision: 1.244; previous revision: 1.243

ENH: On VMS use _dir and _tmp, not .dir and .tmp
/cvsroot/CMake/CMake/Source/cmGeneratedFileStream.cxx,v <-- Source/cmGeneratedFileStream.cxx
new revision: 1.21; previous revision: 1.20
/cvsroot/CMake/CMake/Source/cmLocalUnixMakefileGenerator3.cxx,v <-- Source/cmLocalUnixMakefileGenerator3.cxx
new revision: 1.263; previous revision: 1.262
/cvsroot/CMake/CMake/Source/cmTarget.cxx,v <-- Source/cmTarget.cxx
new revision: 1.245; previous revision: 1.244

ENH: Skip 'SHELL = /bin/sh' in Makefiles on VMS
/cvsroot/CMake/CMake/Source/cmLocalUnixMakefileGenerator3.cxx,v <-- Source/cmLocalUnixMakefileGenerator3.cxx
new revision: 1.264; previous revision: 1.263

ENH: Enable basic OpenVMS platform support
/cvsroot/CMake/CMake/Source/cmGlobalUnixMakefileGenerator3.cxx,v <-- Source/cmGlobalUnixMakefileGenerator3.cxx
new revision: 1.135; previous revision: 1.134

ENH: Make bootstrap script work on VMS bash
/cvsroot/CMake/CMake/bootstrap,v <-- bootstrap
new revision: 1.120; previous revision: 1.119
(0041326)
Kitware Robot   
2016-06-10 14:27   
Resolving issue as `moved`.

This issue tracker is no longer used. Further discussion of this issue may take place in the current CMake Issues page linked in the banner at the top of this page.