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.
52 lines
1008 B
52 lines
1008 B
PWD := $(shell pwd)
|
|
|
|
SRCS := log.capnp car.capnp
|
|
|
|
GENS := gen/cpp/car.capnp.c++ gen/cpp/log.capnp.c++
|
|
|
|
UNAME_M ?= $(shell uname -m)
|
|
|
|
# only generate C++ for docker tests
|
|
ifneq ($(OPTEST),1)
|
|
GENS += gen/c/car.capnp.c gen/c/log.capnp.c gen/c/c++.capnp.h gen/c/java.capnp.h
|
|
|
|
# Dont build java on the phone...
|
|
ifeq ($(UNAME_M),x86_64)
|
|
GENS += gen/java/Car.java gen/java/Log.java
|
|
endif
|
|
|
|
endif
|
|
|
|
ifeq ($(UNAME_M),aarch64)
|
|
CAPNPC=PATH=$(PWD)/../phonelibs/capnp-cpp/aarch64/bin/:$$PATH capnpc
|
|
else
|
|
CAPNPC=capnpc
|
|
endif
|
|
|
|
.PHONY: all
|
|
all: $(GENS)
|
|
|
|
.PHONY: clean
|
|
clean:
|
|
rm -rf gen
|
|
|
|
gen/c/%.capnp.c: %.capnp
|
|
@echo "[ CAPNPC C ] $@"
|
|
mkdir -p gen/c/
|
|
$(CAPNPC) '$<' -o c:gen/c/
|
|
|
|
gen/cpp/%.capnp.c++: %.capnp
|
|
@echo "[ CAPNPC C++ ] $@"
|
|
mkdir -p gen/cpp/
|
|
$(CAPNPC) '$<' -o c++:gen/cpp/
|
|
|
|
gen/java/Car.java gen/java/Log.java: $(SRCS)
|
|
@echo "[ CAPNPC java ] $@"
|
|
mkdir -p gen/java/
|
|
$(CAPNPC) $^ -o java:gen/java
|
|
|
|
# c-capnproto needs some empty headers
|
|
gen/c/c++.capnp.h gen/c/java.capnp.h:
|
|
mkdir -p gen/c/
|
|
touch '$@'
|
|
|
|
|