.PHONY: all clean # C&GO编译器 CC := gcc AR := ar DEFINS = -D_GNU_SOURCE GO := go GO_BUILD := $(GO) build 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)" target ?= armv7hf ifeq ($(target),armv7hf) GOOS := linux GOARCH := arm GOARM := 7 CC := arm-linux-gnueabihf-gcc AR := arm-linux-gnueabihf-ar endif # GO编译环境 SETGO_ENV = \ $(if $(GOOS),GOOS=$(GOOS)) \ $(if $(GOARCH),GOARCH=$(GOARCH)) \ $(if $(GOARM),GOARM=$(GOARM)) \ CC=$(CC) CGO_ENABLED=1 \ # 日期和时间 DATE := $(shell date +%Y%m%d_%H%M%S) # 编译的目标 all : camera_test.out hk_takephoto.out dh_takephoto.out air720u_4g.out rtu_linux_modules.out yfkj_sshd.out yfkj_ssh_client.out # 通用基础库 libswapi.a : $(MAKE) -C swapi target=$(target) $@ # 海康机器人 libhk_takephoto.a : $(MAKE) -C hk_takephoto target=$(target) $@ # "iRAYPLE" libdh_takephoto.a : ifeq ($(target),armv7hf) $(MAKE) -C dh_takephoto target=$(target) $@ else $(error Unsupported target: $(target), only armv7hf is supported) endif # "Air720U" libair720u.a : $(MAKE) -C air720u target=$(target) $@ # "Air530Z" libair530z.a : $(MAKE) -C air530z target=$(target) $@ ## "EC200U" libec200u.a : $(MAKE) -C ec200u target=$(target) $@ ## "YMODEM" libymodem.a : $(MAKE) -C ymodem target=$(target) $@ # 海康相机拍照测试 LIB1 := -Wl,-Bstatic -L./swapi -lswapi -L./hk_takephoto -lhk_takephoto ifeq ($(target),armv7hf) LIB1 += -Wl,-Bdynamic -lc -lm -ldl -lpthread -L$(PWD)/hk_takephoto/lib/armv7hf/. -lMvCameraControl else LIB1 += -Wl,-Bdynamic -lc -lm -ldl -lpthread -L$(PWD)/hk_takephoto/lib/x86_64/64 -lMvCameraControl endif hk_takephoto.out : libswapi.a libhk_takephoto.a ./tests/hk_takephoto/main.go mkdir -p ./build/hk_takephoto_test $(GO) mod tidy $(SETGO_ENV) CGO_LDFLAGS="$(LIB1)" $(GO_BUILD) $(GO_FLAGS) -o $@ ./tests/hk_takephoto/main.go @cp $@ ./build/hk_takephoto_test/$(basename $@)_$(DATE)$(suffix $@) rm -rf $@ # 测4G模块Air720U LIB2 := -Wl,-Bstatic -L./swapi -lswapi -L./air720u -lair720u -Wl,-Bdynamic -lc -lm -ldl -lpthread air720u_4g.out : libswapi.a libair720u.a ./tests/air720u/main.go mkdir -p ./build/air720u_test $(GO) mod tidy $(SETGO_ENV) CGO_LDFLAGS="$(LIB2)" $(GO_BUILD) $(GO_FLAGS) -o $@ ./tests/air720u/main.go @cp $@ ./build/air720u_test/$(basename $@)_$(DATE)$(suffix $@) rm -rf $@ # 测4G模块-EC200U LIB3 := -Wl,-Bstatic -L./swapi -lswapi -L./ec200u -lec200u -Wl,-Bdynamic -lc -lm -ldl -lpthread ec200u_4g.out : libswapi.a libec200u.a ./tests/ec200u/main.go mkdir -p ./build/ec200u_test $(GO) mod tidy $(SETGO_ENV) CGO_LDFLAGS="$(LIB3)" $(GO_BUILD) $(GO_FLAGS) -o $@ ./tests/ec200u/main.go @cp $@ ./build/ec200u_test/$(basename $@)_$(DATE)$(suffix $@) rm -rf $@ # 大华相机拍照测试 LIB4 := -Wl,-Bstatic -L./swapi -lswapi -L./dh_takephoto -ldh_takephoto ifeq ($(target),armv7hf) LIB4 += -Wl,-Bdynamic -lc -lm -ldl -lpthread -L$(PWD)/dh_takephoto/lib/armv7hf -lMVSDK -liImageProcessing -lImageConvert -llog4cpp -lMvLSCProcess 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 endif dh_takephoto.out : libswapi.a libdh_takephoto.a ./tests/dh_takephoto/main.go mkdir -p ./build/dh_takephoto_test $(GO) mod tidy $(SETGO_ENV) CGO_LDFLAGS="$(LIB4)" $(GO_BUILD) $(GO_FLAGS) -o $@ ./tests/dh_takephoto/main.go @cp $@ ./build/dh_takephoto_test/$(basename $@)_$(DATE)$(suffix $@) rm -rf $@ # 综合相机测试程序 LIB5 := -Wl,-Bstatic -L./swapi -lswapi -L./hk_takephoto -lhk_takephoto -L./dh_takephoto -ldh_takephoto ifeq ($(target),armv7hf) LIB5 += -Wl,-Bdynamic -lc -lm -ldl -lpthread -L$(PWD)/hk_takephoto/lib/armv7hf/. -lMvCameraControl LIB5 += -L$(PWD)/dh_takephoto/lib/armv7hf -lMVSDK -liImageProcessing -lImageConvert -llog4cpp -lMvLSCProcess 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 endif camera_test.out : libswapi.a libhk_takephoto.a libdh_takephoto.a ./tests/camera/main.go mkdir -p ./build/camera_test $(GO) mod tidy $(SETGO_ENV) CGO_LDFLAGS="$(LIB5)" $(GO_BUILD) $(GO_FLAGS) -o $@ ./tests/camera/main.go @cp $@ ./build/camera_test/$(basename $@)_$(DATE)$(suffix $@) rm -rf $@ # 远程运维工具程序 LIB6 = -Wl,-Bstatic -L./swapi -lswapi -L./air530z -lair530z -Wl,-Bdynamic -lc -lm -ldl -lpthread yfkj_sshd.out : libswapi.a libair530z.a ./sshd/server/server.go mkdir -p ./build $(GO) mod tidy $(SETGO_ENV) CGO_LDFLAGS="$(LIB6)" $(GO_BUILD) $(GO_FLAGS) -o $@ ./sshd/server/*.go @cp $@ ./build/$(basename $@)_$(DATE)$(suffix $@) yfkj_ssh_client.out : libswapi.a libair530z.a ./sshd/client/client.go mkdir -p ./build $(GO) mod tidy $(SETGO_ENV) CGO_LDFLAGS="$(LIB6)" $(GO_BUILD) $(GO_FLAGS) -o $@ ./sshd/client/*.go @cp $@ ./build/$(basename $@)_$(DATE)$(suffix $@) #rm -rf $@ # 综合应用测试程序 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 ifeq ($(target),armv7hf) LIBS += -Wl,-Bdynamic -lc -lm -ldl -lpthread -L$(PWD)/hk_takephoto/lib/armv7hf/. -lMvCameraControl LIBS += -L$(PWD)/dh_takephoto/lib/armv7hf -lMVSDK -liImageProcessing -lImageConvert -llog4cpp -lMvLSCProcess 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 else LIBS += -Wl,-Bdynamic -lc -lm -ldl -lpthread -L$(PWD)/hk_takephoto/lib/x86_64/64 -lMvCameraControl endif rtu_linux_modules.out : libswapi.a libhk_takephoto.a libdh_takephoto.a libair720u.a libair530z.a libec200u.a ./main.go mkdir -p ./build $(GO) mod tidy $(SETGO_ENV) CGO_LDFLAGS="$(LIBS)" $(GO_BUILD) $(GO_FLAGS) -o $@ ./main.go @cp $@ ./build/$(basename $@)_$(DATE)$(suffix $@) # 编译的清理 clean : make -C ./swapi clean make -C ./hk_takephoto clean make -C ./dh_takephoto clean make -C ./air720u clean make -C ./air530z clean make -C ./ec200u clean make -C ./ymodem clean rm -rf ./*.a ./*.out ./build