Engine maker: defs and paths

Author(s): Jose F. Morales, The Ciao Development Team.

This module defines engine specifications for builds. Engines are defined using the emugen package. Engine build specifications contains parameters that affects the compiled engine:

Engine options:

  • cross(OS,Arch): force cross compilation to selected platform
  • boot: the boot engine
  • addpath(Spec): additional (symbolic) source path for locating C and header files (handy for custom engines)
  • h_alias(Alias): subdirectory for headers (i.e., name used to include header for this engine #include <ciao/...>)

Engine build directory layout

Sections at the engine build directory layout:

  hdir: C headers
  cdir: C source files 
  cfgdir: sysdep config files
  objdir: sysdep compiled object files
  engdir: root directory for engine build
  exec: engine as an executable
  lib_so: engine as a C shared library
  lib_a: engine as a C static library
(for engine activation)
  objdir_anyarch: compiled object files root
  exec_anyarch: engine as an executable -- link to active architecture

NOTE: This hierarchy is assumed by other tools and code like build_engine.sh. Please be careful if introducing any change.

Example: directory hierarchy at build/eng/ciaoengine/:

cfg
cfg/DARWINx86_64
cfg/DARWINx86_64/config_mk
cfg/DARWINx86_64/config_sh
cfg/DARWINx86_64/meta_sh
include
include/ciao
include/ciao/*.h
include/*.h
objs
objs/ciaoengine
objs/ciaoengine.DARWINx86_64
objs/DARWINx86_64
objs/DARWINx86_64/*.o
objs/DARWINx86_64/*.P
src
src/*.c

Documentation on exports

PREDICATEeng_cfg/2
No further documentation available for this predicate.

No further documentation available for this predicate.

PREDICATEeng_opts/2
No further documentation available for this predicate.

PREDICATEeng_bundle/2
No further documentation available for this predicate.

PREDICATEeng_mainmod/2
No further documentation available for this predicate.

No further documentation available for this predicate.

PREDICATEeng_srcdirs/2
No further documentation available for this predicate.

No further documentation available for this predicate.

PREDICATEeng_h_alias/2
No further documentation available for this predicate.

PREDICATEeng_path/3
No further documentation available for this predicate.

No further documentation available for this predicate.

No further documentation available for this predicate.

No further documentation available for this predicate.

No further documentation available for this predicate.

No further documentation available for this predicate.

Documentation on imports

This module has the following direct dependencies: