ChorusOS 4.0 Production Guide

Using Merge to Update your Build Directory

If links produced by mkmerge are removed, make merge, run in the merged tree, will recreate them:

host% cd build-MYCOMP/src
host% ls
Makefile  bye	    hello     hello.c	hello.o
all.dp	  bye.df    hello.bf  hello.df
host% rm -rf bye
host% make merge
/<work_dir>/build-MYCOMP/src/bye/bye.c -> \
    tmp/MYSRC/MYCOMP/src/bye/bye.c
    /<work_dir>/build-MYCOMP/src/bye/bye.mf -> \
    tmp/MYSRC/MYCOMP/src/bye/bye.mf
    merged tree installed in /<work_dir>/build-MYCOMP

The merge process in the ChorusOS system, is controlled by merge.rf files. These files contain commands that are executed by mkmerge. The syntax and semantics of these files are described in the mkmerge man page.

To have the bye subdirectory of the split tree appear as ciao in the merge tree, use a merge.rf file in the bye source directory as follows:

host% echo 'move ../ciao' > /tmp/MYSRC/MYCOMP/src/bye/merge.rf
host% rm -rf bye

Run the merge command again and you will see that you have created a new subdirectory.

host% make merge

Rebuild the Makefiles using the make makemk command:

host% make makemk
>> In build-MYCOMP/src makemk
>> In build-MYCOMP/src/ciao makemk
<< In build-MYCOMP/src/ciao makemk done
<< In build-MYCOMP/src makemk done
...