libIDL 0.6.5 for OpenVMS ======================== OVERVIEW The IDL Compiling Library (libIDL) for OpenVMS Alpha is an open source, free software library used for creating trees of CORBA Interface Definition Language (IDL) files. libIDL is part of the GNOME library set. This port of libIDL to OpenVMS allows you to build the libIDL library so that it can be used by the Mozilla build procedure. More information about libIDL is available from http://andrewtv.org/libIDL/index.jsp PREREQUISITES - A system running OpenVMS Alpha V7.3-1, including an ODS-5 volume - GTK+ for OpenVMS, available from http://h71000.www7.hp.com/openvms/products/ips/gtk.html - GNV, available from http://h71000.www7.hp.com/opensource DOWNLOADING AND EXPANDING THE KIT Download libIDL for OpenVMS from http://h71000.www7.hp.com/opensource/libidl_down.html The file that you download is a self-extracting archive (named libIDL.SFX_AXPEXE) that contains an OpenVMS BACKUP saveset (named libIDL.SAV) of the libIDL sources. To expand the file, enter the following command: $ RUN libIDL.SFX_AXPEXE Set the file attributes as follows: $ SET FILE /ATTR=(rfm=fix,lrl=32256,rat=none) libIDL.SAV RESTORING THE BACKUP SAVESET To restore the libIDL for OpenVMS backup saveset, enter the following commands: $ CREATE/DIR disk:[directory] $ BACKUP libIDL.sav/SAVE disk:[directory...]*.* Where disk:[directory] is the location where you want to restore the kit. This will create a directory tree under disk:[directory]. NOTES libIDL for OpenVMS is built with its own shell script, because OpenVMS does not have libtool (which requires autoconf and automake). Prebuilt versions of lexer.c, parser,c and parser.h are supplied. This eliminates the need for LEX and YACC during the build. Mozilla must be able to run libIDL-config. The Mozilla build procedure can be told where libIDL-config is located via the --with-libIDL-prefix options. libIDL-config must create valid output for the following options: libIDL-config --cflags libIDL-config --libs libIDL-config --version SOURCE CODE CHANGES OpenVMS does not have an alloca routine, so a dummy alloca routine (vms_alloca.c) is provided. parser.c was modified to pick up a prototype for alloca (to keep the compiler from generating errors). RESTRICTIONS - Stack reallocation fails using libIDL for OpenVMS libIDL includes code that reallocates a stack if the stack is about to overflow. This code uses alloca to allocate more memory, but alloca is not available on OpenVMS. If a stack needs to be reallocated, a dummy alloca routine (vms_alloca.c) returns an error message. BUILDING libIDL for OpenVMS 1. Edit libIDL-config-VMS to match your system. You need to change definitions of: - LIBIDL_ROOT - where the libIDL code resides (directory where libIDL-config-VMS lives). Must be UNIX format. - GTK_ROOT - where GTK is located (directory where GLIB.DIR is). Must be in UNIX format. 2. In GNV's bash, cd to the libIDL directory and invoke build_vms.sh. This should produce libIDL.a. $ bash bash$ cd /dka0/libIDL bash$ build_vms.sh Copying libIDL-config-VMS Creating IDL.h from IDL.h.new.in Running libIDL-config... Compiling ns... Compiling lexer... Compiling parser... Compiling util... Compiling vms_alloca... Creating .a file... Compiling tstidl... Linking tstidl... Installing... bash$ bash$ ls *.a libIDL.a bash$ bash$ bin/libIDL-config --version 0.6.5 bash$