255 lines
10 KiB
Plaintext
255 lines
10 KiB
Plaintext
###########################################################################
|
|
# README file for the XView Toolkit, Version 3.2, source release
|
|
# @(#)README 1.7 1/7/92 SMI
|
|
#
|
|
# Please read this document before building the XView release.
|
|
|
|
|
|
What Is XView
|
|
-------------
|
|
XView (X Window-System-based Visual/Integrated Environment for Workstations)
|
|
is a user-interface toolkit to support interactive, graphics-based
|
|
applications running under the X Window System. XView provides a set of
|
|
pre-built, user-interface objects such as canvases, scrollbars, menus, and
|
|
control panels. The appearance and functionality of these objects follow
|
|
the OPEN LOOK Graphical User Interface (GUI) specification. XView features
|
|
an object-oriented style Application Programmer's Interface (API) that is
|
|
straightforward and easy to learn.
|
|
|
|
|
|
More Information
|
|
----------------
|
|
More information on the XView release is supplied in the
|
|
<XVIEW>/doc/whats_new.ps files. Please refer to these for issues
|
|
related to using the XView libraries and clients and changes for the 3.2
|
|
release. Information on documentation, bug reporting and help
|
|
can be found in the doc directory: xview-info. Information on
|
|
resources/defaults is included in the XView man page contained in
|
|
this directory.
|
|
|
|
|
|
XView Requirements
|
|
------------------
|
|
XView requires the use of an ICCCM-compliant window
|
|
manager. One such window manager is olwm, which supports the OPEN
|
|
LOOK (TM) user interface. Further, XView requires full ICCCM
|
|
support in Xlib. This is the standard in the X Window System
|
|
Version 11, Release 5. In order to run under Release 3, you must
|
|
define the PRE_R4_ICCCM compile-time flag (see config/XView.cf)
|
|
and the set resource, xview.icccmcompliant, to False in the
|
|
.Xdefaults file (see the xview man page). This release of XView
|
|
was only tested (executing the builds, and running the binaries)
|
|
on X11 R5.
|
|
|
|
|
|
Contents
|
|
--------
|
|
The XView release contains the following:
|
|
|
|
lib/libxview The XView toolkit
|
|
lib/libolgx The OLGX toolkit (used by XView and olwm)
|
|
clients/clock An XView clock application.
|
|
clients/cmdtool An XView terminal emulator.
|
|
clients/olwm The OPENLOOK window manager.
|
|
clients/olwmslave 'helper' program for olwm.
|
|
contrib/examples A bunch of XView examples.
|
|
fonts/bdf The OPENLOOK fonts required for Pre-R4 based servers.
|
|
doc Documentation about XView.
|
|
misc/message_files Message file templates for localization.
|
|
misc/xrdb_files X resource files for olwm/XView 3.2
|
|
|
|
The unpacked source is ~20meg
|
|
You'll need an additional 18meg to do a complete build. (assuming shared libs)
|
|
To install everything, you'll need about 8.5meg.
|
|
|
|
|
|
Building the Release
|
|
--------------------
|
|
This release of XView was tested on these systems:
|
|
SparcStation 10, SunOS 5.2
|
|
SparcStation 2, SunOS 5.2
|
|
SparcStation 1, SunOS 4.1.2
|
|
|
|
Like X11, XView uses imake to configure the Makefiles for a particular
|
|
system. The Makefiles delivered with this release are probably not
|
|
configured correctly for your system. New Makefiles will need
|
|
to be generated from the Imakefiles. In order to do this,
|
|
the following items are required:
|
|
|
|
1. Installed X11 R5
|
|
|
|
a. X11 header files.
|
|
b. X11 libraries.
|
|
c. X11 config directory.
|
|
|
|
2. If you set XvI18nLevel to 4 in config/XView.cf, Asian locale
|
|
support will be built in XView, and olwm. In this case, for
|
|
olwm to work properly, the Xlib library (libX11) has to be
|
|
built with internationalization support. If this cannot be
|
|
done, config/XView.tmpl will have to be edited for the clients/olwm
|
|
build as follows. Change the line:
|
|
|
|
XVCLIENTI18NDEFINES = -DOW_I18N_L4 -DOW_I18N_L3 -DOW_I18N -DFULL_R5
|
|
|
|
to
|
|
|
|
XVCLIENTI18NDEFINES = -DOW_I18N_L3 -DOW_I18N -DFULL_R5
|
|
|
|
3. Compiled versions of imake and makedepend must be found
|
|
in your $PATH. If you are building the fonts you'll
|
|
need the X11 font compilers in your path too. The fonts
|
|
are only needed if you are building for a Pre-R4 server.
|
|
|
|
|
|
Assuming R5 is installed in /foobar/R5, the X11 config directory is
|
|
in /foobar/R5/lib/X11, and compiled versions of imake and makedepend
|
|
should be found in /foobar/R5/bin.
|
|
|
|
The XView release provides an additional set of rules and configuration
|
|
parameters that are necessary to build the release. These can be
|
|
found in ./config. Most notably is ./config/XView.cf which contains
|
|
XView specific build options. This file should be read before a build
|
|
is attempted. XView.cf, by default, is designed for building XView 3.2
|
|
on Solaris 2.2.
|
|
|
|
################
|
|
NOTE (IMPORTANT)
|
|
################
|
|
The default configuration will build XView with Asian locale support
|
|
(turned on by -DOW_I18N). This requires the presence of Sun private
|
|
header files (i.e. XSunExt.h) available only with Solaris 2.2. It is
|
|
included by the build via "-I$(OPENWINHOME)/include".
|
|
Therefore, the default configuration requires Solaris 2.2 to be
|
|
installed. If it is not installed, Asian locale support has to be turned
|
|
off by setting XvI18nLevel (in config/XView.cf) to 3. This has to be done
|
|
for builds done on SunOS 4.x as well.
|
|
|
|
In the source release of XView 3.0, we used 'xstr' in shared library
|
|
builds. 'xstr' was used to extract string literals from the source which
|
|
was then put into an array which was indexed into instead of using the
|
|
string literal directly. We have removed this functionality for this
|
|
release. Most compilers already have options (-strconst, -xstrconst)
|
|
to insert string literals into the text segment instead of the data
|
|
segment. Building without xstr is also much faster.
|
|
|
|
But, if your builds fail with:
|
|
|
|
"GLOBAL_OFFSET_TABLE overflown"
|
|
|
|
then, you should revert back to the old way of doing things, with 'xstr'.
|
|
This can be done as follows (in the config directory):
|
|
|
|
a. mv XView.rules XView.rules.bak
|
|
b. cp XView.rules.xstr XView.rules
|
|
|
|
|
|
Here is what you need to do to build:
|
|
|
|
1. Set the environment variable IMAKEINCLUDE to point to both the
|
|
R5 config directory and the XView config directory.
|
|
Examples, first one for csh, second for sh:
|
|
|
|
% setenv IMAKEINCLUDE -I`pwd`/config -I/foobar/R5/lib/X11/config
|
|
or
|
|
$ IMAKEINCLUDE="-I`pwd`/config -I/foobar/R5/lib/X11/config"
|
|
$ export IMAKEINCLUDE
|
|
|
|
2. Set the OSMajorVersion and OSMinorVersion variables in the
|
|
appropriate <X11>/config/*.cf files.
|
|
|
|
3. Double-check the parameters in <X11>/config/site.def.
|
|
|
|
4. Double-check the build options in ./config/XView.cf.
|
|
There are comments in this file to explain what each option
|
|
is for. Among other things, this is where you can define where you
|
|
want XView to be installed.
|
|
|
|
5. Type "imake -DUseInstalled -I<X11>/lib/X11/config -I./config"
|
|
Type make World >& make.world &"
|
|
(do not name the log file make.log or it will get deleted).
|
|
This will build libxview and libolgx.
|
|
|
|
6. Check the log file for any errors. The release should build
|
|
without any problems on sun4 with SunOS 4.x and sun4 with
|
|
SunOS 5.x.
|
|
|
|
7. As root, type "make install". See tail end of log file for
|
|
special directions for shared libraries, if used.
|
|
|
|
8. Type "make Clients >& make.clients &"
|
|
This will cause the programs in ./clients to be built.
|
|
|
|
9. Type "make Contrib >& make.contrib &"
|
|
This will cause the examples in ./contrib to be built.
|
|
|
|
10. Type "make 'SUBDIRS=clients contrib' install"
|
|
|
|
11. Type "make 'SUBDIRS=clients contrib' install.man"
|
|
|
|
12. Type "make 'SUBDIRS=clients contrib' install.srcs"
|
|
|
|
13. Documents, release notes, known bugs are in the doc directory.
|
|
Can install these with "make -k 'SUBDIRS=doc' install".
|
|
|
|
14. When done, can get rid of all compiled files and links used
|
|
during the build with: "make Clean"
|
|
|
|
Building a lint library is not yet supported.
|
|
|
|
Source Notes
|
|
------------
|
|
This version of the XView source corresponds to that provided with
|
|
OpenWindows Version 3.2 from SunSoft Inc. Libraries generated with this
|
|
source should be interchangeable with those from the OpenWindows Version 3.2
|
|
release.
|
|
|
|
|
|
Porting Notes
|
|
-------------
|
|
This release of XView has been tested extensively on two Sun
|
|
platforms, a SunOS 4.1.2 system and a SunOS 5.2 system. X11R5 was
|
|
build for the SunOS 5.2 system using the base MIT X11R5 source and
|
|
the R5.SunOS5.patch in the contrib directory on export.lcs.mit.edu.
|
|
While efforts have been made to keep the toolkit portable to other
|
|
platforms, you may encounter problems. Please inform us of the
|
|
porting problems you find. Send email to xviewbugs@Eng.Sun.COM
|
|
and we will attempt to evaluate the problem and possibly include
|
|
a fix in a future patch or release.
|
|
|
|
|
|
Build Environment Notes
|
|
-----------------------
|
|
The style of the build environment has been outlined by the X.V11 Release 5
|
|
build environment from MIT. "Outlined" is used instead of "defined" since
|
|
there is no standard procedure for X software builds. The precedent is set
|
|
by the X Consortium for certain procedures and conventions; however, since
|
|
these conventions are neither reviewed nor documented, they cannot always
|
|
be followed. As much as possible, the conventions used in the X11R5 build
|
|
have been followed in the XView build.
|
|
|
|
If you've not used imake before, there is a document which explains how
|
|
it works in doc/config/usenixws. The easiest way to think of it is creating a
|
|
Makefile description language with CPP macros. The order in which files
|
|
are included will define which CPP rules and variables are active.
|
|
|
|
The configuration files specific to XView all begin with "XView."
|
|
The "XView.cf" file is one meant to easily choose certain build or
|
|
configuration options. The "XView.tmpl" file defines common configurations
|
|
for XView and is included by each Imakefile. All relevant variables
|
|
defined in the XView.tmpl file may be changed in the site.def file by
|
|
pre-defining the appropriate CPP variable. Both files are heavily
|
|
commented to explain what each option does. The other files, "XView.lib",
|
|
"XView.obj", and "XView.prog" are just a means of sharing common Imakefile
|
|
commands among many Imakefiles. The "XView.rules" file supplements the
|
|
"Imake.rules" file as supplied by X11R5.
|
|
|
|
|
|
Feedback
|
|
--------
|
|
While the XView team makes every effort to watch the ``net'' for questions
|
|
and problems with XView some messages may slip by. The xviewbugs@Eng.Sun.COM
|
|
alias has been created to provide a means for XView source product customers
|
|
to send input to the XView engineers. If you find problems or have
|
|
comments on XView, please forwarded them to this alias. We appreciate
|
|
any and all input.
|