GNUmakefile 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. ROOT_DIR := $(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))
  2. ALL_TARGETS := all base check install preinstall package rpm clean tutorial example
  3. MAKE_FILE := Makefile
  4. DEFAULT_BUILD_DIR := build.cmake
  5. BUILD_DIR := $(shell if [ -f $(MAKE_FILE) ]; then echo "."; else echo $(DEFAULT_BUILD_DIR); fi)
  6. CMAKE3 := $(shell if which cmake3>/dev/null ; then echo cmake3; else echo cmake; fi;)
  7. WORKFLOW := $(shell if [ -f "workflow/workflow-config.cmake.in" ]; then echo "Found"; else echo "NotFound"; fi)
  8. .PHONY: $(ALL_TARGETS)
  9. all: base
  10. make -C $(BUILD_DIR) -f Makefile
  11. base:
  12. ifeq ("$(WORKFLOW)","Found")
  13. make -C workflow
  14. endif
  15. mkdir -p $(BUILD_DIR)
  16. ifeq ($(DEBUG),y)
  17. cd $(BUILD_DIR) && $(CMAKE3) -D CMAKE_BUILD_TYPE=Debug $(ROOT_DIR)
  18. else ifneq ("${INSTALL_PREFIX}install_prefix", "install_prefix")
  19. cd $(BUILD_DIR) && $(CMAKE3) -DCMAKE_INSTALL_PREFIX:STRING=${INSTALL_PREFIX} $(ROOT_DIR)
  20. else
  21. cd $(BUILD_DIR) && $(CMAKE3) $(ROOT_DIR)
  22. endif
  23. tutorial: all
  24. make -C tutorial
  25. check: all
  26. make -C test check
  27. install preinstall package: base
  28. mkdir -p $(BUILD_DIR)
  29. cd $(BUILD_DIR) && $(CMAKE3) $(ROOT_DIR)
  30. make -C $(BUILD_DIR) -f Makefile $@
  31. rpm: package
  32. ifneq ($(BUILD_DIR),.)
  33. mv $(BUILD_DIR)/*.rpm ./
  34. endif
  35. clean:
  36. ifeq ("$(WORKFLOW)","Found")
  37. -make -C workflow clean
  38. endif
  39. -make -C test clean
  40. -make -C tutorial clean
  41. -make -C benchmark clean
  42. rm -rf $(DEFAULT_BUILD_DIR)
  43. rm -rf _include
  44. rm -rf _lib
  45. rm -rf _bin
  46. rm -f SRCINFO SRCNUMVER SRCVERSION
  47. rm -f ./*.rpm
  48. rm -f src/message/*.pb.h src/message/*.pb.cc
  49. find . -name CMakeCache.txt | xargs rm -f
  50. find . -name Makefile | xargs rm -f
  51. find . -name "*.cmake" | xargs rm -f
  52. find . -name CMakeFiles | xargs rm -rf