make (1141:5300f9657c30) make (1217:ed8c4e263152)
1
2# Copyright (C) Igor Sysoev
3# Copyright (C) Valentin V. Bartenev
4# Copyright (C) NGINX, Inc.
5
6. auto/cc/deps
7
8$echo "creating $NXT_MAKEFILE"
9
10mkdir -p $NXT_BUILD_DIR/src \
11 $NXT_BUILD_DIR/src/test
12
13
14cat << END > $NXT_MAKEFILE
15
16CC = $CC
17
18CFLAGS = $NXT_CFLAGS $NXT_CC_OPT $CFLAGS
19
20NXT_EXEC_LINK = $NXT_EXEC_LINK $NXT_LD_OPT
21NXT_SHARED_LOCAL_LINK = $NXT_SHARED_LOCAL_LINK $NXT_LD_OPT
22NXT_MODULE_LINK = $NXT_MODULE_LINK
23
24all: $NXT_DAEMON
25
26.PHONY: $NXT_DAEMON
27$NXT_DAEMON: $NXT_BUILD_DIR/$NXT_DAEMON
28
29END
30
31
32# The include paths list.
33
34$echo -n "NXT_LIB_INCS =" >> $NXT_MAKEFILE
35
36for nxt_inc in src $NXT_BUILD_DIR
37do
38 $echo -n " -I $nxt_inc" >> $NXT_MAKEFILE
39done
40
41$echo >> $NXT_MAKEFILE
42$echo >> $NXT_MAKEFILE
43
44
45# Library object files list.
46
47$echo "NXT_LIB_OBJS = \\" >> $NXT_MAKEFILE
48
49for nxt_src in $NXT_LIB_SRCS
50do
51 nxt_obj=${nxt_src%.c}.o
52 $echo " $NXT_BUILD_DIR/$nxt_obj \\" >> $NXT_MAKEFILE
53done
54
55$echo >> $NXT_MAKEFILE
56
57$echo "NXT_LIB_UNIT_OBJS = \\" >> $NXT_MAKEFILE
58$echo " $NXT_BUILD_DIR/src/nxt_lvlhsh.o \\" >> $NXT_MAKEFILE
59$echo " $NXT_BUILD_DIR/src/nxt_murmur_hash.o \\" >> $NXT_MAKEFILE
60$echo " $NXT_BUILD_DIR/src/nxt_websocket.o \\" >> $NXT_MAKEFILE
61
62for nxt_src in $NXT_LIB_UNIT_SRCS
63do
64 nxt_obj=${nxt_src%.c}.o
65 $echo " $NXT_BUILD_DIR/$nxt_obj \\" >> $NXT_MAKEFILE
66done
67
68$echo >> $NXT_MAKEFILE
69
70
71# The version file.
72
73cat << END >> $NXT_MAKEFILE
74
75include version
76
77$NXT_VERSION_H: version
78 $echo '#define NXT_VERSION "\$(NXT_VERSION)"' > $NXT_VERSION_H
79 $echo '#define NXT_VERNUM \$(NXT_VERNUM)' >> $NXT_VERSION_H
80
1
2# Copyright (C) Igor Sysoev
3# Copyright (C) Valentin V. Bartenev
4# Copyright (C) NGINX, Inc.
5
6. auto/cc/deps
7
8$echo "creating $NXT_MAKEFILE"
9
10mkdir -p $NXT_BUILD_DIR/src \
11 $NXT_BUILD_DIR/src/test
12
13
14cat << END > $NXT_MAKEFILE
15
16CC = $CC
17
18CFLAGS = $NXT_CFLAGS $NXT_CC_OPT $CFLAGS
19
20NXT_EXEC_LINK = $NXT_EXEC_LINK $NXT_LD_OPT
21NXT_SHARED_LOCAL_LINK = $NXT_SHARED_LOCAL_LINK $NXT_LD_OPT
22NXT_MODULE_LINK = $NXT_MODULE_LINK
23
24all: $NXT_DAEMON
25
26.PHONY: $NXT_DAEMON
27$NXT_DAEMON: $NXT_BUILD_DIR/$NXT_DAEMON
28
29END
30
31
32# The include paths list.
33
34$echo -n "NXT_LIB_INCS =" >> $NXT_MAKEFILE
35
36for nxt_inc in src $NXT_BUILD_DIR
37do
38 $echo -n " -I $nxt_inc" >> $NXT_MAKEFILE
39done
40
41$echo >> $NXT_MAKEFILE
42$echo >> $NXT_MAKEFILE
43
44
45# Library object files list.
46
47$echo "NXT_LIB_OBJS = \\" >> $NXT_MAKEFILE
48
49for nxt_src in $NXT_LIB_SRCS
50do
51 nxt_obj=${nxt_src%.c}.o
52 $echo " $NXT_BUILD_DIR/$nxt_obj \\" >> $NXT_MAKEFILE
53done
54
55$echo >> $NXT_MAKEFILE
56
57$echo "NXT_LIB_UNIT_OBJS = \\" >> $NXT_MAKEFILE
58$echo " $NXT_BUILD_DIR/src/nxt_lvlhsh.o \\" >> $NXT_MAKEFILE
59$echo " $NXT_BUILD_DIR/src/nxt_murmur_hash.o \\" >> $NXT_MAKEFILE
60$echo " $NXT_BUILD_DIR/src/nxt_websocket.o \\" >> $NXT_MAKEFILE
61
62for nxt_src in $NXT_LIB_UNIT_SRCS
63do
64 nxt_obj=${nxt_src%.c}.o
65 $echo " $NXT_BUILD_DIR/$nxt_obj \\" >> $NXT_MAKEFILE
66done
67
68$echo >> $NXT_MAKEFILE
69
70
71# The version file.
72
73cat << END >> $NXT_MAKEFILE
74
75include version
76
77$NXT_VERSION_H: version
78 $echo '#define NXT_VERSION "\$(NXT_VERSION)"' > $NXT_VERSION_H
79 $echo '#define NXT_VERNUM \$(NXT_VERNUM)' >> $NXT_VERSION_H
80
81$NXT_BUILD_DIR/src/nxt_unit.o: $NXT_VERSION_H
82$NXT_BUILD_DIR/src/nxt_lib.o: $NXT_VERSION_H
83
84END
85
86
87# Shared and static library.
88
89cat << END >> $NXT_MAKEFILE
90
91libnxt: $NXT_BUILD_DIR/$NXT_LIB_SHARED $NXT_BUILD_DIR/$NXT_LIB_STATIC
92
93$NXT_BUILD_DIR/$NXT_LIB_SHARED: \$(NXT_LIB_OBJS)
94 \$(NXT_SHARED_LOCAL_LINK) -o $NXT_BUILD_DIR/$NXT_LIB_SHARED \\
95 \$(NXT_LIB_OBJS) \\
96 $NXT_LIBM $NXT_LIBS $NXT_LIB_AUX_LIBS
97
98$NXT_BUILD_DIR/$NXT_LIB_STATIC: \$(NXT_LIB_OBJS)
99 $NXT_STATIC_LINK $NXT_BUILD_DIR/$NXT_LIB_STATIC \\
100 \$(NXT_LIB_OBJS)
101
102$NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC: \$(NXT_LIB_UNIT_OBJS)
103 $NXT_STATIC_LINK $NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC \\
104 \$(NXT_LIB_UNIT_OBJS)
105
106END
107
108
109# Object files.
110
111for nxt_src in $NXT_LIB_SRCS $NXT_TEST_SRCS $NXT_LIB_UNIT_SRCS \
112 src/test/nxt_unit_app_test.c \
113 src/test/nxt_unit_websocket_chat.c \
114 src/test/nxt_unit_websocket_echo.c
115do
116 nxt_obj=${nxt_src%.c}.o
117 nxt_dep=${nxt_src%.c}.dep
118 nxt_dep_flags=`nxt_gen_dep_flags`
119 nxt_dep_post=`nxt_gen_dep_post`
120 cat << END >> $NXT_MAKEFILE
121
81END
82
83
84# Shared and static library.
85
86cat << END >> $NXT_MAKEFILE
87
88libnxt: $NXT_BUILD_DIR/$NXT_LIB_SHARED $NXT_BUILD_DIR/$NXT_LIB_STATIC
89
90$NXT_BUILD_DIR/$NXT_LIB_SHARED: \$(NXT_LIB_OBJS)
91 \$(NXT_SHARED_LOCAL_LINK) -o $NXT_BUILD_DIR/$NXT_LIB_SHARED \\
92 \$(NXT_LIB_OBJS) \\
93 $NXT_LIBM $NXT_LIBS $NXT_LIB_AUX_LIBS
94
95$NXT_BUILD_DIR/$NXT_LIB_STATIC: \$(NXT_LIB_OBJS)
96 $NXT_STATIC_LINK $NXT_BUILD_DIR/$NXT_LIB_STATIC \\
97 \$(NXT_LIB_OBJS)
98
99$NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC: \$(NXT_LIB_UNIT_OBJS)
100 $NXT_STATIC_LINK $NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC \\
101 \$(NXT_LIB_UNIT_OBJS)
102
103END
104
105
106# Object files.
107
108for nxt_src in $NXT_LIB_SRCS $NXT_TEST_SRCS $NXT_LIB_UNIT_SRCS \
109 src/test/nxt_unit_app_test.c \
110 src/test/nxt_unit_websocket_chat.c \
111 src/test/nxt_unit_websocket_echo.c
112do
113 nxt_obj=${nxt_src%.c}.o
114 nxt_dep=${nxt_src%.c}.dep
115 nxt_dep_flags=`nxt_gen_dep_flags`
116 nxt_dep_post=`nxt_gen_dep_post`
117 cat << END >> $NXT_MAKEFILE
118
122$NXT_BUILD_DIR/$nxt_obj: $nxt_src
119$NXT_BUILD_DIR/$nxt_obj: $nxt_src $NXT_VERSION_H
123 \$(CC) -c \$(CFLAGS) \$(NXT_LIB_INCS) $NXT_LIB_AUX_CFLAGS \\
124 -o $NXT_BUILD_DIR/$nxt_obj \\
125 $nxt_dep_flags \\
126 $nxt_src
127 $nxt_dep_post
128
129-include $NXT_BUILD_DIR/$nxt_dep
130
131END
132
133done
134
135$echo >> $NXT_MAKEFILE
136
137
138if [ $NXT_TESTS = YES ]; then
139
140 # Test object files list.
141
142 $echo "NXT_TEST_OBJS = \\" >> $NXT_MAKEFILE
143
144 for nxt_src in $NXT_TEST_SRCS
145 do
146 nxt_obj=${nxt_src%.c}.o
147 $echo " $NXT_BUILD_DIR/$nxt_obj \\" >> $NXT_MAKEFILE
148 done
149
150 # Test executables.
151
152 cat << END >> $NXT_MAKEFILE
153
154.PHONY: tests
155tests: $NXT_BUILD_DIR/tests $NXT_BUILD_DIR/utf8_file_name_test \\
156 $NXT_BUILD_DIR/unit_app_test $NXT_BUILD_DIR/unit_websocket_chat \\
157 $NXT_BUILD_DIR/unit_websocket_echo
158
159$NXT_BUILD_DIR/tests: \$(NXT_TEST_OBJS) \\
160 $NXT_BUILD_DIR/$NXT_LIB_STATIC
161 \$(NXT_EXEC_LINK) -o $NXT_BUILD_DIR/tests \\
162 \$(CFLAGS) \$(NXT_TEST_OBJS) \\
163 $NXT_BUILD_DIR/$NXT_LIB_STATIC \\
164 $NXT_LD_OPT $NXT_LIBM $NXT_LIBS $NXT_LIB_AUX_LIBS
165
166$NXT_BUILD_DIR/utf8_file_name_test: $NXT_LIB_UTF8_FILE_NAME_TEST_SRCS \\
167 $NXT_BUILD_DIR/$NXT_LIB_STATIC
168 \$(CC) \$(CFLAGS) \$(NXT_LIB_INCS) $NXT_LIB_AUX_CFLAGS \\
169 -o $NXT_BUILD_DIR/utf8_file_name_test \\
170 $NXT_LIB_UTF8_FILE_NAME_TEST_SRCS \\
171 $NXT_BUILD_DIR/$NXT_LIB_STATIC \\
172 $NXT_LD_OPT $NXT_LIBM $NXT_LIBS $NXT_LIB_AUX_LIBS
173
174$NXT_BUILD_DIR/unit_app_test: $NXT_BUILD_DIR/src/test/nxt_unit_app_test.o \\
175 $NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC
176 \$(NXT_EXEC_LINK) -o $NXT_BUILD_DIR/unit_app_test \\
177 \$(CFLAGS) $NXT_BUILD_DIR/src/test/nxt_unit_app_test.o \\
178 $NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC \\
179 $NXT_LD_OPT $NXT_LIBM $NXT_LIBS $NXT_LIB_AUX_LIBS
180
181$NXT_BUILD_DIR/unit_websocket_chat: \\
182 $NXT_BUILD_DIR/src/test/nxt_unit_websocket_chat.o \\
183 $NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC
184 \$(NXT_EXEC_LINK) -o $NXT_BUILD_DIR/unit_websocket_chat \\
185 \$(CFLAGS) $NXT_BUILD_DIR/src/test/nxt_unit_websocket_chat.o \\
186 $NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC \\
187 $NXT_LD_OPT $NXT_LIBM $NXT_LIBS $NXT_LIB_AUX_LIBS
188
189$NXT_BUILD_DIR/unit_websocket_echo: \\
190 $NXT_BUILD_DIR/src/test/nxt_unit_websocket_echo.o \\
191 $NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC
192 \$(NXT_EXEC_LINK) -o $NXT_BUILD_DIR/unit_websocket_echo \\
193 \$(CFLAGS) $NXT_BUILD_DIR/src/test/nxt_unit_websocket_echo.o \\
194 $NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC \\
195 $NXT_LD_OPT $NXT_LIBM $NXT_LIBS $NXT_LIB_AUX_LIBS
196
197END
198
199else
200
201 cat << END >> $NXT_MAKEFILE
202
203.PHONY: tests
204tests:
205 @(echo; \\
206 echo "error: to make tests you need to configure --tests option."; \\
207 echo; \\
208 exit 1)
209
210END
211
212fi
213
214
215NXT_MAKE_INCS="src $NXT_BUILD_DIR"
216NXT_MAKE_SRCS="$NXT_SRCS"
217
218
219# The include paths list.
220
221$echo -n "NXT_INCS =" >> $NXT_MAKEFILE
222
223for nxt_inc in $NXT_MAKE_INCS
224do
225 $echo -n " -I $nxt_inc" >> $NXT_MAKEFILE
226done
227
228$echo >> $NXT_MAKEFILE
229$echo >> $NXT_MAKEFILE
230
231
232# Object files list.
233
234$echo "NXT_OBJS = \\" >> $NXT_MAKEFILE
235
236for nxt_src in $NXT_MAKE_SRCS
237do
238 nxt_obj=${nxt_src%.c}.o
239 $echo " $NXT_BUILD_DIR/$nxt_obj \\" >> $NXT_MAKEFILE
240done
241
242$echo >> $NXT_MAKEFILE
243
244
245# unit executable.
246
247cat << END >> $NXT_MAKEFILE
248
249$NXT_BUILD_DIR/$NXT_DAEMON: $NXT_BUILD_DIR/$NXT_LIB_STATIC \\
250 \$(NXT_OBJS)
251 \$(NXT_EXEC_LINK) -o $NXT_BUILD_DIR/$NXT_DAEMON \$(CFLAGS) \\
252 \$(NXT_OBJS) $NXT_BUILD_DIR/$NXT_LIB_STATIC \\
253 $NXT_LIBM $NXT_LIBS $NXT_LIB_AUX_LIBS
254
255END
256
257
258# unit object files.
259
260for nxt_src in $NXT_MAKE_SRCS
261do
262 nxt_obj=${nxt_src%.c}.o
263 nxt_dep=${nxt_src%.c}.dep
264 nxt_dep_flags=`nxt_gen_dep_flags`
265 nxt_dep_post=`nxt_gen_dep_post`
266 cat << END >> $NXT_MAKEFILE
267
120 \$(CC) -c \$(CFLAGS) \$(NXT_LIB_INCS) $NXT_LIB_AUX_CFLAGS \\
121 -o $NXT_BUILD_DIR/$nxt_obj \\
122 $nxt_dep_flags \\
123 $nxt_src
124 $nxt_dep_post
125
126-include $NXT_BUILD_DIR/$nxt_dep
127
128END
129
130done
131
132$echo >> $NXT_MAKEFILE
133
134
135if [ $NXT_TESTS = YES ]; then
136
137 # Test object files list.
138
139 $echo "NXT_TEST_OBJS = \\" >> $NXT_MAKEFILE
140
141 for nxt_src in $NXT_TEST_SRCS
142 do
143 nxt_obj=${nxt_src%.c}.o
144 $echo " $NXT_BUILD_DIR/$nxt_obj \\" >> $NXT_MAKEFILE
145 done
146
147 # Test executables.
148
149 cat << END >> $NXT_MAKEFILE
150
151.PHONY: tests
152tests: $NXT_BUILD_DIR/tests $NXT_BUILD_DIR/utf8_file_name_test \\
153 $NXT_BUILD_DIR/unit_app_test $NXT_BUILD_DIR/unit_websocket_chat \\
154 $NXT_BUILD_DIR/unit_websocket_echo
155
156$NXT_BUILD_DIR/tests: \$(NXT_TEST_OBJS) \\
157 $NXT_BUILD_DIR/$NXT_LIB_STATIC
158 \$(NXT_EXEC_LINK) -o $NXT_BUILD_DIR/tests \\
159 \$(CFLAGS) \$(NXT_TEST_OBJS) \\
160 $NXT_BUILD_DIR/$NXT_LIB_STATIC \\
161 $NXT_LD_OPT $NXT_LIBM $NXT_LIBS $NXT_LIB_AUX_LIBS
162
163$NXT_BUILD_DIR/utf8_file_name_test: $NXT_LIB_UTF8_FILE_NAME_TEST_SRCS \\
164 $NXT_BUILD_DIR/$NXT_LIB_STATIC
165 \$(CC) \$(CFLAGS) \$(NXT_LIB_INCS) $NXT_LIB_AUX_CFLAGS \\
166 -o $NXT_BUILD_DIR/utf8_file_name_test \\
167 $NXT_LIB_UTF8_FILE_NAME_TEST_SRCS \\
168 $NXT_BUILD_DIR/$NXT_LIB_STATIC \\
169 $NXT_LD_OPT $NXT_LIBM $NXT_LIBS $NXT_LIB_AUX_LIBS
170
171$NXT_BUILD_DIR/unit_app_test: $NXT_BUILD_DIR/src/test/nxt_unit_app_test.o \\
172 $NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC
173 \$(NXT_EXEC_LINK) -o $NXT_BUILD_DIR/unit_app_test \\
174 \$(CFLAGS) $NXT_BUILD_DIR/src/test/nxt_unit_app_test.o \\
175 $NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC \\
176 $NXT_LD_OPT $NXT_LIBM $NXT_LIBS $NXT_LIB_AUX_LIBS
177
178$NXT_BUILD_DIR/unit_websocket_chat: \\
179 $NXT_BUILD_DIR/src/test/nxt_unit_websocket_chat.o \\
180 $NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC
181 \$(NXT_EXEC_LINK) -o $NXT_BUILD_DIR/unit_websocket_chat \\
182 \$(CFLAGS) $NXT_BUILD_DIR/src/test/nxt_unit_websocket_chat.o \\
183 $NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC \\
184 $NXT_LD_OPT $NXT_LIBM $NXT_LIBS $NXT_LIB_AUX_LIBS
185
186$NXT_BUILD_DIR/unit_websocket_echo: \\
187 $NXT_BUILD_DIR/src/test/nxt_unit_websocket_echo.o \\
188 $NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC
189 \$(NXT_EXEC_LINK) -o $NXT_BUILD_DIR/unit_websocket_echo \\
190 \$(CFLAGS) $NXT_BUILD_DIR/src/test/nxt_unit_websocket_echo.o \\
191 $NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC \\
192 $NXT_LD_OPT $NXT_LIBM $NXT_LIBS $NXT_LIB_AUX_LIBS
193
194END
195
196else
197
198 cat << END >> $NXT_MAKEFILE
199
200.PHONY: tests
201tests:
202 @(echo; \\
203 echo "error: to make tests you need to configure --tests option."; \\
204 echo; \\
205 exit 1)
206
207END
208
209fi
210
211
212NXT_MAKE_INCS="src $NXT_BUILD_DIR"
213NXT_MAKE_SRCS="$NXT_SRCS"
214
215
216# The include paths list.
217
218$echo -n "NXT_INCS =" >> $NXT_MAKEFILE
219
220for nxt_inc in $NXT_MAKE_INCS
221do
222 $echo -n " -I $nxt_inc" >> $NXT_MAKEFILE
223done
224
225$echo >> $NXT_MAKEFILE
226$echo >> $NXT_MAKEFILE
227
228
229# Object files list.
230
231$echo "NXT_OBJS = \\" >> $NXT_MAKEFILE
232
233for nxt_src in $NXT_MAKE_SRCS
234do
235 nxt_obj=${nxt_src%.c}.o
236 $echo " $NXT_BUILD_DIR/$nxt_obj \\" >> $NXT_MAKEFILE
237done
238
239$echo >> $NXT_MAKEFILE
240
241
242# unit executable.
243
244cat << END >> $NXT_MAKEFILE
245
246$NXT_BUILD_DIR/$NXT_DAEMON: $NXT_BUILD_DIR/$NXT_LIB_STATIC \\
247 \$(NXT_OBJS)
248 \$(NXT_EXEC_LINK) -o $NXT_BUILD_DIR/$NXT_DAEMON \$(CFLAGS) \\
249 \$(NXT_OBJS) $NXT_BUILD_DIR/$NXT_LIB_STATIC \\
250 $NXT_LIBM $NXT_LIBS $NXT_LIB_AUX_LIBS
251
252END
253
254
255# unit object files.
256
257for nxt_src in $NXT_MAKE_SRCS
258do
259 nxt_obj=${nxt_src%.c}.o
260 nxt_dep=${nxt_src%.c}.dep
261 nxt_dep_flags=`nxt_gen_dep_flags`
262 nxt_dep_post=`nxt_gen_dep_post`
263 cat << END >> $NXT_MAKEFILE
264
268$NXT_BUILD_DIR/$nxt_obj: $nxt_src
265$NXT_BUILD_DIR/$nxt_obj: $nxt_src $NXT_VERSION_H
269 \$(CC) -c \$(CFLAGS) \$(NXT_INCS) \\
270 $NXT_LIB_AUX_CFLAGS \\
271 -o $NXT_BUILD_DIR/$nxt_obj \\
272 $nxt_dep_flags \\
273 $nxt_src
274 $nxt_dep_post
275
276-include $NXT_BUILD_DIR/$nxt_dep
277
278END
279
280done
281
282
283# install
284
285cat << END >> $NXT_MAKEFILE
286
287.PHONY: install ${NXT_DAEMON}-install install-check
288
289install: ${NXT_DAEMON}-install
290
291install-check:
292 @test -n "\$(DESTDIR)$NXT_PREFIX" \\
293 || (echo; \\
294 echo "error: to make install you need either"; \\
295 echo " to configure --prefix option"; \\
296 echo " or to set DESTDIR environment variable."; \\
297 echo; \\
298 exit 1)
299
300${NXT_DAEMON}-install: $NXT_DAEMON install-check
301 install -d \$(DESTDIR)$NXT_SBINDIR
302 install -p $NXT_BUILD_DIR/$NXT_DAEMON \$(DESTDIR)$NXT_SBINDIR/
303 install -d \$(DESTDIR)$NXT_STATE
304
305
306.PHONY: uninstall ${NXT_DAEMON}-uninstall
307
308uninstall: ${NXT_DAEMON}-uninstall
309
310${NXT_DAEMON}-uninstall:
311 rm -f \$(DESTDIR)$NXT_SBINDIR/$NXT_DAEMON
312 @rmdir -p \$(DESTDIR)$NXT_SBINDIR 2>/dev/null || true
313
314END
315
316cat << END >> $NXT_MAKEFILE
317
318.PHONY: libunit-install libunit-uninstall
319
320libunit-install: $NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC
321 install -d \$(DESTDIR)$NXT_LIBDIR
322 install -p -m u=rw,go=r $NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC \
323 \$(DESTDIR)$NXT_LIBDIR/
324 install -d \$(DESTDIR)$NXT_INCDIR
325 install -p -m u=rw,go=r src/nxt_unit.h \
326 src/nxt_unit_field.h \
327 src/nxt_unit_request.h \
328 src/nxt_unit_response.h \
329 src/nxt_unit_sptr.h \
330 src/nxt_unit_typedefs.h \
331 src/nxt_unit_websocket.h \
332 $NXT_BUILD_DIR/nxt_version.h \
333 src/nxt_websocket_header.h \
334 \$(DESTDIR)$NXT_INCDIR/
335
336libunit-uninstall:
337 rm -f \$(DESTDIR)$NXT_LIBDIR/$NXT_LIB_UNIT_STATIC
338 @rmdir -p \$(DESTDIR)$NXT_LIBDIR 2>/dev/null || true
339 rm -f \$(DESTDIR)$NXT_INCDIR/nxt_unit.h \
340 \$(DESTDIR)$NXT_INCDIR/nxt_unit_field.h \
341 \$(DESTDIR)$NXT_INCDIR/nxt_unit_request.h \
342 \$(DESTDIR)$NXT_INCDIR/nxt_unit_response.h \
343 \$(DESTDIR)$NXT_INCDIR/nxt_unit_sptr.h \
344 \$(DESTDIR)$NXT_INCDIR/nxt_unit_typedefs.h \
345 \$(DESTDIR)$NXT_INCDIR/nxt_unit_websocket.h \
346 \$(DESTDIR)$NXT_INCDIR/nxt_version.h \
347 \$(DESTDIR)$NXT_INCDIR/nxt_websocket_header.h
348 @rmdir -p \$(DESTDIR)$NXT_INCDIR 2>/dev/null || true
349
350END
351
352# Makefile.
353# *.dSYM is MacOSX Clang debug information.
354
355cat << END > Makefile
356
357include $NXT_MAKEFILE
358
359.PHONY: clean
360clean:
361 rm -rf $NXT_BUILD_DIR *.dSYM Makefile
362
363END
266 \$(CC) -c \$(CFLAGS) \$(NXT_INCS) \\
267 $NXT_LIB_AUX_CFLAGS \\
268 -o $NXT_BUILD_DIR/$nxt_obj \\
269 $nxt_dep_flags \\
270 $nxt_src
271 $nxt_dep_post
272
273-include $NXT_BUILD_DIR/$nxt_dep
274
275END
276
277done
278
279
280# install
281
282cat << END >> $NXT_MAKEFILE
283
284.PHONY: install ${NXT_DAEMON}-install install-check
285
286install: ${NXT_DAEMON}-install
287
288install-check:
289 @test -n "\$(DESTDIR)$NXT_PREFIX" \\
290 || (echo; \\
291 echo "error: to make install you need either"; \\
292 echo " to configure --prefix option"; \\
293 echo " or to set DESTDIR environment variable."; \\
294 echo; \\
295 exit 1)
296
297${NXT_DAEMON}-install: $NXT_DAEMON install-check
298 install -d \$(DESTDIR)$NXT_SBINDIR
299 install -p $NXT_BUILD_DIR/$NXT_DAEMON \$(DESTDIR)$NXT_SBINDIR/
300 install -d \$(DESTDIR)$NXT_STATE
301
302
303.PHONY: uninstall ${NXT_DAEMON}-uninstall
304
305uninstall: ${NXT_DAEMON}-uninstall
306
307${NXT_DAEMON}-uninstall:
308 rm -f \$(DESTDIR)$NXT_SBINDIR/$NXT_DAEMON
309 @rmdir -p \$(DESTDIR)$NXT_SBINDIR 2>/dev/null || true
310
311END
312
313cat << END >> $NXT_MAKEFILE
314
315.PHONY: libunit-install libunit-uninstall
316
317libunit-install: $NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC
318 install -d \$(DESTDIR)$NXT_LIBDIR
319 install -p -m u=rw,go=r $NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC \
320 \$(DESTDIR)$NXT_LIBDIR/
321 install -d \$(DESTDIR)$NXT_INCDIR
322 install -p -m u=rw,go=r src/nxt_unit.h \
323 src/nxt_unit_field.h \
324 src/nxt_unit_request.h \
325 src/nxt_unit_response.h \
326 src/nxt_unit_sptr.h \
327 src/nxt_unit_typedefs.h \
328 src/nxt_unit_websocket.h \
329 $NXT_BUILD_DIR/nxt_version.h \
330 src/nxt_websocket_header.h \
331 \$(DESTDIR)$NXT_INCDIR/
332
333libunit-uninstall:
334 rm -f \$(DESTDIR)$NXT_LIBDIR/$NXT_LIB_UNIT_STATIC
335 @rmdir -p \$(DESTDIR)$NXT_LIBDIR 2>/dev/null || true
336 rm -f \$(DESTDIR)$NXT_INCDIR/nxt_unit.h \
337 \$(DESTDIR)$NXT_INCDIR/nxt_unit_field.h \
338 \$(DESTDIR)$NXT_INCDIR/nxt_unit_request.h \
339 \$(DESTDIR)$NXT_INCDIR/nxt_unit_response.h \
340 \$(DESTDIR)$NXT_INCDIR/nxt_unit_sptr.h \
341 \$(DESTDIR)$NXT_INCDIR/nxt_unit_typedefs.h \
342 \$(DESTDIR)$NXT_INCDIR/nxt_unit_websocket.h \
343 \$(DESTDIR)$NXT_INCDIR/nxt_version.h \
344 \$(DESTDIR)$NXT_INCDIR/nxt_websocket_header.h
345 @rmdir -p \$(DESTDIR)$NXT_INCDIR 2>/dev/null || true
346
347END
348
349# Makefile.
350# *.dSYM is MacOSX Clang debug information.
351
352cat << END > Makefile
353
354include $NXT_MAKEFILE
355
356.PHONY: clean
357clean:
358 rm -rf $NXT_BUILD_DIR *.dSYM Makefile
359
360END