HELP SYSDEFS Roger Evans & Robert Duncan, Aug 1992
Revised John Gibson Aug 1995
System-specific definitions.
include sysdefs
uses sysdefs
INCLUDE * SYSDEFS defines a set of symbolic constants specific to the
machine and operating system on which Poplog is running. The information
is derived from the system variables sys_machine_type and sys_os_type
(see REF * SYSTEM).
LIB * SYSDEFS defines the same set of symbols as the include file, but
declares them as global, permanent constants rather than as lexical
ones. The library is maintained largely for compatibility reasons, and
use of the include file is preferred.
The symbol values are all either boolean (for flags) or numeric (for
version numbers). They are intended primarily for use with the DEF and
DEFV conditional-compilation macros (see REF * DEF, * DEFV), and so in
general only those symbols representing attributes true of the current
system will be defined. This means that on a VMS system, for example,
the symbol UNIX will not be defined: this does not preclude its use with
the DEF macro however, since this will test first for whether the symbol
is defined before testing its value.
The complete set of symbols divides into two major groups, describing
the machine type and the operating system type.
The machine-type symbols are all boolean:
Symbol Defined for
VAX VAX (including VAXstation etc.)
SUN any Sun system: will also define one of the following
SUN3 Sun3
SUN4 Sun4 (including SPARCstation etc.)
HP9000 Hewlett Packard 9000: will also define one of
HP9000_300 300 series
HP9000_700 700 series
DECSTATION DEC RISC systems
IRIS Silicon Graphics IRIS (Personal IRIS, Indigo etc.)
The operating system symbols are numeric (except where indicated) and
are set to the operating system version number:
Symbol Defined for
VMS VMS
UNIX any Unix system (NB: this is a boolean value)
SUNOS SunOS (including Solaris)
HPUX HP-UX
ULTRIX DEC Ultrix
IRIX Silicon Graphics IRIX
In addition, Unix systems are divided (more or less arbitrarily) into
"Berkeley" systems and "System V" systems, for which the following
symbols are defined:
BERKELEY BSD-derived systems (4.2 or 4.3)
SYSTEM_V System V derived systems (3.2 or 4.0)
There are also the following miscellaneous flags which indicate that the
system supports a particular feature:
Symbol Feature
BSD_SOCKETS Berkeley-style sockets
BSD_SYMLINKS Berkeley-style symbolic links
COFF Common Object File Format
Finally, Unix systems may also define symbols POSIXN (i.e. POSIX1,
POSIX2, ...) to indicate that the system supports the POSIX-N standard.
Where defined, the value of these symbols is an integer revision date,
e.g. 199303.
The information on which all these definitions are based is built into
the Poplog executable, and so strictly speaking relates to the system on
which Poplog was built rather than that on which it is running: it won't
change after an operating system upgrade, for example. LIB * POPHOST can
be used to provide more locally-specific information.
See also:
HELP * SYS_MACHINE_TYPE
HELP * SYS_PROCESSOR_TYPE
HELP * SYS_OS_TYPE
HELP * POPHOST
HELP * INCLUDE
REF * DEF
REF * DEFV
--- C.all/help/sysdefs
--- Copyright University of Sussex 1994. All rights reserved.Author: Roger Evans & Robert Duncan, Aug 1992