home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / unix / volume27 / distributed-c-2.1 / part05 / DEFINES
Text File  |  1993-12-22  |  6KB  |  133 lines

  1. You must configure the type of the runtime library and programs which will
  2. be generated corresponding to your particular purposes by various preprocessor 
  3. definitions.
  4. There are three different ways for placing the definitions: In the actual used
  5. file 'macros.xxx' (see macros.README for a general description how to do this),
  6. which will be included by each Makefile, in the Makefile of each subdirectory
  7. or in the corresponding source files.
  8.  
  9. 1. General definitions:
  10. =======================
  11.  
  12. First you have to define the operating system you use. The following systems 
  13. are availible:
  14.     iPSC          - Intel Hypercube
  15.     AIX           - AIX on IBM Workstations
  16.     CONVEX        - ConvexOs on Convex Supercomputers
  17.     HPUX          - HpUx on Hewlett Packard Machines
  18.     LINUX         - Linux on 386/486 ATs
  19.     SCO_XENIX     - SCO Xenix Version 2.3 on 386 ATs
  20.     SCO_UNIX      - SCO Unix Version 3.2 on 386 ATs
  21.     SPARC         - SunOs 4.1 or greater on Sun Sparc Stations
  22.     ULTRIX        - Ultrix on Vaxes
  23.     UNICOS        - Unicos on Cray Supercomputers
  24.  
  25. Second you must define the system type to one of the following:
  26.     BSD           - BSD Unix Version 4.3 or greater
  27.     SYSTEM_V      - Unix System V
  28.  
  29. Third you have to define the type of the inter process communication routines 
  30. you want to use. Availible are
  31.     CUBE          - intel hypercube communication primitives
  32.     SOCKET        - stream sockets
  33.     MSGSEM        - message queues and semaphores
  34.  
  35. Fourthly you must define the type of network you want to use for distributing 
  36. the processes:
  37.     SINGLE        - one machine only, no distribution of processes
  38.     HOMOGENEOUS   - distribution of processes in a homogenous network
  39.     HETEROGENEOUS - distribution of processes in a heterogenous network
  40.  
  41. Choose 'SINGLE' to use the compiler on a single computer, particular on a 
  42. multiprocessor workstation, where all processes are created "local", i.e. no
  43. distribution of processes will be performed. Choose 'HOMOGENEOUS' to use the 
  44. compiler on a network of binary compatible machines, i.e. the processes will
  45. be distributed in a homogenous network. Choose 'HETEROGENEOUS' to use the
  46. compiler on a network of various different Unix machines, i.e. the processes 
  47. will be distributed in a heterogenous network. 
  48. Note: o HOMOGENEOUS provides faster, HETEROGENEOUS provides more powerful inter 
  49.         process communications!
  50.       o If the operating system equals iPSC nothing must be defined here!
  51.       o Use SOCKET and HOMOGENEOUS on LINUX systems!
  52.  
  53. 2. Definitons for building the runtime library:
  54. ===============================================
  55.  
  56. Define one or more of the following during compilation to be able to display 
  57. special debug information at runtime:
  58.  
  59.     DEBUG_IPC         - message passing
  60.     DEBUG_CONVERT     - data conversion
  61.     DEBUG_CONTROL     - process control
  62.     DEBUG_CREATION    - process creation
  63.     DEBUG_KILL        - process destruction
  64.     DEBUG_TRANSACTION - process transactions
  65.  
  66. At runtime the displaying of additional information can be switched on or off 
  67. by initializing the corresponding global variables:
  68.  
  69. Example:
  70.     To display runtime informations about inter process communication you 
  71.     have to compile the appropriate files of the runtime library with the 
  72.     option "-DDEBUG_IPC".
  73.     To display information during execution of a process you must patch the 
  74.     generated source file of this process and add the code "_debug_ipc = 1"
  75.     to switch the output of the additional informations on and "_debug_ipc = 0"
  76.     to switch it off.
  77.     To enable and disable the output you can use the macro "PRINT_DEBUG_IPC_ON"
  78.     and "PRINT_DEBUG_IPC_OFF", too. (These macros are defined in dcc.h)
  79.  
  80. The corresponding global variables are:
  81.     _debug_ipc
  82.     _debug_convert
  83.     _debug_control
  84.     _debug_creation
  85.     _debug_kill
  86.     _debug_transaction
  87.  
  88. On some systems (e.g. CONVEX) it will be necessary to flush the additional 
  89. displayed messages. This can easely be done by initializing the global variable
  90. _debugflush to 1.
  91.  
  92.  
  93. 3. Definitions for building the compiler:
  94. =========================================
  95.  
  96. To be able to check the various actions performed by the compiler you can
  97. configure the generated compiler to write many additional messages to each 
  98. particular item in a special file 'dcc.debug'.
  99. You can configure the items for which additional messages will be written to
  100. the file.
  101.  
  102. Use a combination of the following to display additional informations about:
  103.     ATTRDEBUG    - attributes 
  104.     CODEDEBUG    - code generation
  105.     DECLDEBUG    - declaration handling (structs, typedefs, enums)
  106.     DEBUG        - some general actions
  107.     LEXDEBUG     - scanning
  108.     STRUCTDEBUG  - structure administration
  109.     SYMBDEBUG    - symbol table managing
  110.     XDRDEBUG     - generation of xdr routines
  111.     YYDEBUG      - parsing 
  112.  
  113. 4. Definitions for building the administration process:
  114. =======================================================
  115.  
  116. If you want that a executing administration process writes informations about
  117. its internal states or actions to a file called 'dcadmin.debug' you have to
  118. define "ADMINDEBUG" during compilation of the administration process source 
  119. code.
  120.  
  121. Writing such messages to a file will slow done the execution of the 
  122. administration process very much. Enable this for testing purposes only! 
  123.  
  124. Note: Define USE_MAPFILE during the generation of the administration process.
  125.       This is the well tested mode for mapping processes to nodes performed
  126.       by the administration process.
  127.  
  128. 5. Definitions for building the installer program:
  129. ==================================================
  130.  
  131. Defining "DEBUG" during generation of the installer program will cause the 
  132. output of additional informations about the various performed actions.
  133.