Auto Build

本文深入探讨了AI音视频处理领域的最新技术,包括视频分割、语义识别、自动驾驶、AR、SLAM等关键应用。通过详细分析算法原理、实际案例和未来趋势,为读者提供了一个全面的技术指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

doit.mk


################################################
#                                                                                                           #
#                                         For Build Test                                         #
#                                                                                                          #
################################################


$(shell if [ ! -f .version ]; then echo 0001 > .version; cat .version; fi;)
BUILDNUM=$(shell cat .version)
$(shell echo `expr $(BUILDNUM) + 1` > .version)


$(shell if [ ! -d obj ]; then mkdir -p obj; fi;)
OBJDIR=obj


BRANCH=master
SRCNO=8888


ifeq ($(TARGET), exe)
T=$(TNAME)
else
T=$(TNAME).so
endif


vpath %.c $(INC)
vpath %.cpp $(INC)


OBJS+=version.o
TOBJS:=$(addprefix $(OBJDIR)/, $(OBJS))
OBJS:=$(TOBJS)


LDFLAGS=$(FLAGS) $(VOLDFLAGS) $(TLLDFLAGS)
DFLAGS+=-DMODULE_VERSION=\"$(VERSION)\" -DTARGET_CPUARCH=\"$(TCPU)$(TCPUV)\" -DMODULE_BRANCH=\"$(BRANCH)\" -DSOURCE_REVISIONNO=\"$(SRCNO)\" -DMODULE_BUILD=\"$(BUILDNUM)\" -DMODULE_NAME=\"$(T)\"
TFLAGS+=$(DFLAGS) $(FLAGS) 
CPPFLAGS+=$(VOCPPFLAGS) $(TFLAGS)
CFLAGS+=$(VOCFLAGS) $(TFLAGS) $(CCTFLAGS)


ifeq ($(TARGET), exe)
$(T):$(OBJS)
        @$(CC) $(LDFLAGS) -o $@ $^ $(addprefix -I, $(INC)) $(DLIBS) | sed '/DMODULE/d' | echo '$(CC) -o $@ $^ $(addprefix -I, $(INC)) $(DLIBS)'
$(OBJDIR)/%.o:%.c
        @$(CC) $(CFLAGS) -o $@ -c $< $(addprefix -I, $(INC)) | sed '/DMODULE/d' | echo '$(CC) -o $@ -c $< $(addprefix -I, $(INC))'
else
$(T):$(OBJS)
        @$(GG) -shared $(LDFLAGS) -o $@ $^ $(CCTCRTBEGIN) -Wl,--whole-archive $(VOSTCLIBS) -Wl,--no-whole-archive $(VOTLDEPS) $(DLIBS) | sed '/DMODULE/d' | echo '$(GG) -shared -o $@ $^ $(DLIBS)'
$(OBJDIR)/%.o:%.c
        @$(CC) $(CFLAGS) -shared -fPIC -o $@ -c $< $(addprefix -I, $(INC)) $(CCTINC) #| sed '/DMODULE/d' #| echo '$(CC) -shared -fPIC -o $@ -c $< $(addprefix -I, $(INC)) $(CCTINC)'
$(OBJDIR)/%.o:%.cpp
        @$(GG) $(CPPFLAGS) -shared -fPIC -o $@ -c $< $(addprefix -I, $(INC)) $(CCTINC) $(DLIBS) #| sed '/DMODULE/d' | echo '$(GG) -shared -fPIC -o $@ -c $< $(addprefix -I, $(INC)) $(CCTINC) $(DLIBS)'


endif
clean:
        -rm -rf $(OBJS) $(OBJDIR) $T


source.mk

# the whole source file
OBJS=ab.o


# the place where source files locate at
INC=./inc/ \
    ./src/


# include the doit.mk
include mk/doit.mk



version.c



#include <stdio.h>


#define __VERINFO MODULE_NAME " - " TARGET_CPUARCH " - " TARGETOS " - " MODULE_BRANCH " - Rev." SOURCE_REVISIONNO " - Ver " MODULE_VERSION "." MODULE_BUILD " - " __TIME__ " " __DATE__ "\n"


