sde(5) DG/UX 5.4.2 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:
m88kdguxelf Used to create ELF objects and executables that make
use of full DG/UX features.
m88kocs Used for creating COFF objects and executables that can
be linked and run on other vendors' 88open OCS- (and
BCS-) conforming platforms.
m88kbcs Differs from the m88kocs because it allows the use of
certain features (such as Berkeley signals) and
optimizations (such as the macro implementation of
getc) that are prohibited from the OCS environment.
(This is unchanged from DG/UX 4.3x.)
m88kdguxcoff Used to create COFF objects and executables that make
use of DG/UX 4.3x level features. This option is
interesting to software developers who have COFF-
dependent tools, such as third-party debuggers, that
they want to use on the current DG/UX release. (This
is the same as m88kdgux on DG/UX 4.3x.)
m88kdgux The default for all past and future revisions. It
refers to the largest feature set supported by the
DG/UX system. In the current DG/UX release this is
equal to m88kdguxelf.
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/3 ANSI C
m88kdguxelf No No Yes No Yes Yes Yes
m88kocs Yes Yes Yes Yes No No Yes
m88kbcs Yes No Yes Yes No No Yes
m88kdguxcoff No No Yes Yes No No 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 a
convenient way to set that variable. (Note that the variable name
has changed from SDETARGET in the DG/UX 4.3x release. The name was
Licensed material--property of copyright holder(s) 1
sde(5) DG/UX 5.4.2 sde(5)
changed because additional variables that control the "sde target" in
ways other than the binary interface are likely to be introduced in
the future. The sde-target command will not change, but it might set
multiple variables in the future.)
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 (m88kdgux) 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),
gcc(1), and ghcc(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.)
sde target Target Macro Name
m88kdguxelf DGUXTARGET
m88kocs M88KOCSTARGET
m88kbcs M88KBCSTARGET
m88kdguxcoff DGUXCOFFTARGET
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) 2