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)
							 |