Add Mongoose Embedded Web Server Library
[AGL/meta-agl-devel.git] / meta-oem-extra-libs / recipes-support / mongoose / mongoose_6.6.bb
1 SUMMARY = "Mongoose - Embedded Web Server / Embedded Networking Library"
2 DESCRIPTION = "Mongoose is ideal for embedded environments. It has been designed for connecting devices and bringing them online.  \
3                Mongoose makes embedded network programming fast, robust, and easy."
4
5 HOMEPAGE = "https://www.cesanta.com/"
6
7 LICENSE = "GPLv2"
8 LIC_FILES_CHKSUM = "file://LICENSE;md5=3548d4c6b2c754880739734d5e100aa9"
9
10 SECTION = "libs"
11
12 PV = "6.6+git${SRCPV}"
13 SRCREV = "a23daa1547937b17bc30894d4bf19ddca80c7d35"
14 SRC_URI = "git://github.com/cesanta/mongoose.git;branch=master"
15
16 S = "${WORKDIR}/git"
17
18 DEPENDS = "openssl"
19
20 MONGOOSE_EXLIBS ?= "libmongoose.so libmongoose_ssl.so libmongoose_mqtt.so"
21
22 python () {
23     d.setVar("CFLAGS_DEF", "-DMG_ENABLE_THREADS -DMG_ENABLE_COAP -DMG_ENABLE_HTTP_STREAMING_MULTIPART")
24     d.setVar("CFLAGS_SSL", "-DMG_ENABLE_THREADS -DMG_ENABLE_SSL -lssl -lcrypto")
25     d.setVar("CFLAGS_MQTT", "-DMG_ENABLE_THREADS -DMG_ENABLE_SSL -lssl -lcrypto -DMG_ENABLE_MQTT_BROKER -DMG_ENABLE_HTTP=0")
26 }
27
28 FILES_${PN} += "${exec_prefix}/lib/libmongoose.so \
29                 ${exec_prefix}/lib/libmongoose_mqtt.so \
30                 ${exec_prefix}/lib/libmongoose_ssl.so \
31                "
32                
33 FILES_${PN}-dbg = "${exec_prefix}/src/*"
34
35 FILES_${PN}-dev = "${exec_prefix}/include/mongoose.h"
36
37 FILES_${PN}-doc = "${exec_prefix}/share/doc/*"
38
39 do_compile() {
40
41     if [ "${@bb.utils.contains('MONGOOSE_EXLIBS', 'libmongoose.so', 'def', '', d)}" = "def" ]; then
42         ${CC} mongoose.c -fPIC -shared -o libmongoose.so ${CFLAGS_DEF}
43     fi
44         
45     if [ "${@bb.utils.contains('MONGOOSE_EXLIBS', 'libmongoose_ssl.so', 'ssl', '', d)}" = "ssl" ]; then
46         ${CC} mongoose.c -fPIC -shared -o libmongoose_ssl.so ${CFLAGS_SSL}
47     fi
48  
49     if [ "${@bb.utils.contains('MONGOOSE_EXLIBS', 'libmongoose_mqtt.so', 'mqtt', '', d)}" = "mqtt" ]; then
50         ${CC} mongoose.c -fPIC -shared -o libmongoose_mqtt.so ${CFLAGS_MQTT}
51     fi
52 }
53
54 do_install() {
55
56     install -d ${D}${exec_prefix}/lib/
57     install -d ${D}${exec_prefix}/include/
58     install -d ${D}${exec_prefix}/src/debug/mongoose/6.6/
59     install -d ${D}${exec_prefix}/share/doc/
60     
61     for libs in ${MONGOOSE_EXLIBS}
62         do
63             install -m 0644 ${S}/${libs} ${D}${exec_prefix}/lib/${libs}
64         done
65
66     install -m 0644 ${S}/mongoose.h ${D}${exec_prefix}/include/mongoose.h
67     install -m 0644 ${S}/mongoose.c ${D}${exec_prefix}/src/debug/mongoose/6.6/mongoose.c
68     install -m 0644 ${S}/mongoose.h ${D}${exec_prefix}/src/debug/mongoose/6.6/mongoose.h
69     
70     tar -czf docs.tar.gz ${S}/docs/
71     install -m 0644 ${S}/docs.tar.gz ${D}${exec_prefix}/share/doc/docs.tar.gz
72     install -m 0644 ${S}/LICENSE ${D}${exec_prefix}/share/doc/LICENSE
73     install -m 0644 ${S}/CONTRIBUTING.md ${D}${exec_prefix}/share/doc/CONTRIBUTING.md
74 }