18c4a9f870
Update Make system to match. Add ability to make to a library rather than a program Stop ignoring objcode invalid format errors Multiple make tidy ups
73 lines
3.4 KiB
Plaintext
73 lines
3.4 KiB
Plaintext
All make script files in this directory apply the following rules and assumptions:
|
|
|
|
- The scripts are written using gmake syntax
|
|
- They assume access to the following unix utilities
|
|
rm, cp, mv, mkdir, sh
|
|
- They use and implement the following make variables
|
|
|
|
Input Variables (all optional unless otherwise specified)
|
|
----------------------------
|
|
|
|
OPT_MAKE_LIB=no|yes - Make a library instead of an program = default no
|
|
OPT_VERBOSE_COMPILE=no|yes - Turn on full compile messages - default no
|
|
OPT_GENERATE_LISTINGS=no|yes - Generate listing files - default no
|
|
OPT_GENERATE_MAP=no|yes - Generate a map file - default no
|
|
OPT_COPY_EXE=no|yes - Copy the final program to the local project directory - default no
|
|
OPT_NONSTANDARD_FLAGS=no - Turn off adding the standard compiler language flags - default no
|
|
OPT_LINK_OPTIMIZE=no - Remove unused code/data during link - default no
|
|
OPT_OS=win32|win32.chibios|linux|osx|chibios|freertos|ecos|raw32|rawrtos - Mandatory: The operating system
|
|
OPT_CPU=x86|x64|stm32m4|at91sam7 - Add some cpu dependant flags
|
|
|
|
BUILDDIR - Build Directory - default is ".build" or "bin/Debug" or "bin/Release" depending on the target
|
|
PROJECT - Project Name - default is the name of the project directory
|
|
PATHLIST - A list of variable names of "master" paths that contain source and other objects of interest - default is ""
|
|
|
|
ARCH - Architecture - default is ""
|
|
XCC - C compiler - default is "$(ARCH)gcc"
|
|
XCXX - C++ compiler - default is "$(ARCH)g++"
|
|
XAS - Assembler - default is "$(ARCH)gcc -x assembler-with-cpp"
|
|
XLD - Linker - default is "$(ARCH)gcc"
|
|
XOC - Object Copy - default is "$(ARCH)objcopy"
|
|
XOD - Object Dump - default is "$(ARCH)objdump"
|
|
XSZ - Report binary dump details - default is "$(ARCH)size"
|
|
XAR - Library archiver - default is "$(ARCH)ar"
|
|
|
|
SRCFLAGS - Compiler defines for c, c++ and assembler files - default is ""
|
|
CFLAGS - C specific compiler defines - default is ""
|
|
CXXFLAGS - C++ specific compiler flags - default is ""
|
|
CPPFLAGS - C Preprocessor flags for c, c++ and assembler files - default is ""
|
|
ASFLAGS - Assembler specific compiler flags - default is ""
|
|
LDFLAGS - Linker flags - default is ""
|
|
|
|
The following variables are a list of space separated values. In some cases an optional prefix (if specified) will be stripped off
|
|
the variables for compatibility with old definitions.
|
|
|
|
INCPATH - List of header include directories - default is ""
|
|
LIBPATH - List of library include directories - default is ""
|
|
DEFS - List of preprocessor defines (any -D prefix is ignored) - default is ""
|
|
LIBS - List of libraries (any -l prefix is ignored) - default is ""
|
|
SRC - List of c, c++ and assembler source files - default is ""
|
|
OBJS - List of additional object files - default is ""
|
|
LDSCRIPT - Custom loader script - default is ""
|
|
|
|
ARM Specific options
|
|
----------------------------
|
|
OPT_THUMB=no|yes - Compile normal sources in thumb mode - default is no
|
|
|
|
SRC_THUMB - List of source files that MUST be compiled in thumb mode - default is ""
|
|
SRC_NOTHUMB - List of source files that MUST be compiled in non-thumb mode - default is ""
|
|
OBJS_THUMB - List of object files that MUST be linked in thumb mode - default is ""
|
|
OBJS_NOTHUMB - List of object files that MUST be linked in non-thumb mode - default is ""
|
|
|
|
Targets
|
|
----------------------------
|
|
|
|
all
|
|
lib
|
|
exe
|
|
clean
|
|
Debug
|
|
cleanDebug
|
|
Release
|
|
cleanRelease
|