You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 11 Next »

The purpose of this page is to create a quick reference for all the macro (and variable) definitions we find in the EPICS build environment.  Often times, the names of the macros do not give much of a clue of their purpose, and sometimes the names are misleading.  Makefiles typically have the name "Makefile" but in EPICS they can have just about any name.  For example, RELEASE or CONFIG or RULES.  I still call them Makefiles as their syntax is defined by the Makefile parser program "make".

Terms

An EPICS application is an application that is linked with EPICS libraries.

An EPICS module is a library (.a or .so) that are specifically designed for the EPICS environment.  Typically modules are statically linked to the EPICS application.

A package is a standard OS (e.g. Linux) library that is linked with an EPICS application.  An example is boost or an XML parsing library.

Application

src Directory

If you're building an app (not a module, not a library), your app will have a Makefile in its src directory.

PROD_IOC defines the resulting application name (the executable file name).

DBD defines the database definition made for and baked into your app.

USR_INCLUDES defines the include directories to search for the header files that your app needs, like include directories for libraries you want to bake in.  For some reason, -I (dash eye) is not automatically prepended, so you need to preface the directory with -I, e.g. -I$(MY_LIB_INCLUDE).  Also, since you are adding include directories, you need to use +=.

USR_LIBS defines the libraries that are baked into your application.  This is additive, so use +=.

<lib>_DIR defines the directory in which the library (.a or .so) will be found.

$(PROD_IOC)_DBD defines the database definitions that get baked into your app.  This is additive, so use +=.

$(PROD_IOC)_SRCS I'm not sure what this is.

$(PROD_IOC)_SRCS_DEFAULT defines the source files for your application.  This is additive, so use +=.

$(PROD_IOC)_LIBS defines the EPICS modules (not libraries) that are baked into your application.

Db Directory

If you're building an app (not a module, not a library), your app will have a Makefile in its Db directory.

DB_INSTALLS defines the databases from EPICS modules that are baked into your application.  This is additive, so use +=.

DB defines the databases from your application that are baked into your application.   This is additive, so use +=.

  • No labels