-
Notifications
You must be signed in to change notification settings - Fork 11
/
Makefile
executable file
·136 lines (107 loc) · 2.68 KB
/
Makefile
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
# Makefile
#
#
###
###
###
MAKE = make
CD = cd
MOVE = mv
COPY = cp
RM = rm
#
# /
# |---- libraries/
# | |---- mini-httpd...tar.gz
# | |---- DebugLog_solution.zip
# |
# |
# |---- Makefile(<--this file)
# |
# |---- src/
# |---- html/
# |---- res/
# |
# |
# |---- WorkPath/
#
###
### 这里设定 libraries 的相关内容!
### 这里是文件夹
###
Libraries := libraries
Lib = lib
CGI_PROGRAM = src
Include = include
.PHONY: $(Libraries) $(CGI_PROGRAM) LIB all install clean BIN clean_all \
$(Lib) $(Include)
###
### make all ==> 将所有 src/*.c --编译成--> src/*.cgi
### 需要 web.so cgic.so 等的支持, 依赖于 `$ make lib`
###
#all: --mini_httpd-- --cgic.so-- --web.so--
## make all = make lib + make src ##+ make Lib&Bin
all: $(CGI_PROGRAM)
init: $(Libraries)/mini_httpd-1.19.tar.gz
cd $(Libraries) && tar -xzvf mini_httpd-1.19.tar.gz
cd $(Libraries) && chmod +w mini_httpd-1.19/htpasswd.c
cd $(Libraries) && python3 build_patch.py
cd $(Lib) && $(COPY) -fr flate-2.0.1 flate
## DebugLog_solution.zip out of date. there is DebugLog_solution/ on trunk.
# cd $(Libraries) && unzip DebugLog_solution.zip
# ... else ...
###
### 应用程序 与 库链接 的依存关系
### (*.cgi) (mini_httpd, cgiDebugLogd, cgic.so web.so)
###
$(CGI_PROGRAM): $(Libraries) LIB BIN Include
###
### 以下编译了 *.cgi, 并且确保依赖库要被编译。
###
$(CGI_PROGRAM):
$(MAKE) --directory=$@
##
## ^^ 以上, 调用了 src/Makefile & libraries/Makefile
##
SRC: include/flate.h include/cgic.h lib/libcgic.a lib/libflate.a lib/libCGIDebugLogc.a
make --directory=src
@echo "===== END build src/ ========"
###
### make lib => 需要 mini_httpd; cgic.a, flate.a, cgiDebugLog.a
###
LIB: $(Libraries)
$(MOVE) $(Libraries)/libCGIDebugLogc.a ./lib
$(MAKE) --directory=lib all ## for libcigc.a
$(Libraries):
$(MAKE) --directory=$@
@echo "======= finished build libraries/ =======\n"
BIN:
$(MOVE) $(Libraries)/mini_httpd ./bin
$(MOVE) $(Libraries)/CGIDebugLogd.py ./bin
###
### usage LINUX-C_daemon
###
# $(COPY) $(Libraries)/daemonEcho2 ./bin
###
### usage python-dameon
###
$(MOVE) $(Libraries)/DaemonEcho2 ./bin
Include:
$(MAKE) --directory=include
###
### make install ==> 将 src/*cgi html/*.html res/*.json *.js *.css 安装
### 需要检查当前是否有 CGIDebugLogd 在运行,
### 以及 mini_httpd 是否在运行。
### 没有的话, 需要打印提示消息!
###
install:
$(MAKE) --directory=$(Libraries) install
clean:
$(MAKE) --directory=$(Lib) clean
$(MAKE) --directory=$(CGI_PROGRAM) clean
rm -f lib/*.a
rm -f bin/*
clean_all:
$(MAKE) --directory=$(Lib) clean_all
$(MAKE) --directory=$(CGI_PROGRAM) clean
rm -f bin/*