fcm_make

An application for running the fcm make command.

The fcm_make application expects a file file/fcm-make.cfg in its application configuration. It runs fcm make using this configuration file.

You can configure these applications with environment variables or settings in rose-app.conf. (Settings in rose-app.conf override their equivalent environment variables.)

By default the bin/ directories of builds will be prepended to the PATH environment variable by rose task-env and/or rose task-run commands run by subsequent tasks in the suite.

Example

meta=fcm_make
mode=fcm_make
opt.jobs=8

Invocation

  • If a task’s name contains the string fcm_make then rose task-run will run this built-in application automatically.

  • If a task’s name contains the string fcm_make2* and it does not have its own application configuration then rose task-run will attempt to associate it with the corresponding fcm_make* application configuration.

Rose Configuration API

Rose App fcm_make
Config args= ARG ...
Env Var:

ROSE_TASK_OPTIONS

For passing extra options and arguments to the fcm make command.

Config dest-orig= PATH

Specify the path to the destination of the original make. This is normally specified as a relative path under $ROSE_SUITE_DIR/. The default is share/$ROSE_TASK_NAME. If rose task-run is invoked in --new mode, the application will remove this directory before running fcm make --new.

Config dest-cont= PATH

Specify the path to the destination of the continuation make. This is normally specified as a relative path under $ROSE_SUITE_DIR/. The default is to use the same location as fcm_make|dest-orig. If rose task-run is invoked in --new mode, the application will remove this directory before running fcm make --new. (If this location is in the same physical location of the destination of the original make, you should only invoke rose task-run --new on the original make. Otherwise, contents generated by the original make will be wiped clean before the continuation make begins.)

Config fast-dest-root-orig= PATH

Specify the path to an existing location that can be used as a fast working directory for the original make. If this is specified, the fcm make command will be invoked in a temporary directory under this location before being copied back to the actual destination.

Config fast-dest-root-cont= PATH

Specify the path to an existing location that can be used as a fast working directory for the continuation make. If this is specified, the fcm make command will be invoked in a temporary directory under this location before being copied back to the actual destination.

Config make-name-orig= NAME

Specify the context name of the original make. The default is a null string. You can specify an alternate context name if this is undesirable. The fcm make command will be invoked with the --name=NAME option of fcm make.

Config make-name-cont= NAME

Specify the context name of the continuation make. If the default fcm_makefcm_make2 mapping is used, the context name of the continuation make will be set to 2. You can specify an alternate context name if this is undesirable. The continuation command will be invoked with the --name=NAME option of fcm make.

Config mirror-step= STEP-NAME

Specify the name of the mirror step, if not mirror. The application will normally look for a matching task in the suite (e.g. fcm_makefcm_make2) which will continue the fcm make command at a remote HOST. If such a task is found, it will add the configuration mirror.target=HOST:cylc-run/$ROSE_SUITE_NAME/share/$ROSE_TASK_NAME as an argument to the fcm make command to substitute the mirror target. To switch off this feature, set STEP-NAME to a null string, i.e. mirror-step=.

Config opt.jobs= N
Env Var:

ROSE_TASK_N_JOBS

Default:

4

This can be used to control the number of processes fcm make would use in parallel.

Config orig-cont-map= ORIG-NAME:CONT-NAME

This setting allows you to override the default fcm_makefcm_make2 mapping between the names of the original and the continuation tasks in the suite.

Config use-pwd= true

By default, the application changes the working directory to $ROSE_SUITE_DIR/share/$ROSE_TASK_NAME. This option will stop this, and the working directory is the normal working directory of the task.