mirror of
https://github.com/cesanta/mongoose.git
synced 2026-10-31 13:00:49 +00:00
Reimplement BSD layer
This commit is contained in:
1 parent
aa1dfe8000
commit
31c6487070
43 files changed
+3908
-1955
No files matched your search
+30
-5
@@ -13,18 +13,21 @@ else
|
||||
C_WARN ?= -Wno-deprecated
|
||||
endif
|
||||
|
||||
.PHONY: all bsd_test bsd_client shm_tap_bridge shm_port_bridge bsd_s390 clean
|
||||
.PHONY: all bsd bsd_test bsd_client bsd_nortos bsd_nortos_test shm_tap_bridge \
|
||||
shm_port_bridge bsd_s390 bsd_nortos_s390 clean
|
||||
|
||||
TEST_SOURCES = bsd_shm_test.c
|
||||
# A C++ application compiles its sources as C++, linking Mongoose and FreeRTOS as C.
|
||||
# FreeRTOS does not build as C++, so C sources are compiled separately.
|
||||
C_SOURCES = ../../mongoose.c
|
||||
C_SOURCES += FreeRTOS-Kernel/portable/MemMang/heap_4.c
|
||||
C_SOURCES += FreeRTOS-Kernel/portable/ThirdParty/GCC/Posix/port.c
|
||||
C_SOURCES += FreeRTOS-Kernel/portable/ThirdParty/GCC/Posix/utils/wait_for_event.c
|
||||
C_SOURCES += $(wildcard FreeRTOS-Kernel/*.c)
|
||||
FREERTOS_SOURCES = FreeRTOS-Kernel/portable/MemMang/heap_4.c
|
||||
FREERTOS_SOURCES += FreeRTOS-Kernel/portable/ThirdParty/GCC/Posix/port.c
|
||||
FREERTOS_SOURCES += FreeRTOS-Kernel/portable/ThirdParty/GCC/Posix/utils/wait_for_event.c
|
||||
FREERTOS_SOURCES += $(wildcard FreeRTOS-Kernel/*.c)
|
||||
C_OBJECTS = $(notdir $(C_SOURCES:.c=.o))
|
||||
FREERTOS_OBJECTS = $(notdir $(FREERTOS_SOURCES:.c=.o))
|
||||
C_INPUTS = $(foreach S,$(C_SOURCES),-x c $(S))
|
||||
FREERTOS_INPUTS = $(foreach S,$(FREERTOS_SOURCES),-x c $(S))
|
||||
CFLAGS += -IFreeRTOS-Kernel/include
|
||||
CFLAGS += -IFreeRTOS-Kernel/portable/ThirdParty/GCC/Posix -Wno-conversion -Wno-undef
|
||||
|
||||
@@ -44,11 +47,24 @@ DOCKER ?= $(DOCKER_BIN) run --platform linux/amd64 --net=host --rm $(ENV) -v $(R
|
||||
CFLAGS_MONGOOSE += -DMG_ARCH=MG_ARCH_CUSTOM
|
||||
|
||||
|
||||
bsd: CFLAGS_MONGOOSE += -I../../src/bsd
|
||||
all bsd: shm_tap_bridge bsd_client FreeRTOS-Kernel bsd_test
|
||||
ASAN_OPTIONS=$(ASAN_OPTIONS) $(RUN) ./bsd_test $(ARGS)
|
||||
|
||||
# also
|
||||
bsd_nortos: CFLAGS_MONGOOSE += -I../../src/bsd
|
||||
bsd_nortos: shm_tap_bridge bsd_client bsd_nortos_test
|
||||
ASAN_OPTIONS=$(ASAN_OPTIONS) $(RUN) ./bsd_nortos_test $(ARGS)
|
||||
|
||||
# requires shm_tap_bridge to be running
|
||||
bsd_test: CFLAGS_MONGOOSE += -DMG_ENABLE_FREERTOS=1
|
||||
bsd_test: FreeRTOS-Kernel
|
||||
$(CC) $(C_INPUTS) $(FREERTOS_INPUTS) -c $(CFLAGS) $(CFLAGS_MONGOOSE) $(CFLAGS_EXTRA)
|
||||
$(CC) -x $(TEST_LANGUAGE) -c $(TEST_SOURCES) $(CFLAGS) $(CFLAGS_MONGOOSE) $(CFLAGS_EXTRA)
|
||||
$(CC) $(C_OBJECTS) $(FREERTOS_OBJECTS) $(TEST_SOURCES:.c=.o) $(CFLAGS) $(CFLAGS_MONGOOSE) $(CFLAGS_EXTRA) -o $@
|
||||
|
||||
bsd_nortos_test: CFLAGS_MONGOOSE += -DMG_ENABLE_FREERTOS=0
|
||||
bsd_nortos_test:
|
||||
$(CC) $(C_INPUTS) -c $(CFLAGS) $(CFLAGS_MONGOOSE) $(CFLAGS_EXTRA)
|
||||
$(CC) -x $(TEST_LANGUAGE) -c $(TEST_SOURCES) $(CFLAGS) $(CFLAGS_MONGOOSE) $(CFLAGS_EXTRA)
|
||||
$(CC) $(C_OBJECTS) $(TEST_SOURCES:.c=.o) $(CFLAGS) $(CFLAGS_MONGOOSE) $(CFLAGS_EXTRA) -o $@
|
||||
@@ -61,12 +77,21 @@ shm_tap_bridge: shm_tap_bridge.c shm_queue.h
|
||||
$(CC) shm_tap_bridge.c -pthread -o $@
|
||||
|
||||
# requires test/port_tap_bridge to be running
|
||||
bsd_s390: CFLAGS_MONGOOSE += -DMG_ENABLE_BSD_PROTOTYPES=0
|
||||
bsd_s390: ASAN=
|
||||
bsd_s390: CC = $(DOCKER) mdashnet/s390 cc
|
||||
bsd_s390: RUN = $(DOCKER) --init mdashnet/s390
|
||||
bsd_s390: shm_port_bridge bsd_client FreeRTOS-Kernel bsd_test
|
||||
$(RUN) sh -c './shm_port_bridge & pid=$$!; sleep 1; ./bsd_test; rc=$$?; kill $$pid >/dev/null 2>&1; wait $$pid >/dev/null 2>&1; exit $$rc'
|
||||
|
||||
#also
|
||||
bsd_nortos_s390: CFLAGS_MONGOOSE += -DMG_ENABLE_BSD_PROTOTYPES=0
|
||||
bsd_nortos_s390: ASAN=
|
||||
bsd_nortos_s390: CC = $(DOCKER) mdashnet/s390 cc
|
||||
bsd_nortos_s390: RUN = $(DOCKER) --init mdashnet/s390
|
||||
bsd_nortos_s390: shm_port_bridge bsd_client bsd_nortos_test
|
||||
$(RUN) sh -c './shm_port_bridge & pid=$$!; sleep 1; ./bsd_nortos_test; rc=$$?; kill $$pid >/dev/null 2>&1; wait $$pid >/dev/null 2>&1; exit $$rc'
|
||||
|
||||
shm_port_bridge: shm_port_bridge.c shm_queue.h
|
||||
$(CC) shm_port_bridge.c $(CFLAGS) -pthread -o $@
|
||||
|
||||
|
||||
Reference in new issue
Block a user