Marty Kraimer a3573cd384 If record should be processed because of put and record is active and TPRO is true then print active message.
Fixed some casts so that they are ANSI compatible
putStringUshort converts to float first then to ushort
putStringUlong converts to double first then to unsigned long
1995-08-17 14:34:55 +00:00
1994-07-17 07:18:59 +00:00
1994-07-15 20:28:54 +00:00
1994-07-17 07:18:59 +00:00
1994-07-17 07:18:59 +00:00
1994-07-14 22:04:20 +00:00
1994-09-09 17:33:30 +00:00
1995-02-22 18:55:24 +00:00
1994-11-14 23:32:52 +00:00
1995-02-15 17:13:23 +00:00

$Id$

----------------------------------------------------------------------------
3.12 EPICS BASE Notes and Build Instructions.
	- By Matthew Needes
----------------------------------------------------------------------------

Notes:

1. Before you can build or really use EPICS, you must set your
	path properly:

set path = ( $path EPICS/base/tools EPICS/base/bin/HOST_ARCH \
			EPICS/extensions/bin HOST_ARCH )

	e.g.:

set path = ( $path /home/epics/base/tools /home/epics/base/bin/sun4 \
			/home/epics/extensions/bin/sun4 )

2. You must use GNU make (which is now THE supported make utility) for
   the build. A script, gmake,  exists in the base/tools directory to invoke
   it with the --no-print-directory option.  This option will turn off the
   annoying messages GNU make produces upon entering a directory.

gmake

----------------------------------------------------------------------------
   Part 1 - Configuring and Building EPICS Base
----------------------------------------------------------------------------

1.1  To configure EPICS, edit the following files:

   config/CONFIG_SITE      - Build choices/HOST_ARCH/Vx location.
   config/CONFIG_SITE.*    - Location of X, etc.
   config/CONFIG           - For overriding specific variables.

1.2  To add a target architecture to EPICS:

   cd epics/config
   cp CONFIG_ARCH.mv167 CONFIG_ARCH.YOUR_ARCH
   edit CONFIG_ARCH.YOUR_ARCH	- For compiler flags / etc.

   cp CONFIG.Vx.68k CONFIG.Vx.YOUR_ARCH_CLASS
   cp CONFIG_SITE.Vx.68k CONFIG_SITE.Vx.YOUR_ARCH_CLASS
       - ONLY IF you are adding a new architecture class,
                 see note in Appendix A.

   edit CONFIG_BASE		- Add architecture to list.

1.3  To build EPICS:

   cd epics/base
   gmake             - To build and install EPICS.
   gmake clean       - To clean temporary object files.  Clean will
                       remove files from ALL O.ARCH dirs, not
                       only those specified in BUILD_ARCHS.

1.4  To create an EPICS release:

   edit base/include/version.h	- ONLY IF you need to change the EPICS
					version number.

   gmake release			- Will create Tar file

   gmake built_release         - Will create Tar file, after generating
                                dependencies, INCLUDING BINARIES.

1.5  "Partial" build commands:

   gmake clean.sun4		- Cleans sun4 binaries in O.sun4 dirs only.
   gmake install.sun4		- Builds sun4 only.
   gmake install.mv167		- Builds mv167 only (a HOST_ARCH build must
					be complete before this can be issued).

NOTES:
   1. tools/MakeRelease will create tar files in the directory ABOVE
        base.  These tar files are then meant to be untarred at that level.
        This release will include the "epics/config" directory.

   2. EPICS binaries are kept in the bin/ARCH and lib/ARCH directories. 
        EPICS shellscripts are kept in the tools directory.

   3. During a normal build (a "make" or "make install"), the "depends"
        dependency will NOT be invoked.  Only if "make depends" is run
        explicitly, or a "make built_release" is performed will dependencies
        be generated automatically.
   
   4. Temporary objects are stored in src/DIR/O.ARCH, This allows objects
	for multiple architectures to be maintained at the same time.
	While developing source for EPICS, merely cd src/DIR/O.ARCH, and
	invoke "make":

	cd epics/base/src/db/O.mv167
	make dbAccess.o

	The above example instructs make to build dbAccess.o for the
	mv167 target.

----------------------------------------------------------------------------
   Part 2  ---  Configuration Files in epics/config
----------------------------------------------------------------------------
CONFIG - This file is meant to be included in the low-level EPICS Makefiles.
It includes the other EPICS makefiles, and allows individual developers
and the EPICS system manager to override specific variables in the rest of
the configuration.
----------------------------------------------------------------------------
CONFIG_SITE - This file is meant to be changed only by the EPICS system
manager.  It specifies:

	HOST_ARCH: The system's host architecture (sun4/hp700/etc).
	BUILD_ARCHS: List of architectures to be built.
	VX_DIR: Location of vxWorks.
	STATIC_BUILD: Whether or not to build clients statically.
	etc.

----------------------------------------------------------------------------
CONFIG_ARCH.ARCH - This file defines a particular architecture.  It
contains the following variables:

	BUILD_TYPE: Unix / Vx
 	ARCH_CLASS: 68k / sun4 / hp700 / etc.
	Architecture dependent build flags.  The flag names / contents
		depend on your architecture class.
