You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
227 lines
5.9 KiB
227 lines
5.9 KiB
CC = clang
|
|
CXX = clang++
|
|
|
|
BASEDIR = ../..
|
|
EXTERNAL = ../../external
|
|
PHONELIBS = ../../phonelibs
|
|
|
|
WARN_FLAGS = -Werror=implicit-function-declaration \
|
|
-Werror=incompatible-pointer-types \
|
|
-Werror=int-conversion \
|
|
-Werror=return-type \
|
|
-Werror=format-extra-args \
|
|
-Wno-deprecated-declarations
|
|
|
|
CFLAGS = -std=gnu11 -fPIC -O2 $(WARN_FLAGS)
|
|
CXXFLAGS = -std=c++14 -fPIC -O2 $(WARN_FLAGS)
|
|
|
|
#ifneq ($(RELEASE),1)
|
|
#CFLAGS += -g
|
|
#CXXFLAGS += -g
|
|
#endif
|
|
|
|
JSON_FLAGS = -I$(PHONELIBS)/json/src
|
|
JSON11_FLAGS = -I$(PHONELIBS)/json11/
|
|
EIGEN_FLAGS = -I$(PHONELIBS)/eigen
|
|
|
|
UNAME_M := $(shell uname -m)
|
|
UNAME_S := $(shell uname -s)
|
|
|
|
ifeq ($(UNAME_M),x86_64)
|
|
|
|
ifeq ($(UNAME_S),Darwin)
|
|
LIBYUV_FLAGS = -I$(PHONELIBS)/libyuv/include
|
|
LIBYUV_LIBS = $(PHONELIBS)/libyuv/mac/lib/libyuv.a
|
|
|
|
ZMQ_FLAGS = -I$(EXTERNAL)/zmq/include
|
|
ZMQ_LIBS = $(PHONELIBS)/zmq/mac/lib/libczmq.a \
|
|
$(PHONELIBS)/zmq/mac/lib/libzmq.a
|
|
|
|
OPENCL_LIBS = -framework OpenCL
|
|
else
|
|
LIBYUV_FLAGS = -I$(PHONELIBS)/libyuv/x64/include
|
|
LIBYUV_LIBS = $(PHONELIBS)/libyuv/x64/lib/libyuv.a
|
|
|
|
ZMQ_FLAGS = -I$(EXTERNAL)/zmq/include
|
|
ZMQ_LIBS = -L$(EXTERNAL)/zmq/lib \
|
|
-l:libczmq.a -l:libzmq.a
|
|
|
|
OPENCL_LIBS = -lOpenCL
|
|
endif
|
|
|
|
CURL_FLAGS = -I/usr/include/curl
|
|
CURL_LIBS = -lcurl -lz
|
|
|
|
SSL_FLAGS = -I/usr/include/openssl/
|
|
SSL_LIBS = -lssl -lcrypto
|
|
|
|
OPENCV_FLAGS =
|
|
OPENCV_LIBS = -lopencv_video \
|
|
-lopencv_imgproc \
|
|
-lopencv_core
|
|
OTHER_LIBS = -lz -lm -lpthread
|
|
|
|
PLATFORM_OBJS = camera_fake.o \
|
|
../common/visionbuf_cl.o
|
|
|
|
CFLAGS += -D_GNU_SOURCE \
|
|
-DCLU_NO_CACHE
|
|
else
|
|
# assume phone
|
|
|
|
LIBYUV_FLAGS = -I$(PHONELIBS)/libyuv/include
|
|
LIBYUV_LIBS = $(PHONELIBS)/libyuv/lib/libyuv.a
|
|
|
|
ZMQ_FLAGS = -I$(PHONELIBS)/zmq/aarch64/include
|
|
ZMQ_LIBS = -L$(PHONELIBS)/zmq/aarch64/lib \
|
|
-l:libczmq.a -l:libzmq.a \
|
|
-lgnustl_shared
|
|
|
|
CURL_FLAGS = -I$(PHONELIBS)/curl/include
|
|
CURL_LIBS = $(PHONELIBS)/curl/lib/libcurl.a \
|
|
$(PHONELIBS)/zlib/lib/libz.a
|
|
|
|
SSL_FLAGS = -I$(PHONELIBS)/boringssl/include
|
|
SSL_LIBS = $(PHONELIBS)/boringssl/lib/libssl_static.a \
|
|
$(PHONELIBS)/boringssl/lib/libcrypto_static.a
|
|
|
|
OPENCL_FLAGS = -I$(PHONELIBS)/opencl/include
|
|
OPENCL_LIBS = -lgsl -lCB -lOpenCL
|
|
|
|
OPENCV_FLAGS = -I/usr/local/sdk/native/jni/include
|
|
OPENCV_LIBS = -L/usr/local/sdk/native/libs \
|
|
-l:libopencv_video.a \
|
|
-l:libopencv_imgproc.a \
|
|
-l:libopencv_core.a
|
|
|
|
OPENGL_LIBS = -lGLESv3 -lEGL
|
|
|
|
SNPE_FLAGS = -I$(PHONELIBS)/snpe/include/
|
|
SNPE_LIBS = -L$(PHONELIBS)/snpe/lib -lSNPE -lsymphony-cpu -lsymphonypower
|
|
|
|
OTHER_LIBS = -lz -lcutils -lm -llog -lui -ladreno_utils
|
|
|
|
PLATFORM_OBJS = camera_qcom.o \
|
|
../common/visionbuf_ion.o
|
|
|
|
CFLAGS += -DQCOM
|
|
CXXFLAGS += -DQCOM
|
|
endif
|
|
|
|
OBJS = visiond.o
|
|
OUTPUT = visiond
|
|
|
|
.PHONY: all
|
|
all: $(OUTPUT)
|
|
|
|
include ../common/cereal.mk
|
|
|
|
OBJS += $(PLATFORM_OBJS) \
|
|
../common/swaglog.o \
|
|
../common/ipc.o \
|
|
../common/visionipc.o \
|
|
../common/visionimg.o \
|
|
../common/util.o \
|
|
../common/params.o \
|
|
../common/efd.o \
|
|
../common/buffering.o \
|
|
transform.o \
|
|
loadyuv.o \
|
|
commonmodel.o \
|
|
snpemodel.o \
|
|
monitoring.o \
|
|
model.o \
|
|
clutil.o \
|
|
$(PHONELIBS)/json/src/json.o \
|
|
$(PHONELIBS)/json11/json11.o \
|
|
$(CEREAL_OBJS)
|
|
|
|
#MODEL_DATA = ../../models/driving_bigmodel.dlc ../../models/monitoring_model.dlc
|
|
MODEL_DATA = ../../models/driving_model.dlc ../../models/monitoring_model.dlc
|
|
MODEL_OBJS = $(MODEL_DATA:.dlc=.o)
|
|
OBJS += $(MODEL_OBJS)
|
|
|
|
ifeq ($(RELEASE),1)
|
|
CFLAGS += -DCLU_NO_SRC
|
|
CXXFLAGS += -DCLU_NO_SRC
|
|
CLCACHE_FILES = $(wildcard /tmp/clcache/*.clb)
|
|
CLCACHE_OBJS += $(CLCACHE_FILES:.clb=.o)
|
|
OBJS += $(CLCACHE_OBJS)
|
|
|
|
clutil.o: clcache_bins.h
|
|
clcache_bins.h: $(CLCACHE_FILES) /tmp/clcache/index.cli
|
|
rm -f '$@'
|
|
for hash in $(basename $(notdir $(CLCACHE_FILES))) ; do \
|
|
echo "extern const uint8_t clb_$$hash[] asm(\"_binary_$${hash}_clb_start\");" ; \
|
|
echo "extern const uint8_t clb_$${hash}_end[] asm(\"_binary_$${hash}_clb_end\");" ; \
|
|
done >> '$@'
|
|
echo "static const CLUProgramIndex clu_index[] = {" >> '$@'
|
|
while read idx_hash code_hash; do \
|
|
echo "{ 0x$$idx_hash, clb_$${code_hash}, clb_$${code_hash}_end }," ; \
|
|
done < /tmp/clcache/index.cli >> '$@'
|
|
echo "};" >> '$@'
|
|
|
|
$(CLCACHE_OBJS): %.o: %.clb
|
|
@echo "[ bin2o ] $@"
|
|
cd '$(dir $<)' && ld -r -b binary '$(notdir $<)' -o '$(abspath $@)'
|
|
|
|
LDFLAGS += -s
|
|
endif
|
|
|
|
DEPS := $(OBJS:.o=.d)
|
|
|
|
$(OUTPUT): $(OBJS)
|
|
@echo "[ LINK ] $@"
|
|
$(CXX) -fPIC -o '$@' $^ \
|
|
$(LDFLAGS) \
|
|
$(LIBYUV_LIBS) \
|
|
$(OPENCV_LIBS) \
|
|
$(OPENGL_LIBS) \
|
|
$(CEREAL_LIBS) \
|
|
$(ZMQ_LIBS) \
|
|
-L/usr/lib \
|
|
-L/system/vendor/lib64 \
|
|
$(OPENCL_LIBS) \
|
|
$(CURL_LIBS) \
|
|
$(SSL_LIBS) \
|
|
$(SNPE_LIBS) \
|
|
$(OTHER_LIBS)
|
|
|
|
$(MODEL_OBJS): %.o: %.dlc
|
|
@echo "[ bin2o ] $@"
|
|
cd '$(dir $<)' && ld -r -b binary '$(notdir $<)' -o '$(abspath $@)'
|
|
|
|
%.o: %.cc
|
|
@echo "[ CXX ] $@"
|
|
$(CXX) $(CXXFLAGS) -MMD \
|
|
-Iinclude -I.. -I../.. \
|
|
$(OPENCV_FLAGS) $(EIGEN_FLAGS) \
|
|
$(ZMQ_FLAGS) \
|
|
$(CEREAL_CXXFLAGS) \
|
|
$(OPENCL_FLAGS) \
|
|
$(LIBYUV_FLAGS) \
|
|
$(SNPE_FLAGS) \
|
|
$(JSON_FLAGS) \
|
|
$(JSON11_FLAGS) $(CURL_FLAGS) \
|
|
-I$(PHONELIBS)/libgralloc/include \
|
|
-I$(PHONELIBS)/linux/include \
|
|
-c -o '$@' '$<'
|
|
|
|
%.o: %.c
|
|
@echo "[ CC ] $@"
|
|
$(CC) $(CFLAGS) -MMD \
|
|
-Iinclude -I.. -I../.. \
|
|
$(ZMQ_FLAGS) \
|
|
$(CEREAL_CFLAGS) \
|
|
$(OPENCL_FLAGS) \
|
|
$(LIBYUV_FLAGS) \
|
|
$(JSON_FLAGS) \
|
|
-I$(PHONELIBS)/libgralloc/include \
|
|
-I$(PHONELIBS)/linux/include \
|
|
-c -o '$@' '$<'
|
|
|
|
.PHONY: clean
|
|
clean:
|
|
rm -f visiond $(OBJS) $(DEPS)
|
|
|
|
-include $(DEPS)
|
|
|