zhangzengfei
2023-09-04 e8e536d1cb52d2126c8c7ce2ba1c7a76f7208678
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
DIST := dist
CD := $(shell pwd)
INI_WRITER := $(CD)/inirw
DIST_DIR := $(CD)/$(DIST)
BIN_DIR := $(DIST_DIR)/bin
INI_FILE := $(DIST_DIR)/bin/manifest.ini
LOCAL_DIR := $(DIST_DIR)/local
ARCH_FILE := $(DIST_DIR)-$(shell date "+%Y%m%d-%H%M%S").zip
SUB_DIR=$(shell ls -l |grep -v sync- | grep -E 'service|-control|-gateway'| awk '{print $$9}' )
VERSION=1.0.1
PLAT_FORM := x86_64
 
ifdef arch 
PLAT_FORM=$(arch)
$(info "plat_form" $(PLAT_FORM))
endif
 
ifeq ($(MAKECMDGOALS),base)
    SUB_DIR := api-gateway \
    appcenter-service \
    camera-service \
    chanmanage-service \
    compTable-service \
    gb28181-service \
    log-service \
    push-service \
    realtime-service \
    scene-service \
    search-service \
    sysinfo-service \
    system-service \
    version-control
endif
 
ifeq ($(MAKECMDGOALS),agx)
PLAT_FORM=aarch64
endif
 
define submake
    $(MAKE) -C $(subst app/,,$@) MODULE_NAME=$(subst app/,,$@) OUTPUT_DIR=$(BIN_DIR) CONFIG_DIR=$(LOCAL_DIR) INI_SCRIPT=$(INI_WRITER) MANIFEST=$(INI_FILE) PLATFORM=$(PLAT_FORM)
endef
 
.PHONY: app/%
app/%:
    $(submake);
 
base:$(SUB_DIR)
 
agx:$(SUB_DIR)
 
all:$(SUB_DIR) ARCHIVE
 
$(SUB_DIR): ECHO
    $(submake)
 
ECHO:
    @echo $(SUB_DIR)
 
ARCHIVE:
    echo "$(VERSION)" > "$(DIST)/version.txt"
    zip -r -q -o "$(ARCH_FILE)" "$(DIST)/"
 
Test:
    echo $(BIN_DIR)
    echo $(LOCAL_DIR)
    echo $(ARCH_FILE)
 
clean:
     rm -rf $(DIST)/*
 
.PHONY : all clean