lin
2025-08-21 57113df3a0e2be01232281fad9a5f2c060567981
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
 
# define SYSROOT, SRC_ROOT need defined before this
SYSROOT := $(shell (cd $(SRC_ROOT)/..; pwd))/sysroot
 
# define output directory
LIBDIR := $(shell (cd $(SRC_ROOT); pwd))/lib
BINDIR := $(shell (cd $(SRC_ROOT)/..; pwd))/output/bin
FIRMWARE := $(shell (cd $(SRC_ROOT)/..; pwd))/output/firmware
 
# define compiler
CC := arm-linux-gnueabi-gcc --sysroot=$(SYSROOT)
CXX := arm-linux-gnueabi-g++ --sysroot=$(SYSROOT)
 
CPPFLAGS := $(CPPFLAGS) -I$(shell (cd $(SRC_ROOT); pwd))/include
 
CFLAGS := -Wall -O3 -Os -pipe \
        -mtune=cortex-a8 -march=armv7-a -mabi=aapcs-linux -mfloat-abi=softfp -mfpu=neon \
        -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 \
        -D_GNU_SOURCE -D_REENTRANT \
        $(CFLAGS)
 
# uses '=' let the variable parse when it's used
# COMPILE: compiles the source file specified
# COMPILEX: compiles the source file
# COMPILE_MSG: print compiling message
COMPILE = @$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
         $(CPPFLAGS) $(CFLAGS)
 
COMPILEX = @$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
         $(CPPFLAGS) $(CFLAGS) -c $< -o $@
 
COMPILECPP = @$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
         $(CPPFLAGS) $(CFLAGS)
 
COMPILECPPX = @$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
         $(CPPFLAGS) $(CFLAGS) -c $< -o $@
 
COMPILE_MSG = @echo "  CC\t$<"
 
LDFLAGS := -L$(SYSROOT)/lib -L$(SYSROOT)/usr/lib -L$(LIBDIR) \
   $(LDFLAGS)
 
# uses '=' let the variable parse when it's used
# LINK: link the objects specified
# LINKX: compiles the objects
# LINK_MSG: print linking message
LINK = @$(CC) $(CFLAGS) $(LDFLAGS)
 
LINKX = @$(CC) -o $(BINDIR)/$@ $^ $(CFLAGS) $(LDFLAGS)
 
LINKCPP = @$(CXX) $(CFLAGS) $(LDFLAGS)
 
LINKCPPX = @$(CXX) -o $(BINDIR)/$@ $^ $(CFLAGS) $(LDFLAGS)
 
LINK_MSG = @echo "  LN\t$^ -> $@"
 
AR = @arm-linux-gnueabi-ar
 
ARFLAGS := -rc