I think you can add Linux makefile/Mingw makefile(make/mingw32-make) and Windows makefile(nmake) support.
That's what I'm actually planning (all but nmake, because there's a little different story with nmake, I may add nmake later).
Almost all of the time I'm developing and testing under Linux, so Windows part may not work for now.
Update: (see rev.35)
- Improved platform and toolchain management
- Implemented compiler and linker option relations
- Working directories for targets (see macros.h TARGET_WDIR_ENABLED)
- Commands-only targets
- Support for fortran compilers (f77,f9x)
- Extended object names (like foo.cpp.o vs foo.o)
- Limited support for Windows/Mac platforms (untested yet)
.
Usage syntax:
Generate makefile:
cbp2make -in <project_file> [-cfg <configuration>] [-out <makefile>]
[-unix] [-windows] [-mac] [--all-os]
cbp2make -list -in <project_file_list> [-cfg <configuration>]
[-unix] [-windows] [-mac] [--all-os]
Manage toolchains:
cbp2make --config
cbp2make --config --add --default
cbp2make --config --add -alias <toolchain> [-cc <c_compiler>]
[-cpp <c++_compiler>] [-ln <linker>] [-st <static_linker>]
[-ranlib <ranlib>] [-windres <windres>] [-make <make>]
cbp2make --config --remove -alias <toolchain>
Manage platforms:
cbp2make --config [-unix|-windows|-mac] [-pwd <print_dir_command>]
[-cd <change_dir_command>] [-rm <remove_file_command>]
[-rmf <remove_file_forced>] [-rmd <remove_dir_command>]
[-tf <test_file_command>] [-td <test_dir_command>]
[-md <make_dir_command>] [-mdf <make_dir_forced>]
Common options:
cbp2make --verbose // show project information
cbp2make --quiet // hide all messages
cbp2make --help // display this message
Now I'm gradually starting to switch from developing to testing and working on compatibility with Windows.
There are few things I had problems with.
One problem is working directories for targets. According to CB's wiki, one should change directory to target's
working directory before building it, but applying that to the CB projects results in discrepancy in expected paths
in build command sequence. What's wrong?
Another is calling resource compilers, processing of WX forms, etc. How does CB invokes this resource compiler stuff ?
There are also few other things to implement before full-scale testing, but I think they will be completed in the course of time.