SEARCH CONTACT US SUPPORT SERVICES PRODUCTS STORE
United States    
COMPAQ STORE | PRODUCTS | SERVICES | SUPPORT | CONTACT US | SEARCH
OpenVMS Systems OpenVMS

GTK+ for OpenVMS Alpha

Release Notes

July 31, 2000

Introduction
Prerequisites
Expanding and Installing GTK+ for OpenVMS
Building GTK+ for OpenVMS
Your Application and GTK+ for OpenVMS
POSIX and GNV Considerations
Source File Changes
Build Files Included in GTK+ for OpenVMS

Introduction

GTK+ Version 1.2.8 for OpenVMS Alpha is an open source, free software library for creating graphical user interfaces. It is an unofficial, interim port of GTK+. See Problem Reporting for information on reporting problems in GTK+ for OpenVMS.

See http://www.gtk.org for more information about GTK+.

Prerequisites

GTK+ for OpenVMS requires the following software. (Other configurations have not been tested.)

Note: Perl and AWK are used in a full build, but you can modify the OpenVMS GTK+ build procedures so that neither of these utilities is required.

GTK+ for OpenVMS is built in DCL using OpenVMS-specific build procedures. The UNIX tools make and autoconf (configure) are not required.

Expanding and Installing GTK+ for OpenVMS

Perform the following steps to expand and install GTK+ for OpenVMS.

Note: You must also download and install the
OpenVMS Porting Library in order to use GTK+ for OpenVMS.
  1. Download GTK+ Version 1.2.8 for OpenVMS.

    A self-extracting archive and a .ZIP file are available for download. The contents of the kits are identical.

    Download the self-extracting archive to expand and install the kit on an Alpha system. You can expand the .ZIP file on an Alpha system or on a PC, if you want to simply view the files in the kit.

  2. After you download the kit, create a directory where you want the source code tree to reside. Set your default directory to that location.

    $ CREATE/DIRECTORY DKA0:[GTK128]
    $ SET DEFAULT DKA0:[GTK128]
    

  3. To expand and install the GTK+ for OpenVMS self-extracting archive, run the kit you downloaded. For example:

    $ RUN DKA0:[KITS]GTK128-OPENVMS-A1.SFX_AXPEXE
    

Building GTK+ for OpenVMS

This section explains how to build GTK+ for OpenVMS.

  1. Edit [GTK128]VMS_BUILD_SETUP.COM to match your system's configuration.
  2. If you do not have Perl or AWK, edit [GTK128.GTK.GTK]VMS_BUILD.COM and uncomment the goto no_perl statement.

    The OpenVMS kit contains pre-built generated files. You should rebuild GTK.DEFS and the other generated files only if you are making changes to GTK+ source code.

  3. (Optional) If you need to build a debug version of GTK+, enter the following command:
    $ DEFINE BUILD_DEBUG 1
    

  4. Run VMS_BUILD.COM from the top-level directory:
    $ SET DEFAULT [GTK128]
    $ @VMS_BUILD
    

  5. Depending upon how fast your system is, the build will take between 10-30 minutes. A few warnings are normal.

During a build of GTK+ for OpenVMS, the following directories are built:

  • glib
    • gmodule
    • gthread
    • tests (optional)
  • gtk
    • gdk
    • gtk

Each directory contains a VMS_BUILD.COM that is used to build the contents of that directory, plus the contents of its subdirectories.

Most tests can be built by invoking VMS_BUILD.COM in the appropriate directory and passing it the parameter test.

After the build has completed, four shareable images have been created:

  • [GTK128.GLIB]LIBGLIB.EXE
  • [GTK128.GLIB.GMODULE]LIBGMODULE.EXE
  • [GTK128.GTK.GDK]LIBGDK.EXE
  • [GTK128.GTK.GTK]LIBGTK.EXE

Your Application and GTK+ for OpenVMS

Consider the following when you build your application and link against the GTK+ shareable images.

  • The code added to GTK+ for OpenVMS uses event flags 2 and 3 without allocating them. Your application must not use these event flags. This restriction will be lifted in GTK+ 1.3 by ensuring that any event flags used are allocated via LIB$GET_EF.
  • GTK+ is compiled using /NAMES=AS_IS. This means that all of the entry points in the shareable images are case-sensitive, and you will have to compile your application the same way. If you want to change this, edit VMS_CC.COM (to remove NAMES=AS_IS) and all the xxx_create.opt files (to remove the CASE_SENSITIVE statements) and rebuilt GTK+.
  • GTK+ is compiled using /NAMES=SHORTEN. This means that any long symbol names in the GTK code are shortened rather than truncated. Your application should also be compiled with this qualifier.
  • GTK+ is compiled using /FLOAT=IEEE and /IEEE=DENORM. Your application must also be built with these qualifiers.
  • When compiling code that uses GLib, include the following directories on your header file include path:
    • [GTK128.GLIB]
    • [GTK128.GLIB.GMODULE]

  • When compiling code that uses GTK, include the following directories on your header file include path:
    • [GTK128.GTK]
    • [GTK128.GLIB]
    • [GTK128.GLIB.GMODULE]

  • There are four shareable images against which you need to link your application, as follows:
    • [GTK128.GLIB]LIBGLIB.EXE
    • [GTK128.GLIB.GMODULE]LIBGMODULE.EXE
    • [GTK128.GTK.GDK]LIBGDK.EXE
    • [GTK128.GTK.GTK]LIBGTK.EXE

POSIX and GNV Considerations

If you are building your application inside of POSIX or GNV, then GLib and GTK both need to be installed so that autoconf based applications can locate the installations. If you have built GLib and GTK on OpenVMS, then they are already installed and glib-config and gtk-config can be used as usual.

