Engine maker: defs and paths
Author(s): Jose F. Morales,
The Ciao Development Team.
This module defines engine specifications for engine 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_car.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
Usage and interface
- Library usage:
:- use_module(ciaobld(eng_defs)). - Exports:
- Predicates:
eng_cfg/2, eng_dbg/2, eng_mainspec/2, eng_opts/2, eng_bundle/2, eng_mainmod/2, eng_mainbase/2, eng_srcdirs/2, emugen_code_dir/3, eng_h_alias/2, eng_path/3, inst_eng_path/3, active_bld_eng_path/3, active_inst_eng_path/3, active_eng_name/3, bld_cmake_path/3.
Documentation on exports
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.
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.
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:
- Application modules:
config_common, install_aux.
- System library modules:
lists, aggregates, terms, pathnames, bundle_paths, bundle_flags.
- Packages:
prelude, initial, condcomp, assertions, assertions/assertions_basic, fsyntax.