2017-08-29 22:04:58 +08:00
|
|
|
INSTALL_FOLDER=$(CURDIR)/Util/Install
|
|
|
|
PYTHON_CLIENT_FOLDER=$(CURDIR)/Util/PythonClient
|
|
|
|
BASE_BUILD_FOLDER=$(CURDIR)/Util/Build/carlaserver-build
|
|
|
|
MY_CMAKE_FOLDER=$(CURDIR)/Util/cmake
|
2017-07-26 22:04:39 +08:00
|
|
|
MY_CMAKE_FLAGS=-B"$(BUILD_FOLDER)" -DCMAKE_INSTALL_PREFIX="$(INSTALL_FOLDER)"
|
2017-04-05 16:25:24 +08:00
|
|
|
|
2017-07-26 22:04:39 +08:00
|
|
|
ifeq ($(OS),Windows_NT)
|
|
|
|
BUILD_RULE=build_windows
|
2017-08-29 22:04:58 +08:00
|
|
|
PROTOC_COMPILE=cmd.exe /k "cd Util & call Protoc.bat & exit"
|
|
|
|
PROTOC_CLEAN=cmd.exe /k "cd Util & call Protoc.bat --clean & exit"
|
2017-07-26 22:04:39 +08:00
|
|
|
else
|
|
|
|
BUILD_RULE=build_linux
|
2017-08-29 22:04:58 +08:00
|
|
|
PROTOC_COMPILE=./Util/Protoc.sh
|
|
|
|
PROTOC_CLEAN=./Util/Protoc.sh --clean
|
2017-07-26 22:04:39 +08:00
|
|
|
endif
|
|
|
|
|
|
|
|
default: release
|
|
|
|
|
|
|
|
### Build ######################################################################
|
|
|
|
|
|
|
|
debug: BUILD_FOLDER=$(BASE_BUILD_FOLDER)/debug
|
|
|
|
debug: MY_CMAKE_FLAGS+=-DCMAKE_BUILD_TYPE=Debug
|
|
|
|
debug: $(BUILD_RULE)
|
|
|
|
|
|
|
|
release: BUILD_FOLDER=$(BASE_BUILD_FOLDER)/release
|
|
|
|
release: MY_CMAKE_FLAGS+=-DCMAKE_BUILD_TYPE=Release
|
|
|
|
release: $(BUILD_RULE)
|
|
|
|
|
|
|
|
build_linux: MY_CMAKE_FLAGS+=-G "Ninja"
|
|
|
|
build_linux: call_cmake
|
|
|
|
cd $(BUILD_FOLDER) && ninja && ninja install
|
|
|
|
|
|
|
|
build_windows: MY_CMAKE_FLAGS+=-G "NMake Makefiles"
|
|
|
|
build_windows: call_cmake
|
|
|
|
cd $(BUILD_FOLDER) && nmake && nmake install
|
|
|
|
|
|
|
|
vsproject: BUILD_FOLDER=$(BASE_BUILD_FOLDER)/visualstudio
|
|
|
|
vsproject: MY_CMAKE_FLAGS+=-DCMAKE_BUILD_TYPE=Debug
|
|
|
|
vsproject: MY_CMAKE_FLAGS+=-G "Visual Studio 14 2015 Win64"
|
|
|
|
vsproject: call_cmake
|
|
|
|
|
|
|
|
call_cmake: protobuf
|
|
|
|
mkdir -p $(BUILD_FOLDER)
|
|
|
|
cd $(BUILD_FOLDER) && cmake $(MY_CMAKE_FLAGS) "$(MY_CMAKE_FOLDER)"
|
|
|
|
|
|
|
|
protobuf:
|
2017-08-29 22:04:58 +08:00
|
|
|
$(PROTOC_COMPILE)
|
2017-07-26 22:04:39 +08:00
|
|
|
|
|
|
|
### Docs #######################################################################
|
|
|
|
|
|
|
|
docs:
|
|
|
|
doxygen
|
|
|
|
@echo "Documentation index at ./Doxygen/html/index.html"
|
|
|
|
|
|
|
|
### Clean ######################################################################
|
2017-06-01 17:57:34 +08:00
|
|
|
|
2017-04-05 16:25:24 +08:00
|
|
|
clean:
|
2017-07-26 22:04:39 +08:00
|
|
|
rm -Rf $(BASE_BUILD_FOLDER) $(INSTALL_FOLDER) Doxygen
|
2017-08-29 22:04:58 +08:00
|
|
|
$(PROTOC_CLEAN)
|
2017-07-26 22:04:39 +08:00
|
|
|
|
|
|
|
### Test #######################################################################
|
|
|
|
|
|
|
|
check: debug launch_test_clients run_test_debug kill_test_clients
|
|
|
|
|
|
|
|
check_release: release launch_test_clients run_test_release kill_test_clients
|
|
|
|
|
|
|
|
run_test_debug:
|
2017-09-14 21:02:31 +08:00
|
|
|
@-LD_LIBRARY_PATH=$(INSTALL_FOLDER)/shared $(INSTALL_FOLDER)/bin/test_carlaserverd --gtest_shuffle $(GTEST_ARGS)
|
2017-07-26 22:04:39 +08:00
|
|
|
|
|
|
|
run_test_release:
|
2017-09-14 21:02:31 +08:00
|
|
|
@-LD_LIBRARY_PATH=$(INSTALL_FOLDER)/shared $(INSTALL_FOLDER)/bin/test_carlaserver --gtest_shuffle $(GTEST_ARGS)
|
2017-07-26 22:04:39 +08:00
|
|
|
|
|
|
|
launch_test_clients:
|
|
|
|
@echo "Launch echo_client.py"
|
|
|
|
@python $(PYTHON_CLIENT_FOLDER)/echo_client.py -p 4000 & echo $$! > echo_client.pid
|
|
|
|
@echo "Launch carla_client.py"
|
|
|
|
@python $(PYTHON_CLIENT_FOLDER)/carla_client.py -p 2000 & echo $$! > carla_client.pid
|
|
|
|
|
|
|
|
kill_test_clients:
|
|
|
|
@echo "Kill echo_client.py"
|
|
|
|
@kill `cat echo_client.pid` && rm echo_client.pid
|
|
|
|
@echo "Kill carla_client.py"
|
|
|
|
@kill `cat carla_client.pid` && rm carla_client.pid
|