int ShowVersion(void)
{
        printf("voAbout> " __VERINFO);
}


toolchain.mk


# special macro definitions for building 
EEPREDEF=-DLINUX -D_LINUX


EEPRJ ?=
EENJ ?= froyo
EETT ?= v7
# control the version to release out
# available: eva(evaluation), rel(release)
EEVER=
ifeq ($(EEVER), eva)
EEPREDEF+=-D__EEVER_EVA__
endif


# for debug or not: yes for debug, any other for release
EEDBG?=ye




# SDK version 
EEVERSION:=3.0.0




# build number
EEBUILDNUM?=0000




# branch name
EEBRANCH?=master




# for detecting memory leak
EEDML=
ifeq ($(EEDML), yes)
EEPREDEF+=-DDMEMLEAK
endif


EEPREDEF+=-D__EETT_ARM__ -D__EENJ_FROYO__
TCROOTPATH:=/opt/myfroyo
GCCVER:=4.4.0
TCPATH:=$(TCROOTPATH)/prebuilt/linux-x86/toolchain/arm-eabi-$(GCCVER)
CCTPRE:=$(TCPATH)/bin/arm-eabi-
AS:=$(CCTPRE)as
AR:=$(CCTPRE)ar
NM:=$(CCTPRE)nm
CC:=$(CCTPRE)gcc
GG:=$(CCTPRE)g++
LD:=$(CCTPRE)ld
SIZE:=$(CCTPRE)size
STRIP:=$(CCTPRE)strip
RANLIB:=$(CCTPRE)ranlib
OBJCOPY:=$(CCTPRE)objcopy
OBJDUMP:=$(CCTPRE)objdump

READELF:=$(CCTPRE)readelf

STRINGS:=$(CCTPRE)strings


# target product dependcy
# available: dream, generic
EETP:=blaze
#EETP:=generic
CCTLIB:=$(TCROOTPATH)/out/target/product/$(EETP)/obj/lib
CCTINC:=-I$(TCROOTPATH)/system/core/include \
        -I$(TCROOTPATH)/hardware/libhardware/include \
        -I$(TCROOTPATH)/hardware/ril/include \
        -I$(TCROOTPATH)/hardware/libhardware_legacy/include \
        -I$(TCROOTPATH)/dalvik/libnativehelper/include \
        -I$(TCROOTPATH)/dalvik/libnativehelper/include/nativehelper \
        -I$(TCROOTPATH)/frameworks/base/include \
        -I$(TCROOTPATH)/frameworks/base/core/jni \
        -I$(TCROOTPATH)/frameworks/base/libs/audioflinger \
        -I$(TCROOTPATH)/external/skia/include \
        -I$(TCROOTPATH)/external/webkit/WebCore/bridge \
        -I$(TCROOTPATH)/external/webkit/WebCore/plugins \
        -I$(TCROOTPATH)/external/webkit/WebCore/platform/android \
        -I$(TCROOTPATH)/external/webkit/WebKit/android/plugins \
        -I$(TCROOTPATH)/out/target/product/$(EETP)/obj/include \
        -I$(TCROOTPATH)/bionic/libc/arch-arm/include \
        -I$(TCROOTPATH)/bionic/libc/include \
        -I$(TCROOTPATH)/bionic/libstdc++/include \
        -I$(TCROOTPATH)/bionic/libc/kernel/common \
        -I$(TCROOTPATH)/bionic/libc/kernel/arch-arm \
        -I$(TCROOTPATH)/bionic/libm/include \
        -I$(TCROOTPATH)/bionic/libm/include/arm \
        -I$(TCROOTPATH)/bionic/libthread_db/include \
        -I$(TCROOTPATH)/bionic/libm/arm \
        -I$(TCROOTPATH)/bionic/libm \
        -I$(TCROOTPATH)/frameworks/base/include/android_runtime


