aboutsummaryrefslogtreecommitdiffstats
path: root/tools/gmake_scripts/readme.txt
blob: c33c43d31bee7f4b1aca8e59d577fb1f03dbdc86 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
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.raw32|win32.chibios|linux|osx|chibios|freertos|ecos|raw32|rawrtos	- Mandatory: The operating system
OPT_CPU=x86|x64|stm32m1|stm32m4|stm32m7|at91sam7|armv6|raspberrypi	- 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