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.
