changes from 1.0.1
==================
generate correct object filenames for source files in subfolders.
utilize system include paths from the codewarrior project.
avoid duplicating entries in the dependancy list.
generate correct dependancy lists when using rvct.
introduction
============
the version of codewarrior used in the arm development suite
cannot export projects in makefile format. manually producing
makefiles from codewarrior projects is not an easy task. the
aim of mcp2make is to make the conversion simpler and to require
substantially less effort.
mcp2make is supplied as a free-of-charge, unsupported utility.
functional overview
===================
codewarrior project files are stored in an undocumented binary
format which cannot be parsed directly by an external utility.
however, codewarrior does allow the export of a project file as a
separate xml text file, which is suitable for parsing by an
external utility. mcp2make is such a utility.
this xml file contains most (but not all) of the information
relating to the build environment for that project. it includes
data on the different build targets, a list of the files used to
build the target and other helpful information. thus mcp2make can
automatically generate the structure of an equivalent makefile.
however the xml file does not include the command line parameters
used for the code generation tools (c/c compilers, linker,
etc.). this data must be manually copied from the appropriate
codewarrior "equivalent command line" text boxes into mcp2make.
each build target of the codewarrior project (e.g. debug,
debugrel, release) will generate a separate makefile.
note that the expectation is that changing a codewarrior project
into a makefile is a once-only conversion and some minor manual
modifications of the makefile produced may still be needed in
order to get it into the required state.
using mcp2make
==============
create the xml file
-------------------
first of all you need to create the xml version of the
codewarrior project file. unfortunately, codewarrior cannot
automate this step so the user is required to perform this
operation manually.
1. open your project with codewarrior.
2. choose file->export project... from the menu bar. this will
present you with a save dialog box.
3. save the xml file (with the .mcp.xml extension) in the same
directory containing the codewarrior project file.
converting the project
----------------------
once you have an xml project file you can start mcp2make. this
will present a simple dialog box allowing the user to specify
the xml project to convert.
the basic steps for using mcp2make are:
* select an xml file to convert
* select a build target and specify the parameters to the
code generation tools
* create the makefile
1. specify the xml project file to convert.
you can either type a full path or use the browse... button to
choose the file from a standard file open dialog box. this
dialog box will remember the xml file used the previous time.
2. click the ok button.
this will parse the xml file and present a second dialog box
for configuring each build target.
3. select the desired build target from the target name popup
menu.
4. specify the parameters for each code generation tool used for
the selected target.
there is a text field for each codegen tool available
(e.g. assembler, linker, etc.). the text field for each tool
is enabled if it is used in the current target - all other
fields are disabled.
each enabled text field needs to contain the command-line
parameters for that tool. you can find the command-line
parameters for a tool from the equivalent command line text
box of its settings panel in the project settings dialog box.
for example, to find the assembler command-line for the debug
target:
a. choose debug from the target menu of the project
window.
b. choose edit->debug settings... from the menu bar.
c. select the arm assembler settings panel.
d. select all of the text from the equivalent command
line text field and copy it to the clipboard.
e. switch to mcp2make and paste the text into the
assembler text field.
5. click the create makefile button.
this will create a makefile named
myproject_release.mk) in the same directory as the project
file. during this process you will see a number of dos boxes
quickly flash on the screen. this is mcp2make invoking the
compiler to find the header dependancies for each source
file.
6. repeat steps 3-5 for each target that you wish to produce a
makefile for.