huangcm
2025-09-01 53d8e046ac1bf2ebe94f671983e3d3be059df91a
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
 
# define sources root directory before everything
SRC_ROOT = .
 
# change compiler and linker option before you include rule.mk
#
# link to libscript.a when you need to fetch configuration
# from test_script
#
#CFLAGS := $(CFLAGS) -g
LDFLAGS := -lscript -ldirectfb -lpthread
 
# include rule.mk
include $(SRC_ROOT)/rule.mk
 
CFLAGS := $(CFLAGS) -I$(SYSROOT)/usr/include/directfb
 
CFLAGS_PLATFORM=$(shell echo _$(LICHEE_CHIP) | tr 'a-z' 'A-Z' | sed "s/P[0-9]\+\$$/P/")
 
CFLAGS += -D$(CFLAGS_PLATFORM)
 
# define objects collection
libscript_objs = core/script.o core/audio_id.o
 
# Do not warning unused label
CFLAGS += -Wno-unused-label
 
core_objs = core/core.o core/script_parser.o \
           view/view.o view/df_view_pad.o view/tp_track.o view/ion_alloc.o
 
obj_platform=$(shell echo camera_$(LICHEE_CHIP).o)
 
# Only obj_platform != camera_$(LICHEE_CHIP).o, need to redifined it.
ifeq ($(LICHEE_CHIP),sun50iw3p1)
ifeq ($(LICHEE_BUSINESS),vr)
obj_platform =
endif
else ifeq ($(LICHEE_CHIP),sun9iw1p1)
ifeq ($(LICHEE_BOARD),v1)
obj_platform =
endif
else ifeq ($(LICHEE_CHIP),sun50iw6p1)
obj_platform =
CFLAGS := $(CFLAGS) -I$(SYSROOT)/usr/include/directfb -D_SUN50IW6P1
tinyasa_dir = "tinyalsa-master-1.0"
else ifeq ($(LICHEE_CHIP),sun50iw9p1)
obj_platform =
CFLAGS := $(CFLAGS) -I$(SYSROOT)/usr/include/directfb -D_SUN50IW9P1
tinyasa_dir = "tinyalsa-master-2.0"
else ifeq ($(LICHEE_CHIP),sun8iw7p1)
obj_platform =
CFLAGS := $(CFLAGS) -I$(SYSROOT)/usr/include/directfb -D_SUN8IW7P1
tinyasa_dir = "tinyalsa-master-1.0"
else ifeq ($(LICHEE_CHIP),sun8iw6p1)
ifeq ($(LICHEE_BOARD),n106)
obj_platform = view/camera_sun8iw6p1_for_linux3_10.o
endif
else ifeq ($(wildcard view/camera_$(LICHEE_CHIP).c),)
# Universal implement
obj_platform =
endif
 
ifneq ($(obj_platform),)
core_objs += view/$(obj_platform)
endif
 
tinyasa_dir ?= "tinyalsa-master"
 
launcher_objs = core/launcher.o
 
# add targets to all
.PHONY: all
all: libscript.a core launcher
   make -C lib/${tinyasa_dir}
   make -C testcases
   make -C view
 
libscript.a: $(libscript_objs)
   @echo "  AR\t$^ -> $@"
   $(AR) $(ARFLAGS) $(LIBDIR)/$@ $^
 
$(libscript_objs): %.o: %.c
   $(COMPILE_MSG)
   $(COMPILEX)
 
core: $(core_objs)
   $(LINK_MSG)
   $(LINKX)
 
$(core_objs): %.o: %.c
   $(COMPILE_MSG)
   $(COMPILEX)
 
launcher: $(launcher_objs)
   $(LINK_MSG)
   $(LINKX)
 
$(launcher_objs): %.o: %.c
   $(COMPILE_MSG)
   $(COMPILEX)
 
.PHONY: clean
clean:
   @make -C lib/tinyalsa-master-1.0 clean
   @rm -rf $(BINDIR)/*
   @echo "  CLEAN *.o"
   @find . -name *.o -exec rm -f {} \;
   @echo "  CLEAN *.d"
   @find . -name *.d -exec rm -f {} \;
   @echo "  CLEAN *.d.*"
   @find . -name *.d.* -exec rm -f {} \;
 
 
# generate dependence
SRCDIRS = core/ view/
SOURCES = $(foreach dir, $(SRCDIRS), $(wildcard $(dir)/*.c))
 
-include $(SOURCES:.c=.d)
 
%.d: %.c
   @set -e; rm -f $@; \
   $(CC) -MM $(CPPFLAGS) $< > $@.$$$$; \
   sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
   rm -f $@.$$$$