75 lines
2.5 KiB
Makefile
75 lines
2.5 KiB
Makefile
# Licensed to the Apache Software Foundation (ASF) under one
|
|
# or more contributor license agreements. See the NOTICE file
|
|
# distributed with this work for additional information
|
|
# regarding copyright ownership. The ASF licenses this file
|
|
# to you under the Apache License, Version 2.0 (the
|
|
# "License"); you may not use this file except in compliance
|
|
# with the License. You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing,
|
|
# software distributed under the License is distributed on an
|
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
# KIND, either express or implied. See the License for the
|
|
# specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
DORIS_INC = ${CURDIR}/../../../thirdparty/installed/include
|
|
DORIS_LIB = ${CURDIR}/../../../thirdparty/installed/lib64
|
|
CXX = g++
|
|
CPPFLAGS += -I${DORIS_INC}
|
|
CXXFLAGS += -std=c++11
|
|
|
|
LDFLAGS += -I. -Wl,--start-group ${DORIS_LIB}/libglog.a ${DORIS_LIB}/libevent.a ${DORIS_LIB}/libz.a ${DORIS_LIB}/libgflags.a ${DORIS_LIB}/libbrpc.a ${DORIS_LIB}/libprotobuf.a ${DORIS_LIB}/libssl.a ${DORIS_LIB}/libcrypto.a ${DORIS_LIB}/libleveldb.a -Wl,--end-group -static-libstdc++ -static-libgcc -pthread -ldl -lc
|
|
|
|
PROTOC = ${CURDIR}/../../../thirdparty/installed/bin/protoc
|
|
|
|
|
|
PROTOS_PATH = ${CURDIR}/proto
|
|
|
|
vpath %.proto $(PROTOS_PATH)
|
|
|
|
all: system-check function_server_demo
|
|
|
|
function_server_demo: types.pb.o function_service.pb.o cpp_function_service_demo.o
|
|
$(CXX) $^ $(LDFLAGS) -o $@
|
|
|
|
.PRECIOUS: %.pb.cc
|
|
%.pb.cc: %.proto
|
|
$(PROTOC) -I $(PROTOS_PATH) --cpp_out=. $<
|
|
|
|
clean:
|
|
rm -f *.o *.pb.cc *.pb.h function_server_demo
|
|
|
|
PROTOC_CHECK_CMD = $(PROTOC) --version | grep -q libprotoc.3
|
|
HAS_PROTOC = $(shell $(PROTOC) > /dev/null && echo true || echo false)
|
|
ifeq ($(HAS_PROTOC),true)
|
|
HAS_VALID_PROTOC = $(shell $(PROTOC_CHECK_CMD) 2> /dev/null && echo true || echo false)
|
|
endif
|
|
|
|
SYSTEM_OK = false
|
|
ifeq ($(HAS_VALID_PROTOC),true)
|
|
SYSTEM_OK = true
|
|
endif
|
|
|
|
system-check:
|
|
ifneq ($(HAS_VALID_PROTOC),true)
|
|
@echo " DEPENDENCY ERROR"
|
|
@echo
|
|
@echo "You don't have protoc 3.14.0 installed in your path."
|
|
@echo "Please install Google protocol buffers 3.14.0 and its compiler."
|
|
@echo "You can find it here:"
|
|
@echo
|
|
@echo " https://github.com/protocolbuffers/protobuf/releases/tag/v3.14.0"
|
|
@echo
|
|
@echo "Here is what I get when trying to evaluate your version of protoc:"
|
|
@echo
|
|
-$(PROTOC) --version
|
|
@echo
|
|
@echo
|
|
endif
|
|
ifneq ($(SYSTEM_OK),true)
|
|
@false
|
|
endif
|