Zefina  Zefina: Build: Compile Options

Compile Options are flags that can be passed to make and the builder to enable additional functionality. Due to the number of Compile Options, it would be a good idea to place your preferred command in a script.

An example using make:

#!/bin/bash

make debug \
    A_DEBUG_FLAG=1 \
    SOME_DEBUG_FLAG=1 \
    ANOTHER_DEBUG_FLAG=1 \

An example with ./bin/builder:

#!/bin/bash

./bin/builder debug \
    --jobs $(nproc)
    --watch-clean-recursive 'zefina,Makefile*'
    --watch-recursive 'zefina,*.c,*.h'
    --target-build zefina
        A_DEBUG_FLAG=1 \
        SOME_DEBUG_FLAG=1 \
        ANOTHER_DEBUG_FLAG=1 \
    --target-clean zefina-clean

The Compile Options MUST be upper-case.

The Compile Option must be set to a value greater than 0 for the option to be enabled. A value of 0 will disable the option.

All Compile Options are disabled by default.


Feature: Administrator

Option Description
ADMIN=1 Enables the Administrator process.
ADMIN_EXIT=1 Allows the Administrator to stop the Zefina service.
ADMIN_INSTALLER=1 Allows the Administrator to (un)install Zefina modules.
ADMIN_LOADER=1 Allows the Administrator to (un)load Zefina modules.


ADMIN=1

Requires:

Enables the Administrator process. This process will listen for and react to all Administrator Commands. These commands can be used to get information about zefina's state/status, as well as changing Zefina's runtime.

ADMIN_EXIT=1

Requires: ADMIN=1

Command Meaning
0x0000 exit

The exit command for the Administrator is the same as sending a SIGHUP signal (Ctl-C) to zefina.

This is not enabled by default as its use can be abused and can not be "undone".

ADMIN_INSTALLER=1

Requires: ADMIN=1

Command Meaning
0x0100 install
0x0101 delete
0x0102 rename

This feature allows the Administrator to install modules into the appropriate directory. Only the installation of modules is handled by the installer, this flag does not load the module. The installer can also remove "old" modules.

ADMIN_LOADER=1

Requires: ADMIN=1

Command Meaning
0x0200 load
0x0201 unload

This feature allows the Administrator to load and unload modules during runtime. Being able to change which modules are in use makes it possible for activities such as remote updates.


Object: Admin

Option Description
ZEFINA_ASSERT_PARAMETER_ADMIN=1 The admin object will check passed in parameters.


ZEFINA_ASSERT_PARAMETER_ADMIN=1

Requires:

The admin object will check all the parameters that it receives. If any parameters is invalid, Zefina will abort execution.


Object: Client

Option Description
ZEFINA_ASSERT_PARAMETER_CLIENT=1 The client object will check passed in parameters.


ZEFINA_ASSERT_PARAMETER_CLIENT=1

Requires:

The client object will check all the parameters that it receives. If any parameters is invalid, Zefina will abort execution.


Feature: Configuration Updates

Option Description
CONFIG_UPDATE=1 Enables the Zefina to change its configuration.
CONFIG_UPDATE_DELAY=60 Allows Zefina to write a new configuration file.


CONFIG_UPDATE=1

Requires:

When zefina's configuration changes, this feature will write a new configuration file so that the new configuration will be used if zefian is restarted.

CONFIG_UPDATE_DELAY=60

Requires: CONFIG_UPDATE=1

By default, zefina will wait one minute before writing a new configuration file. The value of this flag is the number of seconds to wait before writing. If the value is 0, then the new configuration file will be written immediately.


Object: Daemon

Option Description
ZEFINA_ASSERT_PARAMETER_DAEMON=1 The daemon object will check passed in parameters.


ZEFINA_ASSERT_PARAMETER_DAEMON=1

Requires:

The daemon object will check all the parameters that it receives. If any parameters is invalid, Zefina will abort execution.


Object: Error

Option Description
ZEFINA_ASSERT_PARAMETER_ZEFINAERROR=1 The error object will check passed in parameters.


ZEFINA_ASSERT_PARAMETER_ERROR=1

Requires:

The error object will check all the parameters that it receives.


Object: introspection_t

Option Description
ZEFINA_ASSERT_PARAMETER_INTROSPECTION=1 The introspection object will check passed in parameters.


ZEFINA_ASSERT_PARAMETER_INTROSPECTION=1

Requires:

The introspcetion object will check all the parameters that it receives.


Object: Reader

Option Description
ZEFINA_ASSERT_PARAMETER_ROUTER=1 The reader object will check passed in parameters.


ZEFINA_ASSERT_PARAMETER_ROUTER=1

Requires:

The reader object will check all the parameters that it receives. If any parameters is invalid, Zefina will abort execution.


Object: Router

Option Description
ZEFINA_ASSERT_PARAMETER_ROUTER=1 The router object will check passed in parameters.


ZEFINA_ASSERT_PARAMETER_ROUTER=1

Requires:

The router object will check all the parameters that it receives. If any parameters is invalid, Zefina will abort execution.


Object: Threadpool

Option Description
ZEFINA_ASSERT_PARAMETER_THREADPOOL=1 The threadpool object will check passed in parameters.
ZEFINA_THREADPOOL_THREAD_COUNT=4 The number of threads in the threadpool.


ZEFINA_ASSERT_PARAMETER_THREADPOOL=1

Requires:

The threadpool object will check all the parameters that it receives. If any parameters is invalid, Zefina will abort execution.


Object: Validator

Option Description
ZEFINA_ASSERT_PARAMETER_VALIDATOR=1 The validator object will check passed in parameters.


ZEFINA_ASSERT_PARAMETER_VALIDATOR=1

Requires:

The validator object will check all the parameters that it receives. If any parameters is invalid, Zefina will abort execution.


Object: Writer

Option Description
ZEFINA_ASSERT_PARAMETER_WRITER=1 The writer object will check passed in parameters.


ZEFINA_ASSERT_PARAMETER_WRITER=1

Requires:

The writer object will check all the parameters that it receives. If any parameters is invalid, Zefina will abort execution.


Object: zefina_t

Option Description
ZEFINA_ASSERT_PARAMETER_ZEFINA=1 The zefina object will check passed in parameters.


ZEFINA_ASSERT_PARAMETER_ZEFINA=1

Requires:

The zefina object will check all the parameters that it receives. If any parameters is invalid, Zefina will abort execution.


Object: zefina_config_t

Option Description
ZEFINA_ASSERT_PARAMETER_ZEFINACONFIG=1 The zefina_config_ object will check passed in parameters.


ZEFINA_ASSERT_PARAMETER_ZEFINACONFIG=1

Requires:

The zefina_config_t object will check all the parameters that it receives. If any parameters is invalid, Zefina will abort execution.