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