diff --git a/Makefile b/Makefile index 076d87392..3e3965815 100644 --- a/Makefile +++ b/Makefile @@ -71,7 +71,11 @@ ifdef WITH_CFLAGS CFLAGS += $(WITH_CFLAGS) endif -LIBS = -lpthread -lm $(LOPT) +LIBS = +ifneq ($(TARGET_OS), RTEMS) +LIBS += -lpthread +endif +LIBS += -lm $(LOPT) ifdef WITH_DEBUG CFLAGS += -g -DDEBUG @@ -178,7 +182,9 @@ ifdef WITH_COMPRESSION endif ifdef WITH_ZLIB +ifneq ($(TARGET_OS), RTEMS) LIBS += -lz +endif CFLAGS += -DUSE_ZLIB endif @@ -446,4 +452,3 @@ indent: astyle --suffix=none --style=linux --indent=spaces=4 --lineend=linux include/*.h src/*.c src/*.cpp src/*.inl examples/*/*.c examples/*/*.cpp .PHONY: all help build install clean lib so - diff --git a/src/civetweb.c b/src/civetweb.c index dced13622..7fdf226dc 100644 --- a/src/civetweb.c +++ b/src/civetweb.c @@ -183,6 +183,10 @@ mg_static_assert(sizeof(void *) >= sizeof(int), "data type size check"); #error "Symbian is no longer maintained. CivetWeb no longer supports Symbian." #endif /* __SYMBIAN32__ */ +#if defined(__rtems__) +#include +#endif + #if defined(__ZEPHYR__) #include #include @@ -885,7 +889,9 @@ typedef unsigned short int in_port_t; #include #include #include +#if !defined(__rtems__) #include +#endif #include #include #include @@ -963,7 +969,7 @@ count_leap(int y) return (y - 1969) / 4 - (y - 1901) / 100 + (y - 1601) / 400; } -time_t +static time_t timegm(struct tm *tm) { static const unsigned short ydays[] = { @@ -20786,6 +20792,8 @@ get_system_name(char **sysName) *sysName = mg_strdup(name); +#elif defined(__rtems__) + *sysName = mg_strdup("RTEMS"); #elif defined(__ZEPHYR__) *sysName = mg_strdup("Zephyr OS"); #else @@ -22079,13 +22087,23 @@ mg_get_system_info(char *buffer, int buflen) (unsigned)si.dwNumberOfProcessors, (unsigned)si.dwActiveProcessorMask); system_info_length += mg_str_append(&buffer, end, block); -#elif defined(__ZEPHYR__) +#elif defined(__rtems__) mg_snprintf(NULL, NULL, block, sizeof(block), ",%s\"os\" : \"%s %s\"", eol, + "RTEMS", + rtems_version()); + system_info_length += mg_str_append(&buffer, end, block); +#elif defined(__ZEPHYR__) + mg_snprintf(NULL, + NULL, + block, + sizeof(block), + ",%s\"os\" : \"%s\"", + eol, "Zephyr OS", ZEPHYR_VERSION); system_info_length += mg_str_append(&buffer, end, block);