home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Usenet 1994 October
/
usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso
/
unix
/
volume27
/
distributed-c-2.1
/
part05
/
DEFINES
Wrap
Text File
|
1993-12-22
|
6KB
|
133 lines
You must configure the type of the runtime library and programs which will
be generated corresponding to your particular purposes by various preprocessor
definitions.
There are three different ways for placing the definitions: In the actual used
file 'macros.xxx' (see macros.README for a general description how to do this),
which will be included by each Makefile, in the Makefile of each subdirectory
or in the corresponding source files.
1. General definitions:
=======================
First you have to define the operating system you use. The following systems
are availible:
iPSC - Intel Hypercube
AIX - AIX on IBM Workstations
CONVEX - ConvexOs on Convex Supercomputers
HPUX - HpUx on Hewlett Packard Machines
LINUX - Linux on 386/486 ATs
SCO_XENIX - SCO Xenix Version 2.3 on 386 ATs
SCO_UNIX - SCO Unix Version 3.2 on 386 ATs
SPARC - SunOs 4.1 or greater on Sun Sparc Stations
ULTRIX - Ultrix on Vaxes
UNICOS - Unicos on Cray Supercomputers
Second you must define the system type to one of the following:
BSD - BSD Unix Version 4.3 or greater
SYSTEM_V - Unix System V
Third you have to define the type of the inter process communication routines
you want to use. Availible are
CUBE - intel hypercube communication primitives
SOCKET - stream sockets
MSGSEM - message queues and semaphores
Fourthly you must define the type of network you want to use for distributing
the processes:
SINGLE - one machine only, no distribution of processes
HOMOGENEOUS - distribution of processes in a homogenous network
HETEROGENEOUS - distribution of processes in a heterogenous network
Choose 'SINGLE' to use the compiler on a single computer, particular on a
multiprocessor workstation, where all processes are created "local", i.e. no
distribution of processes will be performed. Choose 'HOMOGENEOUS' to use the
compiler on a network of binary compatible machines, i.e. the processes will
be distributed in a homogenous network. Choose 'HETEROGENEOUS' to use the
compiler on a network of various different Unix machines, i.e. the processes
will be distributed in a heterogenous network.
Note: o HOMOGENEOUS provides faster, HETEROGENEOUS provides more powerful inter
process communications!
o If the operating system equals iPSC nothing must be defined here!
o Use SOCKET and HOMOGENEOUS on LINUX systems!
2. Definitons for building the runtime library:
===============================================
Define one or more of the following during compilation to be able to display
special debug information at runtime:
DEBUG_IPC - message passing
DEBUG_CONVERT - data conversion
DEBUG_CONTROL - process control
DEBUG_CREATION - process creation
DEBUG_KILL - process destruction
DEBUG_TRANSACTION - process transactions
At runtime the displaying of additional information can be switched on or off
by initializing the corresponding global variables:
Example:
To display runtime informations about inter process communication you
have to compile the appropriate files of the runtime library with the
option "-DDEBUG_IPC".
To display information during execution of a process you must patch the
generated source file of this process and add the code "_debug_ipc = 1"
to switch the output of the additional informations on and "_debug_ipc = 0"
to switch it off.
To enable and disable the output you can use the macro "PRINT_DEBUG_IPC_ON"
and "PRINT_DEBUG_IPC_OFF", too. (These macros are defined in dcc.h)
The corresponding global variables are:
_debug_ipc
_debug_convert
_debug_control
_debug_creation
_debug_kill
_debug_transaction
On some systems (e.g. CONVEX) it will be necessary to flush the additional
displayed messages. This can easely be done by initializing the global variable
_debugflush to 1.
3. Definitions for building the compiler:
=========================================
To be able to check the various actions performed by the compiler you can
configure the generated compiler to write many additional messages to each
particular item in a special file 'dcc.debug'.
You can configure the items for which additional messages will be written to
the file.
Use a combination of the following to display additional informations about:
ATTRDEBUG - attributes
CODEDEBUG - code generation
DECLDEBUG - declaration handling (structs, typedefs, enums)
DEBUG - some general actions
LEXDEBUG - scanning
STRUCTDEBUG - structure administration
SYMBDEBUG - symbol table managing
XDRDEBUG - generation of xdr routines
YYDEBUG - parsing
4. Definitions for building the administration process:
=======================================================
If you want that a executing administration process writes informations about
its internal states or actions to a file called 'dcadmin.debug' you have to
define "ADMINDEBUG" during compilation of the administration process source
code.
Writing such messages to a file will slow done the execution of the
administration process very much. Enable this for testing purposes only!
Note: Define USE_MAPFILE during the generation of the administration process.
This is the well tested mode for mapping processes to nodes performed
by the administration process.
5. Definitions for building the installer program:
==================================================
Defining "DEBUG" during generation of the installer program will cause the
output of additional informations about the various performed actions.