25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
..
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
..
93
94
95
96
97
98
99
100
101
102
103
104
|
clean:
rm parsav parsav.o $(images) $(styles)
install: parsav
mkdir $(prefix)/bin
cp $< $(prefix)/bin/
dep: dep.mbedtls dep.mongoose dep.json-c
dep.mbedtls: lib/mbedtls/library/libmbedtls.a \
lib/mbedtls/library/libmbedcrypto.a \
lib/mbedtls/library/libmbedx509.a
dep.mongoose: lib/mongoose/libmongoose.a
dep.json-c: lib/json-c/libjson-c.a
static-libs = lib/json-c/libjson-c.a \
lib/mongoose/libmongoose.a \
lib/mbedtls/library/libmbedx509.a \
lib/mbedtls/library/libmbedcrypto.a \
lib/mbedtls/library/libmbedtls.a
dist-kind ?= o
parsav-dist = parsav-$(dist-kind)dist-$(version)
................................................................................
cp -u $^ $(parsav-dist)/
tar cf $(parsav-dist){.tar,}
xz -c9e $(parsav-dist).tar > $@
rm -r $(parsav-dist){.tar,}
lib:
mkdir $@
# generate a shim static library so mongoose cooperates
# with the build apparatus. note that parsav is designed
# to be fronted by a real web server like nginx if SSL
# is to be used, so we don't turn on SSL in mongoose
lib/mongoose/libmongoose.a: lib/mongoose lib/mongoose/mongoose.c lib/mongoose/mongoose.h
$(CC) -c $</mongoose.c -o lib/mongoose/mongoose.o \
-DMG_ENABLE_THREADS=1 \
-DMG_ENABLE_IPV6=1 \
-DMG_ENABLE_HTTP_WEBDAV=1 \
-DMG_ENABLE_HTTP_WEBSOCKET=0
ar rcs $@ lib/mongoose/*.o
ranlib $@
lib/json-c/Makefile: lib/json-c lib/json-c/CMakeLists.txt
cd $< && cmake .
lib/json-c/libjson-c.a: lib/json-c/Makefile
$(MAKE) -C lib/json-c
lib/mbedtls/library/%.a: lib/mbedtls
$(MAKE) -C lib/mbedtls/library $*.a
ifeq ($(dl), git)
clone = git clone --depth 1 # save time
ensurelib = mkdir -p lib && cd lib
lib/mongoose:
$(ensurelib) && $(clone) https://github.com/cesanta/mongoose.git
lib/mbedtls:
$(ensurelib) && $(clone) https://github.com/ARMmbed/mbedtls.git
lib/json-c:
$(ensurelib) && $(clone) https://github.com/json-c/json-c.git
else
lib/%: lib/%.tar.gz
$(ensurelib) && tar zxf $*.tar.gz
mv lib/$$(tar tf $< | head -n1) $@
ifeq ($(dl), wget)
dlfile = mkdir -p $(dir $@) && wget "$1" -O "$@"
................................................................................
ifeq ($(dl), curl)
dlfile = mkdir -p $(dir $@) && curl "$1" -o "$@"
endif
lib/mongoose.tar.gz:
$(call dlfile,https://api.github.com/repos/cesanta/mongoose/tarball/master)
lib/mbedtls.tar.gz:
$(call dlfile,https://api.github.com/repos/ARMmbed/mbedtls/tarball/master)
lib/json-c.tar.gz:
$(call dlfile,https://api.github.com/repos/json-c/json-c/tarball/master)
endif
|
|
|
|
>
>
>
>
>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
..
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
..
98
99
100
101
102
103
104
105
106
107
108
109
|
clean:
rm parsav parsav.o $(images) $(styles)
install: parsav
mkdir $(prefix)/bin
cp $< $(prefix)/bin/
dep: dep.mbedtls dep.mongoose dep.mjson
dep.mbedtls: lib/mbedtls/library/libmbedtls.a \
lib/mbedtls/library/libmbedcrypto.a \
lib/mbedtls/library/libmbedx509.a
dep.mongoose: lib/mongoose/libmongoose.a
dep.mjson: lib/mjson/libmjson.a
static-libs = lib/mjson/libmjson.a \
lib/mongoose/libmongoose.a \
lib/mbedtls/library/libmbedx509.a \
lib/mbedtls/library/libmbedcrypto.a \
lib/mbedtls/library/libmbedtls.a
dist-kind ?= o
parsav-dist = parsav-$(dist-kind)dist-$(version)
................................................................................
cp -u $^ $(parsav-dist)/
tar cf $(parsav-dist){.tar,}
xz -c9e $(parsav-dist).tar > $@
rm -r $(parsav-dist){.tar,}
lib:
mkdir $@
lib%.a %.a: %.o
ar rcs $@ $<
ranlib $@ # bsd-ism
# generate a shim static library so mongoose cooperates
# with the build apparatus. note that parsav is designed
# to be fronted by a real web server like nginx if SSL
# is to be used, so we don't turn on SSL in mongoose
lib/mongoose/mongoose.o: lib/mongoose/mongoose.c lib/mongoose/mongoose.h lib/mongoose
$(CC) -c $< -o lib/mongoose/mongoose.o \
-DMG_ENABLE_THREADS=1 \
-DMG_ENABLE_IPV6=1 \
-DMG_ENABLE_HTTP_WEBDAV=1 \
-DMG_ENABLE_HTTP_WEBSOCKET=0
lib/mjson/mjson.o: lib/mjson/src/mjson.c lib/mjson/src/mjson.h lib/mjson
$(CC) -c $< -o lib/mjson/mjson.o \
-DMJSON_MAX_DEPTH=16 \
-DMJSON_ENABLE_BASE64=0 \
-DMJSON_ENABLE_RPC=0
lib/mbedtls/library/%.a: lib/mbedtls
$(MAKE) -C lib/mbedtls/library $*.a
ifeq ($(dl), git)
clone = git clone --depth 1 # save time
ensurelib = mkdir -p lib && cd lib
lib/mongoose:
$(ensurelib) && $(clone) https://github.com/cesanta/mongoose.git
lib/mjson:
$(ensurelib) && $(clone) https://github.com/cesanta/mjson.git
lib/mbedtls:
$(ensurelib) && $(clone) https://github.com/ARMmbed/mbedtls.git
else
lib/%: lib/%.tar.gz
$(ensurelib) && tar zxf $*.tar.gz
mv lib/$$(tar tf $< | head -n1) $@
ifeq ($(dl), wget)
dlfile = mkdir -p $(dir $@) && wget "$1" -O "$@"
................................................................................
ifeq ($(dl), curl)
dlfile = mkdir -p $(dir $@) && curl "$1" -o "$@"
endif
lib/mongoose.tar.gz:
$(call dlfile,https://api.github.com/repos/cesanta/mongoose/tarball/master)
lib/mjson.tar.gz:
$(call dlfile,https://api.github.com/repos/cesanta/mjson/tarball/master)
lib/mbedtls.tar.gz:
$(call dlfile,https://api.github.com/repos/ARMmbed/mbedtls/tarball/master)
endif
|