makefile opencv TDA4

2 篇文章 10 订阅
1 篇文章 0 订阅

OpenCV

## get all source files
SRC_PATH = $(abspath ./)

C_SRCS	:= 	$(wildcard $(SRC_PATH)/*.c)
OBJS	= 	$(C_SRCS:.c=.o)

CPP_SRCS	:=  $(wildcard $(SRC_PATH)/*.cpp)
OBJS		+= 	$(CPP_SRCS:.cpp=.o)

OPENCV_FLAG	:=  $(shell pkg-config --cflags --libs opencv4)
LIBPNG_FLAG :=  -DUSING_LIBPNG_1_2
OPENGL_FLAG := -lGL -lGLU -lglut

# $(info $(OBJS))
# gcc -stdc++
main: $(OBJS)
	g++ -o main $(OBJS) -Wall -fPIC -lpthread -lm $(OPENCV_FLAG) $(LIBPNG_FLAG) $(OPENGL_FLAG)

.PHONY : clean 

%.o : %.c
	gcc -o $@ -c -g -fPIC  $< -isystem -I.

# opencv 4.x require c++11
%.o : %.cpp
	g++ -o $@ -c -g -fPIC -std=c++11 $< -isystem -I. -I/usr/local/include/opencv4/

clean: 
	-rm *.o 
	-rm main

C 基础

objects = main.o test.o
main: $(objects)
	gcc -o main $(objects) -Wall -lpthread -lm

.PHONY : clean

%.o : %.c 
	gcc -c $< 

clean: 
	rm *.o 
	rm main

TDA4


##############################################################
GCC_LINUX_ARM_ROOT := /media/sdb/ADAS_TDA4_AVP_V07_01/ti-processor-sdk-rtos-j721e-evm-07_01_00_11/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu/
LINUX_FS_PATH := /media/sdb/ADAS_TDA4_AVP_V07_01/ti-processor-sdk-rtos-j721e-evm-07_01_00_11/targetfs/
##############################################################

##############################################################

# debug release
TARGET_BUILD=debug

TARGET      := app_ipc
CSOURCES    := $(wildcard *.c)

IDIRS += $(GCC_LINUX_ARM_ROOT)/aarch64-linux-gnu/libc/usr/include/ 
IDIRS += $(LINUX_FS_PATH)/usr/include/
IDIRS += $(LINUX_FS_PATH)

LDIRS += $(GCC_LINUX_ARM_ROOT)/aarch64-linux-gnu/libc/usr/lib/ 
LDIRS += $(LINUX_FS_PATH)/usr/lib/

STATIC_LIBS +=
SYS_SHARED_LIBS += stdc++ m rt pthread ti_rpmsg_char
ADDITIONAL_STATIC_LIBS	+=

##############################################################
CC = $(GCC_LINUX_ARM_ROOT)/bin/aarch64-none-linux-gnu-gcc
LD = $(GCC_LINUX_ARM_ROOT)/bin/aarch64-none-linux-gnu-g++
AR = $(GCC_LINUX_ARM_ROOT)/bin/aarch64-none-linux-gnu-ar

CFLAGS += -DLINUX -DJ7 -DA72="A72" -DTARGET_NUM_CORES=1 
CFLAGS += -DTARGET_ARCH=64 -DARCH_64 -DARM -DTARGET_BUILD=2 

# 位置无关代码(Position-Independent Code)
CFLAGS += -fPIC
CFLAGS += -Wall -fms-extensions -Wno-write-strings -Wno-format-security
CFLAGS += -fno-short-enums

ifeq ($(TARGET_BUILD),debug)
CFLAGS += -ggdb -ggdb3 -gdwarf-2 -D_DEBUG_=1
else ifneq ($(filter $(TARGET_BUILD),release ),)
CFLAGS += -O3 -DNDEBUG
endif

CFLAGS += -mlittle-endian -mcpu=cortex-a72
CFLAGS += -Wno-format-truncation

ifdef LOGFILE
LOGGING:=&>$(LOGFILE)
else
LOGGING:=
endif

##############################################################
CPLDFLAGS = -rdynamic 
CPLDFLAGS += -Wl,--cref

CPLDFLAGS += -fPIC
CPLDFLAGS += -Wall -fms-extensions -Wno-write-strings -Wno-format-security
CPLDFLAGS += -fno-short-enums

ifeq ($(TARGET_BUILD),debug)
CPLDFLAGS += -ggdb -ggdb3 -gdwarf-2 -D_DEBUG_=1
else ifneq ($(filter $(TARGET_BUILD),release ),)
CPLDFLAGS += -O3 -DNDEBUG
endif

CPLDFLAGS += -mlittle-endian -mcpu=cortex-a72

##############################################################
INCLUDES:=$(foreach inc,$(IDIRS),-I$(inc))

LINK_START_GROUP = -Wl,--start-group 
LINK_END_GROUP = -Wl,--end-group 
LIBRARIES:= $(foreach ldir,$(LDIRS),-L$(ldir)) \
			-Wl,-Bstatic \
			$(LINK_START_GROUP) \
			$(foreach lib,$(STATIC_LIBS),-l$(lib)) \
			$(foreach lib,$(SYS_STATIC_LIBS),-l$(lib)) \
			$(foreach lib,$(ADDITIONAL_STATIC_LIBS),-l:$(lib)) \
			$(LINK_END_GROUP) \
			-Wl,-Bdynamic \
			$(foreach lib,$(SHARED_LIBS),-l$(lib)) \
			$(foreach lib,$(SYS_SHARED_LIBS),-l$(lib)) \
			$(foreach lib,$(PLATFORM_LIBS),-l$(lib))

BIN = $(addsuffix .out,$(TARGET))
MAP = $(addsuffix .map,$(TARGET))

##############################################################
ROOT_PATH  =  $(abspath .)
BUILD_PATH =  $(ROOT_PATH)/build
OUT_PATH   =  $(ROOT_PATH)/out

SDIR := $(ROOT_PATH)
ODIR := $(BUILD_PATH)

OBJS = $(CSOURCES:%.c=$(BUILD_PATH)/%.o)

##############################################################
.PHONY: all

all: $(BIN)

$(BIN): check_path $(OBJS)
	@echo Linking $@
	$(LD) $(CPLDFLAGS) $(OBJS) $(LIBRARIES) -o $(OUT_PATH)/$(BIN) -Wl,-Map=$(OUT_PATH)/$(MAP) > /dev/null

$(ODIR)/%.o: $(SDIR)/%.c 
	@echo [GCC] Compiling C99 $(notdir $<)
	$(CC) -std=gnu99 -c $(INCLUDES) $(CFLAGS) -MMD -MF $(ODIR)/$*.dep -MT '$(ODIR)/$*.o' $< -o $@ $(LOGGING)


check_path:
	@if [ ! -d $(OUT_PATH) ]; then mkdir -p $(OUT_PATH); fi
	@if [ ! -d $(BUILD_PATH) ]; then mkdir -p $(BUILD_PATH); fi
	@echo $(OBJS)

install:
	@if [ -d /media/root/rootfs/opt/vision_apps ]; then cp -rpf $(OUT_PATH)/$(BIN) /media/root/rootfs/opt/vision_apps ; fi
	sync

##############################################################
# clean rules
.IGNORE: clean
clean: 
	-rm -rf $(BUILD_PATH)
	-rm -rf $(OUT_PATH)
##############################################################


  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值