CC = clang
CXX = clang++
ARCH := $( shell uname -m)
OS := $( shell uname -o)
BASEDIR = ../..
PHONELIBS = ../../phonelibs
WARN_FLAGS = -Werror= implicit-function-declaration \
-Werror= incompatible-pointer-types \
-Werror= int-conversion \
-Werror= return -type \
-Werror= format-extra-args
CFLAGS = -std= gnu11 -g -fPIC -I../ -I../../ -O2 $( WARN_FLAGS) -Wall
CXXFLAGS = -std= c++11 -g -fPIC -I../ -I../../ -O2 $( WARN_FLAGS) -Wall
ZMQ_LIBS = -l:libczmq.a -l:libzmq.a
i f e q ( $( ARCH ) , a a r c h 6 4 )
CFLAGS += -mcpu= cortex-a57
CXXFLAGS += -mcpu= cortex-a57
ZMQ_LIBS += -lgnustl_shared
e n d i f
JSON_FLAGS = -I$( PHONELIBS) /json/src
JSON11_FLAGS = -I$( PHONELIBS) /json11
EXTRA_LIBS = -lpthread
i f e q ( $( ARCH ) , x 8 6 _ 6 4 )
ZMQ_FLAGS = -I$( BASEDIR) /phonelibs/zmq/x64/include
ZMQ_LIBS = -L$( BASEDIR) /external/zmq/lib \
-l:libczmq.a -l:libzmq.a
ZMQ_SHARED_LIBS = -L$( BASEDIR) /external/zmq/lib \
-lczmq -lzmq
e l s e
EXTRA_LIBS += -llog -luuid
e n d i f
.PHONY : all
all : ubloxd paramsd
i n c l u d e . . / c o m m o n / c e r e a l . m k
LOC_OBJS = locationd_yawrate.o params_learner.o paramsd.o \
../common/swaglog.o \
../common/params.o \
../common/util.o \
$( PHONELIBS) /json11/json11.o \
$( PHONELIBS) /json/src/json.o \
$( CEREAL_OBJS)
LOC_DEPS := $( LOC_OBJS:.o= .d)
OBJS = ublox_msg.o \
ubloxd_main.o \
../common/swaglog.o \
../common/params.o \
../common/util.o \
$( PHONELIBS) /json/src/json.o \
$( CEREAL_OBJS)
DEPS := $( OBJS:.o= .d) ubloxd.d ubloxd_test.d
liblocationd.so : $( LOC_OBJS )
@echo " [ LINK ] $@ "
$( CXX) -shared -o '$@' $^ \
$( CEREAL_LIBS) \
$( ZMQ_SHARED_LIBS) \
$( EXTRA_LIBS)
paramsd : $( LOC_OBJS )
@echo " [ LINK ] $@ "
$( CXX) -fPIC -o '$@' $^ \
$( CEREAL_LIBS) \
$( ZMQ_LIBS) \
$( EXTRA_LIBS)
ubloxd : ubloxd .o $( OBJS )
@echo " [ LINK ] $@ "
$( CXX) -fPIC -o '$@' $^ \
$( CEREAL_LIBS) \
$( ZMQ_LIBS) \
$( EXTRA_LIBS)
ubloxd_test : ubloxd_test .o $( OBJS )
@echo " [ LINK ] $@ "
$( CXX) -fPIC -o '$@' $^ \
$( CEREAL_LIBS) \
$( ZMQ_LIBS) \
$( EXTRA_LIBS)
%.o : %.cc
@echo " [ CXX ] $@ "
$( CXX) $( CXXFLAGS) -MMD \
-Iinclude -I.. -I../.. \
$( CEREAL_CXXFLAGS) \
$( ZMQ_FLAGS) \
$( JSON11_FLAGS) \
$( JSON_FLAGS) \
-I../ \
-I../../ \
-c -o '$@' '$<'
%.o : %.c
@echo " [ CC ] $@ "
$( CC) $( CFLAGS) -MMD \
-Iinclude -I.. -I../.. \
$( CEREAL_CFLAGS) \
$( ZMQ_FLAGS) \
$( JSON_FLAGS) \
-c -o '$@' '$<'
.PHONY : clean
clean :
rm -f ubloxd paramsd liblocationd.so ubloxd.d ubloxd.o ubloxd_test ubloxd_test.o ubloxd_test.d $( OBJS) $( LOC_OBJS) $( DEPS)
- i n c l u d e $( DEPS )
- i n c l u d e $( LOC_DEPS )