makefile 自動編譯 目錄和子目錄的 C文件

CROSS = arm-himix100-linux-
CC = $(CROSS)gcc
CXX = $(CROSS)g++  
DEBUG = -g -O2  
CFLAGS =-Dhi3516ev200 -DHI_XXXX -DISP_V2  -w -mcpu=cortex-a7 -mfloat-abi=softfp -mfpu=neon-vfpv4 -fno-aggressive-loop-optimizations -ldl -ffunction-sections -fdata-sections -O2 -fstack-protector-strong -fPIC -Wall  -DHI_RELEASE -DVER_X=1 -DVER_Y=0 -DVER_Z=0 -DVER_P=0 -DVER_B=10 -DUSER_BIT_32 -DKERNEL_BIT_32 -Wno-date-time -D_GNU_SOURCE -DSENSOR0_TYPE=SONY_IMX335_MIPI_4M_30FPS_12BIT  -DHI_ACODEC_TYPE_INNER -DHI_VQE_USE_STATIC_MODULE_REGISTER -DHI_AAC_USE_STATIC_MODULE_REGISTER -DHI_AAC_HAVE_SBR_LIB 
RM = rm -rf  

#這裏遞歸遍歷3級子目錄 ! -path "./carcli-ev300.si4project/*" 爲排除搜索的目錄
DIRS := $(shell find ./ ! -path "./carcli-ev300.si4project/*"  -type d  -maxdepth 3)
#這裏循環遍歷目錄的c文件
SRCS = $(foreach dir,$(DIRS),$(wildcard $(dir)/*.c))  
#SRCS = $(wildcard ./*.c)  

OBJS = $(patsubst %.c, %.o, $(SRCS))  
  
INCLUDE =-I./include/
#HEADER_PATH =  
LIB_PATH = -L./lib/  
#LIB_PATH =

LIBS =-Wl,--start-group ./lib/libmpi.a ./lib/lib_hiae.a ./lib/libisp.a ./lib/lib_hidehaze.a ./lib/lib_hidrc.a ./lib/lib_hildci.a ./lib/lib_hiawb.a ./lib/lib_hiir_auto.a ./lib/libsns_imx327.a ./lib/libsns_imx307.a ./lib/libsns_imx307_2l.a ./lib/libsns_imx327_2l.a ./lib/libsns_imx335.a ./lib/libsns_sc4236.a ./lib/libsns_sc2235.a ./lib/libsns_sc2231.a ./lib/libsns_sc3235.a ./lib/libsns_gc2053.a ./lib/libsns_gc2053_forcar.a ./lib/libsns_os05a.a ./lib/libVoiceEngine.a ./lib/libupvqe.a ./lib/libdnvqe.a ./lib/libaaccomm.a ./lib/libaacenc.a ./lib/libaacdec.a ./lib/libaacsbrenc.a ./lib/libaacsbrdec.a ./lib/libhive_RES.a ./lib/libhive_record.a ./lib/libhive_HPF.a ./lib/libhive_ANR.a ./lib/libhive_AEC.a ./lib/libhive_AGC.a ./lib/libhive_EQ.a ./lib/libaacdec.a ./lib/libaacenc.a ./lib/libaaccomm.a ./lib/libaacsbrdec.a ./lib/libaacsbrenc.a ./lib/libsecurec.a  -Wl,--end-group -lpthread -lm -ldl
#VERSION = 1.0.0.1  
TARGET = demo
  
$(TARGET) : $(OBJS)  
    $(CC) $^ -o $@  $(LIBS)
    
$(OBJS):%.o : %.c
    $(CC) $(CFLAGS) -c $< -o $@ $(INCLUDE)

#$(TARGET):$(SRCS)
#    $(CC) -o $@ $(CFLAGS) $(SRCS) $(INCLUDE) $(LIBS)
  
clean:  
    $(RM) $(TARGET) 
    $ find . -name "*.o" -exec $(RM){} \;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章