----------------------------------------------------------------------------
CONFIG_SITE.BUILD_TYPE.ARCH_CLASS - Contains definitions of where to
find things, like X11 / Motif, etc.
----------------------------------------------------------------------------
CONFIG.BUILD_TYPE.ARCH_CLASS - Contains definitions pertaining to a
particular architecture class.  This file's primary usefulness is to
define compile and link flags.
----------------------------------------------------------------------------
CONFIG_COMMON - Contains definitions describing the layout of base.
----------------------------------------------------------------------------
CONFIG_BASE
CONFIG_EXTENSIONS - Defines what subdirectories get built by default under
base and extensions.
----------------------------------------------------------------------------
RULES.Vx - Rules for building with VxWorks makefiles.
----------------------------------------------------------------------------
RULES.Unix - Rules for building with Unix makefiles.
----------------------------------------------------------------------------
RULES_ARCHS
RULES_DIRS - Allows top-level type command syntax in low-level directories.
----------------------------------------------------------------------------

    Table of files to change when building and adding architectures.
	etc.

Filename                  SYS_MGR  ADD_VX_ARCH  ADD_UNIX_ARCH  DEVELOPER

CONFIG                       m         -             -             m
CONFIG_SITE                  m         m             m             -
CONFIG_ARCH.ARCH             -         c             c             -
CONFIG_SITE.Unix.ARCH_CLASS  m         -             c*            -
CONFIG_SITE.Vx.ARCH_CLASS    m         c*            -             -
CONFIG.Unix.ARCH_CLASS       -         -             c*            -
CONFIG.Vx.ARCH_CLASS         -         c*            -             -
RULES.Vx                     -         -             -             -
RULES.Unix                   -         -             -             -
CONFIG_BASE                  -         -             -             -
CONFIG_EXTENSIONS            -         -             -             -
CONFIG_COMMON                -         -             -             -
RULES_ARCHS                  -         -             -             -
RULES_DIRS                   -         -             -             -

     m -  Modify an existing file.
     c -  Create a new file.

     * -  Create an ARCH_CLASS file only if you are adding a
             fundamentally new architecture, such as hp700 or
             a SPARC VME board.  If your board is 68k based,
             you will not need to create CONFIG.Vx.68k,
             since it already exists !

----------------------------------------------------------------------------
   Part 3  ---  Configuration File Inclusion Tree Examples
----------------------------------------------------------------------------
----------------------------  hkv2f example --------------------------------
            (files are numbered in the order of their inclusion)

 src/db/Makefile.Vx     (An example EPICS makefile)
 ^  ^   ^
 |  |   +--- 3.  RULES.Vx
 |  |              Default rules.
 |  +------- 2.  CONFIG
 |              ^ ^ ^ ^ ^
 |              | | | | |
 |              | | | | +- 1. CONFIG_SITE
 |              | | | |             HOST_ARCH = sun4
 |              | | | |             BUILD_ARCHS = $(HOST_ARCH) mv167 hkv2f
 |              | | | |             VX_DIR = /vxworks
 |              | | | |             More.
 |              | | | +--- 2. CONFIG_COMMON
 |              | | |               General info about base.
 |              | | +----- 3. CONFIG_ARCH.hkv2f
 |              | |                 BUILD_TYPE = Vx
 |              | |                 ARCH_CLASS = 68k 
 |              | |                 Arch Specific Compiler Flag Setup
 |              | +------- 4. CONFIG_SITE.Vx.68k
 |              |                   Directory locations
 |              +--------- 5. CONFIG.Vx.68k
 |                                  Compiler/utility setup for ARCH_CLASS
 +---------- 1.  Target.include
                   T_A definition (target architecture)

----------------------------  sun4  example --------------------------------
            (files are numbered in the order of their inclusion)

 src/db/Makefile.Unix   (An example EPICS makefile)
 ^  ^   ^
 |  |   +--- 3.  RULES.Unix
 |  |              Default rules.
 |  +------- 2.  CONFIG
 |              ^ ^ ^ ^ ^
 |              | | | | |
 |              | | | | +- 1. CONFIG_SITE
 |              | | | |             HOST_ARCH = sun4
 |              | | | |             BUILD_ARCHS = $(HOST_ARCH) mv167 hkv2f
 |              | | | |             VX_DIR = /vxworks
 |              | | | |             More.
 |              | | | +--- 2. CONFIG_COMMON
 |              | | |               General info about base.
 |              | | +----- 3. CONFIG_ARCH.sun4
 |              | |                 BUILD_TYPE = Unix
 |              | |                 ARCH_CLASS = sun4 
 |              | |                 Arch Specific Compiler Flag Setup
 |              | +------- 4. CONFIG_SITE.Unix.sun4
 |              |                   Directory locations
 |              +--------- 5. CONFIG.Unix.sun4
 |                                  Compiler/utility setup for ARCH_CLASS
 +---------- 1.  Target.include
                   T_A definition (target architecture)

----------------------------------------------------------------------------
   Part 4  ---  EPICS dependencies
----------------------------------------------------------------------------

 Dependencies supported by lower level Makefiles:

    depends		- Generate include dependencies
    build		- Builds objects, using libraries from "build_libs"
    install		- Installs executables in bin/ARCH
    clean		- Cleans objects

Languages
C++ 81.9%
C 8.6%
HTML 7.9%
Makefile 1.1%
DIGITAL Command Language 0.5%