-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmakefile
More file actions
executable file
·62 lines (46 loc) · 2 KB
/
makefile
File metadata and controls
executable file
·62 lines (46 loc) · 2 KB
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
MIPSTOOLS = /home/djdron/mipsel-tools/mipsel-4.1.2-nopic
DINGOO_SDK = /home/djdron/dingoo-sdk
PATH := $(MIPSTOOLS)/bin:$(PATH)
CXX = mipsel-linux-g++
C = mipsel-linux-gcc
LD = mipsel-linux-ld
ELF2APP = $(DINGOO_SDK)/tools/elf2app/elf2app
BIN2H = $(DINGOO_SDK)/tools/bin2h/bin2h
PROJECT_NAME = aw
LD_SCRIPT = $(DINGOO_SDK)/lib/dingoo.xn
SRC_PATH = .
OBJ_BASE = Release
DIST_PATH = $(OBJ_BASE)
OBJ_PATH = $(OBJ_BASE)
RES_PATH = res
SRCFOLDERS = .
LIB_PATH = $(DINGOO_SDK)/lib
LIBS = -lc -ljz4740 -lgcc -lstdc++
INCLUDE = -I$(DINGOO_SDK)/include -I$(MIPSTOOLS)/mipsel-linux/include -I. -I$
STD_OPTS = -G0 -O3 $(INCLUDE) -Wall -finline-functions -fomit-frame-pointer -msoft-float -fno-builtin -fno-exceptions -mips32 -mno-abicalls -fno-pic -c -DMPU_JZ4740 -DNDEBUG -DUSE_DINGOO -DSYS_LITTLE_ENDIAN
CPP_OPTS = $(STD_OPTS) -fno-rtti -fno-threadsafe-statics
C_OPTS = $(STD_OPTS)
LD_OPTS = -nodefaultlibs --script $(LD_SCRIPT) -L$(LIB_PATH) $(LIBS)
CXXSRCS = $(foreach dir, $(SRCFOLDERS), $(wildcard $(SRC_PATH)/$(dir)/*.cpp))
CSRCS = $(foreach dir, $(SRCFOLDERS), $(wildcard $(SRC_PATH)/$(dir)/*.c))
CXX_OBJS = $(patsubst $(SRC_PATH)/%.cpp,$(OBJ_PATH)/%.o,$(CXXSRCS))
CXX_DEPS = $(patsubst $(SRC_PATH)/%.cpp,$(OBJ_PATH)/%.d,$(CXXSRCS))
C_OBJS = $(patsubst $(SRC_PATH)/%.c,$(OBJ_PATH)/%.o,$(CSRCS))
C_DEPS = $(patsubst $(SRC_PATH)/%.c,$(OBJ_PATH)/%.d,$(CSRCS))
BIN_TARGET = $(DIST_PATH)/$(PROJECT_NAME)
build: mkdirs $(BIN_TARGET).app
mkdirs:
mkdir -p $(DIST_PATH)
mkdir -p $(foreach dir, $(SRCFOLDERS), $(OBJ_PATH)/$(dir))
$(CXX_OBJS): $(OBJ_PATH)/%.o : $(SRC_PATH)/%.cpp
$(CXX) $(CPP_OPTS) -o $@ $<
$(C_OBJS): $(OBJ_PATH)/%.o : $(SRC_PATH)/%.c
$(C) $(C_OPTS) -o $@ $<
$(BIN_TARGET).elf: $(CXX_OBJS) $(C_OBJS)
$(LD) $(CXX_OBJS) $(C_OBJS) $(LD_OPTS) -Map=$(BIN_TARGET).map -o $(BIN_TARGET).elf
$(BIN_TARGET).app: $(BIN_TARGET).elf
$(ELF2APP) $(BIN_TARGET)
clean:
rm -rf $(OBJ_BASE)
rm -rf $(DIST_PATH)
.PHONY: mkdirs clean build