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.
		
		
		
		
			
				
					64 lines
				
				1.5 KiB
			
		
		
			
		
	
	
					64 lines
				
				1.5 KiB
			| 
											6 years ago
										 | CXX := clang++
 | ||
|  | CC := clang
 | ||
|  | 
 | ||
|  | BASEDIR = ../..
 | ||
|  | PHONELIBS = ../../phonelibs
 | ||
|  | 
 | ||
|  | CXXFLAGS := -g -O3 -fPIC -std=c++11 -Wall -Wextra -Wshadow -Weffc++ -Wstrict-aliasing -Wpedantic -Werror -MMD -I$(BASEDIR)/selfdrive
 | ||
|  | 
 | ||
|  | LDLIBS=-lm -lstdc++ -lrt -lpthread
 | ||
|  | 
 | ||
|  | UNAME_M := $(shell uname -m)
 | ||
|  | 
 | ||
|  | YAML_FLAGS = -I$(PHONELIBS)/yaml-cpp/include
 | ||
|  | YAML_LIB = $(abspath $(PHONELIBS)/yaml-cpp/lib/libyaml-cpp.a)
 | ||
|  | 
 | ||
|  | ifeq ($(UNAME_M),aarch64)
 | ||
|  | 	LDFLAGS += -llog -lgnustl_shared
 | ||
|  | 	ZMQ_LIBS = /usr/lib/libzmq.a
 | ||
|  | endif
 | ||
|  | ifeq ($(UNAME_M),x86_64)
 | ||
|  | 	ZMQ_FLAGS = -I$(BASEDIR)/phonelibs/zmq/x64/include
 | ||
|  | 	ZMQ_LIBS = $(abspath $(PHONELIBS)/zmq/x64/lib/libzmq.a)
 | ||
|  | 	YAML_DIR = $(PHONELIBS)/yaml-cpp/x64/lib/
 | ||
|  | 	YAML_LIB = $(abspath $(PHONELIBS)/yaml-cpp/x64/lib/libyaml-cpp.a)
 | ||
|  | endif
 | ||
|  | 
 | ||
|  | ifdef ASAN
 | ||
|  | 	CXXFLAGS += -fsanitize=address -fno-omit-frame-pointer
 | ||
|  |   LDFLAGS += -fsanitize=address
 | ||
|  | endif
 | ||
|  | 
 | ||
|  | CXXFLAGS += $(ZMQ_FLAGS) $(YAML_FLAGS)
 | ||
|  | 
 | ||
|  | OBJS := messaging.o impl_zmq.o
 | ||
|  | DEPS=$(OBJS:.o=.d)
 | ||
|  | 
 | ||
|  | .PRECIOUS: $(OBJS)
 | ||
|  | .PHONY: all clean
 | ||
|  | all: messaging.a messaging_pyx.so
 | ||
|  | 
 | ||
|  | demo: messaging.a demo.o
 | ||
|  | 	$(CC) $(LDFLAGS) $^ $(LDLIBS) -L. -l:messaging.a -o '$@'
 | ||
|  | 
 | ||
|  | messaging_pyx.so: messaging.a messaging_pyx_setup.py messaging_pyx.pyx messaging.pxd
 | ||
|  | 	python3 messaging_pyx_setup.py build_ext --inplace
 | ||
|  | 	rm -rf build
 | ||
|  | 	rm -f messaging_pyx.cpp
 | ||
|  | 
 | ||
|  | %.a: $(OBJS)
 | ||
|  | 	@echo "[ LINK ] $@"
 | ||
|  | 	mkdir -p libs; \
 | ||
|  | 		cd libs; \
 | ||
|  | 		ar -x $(ZMQ_LIBS); \
 | ||
|  | 		ar -x $(YAML_LIB);
 | ||
|  | 
 | ||
|  | 	ar rcsD '$@' $^ libs/*.o
 | ||
|  | 	rm -r libs
 | ||
|  | 
 | ||
|  | clean:
 | ||
|  | 	@echo "[ CLEAN ]"
 | ||
|  | 	rm -rf *.so *.a demo libs $(OBJS) $(DEPS)
 | ||
|  | 
 | ||
|  | -include $(DEPS)
 |