How to build and install IDCP

Prepare your $HOME/.hgrc file

If you already have this file, ensure that it contains the following line which enables the “mq” extension in mercurial:

hgext.mq=

If you don’t have this file, you must create it, below is an example. Create it with your favorite text editor and don’t forget to replace NAME and EMAIL with your real name and email addess:

# This is is a Mercurial configuration file.
[ui]
username = NAME <EMAIL>
[trusted]
groups= epima
[diff]
git=0
[mq]
git=yes
[extensions]
fetch =
hgk=
extdiff=
transplant=
hgext.graphlog=
hgext.rebase=
hgext.mq=
hgext.convert=
hgext.record=

Create a directory where to build the application

Here is an example example:

mkdir myidcp && cd myidcp

Configure IDCP

Go to the project directory and run idcp_configure:

cd 2021-12-14T104821/idcp
./idcp-configure

Sumo

Ensure that sumo is installed.

Enter:

sumo build use

If this fails, enter:

sumo build new --makeflags "-sj" --progress
sumo build use

If this also fails, you have to configure and use sumo with a local sandbox. Run the following commands:

rm sumo.config
sumo config local SUMO
sumo build new --makeflags "-sj" --progress
sumo build use

Now all support modules should have been built, and idcp is ready to be compiled.

Build IDCP

Build the project with this command:

make -sj

Option “-j” means that the build is done with as many processes the host system can provide, so on a modern system it is much faster. In rare cases, this command fails, which is a bug in idcp makefiles. If this happens, please mail me <Goetz.Pfeiffer@helmholtz-berlin.de> the output of the error message.

In this case you can still build idcp with::

make clean -sj && make -s

Distribute a version

You distribute a version with the idcp-dist script, which is part of idcp. You get online help for this script with the command ./idcp-dist -h. Distribute your IDCP program with this command:

./idcp-dist dist

Activate a version

Activation is also done with idcp-dist with this command:

./idcp-dist activate INSERTIONDEVICE

where INSERTIONDEVICE is any common name for a HZB insertion device. The iddb command shows what names are known:

iddb -a idcp

From the table that is shown, the columns “name”, “devicename” and “prefix” can be used to specify an insertion device for idcp-dist.