xref: /OK3568_Linux_fs/external/rk_pcba_test/mic_test_Linux/Makefile (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun#CC = gcc
2*4882a593SmuzhiyunCROSS = /home/yyz/audio/rk3308/buildroot/output/rockchip_rk3308_pcba_32bit/host/bin/arm-rockchip-linux-gnueabihf-
3*4882a593SmuzhiyunCC = $(CROSS)gcc
4*4882a593SmuzhiyunCXX = $(CROSS)g++
5*4882a593Smuzhiyun
6*4882a593Smuzhiyun#MW_DIR=$(PWD)
7*4882a593SmuzhiyunLIBS += -lpthread
8*4882a593SmuzhiyunMW_DIR=./
9*4882a593SmuzhiyunTARGET = libmictest.so
10*4882a593SmuzhiyunINCLUDE = -I./
11*4882a593Smuzhiyun#
12*4882a593SmuzhiyunCFLAGS += -fPIC -DTINA_LINUX -DWITHOUT_ALOG=1 -lpthread -O3 -fno-strict-aliasing -fprefetch-loop-arrays -mfloat-abi=hard -mfpu=neon -marm -march=armv7-a
13*4882a593Smuzhiyun#-mfpu=neon -marm -march=armv7-a
14*4882a593SmuzhiyunCXXFLAGS += -fPIC -DTINA_LINUX -DWITHOUT_ALOG=1 -lpthread -O3 -fno-strict-aliasing -fprefetch-loop-arrays -mfloat-abi=hard -mfpu=neon -marm -march=armv7-a
15*4882a593Smuzhiyun#-mfpu=neon -marm -march=armv7-a
16*4882a593SmuzhiyunLDFLAGS = -fPIC -shared
17*4882a593Smuzhiyun#找到所有编译目录下的头文件--
18*4882a593SmuzhiyunSAMDIR=$(MW_DIR)
19*4882a593Smuzhiyun
20*4882a593SmuzhiyunSAMINCH=$(shell find $(SAMDIR) -name "*.h*")
21*4882a593Smuzhiyun
22*4882a593Smuzhiyun#找到了,大家可以看到Makefile是可以使用shell命令的,现在结果存储在SAMINCH。
23*4882a593Smuzhiyun
24*4882a593SmuzhiyunTMP_DIR=$(dir $(SAMINCH))
25*4882a593Smuzhiyun
26*4882a593Smuzhiyun#dir是个函数,就是列出SAMINCH目录前缀(/*.h之前的字串)的结果。
27*4882a593Smuzhiyun
28*4882a593SmuzhiyunSAMINCDIR=$(sort $(TMP_DIR))
29*4882a593Smuzhiyun
30*4882a593Smuzhiyun#sort也是个函数,这是为了去除重复的目录名。
31*4882a593Smuzhiyun
32*4882a593SmuzhiyunINCLUDE += $(foreach temp, $(SAMINCDIR), -I$(temp))
33*4882a593Smuzhiyun
34*4882a593Smuzhiyun#只是列出所有匹配的目录结果, 加到-I选项之后,用空格隔开。
35*4882a593Smuzhiyun
36*4882a593Smuzhiyun
37*4882a593Smuzhiyun#好了,轮到源程序了。
38*4882a593Smuzhiyun
39*4882a593SmuzhiyunCPP_FILES=$(shell find $(SAMDIR)  -name '*.cpp')
40*4882a593SmuzhiyunC_FILES =$(shell find $(SAMDIR) -name '*.c')
41*4882a593Smuzhiyun
42*4882a593SmuzhiyunOBJCPP=$(CPP_FILES:%.cpp=%.o)
43*4882a593SmuzhiyunOBJC  =$(C_FILES:%.c=%.o)
44*4882a593Smuzhiyun
45*4882a593Smuzhiyun#建立规则
46*4882a593Smuzhiyun#$(warning objcpp is $(OBJCPP) objc is $(OBJC) )
47*4882a593Smuzhiyun#$(warning cflags is $(CFLAGS))
48*4882a593Smuzhiyun#下面实际的编译过程加上:
49*4882a593Smuzhiyun$(TARGET): $(OBJCPP) $(OBJC)
50*4882a593Smuzhiyun#	$(CXX) $(LDFLAGS)  -o $(TARGET)
51*4882a593Smuzhiyun	$(CXX) $(LDFLAGS) $(OBJCPP) $(OBJC) -o $@  $(LIBS)
52*4882a593Smuzhiyun
53*4882a593Smuzhiyun$(OBJCPP): %.o: %.cpp
54*4882a593Smuzhiyun	$(CXX) -c $< $(CXXFLAGS) $(INCLUDE)  -o $@
55*4882a593Smuzhiyun
56*4882a593Smuzhiyun$(OBJC): %.o: %.c
57*4882a593Smuzhiyun	$(CC) -c $(CFLAGS) $(INCLUDE) $< -o $@
58*4882a593Smuzhiyun
59*4882a593Smuzhiyun#control: clean $(APP)
60*4882a593Smuzhiyun#	$(CPP) -m32 -o $@ $(INCLUDE) $(APP)
61*4882a593Smuzhiyun
62*4882a593Smuzhiyunclean:
63*4882a593Smuzhiyun	rm -fr $(OBJCPP) $(OBJC)
64*4882a593Smuzhiyun#	rm -f control
65*4882a593Smuzhiyun
66