Makefile utilities, PERL scripts and command line interfaces offer highly portable, transparent projects. Let's summarize some good programming approaches:
- the common subset of MS "nmake" and GNU "make" utilities should be used for generic Makefiles;
- write programs using standard language syntax (avoid proprietary definition);
- compile the projects with different compilers and compare results;
- use POSIX and PORTLIB libraries for cross-platform subroutines and functions;
- replace the OS specific shell/batch files with PERL scripts;
- organize projects in a well defined hierarchical structure, avoid duplicate names for source files, subroutines and functions.