For example, if your GTK+ directory root is DKB300:[GTK128], you can configure an autoconf based application as follows:

configure \
  --with-glib --with-glib-prefix=/dkb300/gtk128/glib/ \
  --with-gtk --with-gtk-prefix=/dkb300/gtk128/gtk/ 

Source File Changes

Following is a summary of the changes made to the GTK+ source files.

glib
  • [GTK128.GLIB]GMAIN.C
    • Changed to use event flags as the wakeup mechanism
gtk
  • [GTK128.GTK.GDK]GDKDND.C
    • Use VMS_SETUP_WINDOW_NOTIFICATION macro when a window is created

  • [GTK128.GTK.GDK]GDKEVENTS.C
    • Add code to translate OpenVMS-specific MOTIF key bindings so they appear normal
    • Use an event flag (VMS_EF_GTK_WINDOW_EVENT) for notification instead of ConnectionNumber

  • [GTK128.GTK.GDK]GDKWINDOW.C
    • Use VMS_SETUP_WINDOW_NOTIFICATION macro when a window is created

  • [GTK128.GTK.GDK]GXID.C
    • Change name of socket_fd (this file is not built)

  • [GTK128.GTK.GTK]GTKDND.C
    • Add stdlib.h so that abs is known

  • [GTK128.GTK.GTK]GTKFILESEL.H
    • Use macros to copy/compare struct st_ino fields
    • Make a local inode definition inode[3]
    • Perform case blind comparisons
    • Change find_parent_dir_fullname so that it does not use chdir (cannot chdir up to /)

  • [GTK128.GTK.GTK]GTKMAIN.C
    • Translate HOME to UNIX equivalent and re-save
    • Include unixlib.h

  • [GTK128.GTK.GTK]TESTRGB.C
    • ifdef out struct timezone declaration and make second arg in gettimeofday call NULL instead of tz

Build Files Included in GTK+ for OpenVMS

Compaq provides the following OpenVMS-specific build files in the GTK+ kit.

File Description
[GTK128]VMS_CC.COM Command file to compile a single C file
[GTK128]VMS_SHARE.COM Command file to create a shareable image
[GTK128]VMS_LINK.COM Command file to create an executable image
[GTK128]VMS_BUILD_SETUP.COM Common setup file invoked by each vms_build.com
[GTK128]VMS_BUILD.COM Command file for building on OpenVMS
[GTK128.GLIB]CONFIG.H_VMS Prebuilt OpenVMS version of config.h
[GTK128.GLIB]GLIBCONFIG.H_VMS Prebuilt OpenVMS version of glibconfig.h
[GTK128.GLIB]LIBGLIB_VMS.OPT Linker options file to pull in libglib
[GTK128.GLIB]LIBGLIB_CREATE_VMS.OPT Linker options file to create libglib shareable image
[GTK128.GLIB]VMS_BUILD.COM Command file for building on OpenVMS
[GTK128.GLIB]VMS_GLIB-config.com Command file to create glib-config
[GTK128.GLIB.GMODULE]
GMODULECONF.H_VMS
Prebuilt OpenVMS version of gmoduleconf.h
[GTK128.GLIB.GMODULE]
LIBGMODULE_VMS.OPT
Linker options file to pull in libgmodule
[GTK128.GLIB.GMODULE]
LIBGMODULE_CREATE_VMS.OPT
Linker options file to create libgmodule shareable image
[GTK128.GLIB.GMODULE]VMS_BUILD.COM Command file for building on OpenVMS
[GTK128.GLIB.GTHREAD]VMS_BUILD.COM Command file for building on OpenVMS
[GTK128.GLIB.TESTS]VMS_BUILD.COM Command file for building on OpenVMS
[GTK128.GTK]CONFIG.H_VMS Prebuilt OpenVMS version of config.h
[GTK128.GTK]VMS_BUILD.COM Command file for building on OpenVMS
[GTK128.GTK]VMS_GTK-config.com Command file to create gtk-config
[GTK128.GTK.GDK]LIBGDK_VMS.OPT Linker options file to pull in libgdk
[GTK128.GTK.GDK]
LIBGDK_CREATE_VMS.OPT
Linker options file to create libgdk shareable image
[GTK128.GTK.GDK]VMS_BUILD.COM Command file for building on OpenVMS
[GTK128.GTK.GTK]LIBGTK_VMS.OPT Linker options file to pull in libgtk
[GTK128.GTK.GTK]
LIBGTK_CREATE_VMS.OPT
Linker options file to create libgtk shareable image
[GTK128.GTK.GTK]VMS_BUILD.COM Command file for building on OpenVMS
[GTK128.GTK.PO]VMS_BUILD.COM Command file for building on OpenVMS

Go back to the GTK+ for OpenVMS Home Page


Distribution restrictions and disclaimer

Customer agrees that he/she is not prohibited by the U.S. or other government export control regulations from receiving this software or technical data.

Copyright and trademark information

Compaq believes the information in this document is accurate as of its publication date; such information is subject to change without notice.

Copyright Compaq Computer Corporation 2000. All rights reserved.

Compaq, the Compaq logo, and the DIGITAL logo are registered in the U.S. Patent and Trademark Office. Java and all Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. Microsoft, Windows, and Windows 95 are registered trademarks, and NT and Windows NT are trademarks, of Microsoft Corporation.

Alpha, AlphaServer, AlphaStation, DEC, DIGITAL, OpenVMS, Tru64, VAX, and VMS are trademarks of Compaq Computer Corporation.

1.800.344.4825

privacy and legal statement