Makefile 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. .PHONY: all clean
  2. # C&GO编译器
  3. CC := gcc
  4. AR := ar
  5. DEFINS = -D_GNU_SOURCE
  6. GO := go
  7. GO_BUILD := $(GO) build
  8. GO_FLAGS := -ldflags "-s -w -X hnyfkj.com.cn/rtu/linux/baseapp.Version=1.0.0.1 -X hnyfkj.com.cn/rtu/linux/baseapp.BuildTime=$(shell date +%Y-%m-%dT%H:%M:%S)"
  9. target ?= armv7hf
  10. ifeq ($(target),armv7hf)
  11. GOOS := linux
  12. GOARCH := arm
  13. GOARM := 7
  14. CC := arm-linux-gnueabihf-gcc
  15. AR := arm-linux-gnueabihf-ar
  16. endif
  17. # GO编译环境
  18. SETGO_ENV = \
  19. $(if $(GOOS),GOOS=$(GOOS)) \
  20. $(if $(GOARCH),GOARCH=$(GOARCH)) \
  21. $(if $(GOARM),GOARM=$(GOARM)) \
  22. CC=$(CC) CGO_ENABLED=1 \
  23. # 日期和时间
  24. DATE := $(shell date +%Y%m%d_%H%M%S)
  25. # 编译的目标
  26. all : camera_test.out hk_takephoto.out dh_takephoto.out air720u_4g.out rtu_linux_modules.out yfkj_sshd.out yfkj_ssh_client.out
  27. # 通用基础库
  28. libswapi.a :
  29. $(MAKE) -C swapi target=$(target) $@
  30. # 海康机器人
  31. libhk_takephoto.a :
  32. $(MAKE) -C hk_takephoto target=$(target) $@
  33. # "iRAYPLE"
  34. libdh_takephoto.a :
  35. ifeq ($(target),armv7hf)
  36. $(MAKE) -C dh_takephoto target=$(target) $@
  37. else
  38. $(error Unsupported target: $(target), only armv7hf is supported)
  39. endif
  40. # "Air720U"
  41. libair720u.a :
  42. $(MAKE) -C air720u target=$(target) $@
  43. # "Air530Z"
  44. libair530z.a :
  45. $(MAKE) -C air530z target=$(target) $@
  46. ## "EC200U"
  47. libec200u.a :
  48. $(MAKE) -C ec200u target=$(target) $@
  49. ## "YMODEM"
  50. libymodem.a :
  51. $(MAKE) -C ymodem target=$(target) $@
  52. # 海康相机拍照测试
  53. LIB1 := -Wl,-Bstatic -L./swapi -lswapi -L./hk_takephoto -lhk_takephoto
  54. ifeq ($(target),armv7hf)
  55. LIB1 += -Wl,-Bdynamic -lc -lm -ldl -lpthread -L$(PWD)/hk_takephoto/lib/armv7hf/. -lMvCameraControl
  56. else
  57. LIB1 += -Wl,-Bdynamic -lc -lm -ldl -lpthread -L$(PWD)/hk_takephoto/lib/x86_64/64 -lMvCameraControl
  58. endif
  59. hk_takephoto.out : libswapi.a libhk_takephoto.a ./tests/hk_takephoto/main.go
  60. mkdir -p ./build/hk_takephoto_test
  61. $(GO) mod tidy
  62. $(SETGO_ENV) CGO_LDFLAGS="$(LIB1)" $(GO_BUILD) $(GO_FLAGS) -o $@ ./tests/hk_takephoto/main.go
  63. @cp $@ ./build/hk_takephoto_test/$(basename $@)_$(DATE)$(suffix $@)
  64. rm -rf $@
  65. # 测4G模块Air720U
  66. LIB2 := -Wl,-Bstatic -L./swapi -lswapi -L./air720u -lair720u -Wl,-Bdynamic -lc -lm -ldl -lpthread
  67. air720u_4g.out : libswapi.a libair720u.a ./tests/air720u/main.go
  68. mkdir -p ./build/air720u_test
  69. $(GO) mod tidy
  70. $(SETGO_ENV) CGO_LDFLAGS="$(LIB2)" $(GO_BUILD) $(GO_FLAGS) -o $@ ./tests/air720u/main.go
  71. @cp $@ ./build/air720u_test/$(basename $@)_$(DATE)$(suffix $@)
  72. rm -rf $@
  73. # 测4G模块-EC200U
  74. LIB3 := -Wl,-Bstatic -L./swapi -lswapi -L./ec200u -lec200u -Wl,-Bdynamic -lc -lm -ldl -lpthread
  75. ec200u_4g.out : libswapi.a libec200u.a ./tests/ec200u/main.go
  76. mkdir -p ./build/ec200u_test
  77. $(GO) mod tidy
  78. $(SETGO_ENV) CGO_LDFLAGS="$(LIB3)" $(GO_BUILD) $(GO_FLAGS) -o $@ ./tests/ec200u/main.go
  79. @cp $@ ./build/ec200u_test/$(basename $@)_$(DATE)$(suffix $@)
  80. rm -rf $@
  81. # 大华相机拍照测试
  82. LIB4 := -Wl,-Bstatic -L./swapi -lswapi -L./dh_takephoto -ldh_takephoto
  83. ifeq ($(target),armv7hf)
  84. LIB4 += -Wl,-Bdynamic -lc -lm -ldl -lpthread -L$(PWD)/dh_takephoto/lib/armv7hf -lMVSDK -liImageProcessing -lImageConvert -llog4cpp -lMvLSCProcess
  85. LIB4 += -L$(PWD)/dh_takephoto/lib/armv7hf/GenICam/bin -lGCBase_gcc483_v3_0 -lGenApi_gcc483_v3_0 -lLog_gcc483_v3_0 -llog4cpp_gcc483_v3_0 -lMathParser_gcc483_v3_0 -lNodeMapData_gcc483_v3_0 -lXmlParser_gcc483_v3_0
  86. endif
  87. dh_takephoto.out : libswapi.a libdh_takephoto.a ./tests/dh_takephoto/main.go
  88. mkdir -p ./build/dh_takephoto_test
  89. $(GO) mod tidy
  90. $(SETGO_ENV) CGO_LDFLAGS="$(LIB4)" $(GO_BUILD) $(GO_FLAGS) -o $@ ./tests/dh_takephoto/main.go
  91. @cp $@ ./build/dh_takephoto_test/$(basename $@)_$(DATE)$(suffix $@)
  92. rm -rf $@
  93. # 综合相机测试程序
  94. LIB5 := -Wl,-Bstatic -L./swapi -lswapi -L./hk_takephoto -lhk_takephoto -L./dh_takephoto -ldh_takephoto
  95. ifeq ($(target),armv7hf)
  96. LIB5 += -Wl,-Bdynamic -lc -lm -ldl -lpthread -L$(PWD)/hk_takephoto/lib/armv7hf/. -lMvCameraControl
  97. LIB5 += -L$(PWD)/dh_takephoto/lib/armv7hf -lMVSDK -liImageProcessing -lImageConvert -llog4cpp -lMvLSCProcess
  98. LIB5 += -L$(PWD)/dh_takephoto/lib/armv7hf/GenICam/bin -lGCBase_gcc483_v3_0 -lGenApi_gcc483_v3_0 -lLog_gcc483_v3_0 -llog4cpp_gcc483_v3_0 -lMathParser_gcc483_v3_0 -lNodeMapData_gcc483_v3_0 -lXmlParser_gcc483_v3_0
  99. endif
  100. camera_test.out : libswapi.a libhk_takephoto.a libdh_takephoto.a ./tests/camera/main.go
  101. mkdir -p ./build/camera_test
  102. $(GO) mod tidy
  103. $(SETGO_ENV) CGO_LDFLAGS="$(LIB5)" $(GO_BUILD) $(GO_FLAGS) -o $@ ./tests/camera/main.go
  104. @cp $@ ./build/camera_test/$(basename $@)_$(DATE)$(suffix $@)
  105. rm -rf $@
  106. # 远程运维工具程序
  107. LIB6 = -Wl,-Bstatic -L./swapi -lswapi -L./air530z -lair530z -Wl,-Bdynamic -lc -lm -ldl -lpthread
  108. yfkj_sshd.out : libswapi.a libair530z.a ./sshd/server/server.go
  109. mkdir -p ./build
  110. $(GO) mod tidy
  111. $(SETGO_ENV) CGO_LDFLAGS="$(LIB6)" $(GO_BUILD) $(GO_FLAGS) -o $@ ./sshd/server/*.go
  112. @cp $@ ./build/$(basename $@)_$(DATE)$(suffix $@)
  113. yfkj_ssh_client.out : libswapi.a libair530z.a ./sshd/client/client.go
  114. mkdir -p ./build
  115. $(GO) mod tidy
  116. $(SETGO_ENV) CGO_LDFLAGS="$(LIB6)" $(GO_BUILD) $(GO_FLAGS) -o $@ ./sshd/client/*.go
  117. @cp $@ ./build/$(basename $@)_$(DATE)$(suffix $@)
  118. rm -rf $@
  119. # 综合应用测试程序
  120. LIBS := -Wl,-Bstatic -L./swapi -lswapi -L./hk_takephoto -lhk_takephoto -L./dh_takephoto -ldh_takephoto -L./air720u -lair720u -L./air530z -lair530z -L./ec200u -lec200u
  121. ifeq ($(target),armv7hf)
  122. LIBS += -Wl,-Bdynamic -lc -lm -ldl -lpthread -L$(PWD)/hk_takephoto/lib/armv7hf/. -lMvCameraControl
  123. LIBS += -L$(PWD)/dh_takephoto/lib/armv7hf -lMVSDK -liImageProcessing -lImageConvert -llog4cpp -lMvLSCProcess
  124. LIBS += -L$(PWD)/dh_takephoto/lib/armv7hf/GenICam/bin -lGCBase_gcc483_v3_0 -lGenApi_gcc483_v3_0 -lLog_gcc483_v3_0 -llog4cpp_gcc483_v3_0 -lMathParser_gcc483_v3_0 -lNodeMapData_gcc483_v3_0 -lXmlParser_gcc483_v3_0
  125. else
  126. LIBS += -Wl,-Bdynamic -lc -lm -ldl -lpthread -L$(PWD)/hk_takephoto/lib/x86_64/64 -lMvCameraControl
  127. endif
  128. rtu_linux_modules.out : libswapi.a libhk_takephoto.a libdh_takephoto.a libair720u.a libair530z.a libec200u.a ./main.go
  129. mkdir -p ./build
  130. $(GO) mod tidy
  131. $(SETGO_ENV) CGO_LDFLAGS="$(LIBS)" $(GO_BUILD) $(GO_FLAGS) -o $@ ./main.go
  132. @cp $@ ./build/$(basename $@)_$(DATE)$(suffix $@)
  133. # 编译的清理
  134. clean :
  135. make -C ./swapi clean
  136. make -C ./hk_takephoto clean
  137. make -C ./dh_takephoto clean
  138. make -C ./air720u clean
  139. make -C ./air530z clean
  140. make -C ./ec200u clean
  141. make -C ./ymodem clean
  142. rm -rf ./*.a ./*.out ./build