CCTCFLAGS:=-msoft-float -mthumb-interwork -fno-exceptions -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums -fmessage-length=0 -finline-functions -finline-limit=600 -fno-inline-functions-called-once -fgcse-after-reload -frerun-cse-after-loop -frename-registers -fstrict-aliasing -funswitch-loops
#-fwide-exec-charset=charset=UTF-32 


# for target exe
TELDFLAGS:=-nostdlib -Bdynamic -Wl,-T,$(TCROOTPATH)/build/core/armelf.x -Wl,-dynamic-linker,/system/bin/linker -Wl,--gc-sections -Wl,-z,nocopyreloc -Wl,--no-undefined -Wl,-rpath-link=$(CCTLIB) -L$(CCTLIB)


EETEDEPS:=$(CCTLIB)/crtbegin_dynamic.o $(CCTLIB)/crtend_android.o $(TCPATH)/lib/gcc/arm-eabi/$(GCCVER)/interwork/libgcc.a -lc -lm


# for target lib
TLLDFLAGS:=-nostdlib -Wl,-T,$(TCROOTPATH)/build/core/armelf.xsc -Wl,--gc-sections -Wl,-shared,-Bsymbolic -L$(CCTLIB) -Wl,--no-whole-archive -Wl,--no-undefined $(TCPATH)/lib/gcc/arm-eabi/$(GCCVER)/interwork/libgcc.a


EETLDEPS:=-lm -lc                        

ifeq ($(EETT), v4)
EECFLAGS:=-mtune=arm9tdmi -march=armv4t
EEASFLAGS:=-march=armv4t -mfpu=softfpa
endif


ifeq ($(EETT), v5)
EECFLAGS:=-march=armv5te
EEASFLAGS:=-march=armv5te -mfpu=vfp
endif


ifeq ($(EETT), v5x)
EECFLAGS:=-march=iwmmxt2 -mtune=iwmmxt2
EEASFLAGS:=-march=iwmmxt2 -mfpu=vfp
endif


ifeq ($(EETT), v6)
#EECFLAGS:=-march=armv6 -mtune=arm1136jf-s 
#EEASFLAGS:=-march=armv6
EECFLAGS:=-march=armv6j -mtune=arm1136jf-s -mfpu=vfp -mfloat-abi=softfp -mapcs -mlong-calls
EEASFLAGS:=-march=armv6j -mcpu=arm1136jf-s -mfpu=arm1136jf-s -mfloat-abi=softfp -mapcs-float -mapcs-reentrant
endif


#
# global link options
EELDFLAGS:=-Wl,-x,-X,--as-needed




ifeq ($(EETT), v7)
EECFLAGS+=-march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp
EEASFLAGS+=-march=armv7-a -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp
EELDFLAGS+=-Wl,--fix-cortex-a8
endif


#global compiling options for ARM target
ifneq ($(EETT), pc)
EEASFLAGS+=--strip-local-absolute -R
endif




ifeq ($(EEDBG), yes)
EECFLAGS+=-D_DEBUG -g
else
EECFLAGS+=-DNDEBUG -O3
endif


EECFLAGS+=$(EEPREDEF) $(EEMM) -Wall -fsigned-char -fomit-frame-pointer -fno-leading-underscore -fpic -fPIC -pipe -ftracer -fforce-addr -fno-bounds-check #-fopenmp #-fvisibility=hidden -fvisibility-inlines-hidden #-ftree-loop-linear -mthumb -nostdinc -dD -fprefetch-loop-arrays

ifneq ($(EETT), pc)
EECFLAGS+=$(CCTCFLAGS) $(CCTINC)
EECPPFLAGS:=-fno-rtti $(EECFLAGS)


ifeq ($(EEMT), exe)
EELDFLAGS+=$(TELDFLAGS)
endif


ifeq ($(EEMT), lib)
EELDFLAGS+=$(TLLDFLAGS)
endif
else
EECPPFLAGS:=$(EECFLAGS)
ifeq ($(EEMT), lib)
EELDFLAGS+=-shared
endif
endif


ifeq ($(EEDBG), yes)
#EELDFLAGS:=
endif


# where to place object files 
OBJDIR=obj


                                                                                                                                                                

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值