mirror of
https://github.com/cesanta/mongoose.git
synced 2026-10-08 08:54:54 +07:00
3.1 KiB
3.1 KiB
Build options
Mongoose source code ships in a single .c file that contains functionality for all supported protocols (modules). Modules can be disabled at compile time which reduces the executable's size. That can be done by setting preprocessor flags. Also, some preprocessor flags can be used to tune internal Mongoose parameters.
To set a preprocessor flag during compile time, use the -D <PREPROCESSOR_FLAG>
compiler option. For example, to disable both MQTT and CoAP,
compile the application my_app.c like this (assumed UNIX system):
$ cc my_app.c mongoose.c -D MG_DISABLE_MQTT -D MG_DISABLE_COAP
Enabling flags
MG_ENABLE_SSLEnable SSL/TLS support (OpenSSL API)MG_ENABLE_IPV6Enable IPv6 supportMG_ENABLE_MQTTenable MQTT client (on by default, set to 0 to disable)MG_ENABLE_MQTT_BROKERenable MQTT brokerMG_ENABLE_DNS_SERVERenable DNS serverMG_ENABLE_COAPenable CoAP protocolMG_ENABLE_HTTPEnable HTTP protocol support (on by default, set to 0 to disable)MG_ENABLE_HTTP_CGIEnable CGI supportMG_ENABLE_HTTP_SSIEnable Server Side Includes supportMG_ENABLE_HTTP_SSI_EXECEnable SSIexecoperatorMG_ENABLE_HTTP_WEBDAVenable WebDAV extensions to HTTPMG_ENABLE_HTTP_WEBSOCKETenable WebSocket extension to HTTP (on by default, =0 to disable)MG_ENABLE_BROADCASTenablemg_broadcast()APIMG_ENABLE_GETADDRINFOenablegetaddrinfo()inmg_resolve2()MG_ENABLE_THREADSenablemg_start_thread()API
Disabling flags
MG_DISABLE_HTTP_DIGEST_AUTHdisable HTTP Digest (MD5) authorisation supportCS_DISABLE_SHA1disable SHA1 support (used by WebSocket)CS_DISABLE_MD5disable MD5 support (used by HTTP auth)MG_DISABLE_HTTP_KEEP_ALIVEuseful for embedded systems to save resources
Platform specific
Mongoose tries to detect the target platform whenever possible, but in some cases you have to explicitly declare some peculiarities of your target, such as:
MG_CC3200: enable workarounds for the TI CC3200 target.MG_ESP8266: enable workarounds for the ESP8266 target, addRTOS_SDKto specify the RTOS SDK flavour.
Tunables
MG_MALLOC,MG_CALLOC,MG_REALLOC,MG_FREEallow you to a use custom memory allocator, e.g.-DMG_MALLOC=my_mallocMG_USE_READ_WRITEwhen set replaces calls torecvwithreadandsendwithwrite, thus enabling to add any kind of file descriptor (files, serial devices) to an event manager.MG_SSL_CRYPTO_MODERN,MG_SSL_CRYPTO_OLD- choose either "Modern" or "Old" ciphers instead of the default "Intermediate" setting. See this article for details.MG_USER_FILE_FUNCTIONSallow you to use custom file operation, by defining you ownmg_stat,mg_fopen,mg_open,mg_freadandmg_fwritefunctions