List of known commands in .proj files

In configuration files (typically config.h)
- COREMAKE_STATIC
  build everything statically

Project outputs
- CON <name>
  a console based program
- EXE <name>
  a GUI based program
- LIB <name>
  a static library
- DLL <name>
  a dynamic library
- GROUP <name>
  a generic project that can be merged in other projects, useful for sharing commands between projects
- GENERATE <name>
  generate the specified file

Project commands
- SOURCE <filename> ({class <BaseCoremakeClass>})
  a source file, in various programming languages
- SOURCEAM <filename>
  an automake file that needs to be processed and added to the list of source files
- HEADER <filename>
  add a header to the project, useful to see it in your IDE
- COMPILE <filename>
  generate a file based on the source file
- DEF <filename>
  defines the .def file to use to generate a DLL output
- INCLUDE <directory>
  add a directory, relative to the project directory, to the list of include directories
- EXPINCLUDE <directory>
  add a directory, relative to the project directory, to the list of include directories and in projects using (USE) this project
- NO_STDAFX .
  do not generate and build the std_afx files needed by Core-C
- NO_PROJECT .
  do not generate the project.h file for the project
- OUTPUT_DIR <directory>
  set the output directory where the built project will be (by default all output are in the same release output directory)
- DEFINE define
  set a #define for the all the compiled files in the project
- EXPDEFINE define
  set a #define for the all the compiled files in the project and set it in projects using (USE) this project
- CONFIG_FILE <filename> ({ NO_INCLUDE .})
  define the configuration file to use (usually config.h) optionally forbid following includes from the config.h
- USE <project_name>
  link the current with the designated project
- PLATFORM_FILES <directory>
  defines where to find the coremake files, if not in the default location
- DEP <project>
  make the current project depend on the designated project
- RUN "command"
  run the specified command before building the rest of the files
- ECHO <text>
  write a message on the command-line, (for debugging or warn about possible issues)
- NOLIB .
  specify that the DLL target being defined should not become a static library even with COREMAKE_STATIC

In coremake compiled files (.build and .inc files)
- PRINTNL <line>
  write the line and a newline in the target file
- PRINTNLDOS <line>
  write the line and a newline in the target file, the newline has a DOS/Windows format
- IF <test>
  ENDIF
  execute the code in the IF if the test returns true
- IFNDEF <variable>
  ENDIF
  execute the code in the IFDEF if the variable is not defined in the target
- CONFIG
  read the config.h file
- %%BEGIN / %%END
  define a section to be interpreted using the coremake syntax, not the generated one
- %%<command>
  process the coremake <command> instead of outputing the line
- %(variable)
  replace the coremake variable with its value in the generated file
- SCRIPT
  make the currently built file executable

Variables available in compiled scripts (.build and .inc files)
- PLATFORMNAME
  the name of the target provided in the command line (eg. vs9_x64)
- ROOTPATH
  the path to the root of the source tree being processed
- BUILDDIR
  the path to the root when project files will be generated to build
- OUTPUTPATH
  the path to the directory that will received built outputs
- BUILDPATH
  the path to the directory that will contain temporary object files when building
- PLATFORM_FILES
  the path to the coremake compiled scripts
- PLATFORMLIB
  the path to the directory that contains library files to include as already built, see USELIB
