sde(5) DG/UX R4.11 sde(5)
NAME
sde - software development environment
DESCRIPTION
A software development environment (SDE) is a set of tools, libraries
and system definitions that are specifically designed to work
together to build an application that has certain qualities.
The environments provided in the current release are:
ix86dg - Creates objects and executables that use the full set of
features available on the DG/UX system for Intel.
m88kdg - Creates ELF objects and executables that use the full set
of features available on the DG/UX system for 88K.
dg - A generic name for the environment that provides the full set of
features available on the DG/UX system. On Intel, this is equivalent
to ix86dg. On 88k, this is equivalent to m88kdg.
i86dgkernel - Used to create modules that are linked into the kernel
for a DG/UX system for Intel.
m88kdgkernel - Used to create modules that are linked into the
kernel for a DG/UX system for 88K.
dgkernel - A generic name for kernel component development. On
Intel, this is equivalent to ix86dgkernel. On 88k, this is
equivalent to m88kdgkernel.
m88kocs - Creates COFF objects and executables that can be linked
and run on other vendors' platforms that conform to 88open OCS (and
BCS).
m88kbcs - Creates BCS-compliant COFF objects and executables.
Similar to m88k_ocs, but allows the use of additional features (such
as Berkeley's signals) and optimizations (such as the macro
implementation of getc) that are prohibited in the OCS environment.
The following table shows the domain of certain standards across the
different environments. "Yes" means the environment conforms to that
standard.
BCS OCS POSIX SVID/2 SVID/3 XPG/4 ANSI C
ix86dg n/a n/a Yes No Yes Yes Yes
m88kdg No No Yes No Yes Yes Yes
m88kocs Yes Yes Yes Yes No No Yes
m88kbcs Yes No Yes Yes No No Yes
ix86dgkernel n/a n/a n/a n/a n/a n/a Yes
m88kdgkernel n/a n/a n/a n/a n/a n/a Yes
Support for multiple development environments is handled by the sde-
target(1) mechanism. It allows you to specify the development
environment that is appropriate for your needs, while other users (or
you in another context) may be using a different development
environment at the same time. You select your environment by setting
the environment variable TARGETBINARYINTERFACE to one of the
environment names listed above. The command sde-target(1) provides
the recommended way to set that variable.
The environment variable set by sde-target(1) is used in two
contexts. When you invoke a software development tool such as
/bin/cc or /bin/ld, you are actually calling a small program that
calls sde-chooser(1), which checks the environment variable and
invokes the appropriate target-specific tool. Secondly, tools that
read libraries, such as ld(1), use the elink(5) mechanism, which uses
the environment variable to find the appropriate system libraries.
The commands, libraries, and other files that support a specific
environment are placed in the directory /usr/sde/<s>, where <s> is
the value of the environment variable TARGETBINARYINTERFACE. If
TARGETBINARYINTERFACE is not set, the default is used.
Different environments need different header information at compile
time. The DG/UX system has one set of include files that are
customized by the use of conditional preprocessing under the control
of target-specific macro names. The C compiler commands cc(1) and
gcc(1) predefine the following macro names according to the value of
TARGETBINARYINTERFACE. (If you use another C compiler, you will
need to do this manually with a -D option.)
Target Environment Target Macro Name Type of Executable
ix86dg _IX86_DG ELF
m88kdg _M88K_DG ELF
m88kocs _M88K_OCS COFF
m88kbcs _M88K_BCS COFF
ix86dgkernel _IX86_ALL n/a
m88kdgkernel _M88K_ALL n/a
The above mechanism using sde-chooser and elinks was chosen over a more
"traditional" method of using the PATH environment variable to find the
right tools because many sources that people maintain, such as make files
and shell scripts, contain fully specified path names. Such references
would ignore the path specification and perhaps invoke the wrong tool or
read the wrong library.
SEE ALSO
sde-target(1), sde-chooser(1), sdetab(4), elink(5).
Licensed material--property of copyright holder(s)