ODS-2 builds on most platforms using the make utility. Most of the make logic is in makefile.generic, which is included by a platform-specific makefile. The platform-specific files are: makefile.unix -- Most Unix/Linux platforms makefile.solaris -- Solaris makefile.tru64 -- Tru64/DEC OSF/1 makefile.nt -- Windows NT Select the appropriate platform file & review the definitions. For Unix-like OSs, defaults are set in makefile.unixdefs. The easiest way to build ODS-2 is to softlink Makefile to the platform file. For example: ln -s makefile.unix Makefile make clean && make Alternatively, the following equivalent command can be used: make -f makefile.unix clean && make -f makefile.unix Copy the resulting object file, the .HLB, and .MDF files to a convenient location on your path, e.g. /usr/local/bin on unix, or add the build directory to the PATH environment variable on windows. The .HLB files contain the (compiled) help text. The MDF files contain message strings. Both are binary files, may be architecture-specific, and can be localized. Building from source requires Perl and uses data from VMS message and header files. Unless you are localizing messages, the included files suffice. The procedure for extracting localized messages from VMS is documented in the message script.. VHD support requires the libvhd in simtools/extracters/libvhd and simtools/extracters/vhd-tools. Note that these are different from the vhd support in simH. ods2 includes RMS emulation that is fairly complete (except for indexed organization). Messages use a VMS getmsg emulation; .msg files are localizable. If you have an alternate message file (e.g. for I18n), it will be a .mdf file (e.g. ods2_en_us.mdf), which should also be placed in a convenient place. The help source is in .hlp files, which are structured text. They are compiled into .hlb files by makehelp. en_us.hlp is the base file; any translations should use the same naming convention. The makefiles generate ods2_en_us.hlb. The helpfile can be selected by the ODS2HELP environment variable, and/or the set helpfile command. The default help library filename is "ods2.hlb", in the same directory as the ods2 executable. This file is made a symlink or copy of the default language by the makefile. If another available language is desired, softlink (or copy) the desired language file to it (or set the ODS2HELP environment variable.) E.g. for US English help: ln -s ods2_en_us.hlb ods2.hlb If you need different definitions for another platform, please add a new platform-specific file rather than changing makefile.generic. For development, I use a wrapper on make called "strictmake" to keep the sources as clean as possible; it enables extra warnings from gcc (and filters a few). I also use "grind" to run with valgrind to keep the code leak free. Currently, the only exception is that libedit doesn't completely clean up on exit. On VMS, you can use the DCL command procedure build.com to build with DECC or GCC, with $ @build build.com will automatically select decc,vaxc or gcc. If you have MMS/mmk, use descrip.mms, with $ mmk To build with VAXC $ mmk/macro=vaxc=1 For Microsoft Windows, use Visual Studio - the free Community Edition works. A solution file is included in ODS2's git repository. x64, x86 builds are supported. Debug builds include Visual Leak Detector (a free tool), but that can be turned off. VLD indicates that ODS2 is leak-free on Windows. I build for Windows with the sources on a Linux share. This makes it easy to test changes with one copy of the source. The object files do not overlap; the VS directories are excluded from git. For convenience, the windows .EXEs are copied to the git working directory. Bug reports, contributions, and feature requests are welcome at https://github.com/open-simh/simtools/issues.