top of page
Rebuilding Derived headers on Windows

This page describes the procedure for running dodo on Windows using the Cygwin GNU tools.

It is also possible to build dodo with Visual Studio and the commercial MKS tools running AAF/dodo/makefile rather than AAF/dodo/GNUmakefile.

Required tools (all part of cygwin):

  • Gnu Make

  • C++ compiler

  • Perl

  • Bash Shell0

If you add an extra interface file, you need to follow this procedure:

  1. if you don't already have it, checkout the dodoWin module from CVS, this should give you the dodo directory and the extra make files required.

  2. create your AAFmyInterface.dod macro file by editing a similar example

  3. generate a new UUID for your COM interface

  4. add your Implementation and Unit Test for your interface (you can use dodo to manually generate the basic files)

  5. add the AAFmyInterface to dodo/

  6. run GNUmakefile in the dodo directory by simply typing 'make'

  7. add the AAFmyInterface.dod macro file to CVS

  8. run the midl compiler ??

  9. add the new derived files to CVS ref-impl/src/com-api/: CAAFmyInterface.cpp CAAFmyInterface.h

  10. Rebuild the Mac and Win SDKs to copy ref-api headers to their sub-directories (Win build MakeSDK target, Mac run MakeSDK MPW script)

  11. CVS checkin all the affected derived files such as ref-impl/include/com-api AAF.idl, AAF.h, AAF_i.c


The following table shows the steps that the main Dodo makefile goes through to update the Derived files:


determines platform/environment

used by after checking OS type

tool/GNUmakefile builds the DODO executable


Runs PERL script to update the copyright text in macros/base.mac

dodotargets.mak creates a list of DODO targets using as the

input file and running on this to create

NOTE: new Target *.dod files must be added manually to


dododepend.mak creates DODO dependency information in its output file, using as input and running in sequence and then on this file.

included in maketargets.mak to provide the dependencies for the targets.


maketargets_gnu.mak where the bulk of the work is done (builds all the targets).


Creates all *.idl files using shell scripts:

Creates various headers (*.h) using shell scripts:

Creates various *_i.refh files using shell scripts:

Creates AAFClassIds.impl file with

Creates AAFClassIds.comh file with

Creates AAFObjectTable.comh file with

Creates AAFObjectTable_i.refh file with

Creates CAAF*.h and CAAF*.cpp files for each corresponding input *.dod file

Uses the Microsoft IDL compiler to generate

ref-impl/include/com-api files (only available under Windows NT, it says)

Thanks to Dudley Beenham at Sony for tracing out this summary.

bottom of page