diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 1200ef09..6bfecd5f 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -633,8 +633,8 @@ jobs: matrix: example: - path: micropython/esp32 - - path: http/uart-bridge/esp32 - - path: http/http-client/esp8266/http-client-server + - path: esp32/uart-bridge + - path: esp8266/http-client-server name: ${{ matrix.example.path }} env: GO: 0 @@ -652,7 +652,7 @@ jobs: include: - group: other examples: | - mqtt/mqtt-client/microchip/same54-xpro + microchip/same54-xpro/mqtt-client rp/pico-rmii stm32/nucleo-f746zg/minimal-rm2 stm32/nucleo-f746zg/minimal-rndis @@ -691,13 +691,13 @@ jobs: fail-fast: false matrix: example: - - path: esp32 + - path: esp32/device-dashboard name: ${{ matrix.example.path }} steps: - uses: actions/checkout@v5 with: { fetch-depth: 2 } - run: echo # nothing specific to install or do - - run: make -C tutorials/http/device-dashboard/${{ matrix.example.path }} build + - run: make -C tutorials/${{ matrix.example.path }} build device_dashboard_examples_arm: @@ -709,12 +709,12 @@ jobs: - group: none cflags: "" examples: | - http/device-dashboard/microchip/same54-xpro + microchip/same54-xpro/device-dashboard renesas/ek-ra6m4-make-baremetal-builtin - group: builtin cflags: -DMG_TLS=MG_TLS_BUILTIN examples: | - http/device-dashboard/microchip/same54-xpro + microchip/same54-xpro/device-dashboard renesas/ek-ra6m4-make-baremetal-builtin name: device dashboard ARM ${{ matrix.group }} steps: @@ -740,19 +740,19 @@ jobs: done exit $failed -# mqtt_dashboard_examples: -# runs-on: ubuntu-latest -# strategy: -# fail-fast: false -# matrix: -# example: -# - path: -# name: ${{ matrix.example.path }} -# steps: -# - uses: actions/checkout@v5 -# with: { fetch-depth: 2 } -# - run: echo # nothing specific to install or do -# - run: make -C tutorials/${{ matrix.example.path }} build + mqtt_dashboard_examples_arm: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + example: + - path: rp/pico-rndis-device + name: ${{ matrix.example.path }} + steps: + - uses: actions/checkout@v5 + with: { fetch-depth: 2 } + - run: sudo apt -y update && sudo apt -y install gcc-arm-none-eabi + - run: make -C tutorials/${{ matrix.example.path }} build # dual_examples: diff --git a/.github/workflows/nightly_tests.yml b/.github/workflows/nightly_tests.yml index 416170e3..30430297 100644 --- a/.github/workflows/nightly_tests.yml +++ b/.github/workflows/nightly_tests.yml @@ -98,8 +98,8 @@ jobs: with: { fetch-depth: 2 } - name: baremetal run: sudo apt -y update && sudo apt -y install gcc-arm-none-eabi - - run: make -C tutorials/http/device-dashboard/microchip/same54-xpro test VCON_API_KEY=${{secrets.VCON_API_KEY}} - - run: make -C tutorials/mqtt/mqtt-client/microchip/same54-xpro test VCON_API_KEY=${{secrets.VCON_API_KEY}} + - run: make -C tutorials/microchip/same54-xpro/device-dashboard test VCON_API_KEY=${{secrets.VCON_API_KEY}} + - run: make -C tutorials/microchip/same54-xpro/mqtt-client test VCON_API_KEY=${{secrets.VCON_API_KEY}} test_pico_w5500: runs-on: ubuntu-latest diff --git a/.github/workflows/quicktest.yml b/.github/workflows/quicktest.yml index 6b89d57b..1d147f7d 100644 --- a/.github/workflows/quicktest.yml +++ b/.github/workflows/quicktest.yml @@ -184,8 +184,8 @@ jobs: fail-fast: false matrix: example: - - path: http/uart-bridge/esp32 - - path: http/http-client/esp8266/http-client-server + - path: esp32/uart-bridge + - path: esp8266/http-client-server name: ${{ matrix.example.path }} env: GO: 0 @@ -227,7 +227,7 @@ jobs: fail-fast: false matrix: example: - - path: esp32 + - path: esp32/device-dashboard name: ${{ matrix.example.path }} env: GO: 0 @@ -235,12 +235,12 @@ jobs: - uses: actions/checkout@v5 with: { fetch-depth: 2 } - run: | - if ./test/match_changed_files.sh '^src|tutorials/http/device-dashboard'; then + if ./test/match_changed_files.sh '^src|^tutorials/http/device-dashboard|^tutorials/${{ matrix.example.path }}'; then echo GO=1 >> $GITHUB_ENV # nothing specific to install or do fi - if: ${{ env.GO == 1 }} - run: make -C tutorials/http/device-dashboard/${{ matrix.example.path }} build + run: make -C tutorials/${{ matrix.example.path }} build device_dashboard_examples_arm: runs-on: ubuntu-latest @@ -248,7 +248,7 @@ jobs: fail-fast: false matrix: example: - - path: http/device-dashboard/microchip/same54-xpro + - path: microchip/same54-xpro/device-dashboard - path: renesas/ek-ra6m4-make-baremetal-builtin - path: rp/pico-rndis - path: rp/pico-w @@ -267,3 +267,24 @@ jobs: fi - if: ${{ env.GO == 1 }} run: make -C tutorials/${{ matrix.example.path }} build + + mqtt_dashboard_examples_arm: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + example: + - path: rp/pico-rndis-device + name: ${{ matrix.example.path }} + env: + GO: 0 + steps: + - uses: actions/checkout@v5 + with: { fetch-depth: 2 } + - run: | + if ./test/match_changed_files.sh '^src|^tutorials/mqtt/mqtt-dashboard/device|^tutorials/${{ matrix.example.path }}'; then + echo GO=1 >> $GITHUB_ENV + sudo apt -y update && sudo apt -y install gcc-arm-none-eabi + fi + - if: ${{ env.GO == 1 }} + run: make -C tutorials/${{ matrix.example.path }} build diff --git a/mongoose.h b/mongoose.h index c2aeae60..f98f5f52 100644 --- a/mongoose.h +++ b/mongoose.h @@ -4013,7 +4013,6 @@ uint64_t mg_now(void); // MG_INFO(("every second")); // } // Full examples: -// tutorials/http/http-server/arduino/teensy41-http, // tutorials/mqtt/mqtt-client // Related APIs: // mg_millis(), mg_now() diff --git a/src/sntp.h b/src/sntp.h index 7128b93f..260d3e70 100644 --- a/src/sntp.h +++ b/src/sntp.h @@ -29,7 +29,6 @@ uint64_t mg_now(void); // MG_INFO(("every second")); // } // Full examples: -// tutorials/http/http-server/arduino/teensy41-http, // tutorials/mqtt/mqtt-client // Related APIs: // mg_millis(), mg_now() diff --git a/test/Makefile b/test/Makefile index 1bae88be..f57a2161 100644 --- a/test/Makefile +++ b/test/Makefile @@ -16,9 +16,11 @@ IPV6 ?= 1 MDASH ?= 1 ASAN ?= -fsanitize=address,undefined,alignment -fno-sanitize-recover=all -fno-omit-frame-pointer -fno-common ASAN_OPTIONS ?= detect_leaks=1 -# This does not include ESP32, ESP8266, Microchip; all examples that are directly placed under an OS tutorial. Also, it is needed that way... -TUTORIALS_EMBEDDED := $(dir $(wildcard ../tutorials/infineon/*/Makefile)) $(dir $(wildcard ../tutorials/nxp/*/Makefile)) $(dir $(wildcard ../tutorials/rp/*/Makefile)) $(dir $(wildcard ../tutorials/renesas/*/Makefile)) $(dir $(wildcard ../tutorials/stm32/*/*/Makefile)) $(dir $(wildcard ../tutorials/ti/*/Makefile)) $(dir $(wildcard ../tutorials/wch/*/Makefile)) -TUTORIALS := ../tutorials/micropython/ $(filter-out $(TUTORIALS_EMBEDDED), $(dir $(wildcard ../tutorials/*/*/Makefile))) +# ESP8266 tutorials are not run here. +TUTORIALS_EMBEDDED := $(dir $(wildcard ../tutorials/esp32/*/Makefile)) $(dir $(wildcard ../tutorials/infineon/*/Makefile)) $(dir $(wildcard ../tutorials/microchip/*/*/Makefile)) $(dir $(wildcard ../tutorials/nordic/*/Makefile)) $(dir $(wildcard ../tutorials/nxp/*/Makefile)) $(dir $(wildcard ../tutorials/pico-sdk/*/Makefile)) $(dir $(wildcard ../tutorials/rp/*/Makefile)) $(dir $(wildcard ../tutorials/renesas/*/Makefile)) $(dir $(wildcard ../tutorials/stm32/*/Makefile)) $(dir $(wildcard ../tutorials/stm32/*/*/Makefile)) $(dir $(wildcard ../tutorials/ti/*/Makefile)) $(dir $(wildcard ../tutorials/wch/*/Makefile)) +TUTORIALS_ESP8266 := $(dir $(wildcard ../tutorials/esp8266/*/Makefile)) +TUTORIALS_ZEPHYR := $(dir $(wildcard ../tutorials/zephyr/*/Makefile)) +TUTORIALS := ../tutorials/micropython/ $(filter-out $(TUTORIALS_EMBEDDED) $(TUTORIALS_ESP8266) $(TUTORIALS_ZEPHYR), $(dir $(wildcard ../tutorials/*/*/Makefile))) TUTORIALS_QUICK := $(filter-out ../tutorials/micropython/ ../tutorials/tcpip/pcap-driver/, $(TUTORIALS)) TUTORIALS_MAC := $(filter-out ../tutorials/micropython/ ../tutorials/tcpip/pcap-driver/ ../tutorials/tcpip/tap-driver/, $(TUTORIALS)) TUTORIALS_WIN := $(dir $(wildcard ../tutorials/http/file-*/Makefile) $(wildcard ../tutorials/http/http-*/Makefile) $(wildcard ../tutorials/mqtt/*/Makefile) $(wildcard ../tutorials/websocket/*/Makefile) $(wildcard ../tutorials/webui/*/Makefile)) diff --git a/test/arduino/Makefile b/test/arduino/Makefile index 6bf50430..fc2ef8f5 100644 --- a/test/arduino/Makefile +++ b/test/arduino/Makefile @@ -29,20 +29,20 @@ teensy-board: touch teensy-board seeeduino-xiao: arduino seeeduino-xiao-board - cd $(ROOT)/tutorials/mqtt/mqtt-client/arduino/sim800-mqtt && $(ARD)/arduino/arduino --verbose --verify --board Seeeduino:samd:seeed_XIAO_m0 sim800-mqtt.ino - cd $(ROOT)/tutorials/http/http-server/arduino/w5500-http && $(ARD)/arduino/arduino --verbose --verify --board Seeeduino:samd:seeed_XIAO_m0 w5500-http.ino - cd $(ROOT)/tutorials/mqtt/mqtt-client/arduino/w5500-mqtt && $(ARD)/arduino/arduino --verbose --verify --board Seeeduino:samd:seeed_XIAO_m0 w5500-mqtt.ino + cd $(ROOT)/tutorials/arduino/sim800-mqtt && $(ARD)/arduino/arduino --verbose --verify --board Seeeduino:samd:seeed_XIAO_m0 sim800-mqtt.ino + cd $(ROOT)/tutorials/arduino/w5500-http && $(ARD)/arduino/arduino --verbose --verify --board Seeeduino:samd:seeed_XIAO_m0 w5500-http.ino + cd $(ROOT)/tutorials/arduino/w5500-mqtt && $(ARD)/arduino/arduino --verbose --verify --board Seeeduino:samd:seeed_XIAO_m0 w5500-mqtt.ino arduino-nano: arduino - cd $(ROOT)/tutorials/mqtt/mqtt-client/arduino/nano-w5500-mqtt && $(ARD)/arduino/arduino --pref compiler.cpp.extra_flags=-DMG_ENABLE_LOG=0 --verbose --verify --board arduino:avr:nano nano-w5500-mqtt.ino + cd $(ROOT)/tutorials/arduino/nano-w5500-mqtt && $(ARD)/arduino/arduino --pref compiler.cpp.extra_flags=-DMG_ENABLE_LOG=0 --verbose --verify --board arduino:avr:nano nano-w5500-mqtt.ino esp32: arduino esp32-board - cd $(ROOT)/tutorials/mqtt/mqtt-client/arduino/esp32-mqtt && $(ARD)/arduino/arduino --verbose --verify --board esp32:esp32:node32s esp32-mqtt.ino + cd $(ROOT)/tutorials/arduino/esp32-mqtt && $(ARD)/arduino/arduino --verbose --verify --board esp32:esp32:node32s esp32-mqtt.ino # Needs a board with 'LED_BUILTIN', yet somehow invocation is missing that definition (lack of include somehow amended by the IDE) - #cd $(ROOT)/tutorials/http/http-server/arduino/esp32-http && $(ARD)/arduino/arduino --verbose --verify --board esp32:esp32:esp32 esp32-http.ino + #cd $(ROOT)/tutorials/arduino/esp32-http && $(ARD)/arduino/arduino --verbose --verify --board esp32:esp32:esp32 esp32-http.ino teensy41: arduino teensy-board - cd $(ROOT)/tutorials/http/http-server/arduino/teensy41-http && $(ARD)/arduino/arduino --verbose --verify --board teensy41-http.ino + cd $(ROOT)/tutorials/arduino/teensy41-http && $(ARD)/arduino/arduino --verbose --verify --board teensy41-http.ino diff --git a/test/esp-idf/Makefile b/test/esp-idf/Makefile index 5a0ecaf0..a68792fe 100644 --- a/test/esp-idf/Makefile +++ b/test/esp-idf/Makefile @@ -1,5 +1,5 @@ ROOT ?= $(realpath $(CURDIR)/../..) -PROJECTS ?= ../../tutorials/http/device-dashboard/esp32/ ../../tutorials/micropython/esp32/ ../../tutorials/http/uart-bridge/esp32/ +PROJECTS ?= ../../tutorials/esp32/device-dashboard/ ../../tutorials/micropython/esp32/ ../../tutorials/esp32/uart-bridge/ TARGET ?= Debug DOCKER = docker run --rm -v $(ROOT):$(ROOT) -v $(CURDIR):/root -w $(CURDIR) IMAGE ?= espressif/idf diff --git a/tutorials/README.md b/tutorials/README.md index ba75a010..f0f7e4ab 100644 --- a/tutorials/README.md +++ b/tutorials/README.md @@ -9,13 +9,13 @@ The fastest way to quickly get Mongoose running on your hardware is to follow ou Steps to get the most out of this code base: -- Most code here has a README.md file that points to a verbose tutorial describing how to get the intended functionality out of Mongoose Network Library. Code there runs as is in Windows, Ubuntu Linux, and Mac (very few cases don't run in Windows). +- Most workstation code here has a README.md file that points to a verbose tutorial describing how to get the intended functionality out of Mongoose Network Library. Code there runs as is in Windows, Ubuntu Linux, and Mac (very few cases don't run in Windows). - Navigate your way to the desired protocol or function, read the README.md file - Follow the linked tutorial - In cases were there is no tutorial: - Follow the [Build Tools](https://mongoose.ws/documentation/tutorials/tools/) tutorial to setup your development environment. - run `make all` -- Embedded hardware tutorials are conveniently linked from OS tutorials, or grouped by vendor and board. +- Embedded hardware tutorials are grouped by vendor and board. - Navigate your way to the desired board or the closest one, read the README.md file. In most cases you'll find a link to our [Wizard](https://mongoose.ws/wizard/); for others, there is a link to a [Tutorial](https://mongoose.ws/documentation/#tutorials), as described at the top of this text. The Wizard will also link you to the tutorials you'll need. - In cases were there you don't find a link to a tutorial: - Follow the [Build Tools](https://mongoose.ws/documentation/tutorials/tools/) tutorial to setup your development environment. @@ -28,7 +28,8 @@ Steps to get the most out of this code base: Rules for creating a new example: - Makefile golden reference for desktop/server examples: [http-server](http/http-server/) -- Makefile golden reference for embedded examples: [stm32/nucleo-f746zg-baremetal-builtin-rndis](stm32/nucleo-f746zg-baremetal-builtin-rndis/) +- Makefile golden reference for embedded examples: [stm32/nucleo-f746zg/minimal](stm32/nucleo-f746zg/minimal/) +- Desktop/server examples compile `$(REPO_ROOT)/mongoose.c` and add `$(REPO_ROOT)` to their include path - Examples must build on Windows, Mac and Ubuntu Linux systems - Assume that users installed their tools according to the [Build Tools](https://mongoose.ws/documentation/tutorials/tools/) tutorial - Makefiles must not include other Makefiles @@ -37,5 +38,5 @@ Rules for creating a new example: - Use `$(CFLAGS) $(CFLAGS_MONGOOSE) $(CFLAGS_EXTRA)` to compile - If an external repository is required, download it on demand using git shallow clone. See the embedded examples golden reference - Keep Makefiles as short as possible, but verbose to understand them easily -- Symlink files when required, like `mongoose.c`, `ca.pem`, etc. Make no copies +- Symlink files when required, like `ca.pem`, etc. Make no copies - Examples README.md files should contain only the title and the link to the corresponding mongoose.ws tutorial page diff --git a/tutorials/arduino/esp32-http b/tutorials/arduino/esp32-http deleted file mode 120000 index 3c8dc513..00000000 --- a/tutorials/arduino/esp32-http +++ /dev/null @@ -1 +0,0 @@ -../http/http-server/arduino/esp32-http \ No newline at end of file diff --git a/tutorials/http/http-server/arduino/esp32-http/esp32-http.ino b/tutorials/arduino/esp32-http/esp32-http.ino similarity index 100% rename from tutorials/http/http-server/arduino/esp32-http/esp32-http.ino rename to tutorials/arduino/esp32-http/esp32-http.ino diff --git a/tutorials/http/device-dashboard/mongoose.c b/tutorials/arduino/esp32-http/mongoose.c similarity index 100% rename from tutorials/http/device-dashboard/mongoose.c rename to tutorials/arduino/esp32-http/mongoose.c diff --git a/tutorials/http/device-dashboard/mongoose.h b/tutorials/arduino/esp32-http/mongoose.h similarity index 100% rename from tutorials/http/device-dashboard/mongoose.h rename to tutorials/arduino/esp32-http/mongoose.h diff --git a/tutorials/http/http-server/arduino/esp32-http/mongoose_config.h b/tutorials/arduino/esp32-http/mongoose_config.h similarity index 100% rename from tutorials/http/http-server/arduino/esp32-http/mongoose_config.h rename to tutorials/arduino/esp32-http/mongoose_config.h diff --git a/tutorials/arduino/esp32-mqtt b/tutorials/arduino/esp32-mqtt deleted file mode 120000 index 4abc7ccd..00000000 --- a/tutorials/arduino/esp32-mqtt +++ /dev/null @@ -1 +0,0 @@ -../mqtt/mqtt-client/arduino/esp32-mqtt \ No newline at end of file diff --git a/tutorials/mqtt/mqtt-client/arduino/esp32-mqtt/esp32-mqtt.ino b/tutorials/arduino/esp32-mqtt/esp32-mqtt.ino similarity index 100% rename from tutorials/mqtt/mqtt-client/arduino/esp32-mqtt/esp32-mqtt.ino rename to tutorials/arduino/esp32-mqtt/esp32-mqtt.ino diff --git a/tutorials/http/file-transfer/mongoose.c b/tutorials/arduino/esp32-mqtt/mongoose.c similarity index 100% rename from tutorials/http/file-transfer/mongoose.c rename to tutorials/arduino/esp32-mqtt/mongoose.c diff --git a/tutorials/http/file-transfer/mongoose.h b/tutorials/arduino/esp32-mqtt/mongoose.h similarity index 100% rename from tutorials/http/file-transfer/mongoose.h rename to tutorials/arduino/esp32-mqtt/mongoose.h diff --git a/tutorials/mqtt/mqtt-client/arduino/esp32-mqtt/mongoose_config.h b/tutorials/arduino/esp32-mqtt/mongoose_config.h similarity index 100% rename from tutorials/mqtt/mqtt-client/arduino/esp32-mqtt/mongoose_config.h rename to tutorials/arduino/esp32-mqtt/mongoose_config.h diff --git a/tutorials/http/file-upload-html-form/mongoose.c b/tutorials/arduino/nano-w5500-mqtt/mongoose.c similarity index 100% rename from tutorials/http/file-upload-html-form/mongoose.c rename to tutorials/arduino/nano-w5500-mqtt/mongoose.c diff --git a/tutorials/http/file-upload-html-form/mongoose.h b/tutorials/arduino/nano-w5500-mqtt/mongoose.h similarity index 100% rename from tutorials/http/file-upload-html-form/mongoose.h rename to tutorials/arduino/nano-w5500-mqtt/mongoose.h diff --git a/tutorials/mqtt/mqtt-client/arduino/nano-w5500-mqtt/mongoose_config.h b/tutorials/arduino/nano-w5500-mqtt/mongoose_config.h similarity index 100% rename from tutorials/mqtt/mqtt-client/arduino/nano-w5500-mqtt/mongoose_config.h rename to tutorials/arduino/nano-w5500-mqtt/mongoose_config.h diff --git a/tutorials/mqtt/mqtt-client/arduino/nano-w5500-mqtt/w5500-mqtt.ino b/tutorials/arduino/nano-w5500-mqtt/w5500-mqtt.ino similarity index 100% rename from tutorials/mqtt/mqtt-client/arduino/nano-w5500-mqtt/w5500-mqtt.ino rename to tutorials/arduino/nano-w5500-mqtt/w5500-mqtt.ino diff --git a/tutorials/arduino/sim800-mqtt b/tutorials/arduino/sim800-mqtt deleted file mode 120000 index 0e5c2c4d..00000000 --- a/tutorials/arduino/sim800-mqtt +++ /dev/null @@ -1 +0,0 @@ -../mqtt/mqtt-client/arduino/sim800-mqtt/ \ No newline at end of file diff --git a/tutorials/http/file-upload-multiple-posts/mongoose.c b/tutorials/arduino/sim800-mqtt/mongoose.c similarity index 100% rename from tutorials/http/file-upload-multiple-posts/mongoose.c rename to tutorials/arduino/sim800-mqtt/mongoose.c diff --git a/tutorials/http/file-upload-multiple-posts/mongoose.h b/tutorials/arduino/sim800-mqtt/mongoose.h similarity index 100% rename from tutorials/http/file-upload-multiple-posts/mongoose.h rename to tutorials/arduino/sim800-mqtt/mongoose.h diff --git a/tutorials/mqtt/mqtt-client/arduino/sim800-mqtt/mongoose_config.h b/tutorials/arduino/sim800-mqtt/mongoose_config.h similarity index 100% rename from tutorials/mqtt/mqtt-client/arduino/sim800-mqtt/mongoose_config.h rename to tutorials/arduino/sim800-mqtt/mongoose_config.h diff --git a/tutorials/mqtt/mqtt-client/arduino/sim800-mqtt/sim800-mqtt.ino b/tutorials/arduino/sim800-mqtt/sim800-mqtt.ino similarity index 100% rename from tutorials/mqtt/mqtt-client/arduino/sim800-mqtt/sim800-mqtt.ino rename to tutorials/arduino/sim800-mqtt/sim800-mqtt.ino diff --git a/tutorials/arduino/teensy41-http b/tutorials/arduino/teensy41-http deleted file mode 120000 index 9db18022..00000000 --- a/tutorials/arduino/teensy41-http +++ /dev/null @@ -1 +0,0 @@ -../http/http-server/arduino/teensy41-http/ \ No newline at end of file diff --git a/tutorials/http/file-upload-single-post/mongoose.c b/tutorials/arduino/teensy41-http/mongoose.c similarity index 100% rename from tutorials/http/file-upload-single-post/mongoose.c rename to tutorials/arduino/teensy41-http/mongoose.c diff --git a/tutorials/http/file-upload-single-post/mongoose.h b/tutorials/arduino/teensy41-http/mongoose.h similarity index 100% rename from tutorials/http/file-upload-single-post/mongoose.h rename to tutorials/arduino/teensy41-http/mongoose.h diff --git a/tutorials/http/http-server/arduino/teensy41-http/mongoose_config.h b/tutorials/arduino/teensy41-http/mongoose_config.h similarity index 100% rename from tutorials/http/http-server/arduino/teensy41-http/mongoose_config.h rename to tutorials/arduino/teensy41-http/mongoose_config.h diff --git a/tutorials/arduino/teensy41-http/net.c b/tutorials/arduino/teensy41-http/net.c new file mode 120000 index 00000000..d40995ff --- /dev/null +++ b/tutorials/arduino/teensy41-http/net.c @@ -0,0 +1 @@ +../../http/device-dashboard/net.c \ No newline at end of file diff --git a/tutorials/arduino/teensy41-http/net.h b/tutorials/arduino/teensy41-http/net.h new file mode 120000 index 00000000..290e3068 --- /dev/null +++ b/tutorials/arduino/teensy41-http/net.h @@ -0,0 +1 @@ +../../http/device-dashboard/net.h \ No newline at end of file diff --git a/tutorials/arduino/teensy41-http/packed_fs.c b/tutorials/arduino/teensy41-http/packed_fs.c new file mode 120000 index 00000000..41f8c7d9 --- /dev/null +++ b/tutorials/arduino/teensy41-http/packed_fs.c @@ -0,0 +1 @@ +../../http/device-dashboard/packed_fs.c \ No newline at end of file diff --git a/tutorials/http/http-server/arduino/teensy41-http/teensy41-http.ino b/tutorials/arduino/teensy41-http/teensy41-http.ino similarity index 100% rename from tutorials/http/http-server/arduino/teensy41-http/teensy41-http.ino rename to tutorials/arduino/teensy41-http/teensy41-http.ino diff --git a/tutorials/arduino/w5500-http b/tutorials/arduino/w5500-http deleted file mode 120000 index a0f15a34..00000000 --- a/tutorials/arduino/w5500-http +++ /dev/null @@ -1 +0,0 @@ -../http/http-server/arduino/w5500-http \ No newline at end of file diff --git a/tutorials/http/http-client/mongoose.c b/tutorials/arduino/w5500-http/mongoose.c similarity index 100% rename from tutorials/http/http-client/mongoose.c rename to tutorials/arduino/w5500-http/mongoose.c diff --git a/tutorials/http/http-client/mongoose.h b/tutorials/arduino/w5500-http/mongoose.h similarity index 100% rename from tutorials/http/http-client/mongoose.h rename to tutorials/arduino/w5500-http/mongoose.h diff --git a/tutorials/http/http-server/arduino/w5500-http/mongoose_config.h b/tutorials/arduino/w5500-http/mongoose_config.h similarity index 100% rename from tutorials/http/http-server/arduino/w5500-http/mongoose_config.h rename to tutorials/arduino/w5500-http/mongoose_config.h diff --git a/tutorials/http/http-server/arduino/w5500-http/w5500-http.ino b/tutorials/arduino/w5500-http/w5500-http.ino similarity index 100% rename from tutorials/http/http-server/arduino/w5500-http/w5500-http.ino rename to tutorials/arduino/w5500-http/w5500-http.ino diff --git a/tutorials/arduino/w5500-mqtt b/tutorials/arduino/w5500-mqtt deleted file mode 120000 index 4b36442d..00000000 --- a/tutorials/arduino/w5500-mqtt +++ /dev/null @@ -1 +0,0 @@ -../mqtt/mqtt-client/arduino/w5500-mqtt \ No newline at end of file diff --git a/tutorials/http/http-proxy-client/mongoose.c b/tutorials/arduino/w5500-mqtt/mongoose.c similarity index 100% rename from tutorials/http/http-proxy-client/mongoose.c rename to tutorials/arduino/w5500-mqtt/mongoose.c diff --git a/tutorials/http/http-proxy-client/mongoose.h b/tutorials/arduino/w5500-mqtt/mongoose.h similarity index 100% rename from tutorials/http/http-proxy-client/mongoose.h rename to tutorials/arduino/w5500-mqtt/mongoose.h diff --git a/tutorials/mqtt/mqtt-client/arduino/w5500-mqtt/mongoose_config.h b/tutorials/arduino/w5500-mqtt/mongoose_config.h similarity index 100% rename from tutorials/mqtt/mqtt-client/arduino/w5500-mqtt/mongoose_config.h rename to tutorials/arduino/w5500-mqtt/mongoose_config.h diff --git a/tutorials/mqtt/mqtt-client/arduino/w5500-mqtt/w5500-mqtt.ino b/tutorials/arduino/w5500-mqtt/w5500-mqtt.ino similarity index 100% rename from tutorials/mqtt/mqtt-client/arduino/w5500-mqtt/w5500-mqtt.ino rename to tutorials/arduino/w5500-mqtt/w5500-mqtt.ino diff --git a/tutorials/http/device-dashboard/esp32/CMakeLists.txt b/tutorials/esp32/device-dashboard/CMakeLists.txt similarity index 100% rename from tutorials/http/device-dashboard/esp32/CMakeLists.txt rename to tutorials/esp32/device-dashboard/CMakeLists.txt diff --git a/tutorials/http/device-dashboard/esp32/Makefile b/tutorials/esp32/device-dashboard/Makefile similarity index 100% rename from tutorials/http/device-dashboard/esp32/Makefile rename to tutorials/esp32/device-dashboard/Makefile diff --git a/tutorials/http/device-dashboard/esp32/README.md b/tutorials/esp32/device-dashboard/README.md similarity index 100% rename from tutorials/http/device-dashboard/esp32/README.md rename to tutorials/esp32/device-dashboard/README.md diff --git a/tutorials/http/device-dashboard/esp32/main/CMakeLists.txt b/tutorials/esp32/device-dashboard/main/CMakeLists.txt similarity index 100% rename from tutorials/http/device-dashboard/esp32/main/CMakeLists.txt rename to tutorials/esp32/device-dashboard/main/CMakeLists.txt diff --git a/tutorials/http/device-dashboard/esp32/main/main.c b/tutorials/esp32/device-dashboard/main/main.c similarity index 100% rename from tutorials/http/device-dashboard/esp32/main/main.c rename to tutorials/esp32/device-dashboard/main/main.c diff --git a/tutorials/mqtt/mqtt-dashboard/device/mongoose.c b/tutorials/esp32/device-dashboard/main/mongoose.c similarity index 100% rename from tutorials/mqtt/mqtt-dashboard/device/mongoose.c rename to tutorials/esp32/device-dashboard/main/mongoose.c diff --git a/tutorials/mqtt/mqtt-dashboard/device/mongoose.h b/tutorials/esp32/device-dashboard/main/mongoose.h similarity index 100% rename from tutorials/mqtt/mqtt-dashboard/device/mongoose.h rename to tutorials/esp32/device-dashboard/main/mongoose.h diff --git a/tutorials/http/device-dashboard/esp32/main/mongoose_config.h b/tutorials/esp32/device-dashboard/main/mongoose_config.h similarity index 100% rename from tutorials/http/device-dashboard/esp32/main/mongoose_config.h rename to tutorials/esp32/device-dashboard/main/mongoose_config.h diff --git a/tutorials/esp32/device-dashboard/main/net.c b/tutorials/esp32/device-dashboard/main/net.c new file mode 120000 index 00000000..f9d6d5e0 --- /dev/null +++ b/tutorials/esp32/device-dashboard/main/net.c @@ -0,0 +1 @@ +../../../http/device-dashboard/net.c \ No newline at end of file diff --git a/tutorials/esp32/device-dashboard/main/net.h b/tutorials/esp32/device-dashboard/main/net.h new file mode 120000 index 00000000..b5819fac --- /dev/null +++ b/tutorials/esp32/device-dashboard/main/net.h @@ -0,0 +1 @@ +../../../http/device-dashboard/net.h \ No newline at end of file diff --git a/tutorials/esp32/device-dashboard/main/packed_fs.c b/tutorials/esp32/device-dashboard/main/packed_fs.c new file mode 120000 index 00000000..d383b87c --- /dev/null +++ b/tutorials/esp32/device-dashboard/main/packed_fs.c @@ -0,0 +1 @@ +../../../http/device-dashboard/packed_fs.c \ No newline at end of file diff --git a/tutorials/http/device-dashboard/esp32/main/wifi.c b/tutorials/esp32/device-dashboard/main/wifi.c similarity index 100% rename from tutorials/http/device-dashboard/esp32/main/wifi.c rename to tutorials/esp32/device-dashboard/main/wifi.c diff --git a/tutorials/http/device-dashboard/esp32/partitions.csv b/tutorials/esp32/device-dashboard/partitions.csv similarity index 100% rename from tutorials/http/device-dashboard/esp32/partitions.csv rename to tutorials/esp32/device-dashboard/partitions.csv diff --git a/tutorials/http/device-dashboard/esp32/sdkconfig.defaults b/tutorials/esp32/device-dashboard/sdkconfig.defaults similarity index 100% rename from tutorials/http/device-dashboard/esp32/sdkconfig.defaults rename to tutorials/esp32/device-dashboard/sdkconfig.defaults diff --git a/tutorials/http/uart-bridge/esp32/CMakeLists.txt b/tutorials/esp32/uart-bridge/CMakeLists.txt similarity index 100% rename from tutorials/http/uart-bridge/esp32/CMakeLists.txt rename to tutorials/esp32/uart-bridge/CMakeLists.txt diff --git a/tutorials/http/uart-bridge/esp32/Makefile b/tutorials/esp32/uart-bridge/Makefile similarity index 100% rename from tutorials/http/uart-bridge/esp32/Makefile rename to tutorials/esp32/uart-bridge/Makefile diff --git a/tutorials/http/uart-bridge/esp32/README.md b/tutorials/esp32/uart-bridge/README.md similarity index 100% rename from tutorials/http/uart-bridge/esp32/README.md rename to tutorials/esp32/uart-bridge/README.md diff --git a/tutorials/http/uart-bridge/esp32/main/CMakeLists.txt b/tutorials/esp32/uart-bridge/main/CMakeLists.txt similarity index 100% rename from tutorials/http/uart-bridge/esp32/main/CMakeLists.txt rename to tutorials/esp32/uart-bridge/main/CMakeLists.txt diff --git a/tutorials/http/uart-bridge/esp32/main/cli.c b/tutorials/esp32/uart-bridge/main/cli.c similarity index 100% rename from tutorials/http/uart-bridge/esp32/main/cli.c rename to tutorials/esp32/uart-bridge/main/cli.c diff --git a/tutorials/http/uart-bridge/esp32/main/main.c b/tutorials/esp32/uart-bridge/main/main.c similarity index 100% rename from tutorials/http/uart-bridge/esp32/main/main.c rename to tutorials/esp32/uart-bridge/main/main.c diff --git a/tutorials/http/uart-bridge/esp32/main/main.h b/tutorials/esp32/uart-bridge/main/main.h similarity index 100% rename from tutorials/http/uart-bridge/esp32/main/main.h rename to tutorials/esp32/uart-bridge/main/main.h diff --git a/tutorials/esp32/uart-bridge/main/mongoose.c b/tutorials/esp32/uart-bridge/main/mongoose.c new file mode 120000 index 00000000..7a2752cb --- /dev/null +++ b/tutorials/esp32/uart-bridge/main/mongoose.c @@ -0,0 +1 @@ +../../../../mongoose.c \ No newline at end of file diff --git a/tutorials/esp32/uart-bridge/main/mongoose.h b/tutorials/esp32/uart-bridge/main/mongoose.h new file mode 120000 index 00000000..daff1633 --- /dev/null +++ b/tutorials/esp32/uart-bridge/main/mongoose.h @@ -0,0 +1 @@ +../../../../mongoose.h \ No newline at end of file diff --git a/tutorials/http/uart-bridge/esp32/main/mongoose_config.h b/tutorials/esp32/uart-bridge/main/mongoose_config.h similarity index 100% rename from tutorials/http/uart-bridge/esp32/main/mongoose_config.h rename to tutorials/esp32/uart-bridge/main/mongoose_config.h diff --git a/tutorials/esp32/uart-bridge/main/net.c b/tutorials/esp32/uart-bridge/main/net.c new file mode 120000 index 00000000..1d4fd1c5 --- /dev/null +++ b/tutorials/esp32/uart-bridge/main/net.c @@ -0,0 +1 @@ +../../../http/uart-bridge/net.c \ No newline at end of file diff --git a/tutorials/esp32/uart-bridge/main/packed_fs.c b/tutorials/esp32/uart-bridge/main/packed_fs.c new file mode 120000 index 00000000..b4271e6d --- /dev/null +++ b/tutorials/esp32/uart-bridge/main/packed_fs.c @@ -0,0 +1 @@ +../../../http/uart-bridge/packed_fs.c \ No newline at end of file diff --git a/tutorials/http/uart-bridge/esp32/main/uart.c b/tutorials/esp32/uart-bridge/main/uart.c similarity index 100% rename from tutorials/http/uart-bridge/esp32/main/uart.c rename to tutorials/esp32/uart-bridge/main/uart.c diff --git a/tutorials/http/uart-bridge/esp32/main/wifi.c b/tutorials/esp32/uart-bridge/main/wifi.c similarity index 100% rename from tutorials/http/uart-bridge/esp32/main/wifi.c rename to tutorials/esp32/uart-bridge/main/wifi.c diff --git a/tutorials/http/uart-bridge/esp32/make b/tutorials/esp32/uart-bridge/make similarity index 100% rename from tutorials/http/uart-bridge/esp32/make rename to tutorials/esp32/uart-bridge/make diff --git a/tutorials/http/uart-bridge/esp32/partitions.csv b/tutorials/esp32/uart-bridge/partitions.csv similarity index 100% rename from tutorials/http/uart-bridge/esp32/partitions.csv rename to tutorials/esp32/uart-bridge/partitions.csv diff --git a/tutorials/http/uart-bridge/esp32/sdkconfig.defaults b/tutorials/esp32/uart-bridge/sdkconfig.defaults similarity index 100% rename from tutorials/http/uart-bridge/esp32/sdkconfig.defaults rename to tutorials/esp32/uart-bridge/sdkconfig.defaults diff --git a/tutorials/http/http-client/esp8266/http-client-server/Makefile b/tutorials/esp8266/http-client-server/Makefile similarity index 100% rename from tutorials/http/http-client/esp8266/http-client-server/Makefile rename to tutorials/esp8266/http-client-server/Makefile diff --git a/tutorials/http/http-client/esp8266/http-client-server/README.md b/tutorials/esp8266/http-client-server/README.md similarity index 100% rename from tutorials/http/http-client/esp8266/http-client-server/README.md rename to tutorials/esp8266/http-client-server/README.md diff --git a/tutorials/http/http-client/esp8266/http-client-server/src/Makefile b/tutorials/esp8266/http-client-server/src/Makefile similarity index 100% rename from tutorials/http/http-client/esp8266/http-client-server/src/Makefile rename to tutorials/esp8266/http-client-server/src/Makefile diff --git a/tutorials/http/http-client/esp8266/http-client-server/src/main/component.mk b/tutorials/esp8266/http-client-server/src/main/component.mk similarity index 100% rename from tutorials/http/http-client/esp8266/http-client-server/src/main/component.mk rename to tutorials/esp8266/http-client-server/src/main/component.mk diff --git a/tutorials/http/http-client/esp8266/http-client-server/src/main/main.c b/tutorials/esp8266/http-client-server/src/main/main.c similarity index 100% rename from tutorials/http/http-client/esp8266/http-client-server/src/main/main.c rename to tutorials/esp8266/http-client-server/src/main/main.c diff --git a/tutorials/http/device-dashboard/esp32/main/mongoose.c b/tutorials/esp8266/http-client-server/src/main/mongoose.c similarity index 100% rename from tutorials/http/device-dashboard/esp32/main/mongoose.c rename to tutorials/esp8266/http-client-server/src/main/mongoose.c diff --git a/tutorials/http/device-dashboard/esp32/main/mongoose.h b/tutorials/esp8266/http-client-server/src/main/mongoose.h similarity index 100% rename from tutorials/http/device-dashboard/esp32/main/mongoose.h rename to tutorials/esp8266/http-client-server/src/main/mongoose.h diff --git a/tutorials/http/http-client/esp8266/http-client-server/src/main/mongoose_config.h b/tutorials/esp8266/http-client-server/src/main/mongoose_config.h similarity index 100% rename from tutorials/http/http-client/esp8266/http-client-server/src/main/mongoose_config.h rename to tutorials/esp8266/http-client-server/src/main/mongoose_config.h diff --git a/tutorials/http/http-client/esp8266/http-client-server/src/main/wifi.c b/tutorials/esp8266/http-client-server/src/main/wifi.c similarity index 100% rename from tutorials/http/http-client/esp8266/http-client-server/src/main/wifi.c rename to tutorials/esp8266/http-client-server/src/main/wifi.c diff --git a/tutorials/http/http-client/esp8266/http-client-server/src/sdkconfig b/tutorials/esp8266/http-client-server/src/sdkconfig similarity index 100% rename from tutorials/http/http-client/esp8266/http-client-server/src/sdkconfig rename to tutorials/esp8266/http-client-server/src/sdkconfig diff --git a/tutorials/http/device-dashboard/Makefile b/tutorials/http/device-dashboard/Makefile index ed2c55d1..3c24ecb2 100644 --- a/tutorials/http/device-dashboard/Makefile +++ b/tutorials/http/device-dashboard/Makefile @@ -1,8 +1,10 @@ +REPO_ROOT ?= ../../.. + PROG ?= ./example # Program we are building DELETE = rm -rf # Command to remove files OUT ?= -o $(PROG) # Compiler argument for output file -SOURCES = main.c mongoose.c net.c packed_fs.c # Source code files -CFLAGS = -W -Wall -Wextra -g -I. # Build options +SOURCES = main.c $(REPO_ROOT)/mongoose.c net.c packed_fs.c # Source code files +CFLAGS = -I$(REPO_ROOT) -W -Wall -Wextra -g -I. # Build options # Mongoose build options. See https://mongoose.ws/documentation/#build-options # CFLAGS_MONGOOSE += diff --git a/tutorials/http/device-dashboard/esp32/main/net.c b/tutorials/http/device-dashboard/esp32/main/net.c deleted file mode 120000 index 2541c1ab..00000000 --- a/tutorials/http/device-dashboard/esp32/main/net.c +++ /dev/null @@ -1 +0,0 @@ -../../net.c \ No newline at end of file diff --git a/tutorials/http/device-dashboard/esp32/main/net.h b/tutorials/http/device-dashboard/esp32/main/net.h deleted file mode 120000 index b428c377..00000000 --- a/tutorials/http/device-dashboard/esp32/main/net.h +++ /dev/null @@ -1 +0,0 @@ -../../net.h \ No newline at end of file diff --git a/tutorials/http/device-dashboard/esp32/main/packed_fs.c b/tutorials/http/device-dashboard/esp32/main/packed_fs.c deleted file mode 120000 index 3d58f82d..00000000 --- a/tutorials/http/device-dashboard/esp32/main/packed_fs.c +++ /dev/null @@ -1 +0,0 @@ -../../packed_fs.c \ No newline at end of file diff --git a/tutorials/http/device-dashboard/infineon b/tutorials/http/device-dashboard/infineon deleted file mode 120000 index 3a145e9c..00000000 --- a/tutorials/http/device-dashboard/infineon +++ /dev/null @@ -1 +0,0 @@ -../../infineon/ \ No newline at end of file diff --git a/tutorials/http/device-dashboard/microchip/same54-xpro/mongoose.c b/tutorials/http/device-dashboard/microchip/same54-xpro/mongoose.c deleted file mode 120000 index fe5764e5..00000000 --- a/tutorials/http/device-dashboard/microchip/same54-xpro/mongoose.c +++ /dev/null @@ -1 +0,0 @@ -../../../../../mongoose.c \ No newline at end of file diff --git a/tutorials/http/device-dashboard/microchip/same54-xpro/mongoose.h b/tutorials/http/device-dashboard/microchip/same54-xpro/mongoose.h deleted file mode 120000 index 4cd6a2b4..00000000 --- a/tutorials/http/device-dashboard/microchip/same54-xpro/mongoose.h +++ /dev/null @@ -1 +0,0 @@ -../../../../../mongoose.h \ No newline at end of file diff --git a/tutorials/http/device-dashboard/microchip/same54-xpro/net.c b/tutorials/http/device-dashboard/microchip/same54-xpro/net.c deleted file mode 120000 index 2541c1ab..00000000 --- a/tutorials/http/device-dashboard/microchip/same54-xpro/net.c +++ /dev/null @@ -1 +0,0 @@ -../../net.c \ No newline at end of file diff --git a/tutorials/http/device-dashboard/microchip/same54-xpro/net.h b/tutorials/http/device-dashboard/microchip/same54-xpro/net.h deleted file mode 120000 index b428c377..00000000 --- a/tutorials/http/device-dashboard/microchip/same54-xpro/net.h +++ /dev/null @@ -1 +0,0 @@ -../../net.h \ No newline at end of file diff --git a/tutorials/http/device-dashboard/microchip/same54-xpro/packed_fs.c b/tutorials/http/device-dashboard/microchip/same54-xpro/packed_fs.c deleted file mode 120000 index 3d58f82d..00000000 --- a/tutorials/http/device-dashboard/microchip/same54-xpro/packed_fs.c +++ /dev/null @@ -1 +0,0 @@ -../../packed_fs.c \ No newline at end of file diff --git a/tutorials/http/device-dashboard/nxp b/tutorials/http/device-dashboard/nxp deleted file mode 120000 index 098e2f7a..00000000 --- a/tutorials/http/device-dashboard/nxp +++ /dev/null @@ -1 +0,0 @@ -../../nxp \ No newline at end of file diff --git a/tutorials/http/device-dashboard/pico-sdk b/tutorials/http/device-dashboard/pico-sdk deleted file mode 120000 index 8552e028..00000000 --- a/tutorials/http/device-dashboard/pico-sdk +++ /dev/null @@ -1 +0,0 @@ -../../pico-sdk/ \ No newline at end of file diff --git a/tutorials/http/device-dashboard/renesas b/tutorials/http/device-dashboard/renesas deleted file mode 120000 index b411c0e5..00000000 --- a/tutorials/http/device-dashboard/renesas +++ /dev/null @@ -1 +0,0 @@ -../../renesas \ No newline at end of file diff --git a/tutorials/http/device-dashboard/stm32 b/tutorials/http/device-dashboard/stm32 deleted file mode 120000 index 112dec35..00000000 --- a/tutorials/http/device-dashboard/stm32 +++ /dev/null @@ -1 +0,0 @@ -../../stm32 \ No newline at end of file diff --git a/tutorials/http/device-dashboard/ti b/tutorials/http/device-dashboard/ti deleted file mode 120000 index 382bef3c..00000000 --- a/tutorials/http/device-dashboard/ti +++ /dev/null @@ -1 +0,0 @@ -../../ti \ No newline at end of file diff --git a/tutorials/http/device-dashboard/wch b/tutorials/http/device-dashboard/wch deleted file mode 120000 index aaf0e5ac..00000000 --- a/tutorials/http/device-dashboard/wch +++ /dev/null @@ -1 +0,0 @@ -../../wch \ No newline at end of file diff --git a/tutorials/http/device-dashboard/zephyr b/tutorials/http/device-dashboard/zephyr deleted file mode 120000 index 701f25e1..00000000 --- a/tutorials/http/device-dashboard/zephyr +++ /dev/null @@ -1 +0,0 @@ -../../zephyr/device-dashboard \ No newline at end of file diff --git a/tutorials/http/file-transfer/Makefile b/tutorials/http/file-transfer/Makefile index 02f37d8f..6809000f 100644 --- a/tutorials/http/file-transfer/Makefile +++ b/tutorials/http/file-transfer/Makefile @@ -1,11 +1,13 @@ +REPO_ROOT ?= ../../.. + SPROG ?= server # Program we are building CPROG ?= client # Program we are building DELETE = rm -rf # Command to remove files SOUT ?= -o $(SPROG) # Compiler argument for output file COUT ?= -o $(CPROG) # Compiler argument for output file -SSOURCES = server.c mongoose.c # Source code files -CSOURCES = client.c mongoose.c # Source code files -CFLAGS = -W -Wall -Wextra -g -I. # Build options +SSOURCES = server.c $(REPO_ROOT)/mongoose.c # Source code files +CSOURCES = client.c $(REPO_ROOT)/mongoose.c # Source code files +CFLAGS = -I$(REPO_ROOT) -W -Wall -Wextra -g -I. # Build options # Mongoose build options. See https://mongoose.ws/documentation/#build-options #CFLAGS_MONGOOSE += -DMG_ENABLE_LINES diff --git a/tutorials/http/file-upload-html-form/Makefile b/tutorials/http/file-upload-html-form/Makefile index a990a02a..e9c61b72 100644 --- a/tutorials/http/file-upload-html-form/Makefile +++ b/tutorials/http/file-upload-html-form/Makefile @@ -1,8 +1,10 @@ +REPO_ROOT ?= ../../.. + PROG ?= example # Program we are building DELETE = rm -rf # Command to remove files OUT ?= -o $(PROG) # Compiler argument for output file -SOURCES = main.c mongoose.c # Source code files -CFLAGS = -W -Wall -Wextra -g -I. # Build options +SOURCES = main.c $(REPO_ROOT)/mongoose.c # Source code files +CFLAGS = -I$(REPO_ROOT) -W -Wall -Wextra -g -I. # Build options # Mongoose build options. See https://mongoose.ws/documentation/#build-options #CFLAGS_MONGOOSE += -DMG_ENABLE_LINES diff --git a/tutorials/http/file-upload-multiple-posts/Makefile b/tutorials/http/file-upload-multiple-posts/Makefile index a990a02a..e9c61b72 100644 --- a/tutorials/http/file-upload-multiple-posts/Makefile +++ b/tutorials/http/file-upload-multiple-posts/Makefile @@ -1,8 +1,10 @@ +REPO_ROOT ?= ../../.. + PROG ?= example # Program we are building DELETE = rm -rf # Command to remove files OUT ?= -o $(PROG) # Compiler argument for output file -SOURCES = main.c mongoose.c # Source code files -CFLAGS = -W -Wall -Wextra -g -I. # Build options +SOURCES = main.c $(REPO_ROOT)/mongoose.c # Source code files +CFLAGS = -I$(REPO_ROOT) -W -Wall -Wextra -g -I. # Build options # Mongoose build options. See https://mongoose.ws/documentation/#build-options #CFLAGS_MONGOOSE += -DMG_ENABLE_LINES diff --git a/tutorials/http/file-upload-single-post/Makefile b/tutorials/http/file-upload-single-post/Makefile index cec10913..cbd45e3c 100644 --- a/tutorials/http/file-upload-single-post/Makefile +++ b/tutorials/http/file-upload-single-post/Makefile @@ -1,8 +1,10 @@ +REPO_ROOT ?= ../../.. + PROG ?= example # Program we are building DELETE = rm -rf # Command to remove files OUT ?= -o $(PROG) # Compiler argument for output file -SOURCES = main.c mongoose.c # Source code files -CFLAGS = -W -Wall -Wextra -g -I. # Build options +SOURCES = main.c $(REPO_ROOT)/mongoose.c # Source code files +CFLAGS = -I$(REPO_ROOT) -W -Wall -Wextra -g -I. # Build options # Mongoose build options. See https://mongoose.ws/documentation/#build-options #CFLAGS_MONGOOSE += diff --git a/tutorials/http/http-client/Makefile b/tutorials/http/http-client/Makefile index dabbce5c..4682b9ca 100644 --- a/tutorials/http/http-client/Makefile +++ b/tutorials/http/http-client/Makefile @@ -1,9 +1,11 @@ +REPO_ROOT ?= ../../.. + PROG ?= example # Program we are building PACK ?= ./pack # Packing executable DELETE = rm -rf # Command to remove files OUT ?= -o $(PROG) # Compiler argument for output file -SOURCES = main.c mongoose.c # Source code files -CFLAGS = -W -Wall -Wextra -g -I. # Build options +SOURCES = main.c $(REPO_ROOT)/mongoose.c # Source code files +CFLAGS = -I$(REPO_ROOT) -W -Wall -Wextra -g -I. # Build options # Mongoose build options. See https://mongoose.ws/documentation/#build-options CFLAGS_MONGOOSE += -DMG_ENABLE_LINES=1 diff --git a/tutorials/http/http-client/esp8266/http-client-server/src/main/mongoose.c b/tutorials/http/http-client/esp8266/http-client-server/src/main/mongoose.c deleted file mode 120000 index cfa88e52..00000000 --- a/tutorials/http/http-client/esp8266/http-client-server/src/main/mongoose.c +++ /dev/null @@ -1 +0,0 @@ -../../../../../../../mongoose.c \ No newline at end of file diff --git a/tutorials/http/http-client/esp8266/http-client-server/src/main/mongoose.h b/tutorials/http/http-client/esp8266/http-client-server/src/main/mongoose.h deleted file mode 120000 index e6d3f178..00000000 --- a/tutorials/http/http-client/esp8266/http-client-server/src/main/mongoose.h +++ /dev/null @@ -1 +0,0 @@ -../../../../../../../mongoose.h \ No newline at end of file diff --git a/tutorials/http/http-client/zephyr b/tutorials/http/http-client/zephyr deleted file mode 120000 index a69b4901..00000000 --- a/tutorials/http/http-client/zephyr +++ /dev/null @@ -1 +0,0 @@ -../../zephyr/http-client \ No newline at end of file diff --git a/tutorials/http/http-proxy-client/Makefile b/tutorials/http/http-proxy-client/Makefile index 7269a7ec..93040c92 100644 --- a/tutorials/http/http-proxy-client/Makefile +++ b/tutorials/http/http-proxy-client/Makefile @@ -1,8 +1,10 @@ +REPO_ROOT ?= ../../.. + PROG ?= example # Program we are building DELETE = rm -rf # Command to remove files OUT ?= -o $(PROG) # Compiler argument for output file -SOURCES = main.c mongoose.c packed_fs.c # Source code files, packed_fs.c contains ca.pem, which contains CA certs for TLS -CFLAGS = -W -Wall -Wextra -g -I. # Build options +SOURCES = main.c $(REPO_ROOT)/mongoose.c packed_fs.c # Source code files, packed_fs.c contains ca.pem, which contains CA certs for TLS +CFLAGS = -I$(REPO_ROOT) -W -Wall -Wextra -g -I. # Build options # Mongoose build options. See https://mongoose.ws/documentation/#build-options CFLAGS_MONGOOSE += -DMG_ENABLE_LINES=1 diff --git a/tutorials/http/http-restful-server/Makefile b/tutorials/http/http-restful-server/Makefile index 1699c092..8202977a 100644 --- a/tutorials/http/http-restful-server/Makefile +++ b/tutorials/http/http-restful-server/Makefile @@ -1,8 +1,10 @@ +REPO_ROOT ?= ../../.. + PROG ?= example # Program we are building DELETE = rm -rf # Command to remove files OUT ?= -o $(PROG) # Compiler argument for output file -SOURCES = main.c mongoose.c # Source code files -CFLAGS = -W -Wall -Wextra -g -I. # Build options +SOURCES = main.c $(REPO_ROOT)/mongoose.c # Source code files +CFLAGS = -I$(REPO_ROOT) -W -Wall -Wextra -g -I. # Build options # Mongoose build options. See https://mongoose.ws/documentation/#build-options CFLAGS_MONGOOSE += -DMG_ENABLE_LINES=1 diff --git a/tutorials/http/http-reverse-proxy/Makefile b/tutorials/http/http-reverse-proxy/Makefile index 18be2813..eaf2e826 100644 --- a/tutorials/http/http-reverse-proxy/Makefile +++ b/tutorials/http/http-reverse-proxy/Makefile @@ -1,8 +1,10 @@ +REPO_ROOT ?= ../../.. + PROG ?= example # Program we are building DELETE = rm -rf # Command to remove files OUT ?= -o $(PROG) # Compiler argument for output file -SOURCES = main.c mongoose.c packed_fs.c # Source code files, packed_fs.c contains ca.pem, which contains CA certs for TLS -CFLAGS = -W -Wall -Wextra -g -I. # Build options +SOURCES = main.c $(REPO_ROOT)/mongoose.c packed_fs.c # Source code files, packed_fs.c contains ca.pem, which contains CA certs for TLS +CFLAGS = -I$(REPO_ROOT) -W -Wall -Wextra -g -I. # Build options # Mongoose build options. See https://mongoose.ws/documentation/#build-options CFLAGS_MONGOOSE += -DMG_IO_SIZE=128 -DMG_ENABLE_LINES=1 diff --git a/tutorials/http/http-reverse-proxy/mongoose.c b/tutorials/http/http-reverse-proxy/mongoose.c deleted file mode 120000 index 5e522bbc..00000000 --- a/tutorials/http/http-reverse-proxy/mongoose.c +++ /dev/null @@ -1 +0,0 @@ -../../../mongoose.c \ No newline at end of file diff --git a/tutorials/http/http-reverse-proxy/mongoose.h b/tutorials/http/http-reverse-proxy/mongoose.h deleted file mode 120000 index ee4ac823..00000000 --- a/tutorials/http/http-reverse-proxy/mongoose.h +++ /dev/null @@ -1 +0,0 @@ -../../../mongoose.h \ No newline at end of file diff --git a/tutorials/http/http-server/Makefile b/tutorials/http/http-server/Makefile index 60801a25..091d74ee 100644 --- a/tutorials/http/http-server/Makefile +++ b/tutorials/http/http-server/Makefile @@ -1,8 +1,10 @@ +REPO_ROOT ?= ../../.. + PROG ?= example # Program we are building DELETE = rm -rf # Command to remove files OUT ?= -o $(PROG) # Compiler argument for output file -SOURCES = main.c mongoose.c # Source code files -CFLAGS = -W -Wall -Wextra -g -I. # Build options +SOURCES = main.c $(REPO_ROOT)/mongoose.c # Source code files +CFLAGS = -I$(REPO_ROOT) -W -Wall -Wextra -g -I. # Build options #CFLAGS += -fsanitize=address,undefined,alignment # Mongoose build options. See https://mongoose.ws/documentation/#build-options @@ -30,4 +32,4 @@ clean: # Cleanup. Delete built program and all build artifact vc98: CC = cl vc98: - $(CC) $(SOURCES) $(CFLAGS_MONGOOSE) -DMG_ENABLE_IPV6=0 $(CFLAGS_EXTRA) /MD /Feserver.exe + $(CC) $(SOURCES) -I$(REPO_ROOT) $(CFLAGS_MONGOOSE) -DMG_ENABLE_IPV6=0 $(CFLAGS_EXTRA) /MD /Feserver.exe diff --git a/tutorials/http/http-server/arduino/esp32-http/mongoose.c b/tutorials/http/http-server/arduino/esp32-http/mongoose.c deleted file mode 120000 index fe5764e5..00000000 --- a/tutorials/http/http-server/arduino/esp32-http/mongoose.c +++ /dev/null @@ -1 +0,0 @@ -../../../../../mongoose.c \ No newline at end of file diff --git a/tutorials/http/http-server/arduino/esp32-http/mongoose.h b/tutorials/http/http-server/arduino/esp32-http/mongoose.h deleted file mode 120000 index 4cd6a2b4..00000000 --- a/tutorials/http/http-server/arduino/esp32-http/mongoose.h +++ /dev/null @@ -1 +0,0 @@ -../../../../../mongoose.h \ No newline at end of file diff --git a/tutorials/http/http-server/arduino/teensy41-http/mongoose.c b/tutorials/http/http-server/arduino/teensy41-http/mongoose.c deleted file mode 120000 index fe5764e5..00000000 --- a/tutorials/http/http-server/arduino/teensy41-http/mongoose.c +++ /dev/null @@ -1 +0,0 @@ -../../../../../mongoose.c \ No newline at end of file diff --git a/tutorials/http/http-server/arduino/teensy41-http/mongoose.h b/tutorials/http/http-server/arduino/teensy41-http/mongoose.h deleted file mode 120000 index 4cd6a2b4..00000000 --- a/tutorials/http/http-server/arduino/teensy41-http/mongoose.h +++ /dev/null @@ -1 +0,0 @@ -../../../../../mongoose.h \ No newline at end of file diff --git a/tutorials/http/http-server/arduino/teensy41-http/net.c b/tutorials/http/http-server/arduino/teensy41-http/net.c deleted file mode 120000 index d0758f09..00000000 --- a/tutorials/http/http-server/arduino/teensy41-http/net.c +++ /dev/null @@ -1 +0,0 @@ -../../../device-dashboard/net.c \ No newline at end of file diff --git a/tutorials/http/http-server/arduino/teensy41-http/net.h b/tutorials/http/http-server/arduino/teensy41-http/net.h deleted file mode 120000 index 413c4173..00000000 --- a/tutorials/http/http-server/arduino/teensy41-http/net.h +++ /dev/null @@ -1 +0,0 @@ -../../../device-dashboard/net.h \ No newline at end of file diff --git a/tutorials/http/http-server/arduino/teensy41-http/packed_fs.c b/tutorials/http/http-server/arduino/teensy41-http/packed_fs.c deleted file mode 120000 index ebd127df..00000000 --- a/tutorials/http/http-server/arduino/teensy41-http/packed_fs.c +++ /dev/null @@ -1 +0,0 @@ -../../../device-dashboard/packed_fs.c \ No newline at end of file diff --git a/tutorials/http/http-server/arduino/w5500-http/mongoose.c b/tutorials/http/http-server/arduino/w5500-http/mongoose.c deleted file mode 120000 index fe5764e5..00000000 --- a/tutorials/http/http-server/arduino/w5500-http/mongoose.c +++ /dev/null @@ -1 +0,0 @@ -../../../../../mongoose.c \ No newline at end of file diff --git a/tutorials/http/http-server/arduino/w5500-http/mongoose.h b/tutorials/http/http-server/arduino/w5500-http/mongoose.h deleted file mode 120000 index 4cd6a2b4..00000000 --- a/tutorials/http/http-server/arduino/w5500-http/mongoose.h +++ /dev/null @@ -1 +0,0 @@ -../../../../../mongoose.h \ No newline at end of file diff --git a/tutorials/http/http-server/esp8266/http-client-server b/tutorials/http/http-server/esp8266/http-client-server deleted file mode 120000 index 3a41edef..00000000 --- a/tutorials/http/http-server/esp8266/http-client-server +++ /dev/null @@ -1 +0,0 @@ -../../http-client/esp8266/http-client-server \ No newline at end of file diff --git a/tutorials/http/http-server/mongoose.c b/tutorials/http/http-server/mongoose.c deleted file mode 120000 index 5e522bbc..00000000 --- a/tutorials/http/http-server/mongoose.c +++ /dev/null @@ -1 +0,0 @@ -../../../mongoose.c \ No newline at end of file diff --git a/tutorials/http/http-server/mongoose.h b/tutorials/http/http-server/mongoose.h deleted file mode 120000 index ee4ac823..00000000 --- a/tutorials/http/http-server/mongoose.h +++ /dev/null @@ -1 +0,0 @@ -../../../mongoose.h \ No newline at end of file diff --git a/tutorials/http/http-server/zephyr b/tutorials/http/http-server/zephyr deleted file mode 120000 index b623cb7b..00000000 --- a/tutorials/http/http-server/zephyr +++ /dev/null @@ -1 +0,0 @@ -../../zephyr/http-server \ No newline at end of file diff --git a/tutorials/http/http-streaming-client/Makefile b/tutorials/http/http-streaming-client/Makefile index 6ec33162..38406426 100644 --- a/tutorials/http/http-streaming-client/Makefile +++ b/tutorials/http/http-streaming-client/Makefile @@ -1,8 +1,10 @@ +REPO_ROOT ?= ../../.. + PROG ?= example # Program we are building DELETE = rm -rf # Command to remove files OUT ?= -o $(PROG) # Compiler argument for output file -SOURCES = main.c mongoose.c packed_fs.c # Source code files, packed_fs.c contains ca.pem, which contains CA certs for TLS -CFLAGS = -W -Wall -Wextra -g -I. # Build options +SOURCES = main.c $(REPO_ROOT)/mongoose.c packed_fs.c # Source code files, packed_fs.c contains ca.pem, which contains CA certs for TLS +CFLAGS = -I$(REPO_ROOT) -W -Wall -Wextra -g -I. # Build options # Mongoose build options. See https://mongoose.ws/documentation/#build-options CFLAGS_MONGOOSE += -DMG_ENABLE_LINES=1 diff --git a/tutorials/http/http-streaming-client/mongoose.c b/tutorials/http/http-streaming-client/mongoose.c deleted file mode 120000 index 5e522bbc..00000000 --- a/tutorials/http/http-streaming-client/mongoose.c +++ /dev/null @@ -1 +0,0 @@ -../../../mongoose.c \ No newline at end of file diff --git a/tutorials/http/http-streaming-client/mongoose.h b/tutorials/http/http-streaming-client/mongoose.h deleted file mode 120000 index ee4ac823..00000000 --- a/tutorials/http/http-streaming-client/mongoose.h +++ /dev/null @@ -1 +0,0 @@ -../../../mongoose.h \ No newline at end of file diff --git a/tutorials/http/huge-response/Makefile b/tutorials/http/huge-response/Makefile index b7e91ae4..3ed03ec1 100644 --- a/tutorials/http/huge-response/Makefile +++ b/tutorials/http/huge-response/Makefile @@ -1,8 +1,10 @@ +REPO_ROOT ?= ../../.. + PROG ?= example # Program we are building DELETE = rm -rf # Command to remove files OUT ?= -o $(PROG) # Compiler argument for output file -SOURCES = main.c mongoose.c # Source code files -CFLAGS = -W -Wall -Wextra -g -I. # Build options +SOURCES = main.c $(REPO_ROOT)/mongoose.c # Source code files +CFLAGS = -I$(REPO_ROOT) -W -Wall -Wextra -g -I. # Build options # Mongoose build options. See https://mongoose.ws/documentation/#build-options CFLAGS_MONGOOSE += -DMG_ENABLE_LINES=1 diff --git a/tutorials/http/huge-response/mongoose.c b/tutorials/http/huge-response/mongoose.c deleted file mode 120000 index 5e522bbc..00000000 --- a/tutorials/http/huge-response/mongoose.c +++ /dev/null @@ -1 +0,0 @@ -../../../mongoose.c \ No newline at end of file diff --git a/tutorials/http/huge-response/mongoose.h b/tutorials/http/huge-response/mongoose.h deleted file mode 120000 index ee4ac823..00000000 --- a/tutorials/http/huge-response/mongoose.h +++ /dev/null @@ -1 +0,0 @@ -../../../mongoose.h \ No newline at end of file diff --git a/tutorials/http/jwt-auth/Makefile b/tutorials/http/jwt-auth/Makefile index 91ea7254..b78358a2 100644 --- a/tutorials/http/jwt-auth/Makefile +++ b/tutorials/http/jwt-auth/Makefile @@ -1,8 +1,10 @@ +REPO_ROOT ?= ../../.. + PROG ?= example # Program we are building DELETE = rm -rf # Command to remove files OUT ?= -o $(PROG) # Compiler argument for output file -SOURCES = main.c mongoose.c # Source code files -CFLAGS = -W -Wall -Wextra -g -I. # Build options +SOURCES = main.c $(REPO_ROOT)/mongoose.c # Source code files +CFLAGS = -I$(REPO_ROOT) -W -Wall -Wextra -g -I. # Build options # Mongoose build options. See https://mongoose.ws/documentation/#build-options CFLAGS_MONGOOSE += -DMG_ENABLE_LINES=1 diff --git a/tutorials/http/jwt-auth/mongoose.c b/tutorials/http/jwt-auth/mongoose.c deleted file mode 120000 index 5e522bbc..00000000 --- a/tutorials/http/jwt-auth/mongoose.c +++ /dev/null @@ -1 +0,0 @@ -../../../mongoose.c \ No newline at end of file diff --git a/tutorials/http/jwt-auth/mongoose.h b/tutorials/http/jwt-auth/mongoose.h deleted file mode 120000 index ee4ac823..00000000 --- a/tutorials/http/jwt-auth/mongoose.h +++ /dev/null @@ -1 +0,0 @@ -../../../mongoose.h \ No newline at end of file diff --git a/tutorials/http/link-checker/Makefile b/tutorials/http/link-checker/Makefile index dabbce5c..4682b9ca 100644 --- a/tutorials/http/link-checker/Makefile +++ b/tutorials/http/link-checker/Makefile @@ -1,9 +1,11 @@ +REPO_ROOT ?= ../../.. + PROG ?= example # Program we are building PACK ?= ./pack # Packing executable DELETE = rm -rf # Command to remove files OUT ?= -o $(PROG) # Compiler argument for output file -SOURCES = main.c mongoose.c # Source code files -CFLAGS = -W -Wall -Wextra -g -I. # Build options +SOURCES = main.c $(REPO_ROOT)/mongoose.c # Source code files +CFLAGS = -I$(REPO_ROOT) -W -Wall -Wextra -g -I. # Build options # Mongoose build options. See https://mongoose.ws/documentation/#build-options CFLAGS_MONGOOSE += -DMG_ENABLE_LINES=1 diff --git a/tutorials/http/link-checker/mongoose.c b/tutorials/http/link-checker/mongoose.c deleted file mode 120000 index 5e522bbc..00000000 --- a/tutorials/http/link-checker/mongoose.c +++ /dev/null @@ -1 +0,0 @@ -../../../mongoose.c \ No newline at end of file diff --git a/tutorials/http/link-checker/mongoose.h b/tutorials/http/link-checker/mongoose.h deleted file mode 120000 index ee4ac823..00000000 --- a/tutorials/http/link-checker/mongoose.h +++ /dev/null @@ -1 +0,0 @@ -../../../mongoose.h \ No newline at end of file diff --git a/tutorials/http/redirect-to-https/Makefile b/tutorials/http/redirect-to-https/Makefile index cd80e97b..623b439d 100644 --- a/tutorials/http/redirect-to-https/Makefile +++ b/tutorials/http/redirect-to-https/Makefile @@ -1,8 +1,10 @@ +REPO_ROOT ?= ../../.. + PROG ?= example # Program we are building DELETE = rm -rf # Command to remove files OUT ?= -o $(PROG) # Compiler argument for output file -SOURCES = main.c mongoose.c # Source code files -CFLAGS = -W -Wall -Wextra -g -I. # Build options +SOURCES = main.c $(REPO_ROOT)/mongoose.c # Source code files +CFLAGS = -I$(REPO_ROOT) -W -Wall -Wextra -g -I. # Build options #CFLAGS += -fsanitize=address,undefined,alignment # Mongoose build options. See https://mongoose.ws/documentation/#build-options diff --git a/tutorials/http/redirect-to-https/mongoose.c b/tutorials/http/redirect-to-https/mongoose.c deleted file mode 120000 index 5e522bbc..00000000 --- a/tutorials/http/redirect-to-https/mongoose.c +++ /dev/null @@ -1 +0,0 @@ -../../../mongoose.c \ No newline at end of file diff --git a/tutorials/http/redirect-to-https/mongoose.h b/tutorials/http/redirect-to-https/mongoose.h deleted file mode 120000 index ee4ac823..00000000 --- a/tutorials/http/redirect-to-https/mongoose.h +++ /dev/null @@ -1 +0,0 @@ -../../../mongoose.h \ No newline at end of file diff --git a/tutorials/http/singleton-client/Makefile b/tutorials/http/singleton-client/Makefile index cf001a01..42fcc540 100644 --- a/tutorials/http/singleton-client/Makefile +++ b/tutorials/http/singleton-client/Makefile @@ -1,8 +1,10 @@ +REPO_ROOT ?= ../../.. + PROG ?= example # Program we are building DELETE = rm -rf # Command to remove files OUT ?= -o $(PROG) # Compiler argument for output file -SOURCES = main.c mongoose.c # Source code files -CFLAGS = -W -Wall -Wextra -g -I. # Build options +SOURCES = main.c $(REPO_ROOT)/mongoose.c # Source code files +CFLAGS = -I$(REPO_ROOT) -W -Wall -Wextra -g -I. # Build options #CFLAGS += -fsanitize=address,undefined,alignment # Mongoose build options. See https://mongoose.ws/documentation/#build-options diff --git a/tutorials/http/singleton-client/mongoose.c b/tutorials/http/singleton-client/mongoose.c deleted file mode 120000 index 5e522bbc..00000000 --- a/tutorials/http/singleton-client/mongoose.c +++ /dev/null @@ -1 +0,0 @@ -../../../mongoose.c \ No newline at end of file diff --git a/tutorials/http/singleton-client/mongoose.h b/tutorials/http/singleton-client/mongoose.h deleted file mode 120000 index ee4ac823..00000000 --- a/tutorials/http/singleton-client/mongoose.h +++ /dev/null @@ -1 +0,0 @@ -../../../mongoose.h \ No newline at end of file diff --git a/tutorials/http/uart-bridge/Makefile b/tutorials/http/uart-bridge/Makefile index a8ea398b..4049c5b4 100644 --- a/tutorials/http/uart-bridge/Makefile +++ b/tutorials/http/uart-bridge/Makefile @@ -1,8 +1,10 @@ +REPO_ROOT ?= ../../.. + PROG ?= example # Program we are building DELETE = rm -rf # Command to remove files OUT ?= -o $(PROG) # Compiler argument for output file -SOURCES = main.c mongoose.c net.c packed_fs.c # Source code files -CFLAGS = -W -Wall -Wextra -g -I. # Build options +SOURCES = main.c $(REPO_ROOT)/mongoose.c net.c packed_fs.c # Source code files +CFLAGS = -I$(REPO_ROOT) -W -Wall -Wextra -g -I. # Build options # Mongoose build options. See https://mongoose.ws/documentation/#build-options CFLAGS_MONGOOSE += diff --git a/tutorials/http/uart-bridge/esp32/main/mongoose.c b/tutorials/http/uart-bridge/esp32/main/mongoose.c deleted file mode 120000 index fe5764e5..00000000 --- a/tutorials/http/uart-bridge/esp32/main/mongoose.c +++ /dev/null @@ -1 +0,0 @@ -../../../../../mongoose.c \ No newline at end of file diff --git a/tutorials/http/uart-bridge/esp32/main/mongoose.h b/tutorials/http/uart-bridge/esp32/main/mongoose.h deleted file mode 120000 index 4cd6a2b4..00000000 --- a/tutorials/http/uart-bridge/esp32/main/mongoose.h +++ /dev/null @@ -1 +0,0 @@ -../../../../../mongoose.h \ No newline at end of file diff --git a/tutorials/http/uart-bridge/esp32/main/net.c b/tutorials/http/uart-bridge/esp32/main/net.c deleted file mode 120000 index 2541c1ab..00000000 --- a/tutorials/http/uart-bridge/esp32/main/net.c +++ /dev/null @@ -1 +0,0 @@ -../../net.c \ No newline at end of file diff --git a/tutorials/http/uart-bridge/esp32/main/packed_fs.c b/tutorials/http/uart-bridge/esp32/main/packed_fs.c deleted file mode 120000 index 3d58f82d..00000000 --- a/tutorials/http/uart-bridge/esp32/main/packed_fs.c +++ /dev/null @@ -1 +0,0 @@ -../../packed_fs.c \ No newline at end of file diff --git a/tutorials/http/uart-bridge/mongoose.c b/tutorials/http/uart-bridge/mongoose.c deleted file mode 120000 index 5e522bbc..00000000 --- a/tutorials/http/uart-bridge/mongoose.c +++ /dev/null @@ -1 +0,0 @@ -../../../mongoose.c \ No newline at end of file diff --git a/tutorials/http/uart-bridge/mongoose.h b/tutorials/http/uart-bridge/mongoose.h deleted file mode 120000 index ee4ac823..00000000 --- a/tutorials/http/uart-bridge/mongoose.h +++ /dev/null @@ -1 +0,0 @@ -../../../mongoose.h \ No newline at end of file diff --git a/tutorials/http/video-stream/Makefile b/tutorials/http/video-stream/Makefile index a990a02a..e9c61b72 100644 --- a/tutorials/http/video-stream/Makefile +++ b/tutorials/http/video-stream/Makefile @@ -1,8 +1,10 @@ +REPO_ROOT ?= ../../.. + PROG ?= example # Program we are building DELETE = rm -rf # Command to remove files OUT ?= -o $(PROG) # Compiler argument for output file -SOURCES = main.c mongoose.c # Source code files -CFLAGS = -W -Wall -Wextra -g -I. # Build options +SOURCES = main.c $(REPO_ROOT)/mongoose.c # Source code files +CFLAGS = -I$(REPO_ROOT) -W -Wall -Wextra -g -I. # Build options # Mongoose build options. See https://mongoose.ws/documentation/#build-options #CFLAGS_MONGOOSE += -DMG_ENABLE_LINES diff --git a/tutorials/http/video-stream/mongoose.c b/tutorials/http/video-stream/mongoose.c deleted file mode 120000 index 5e522bbc..00000000 --- a/tutorials/http/video-stream/mongoose.c +++ /dev/null @@ -1 +0,0 @@ -../../../mongoose.c \ No newline at end of file diff --git a/tutorials/http/video-stream/mongoose.h b/tutorials/http/video-stream/mongoose.h deleted file mode 120000 index ee4ac823..00000000 --- a/tutorials/http/video-stream/mongoose.h +++ /dev/null @@ -1 +0,0 @@ -../../../mongoose.h \ No newline at end of file diff --git a/tutorials/http/wifi-router-dashboard/Makefile b/tutorials/http/wifi-router-dashboard/Makefile index 695dc12d..ce4eb2e4 100644 --- a/tutorials/http/wifi-router-dashboard/Makefile +++ b/tutorials/http/wifi-router-dashboard/Makefile @@ -1,8 +1,10 @@ +REPO_ROOT ?= ../../.. + PROG ?= ./example # Program we are building DELETE = rm -rf # Command to remove files OUT ?= -o $(PROG) # Compiler argument for output file -SOURCES = main.c mongoose.c net.c packed_fs.c # Source code files -CFLAGS = -W -Wall -Wextra -g -I. # Build options +SOURCES = main.c $(REPO_ROOT)/mongoose.c net.c packed_fs.c # Source code files +CFLAGS = -I$(REPO_ROOT) -W -Wall -Wextra -g -I. # Build options # Mongoose build options. See https://mongoose.ws/documentation/#build-options # CFLAGS_MONGOOSE += diff --git a/tutorials/http/wifi-router-dashboard/mongoose.c b/tutorials/http/wifi-router-dashboard/mongoose.c deleted file mode 120000 index 5e522bbc..00000000 --- a/tutorials/http/wifi-router-dashboard/mongoose.c +++ /dev/null @@ -1 +0,0 @@ -../../../mongoose.c \ No newline at end of file diff --git a/tutorials/http/wifi-router-dashboard/mongoose.h b/tutorials/http/wifi-router-dashboard/mongoose.h deleted file mode 120000 index ee4ac823..00000000 --- a/tutorials/http/wifi-router-dashboard/mongoose.h +++ /dev/null @@ -1 +0,0 @@ -../../../mongoose.h \ No newline at end of file diff --git a/tutorials/http/device-dashboard/microchip/same54-xpro/Makefile b/tutorials/microchip/same54-xpro/device-dashboard/Makefile similarity index 100% rename from tutorials/http/device-dashboard/microchip/same54-xpro/Makefile rename to tutorials/microchip/same54-xpro/device-dashboard/Makefile diff --git a/tutorials/http/device-dashboard/microchip/same54-xpro/hal.h b/tutorials/microchip/same54-xpro/device-dashboard/hal.h similarity index 100% rename from tutorials/http/device-dashboard/microchip/same54-xpro/hal.h rename to tutorials/microchip/same54-xpro/device-dashboard/hal.h diff --git a/tutorials/http/device-dashboard/microchip/same54-xpro/link.ld b/tutorials/microchip/same54-xpro/device-dashboard/link.ld similarity index 100% rename from tutorials/http/device-dashboard/microchip/same54-xpro/link.ld rename to tutorials/microchip/same54-xpro/device-dashboard/link.ld diff --git a/tutorials/http/device-dashboard/microchip/same54-xpro/main.c b/tutorials/microchip/same54-xpro/device-dashboard/main.c similarity index 100% rename from tutorials/http/device-dashboard/microchip/same54-xpro/main.c rename to tutorials/microchip/same54-xpro/device-dashboard/main.c diff --git a/tutorials/microchip/same54-xpro/device-dashboard/mongoose.c b/tutorials/microchip/same54-xpro/device-dashboard/mongoose.c new file mode 120000 index 00000000..7a2752cb --- /dev/null +++ b/tutorials/microchip/same54-xpro/device-dashboard/mongoose.c @@ -0,0 +1 @@ +../../../../mongoose.c \ No newline at end of file diff --git a/tutorials/microchip/same54-xpro/device-dashboard/mongoose.h b/tutorials/microchip/same54-xpro/device-dashboard/mongoose.h new file mode 120000 index 00000000..daff1633 --- /dev/null +++ b/tutorials/microchip/same54-xpro/device-dashboard/mongoose.h @@ -0,0 +1 @@ +../../../../mongoose.h \ No newline at end of file diff --git a/tutorials/microchip/same54-xpro/device-dashboard/net.c b/tutorials/microchip/same54-xpro/device-dashboard/net.c new file mode 120000 index 00000000..f9d6d5e0 --- /dev/null +++ b/tutorials/microchip/same54-xpro/device-dashboard/net.c @@ -0,0 +1 @@ +../../../http/device-dashboard/net.c \ No newline at end of file diff --git a/tutorials/microchip/same54-xpro/device-dashboard/net.h b/tutorials/microchip/same54-xpro/device-dashboard/net.h new file mode 120000 index 00000000..b5819fac --- /dev/null +++ b/tutorials/microchip/same54-xpro/device-dashboard/net.h @@ -0,0 +1 @@ +../../../http/device-dashboard/net.h \ No newline at end of file diff --git a/tutorials/microchip/same54-xpro/device-dashboard/packed_fs.c b/tutorials/microchip/same54-xpro/device-dashboard/packed_fs.c new file mode 120000 index 00000000..d383b87c --- /dev/null +++ b/tutorials/microchip/same54-xpro/device-dashboard/packed_fs.c @@ -0,0 +1 @@ +../../../http/device-dashboard/packed_fs.c \ No newline at end of file diff --git a/tutorials/http/device-dashboard/microchip/same54-xpro/startup.c b/tutorials/microchip/same54-xpro/device-dashboard/startup.c similarity index 100% rename from tutorials/http/device-dashboard/microchip/same54-xpro/startup.c rename to tutorials/microchip/same54-xpro/device-dashboard/startup.c diff --git a/tutorials/http/device-dashboard/microchip/same54-xpro/syscalls.c b/tutorials/microchip/same54-xpro/device-dashboard/syscalls.c similarity index 100% rename from tutorials/http/device-dashboard/microchip/same54-xpro/syscalls.c rename to tutorials/microchip/same54-xpro/device-dashboard/syscalls.c diff --git a/tutorials/mqtt/mqtt-client/microchip/same54-xpro/Makefile b/tutorials/microchip/same54-xpro/mqtt-client/Makefile similarity index 100% rename from tutorials/mqtt/mqtt-client/microchip/same54-xpro/Makefile rename to tutorials/microchip/same54-xpro/mqtt-client/Makefile diff --git a/tutorials/mqtt/mqtt-client/microchip/same54-xpro/hal.h b/tutorials/microchip/same54-xpro/mqtt-client/hal.h similarity index 100% rename from tutorials/mqtt/mqtt-client/microchip/same54-xpro/hal.h rename to tutorials/microchip/same54-xpro/mqtt-client/hal.h diff --git a/tutorials/mqtt/mqtt-client/microchip/same54-xpro/link.ld b/tutorials/microchip/same54-xpro/mqtt-client/link.ld similarity index 100% rename from tutorials/mqtt/mqtt-client/microchip/same54-xpro/link.ld rename to tutorials/microchip/same54-xpro/mqtt-client/link.ld diff --git a/tutorials/mqtt/mqtt-client/microchip/same54-xpro/main.c b/tutorials/microchip/same54-xpro/mqtt-client/main.c similarity index 100% rename from tutorials/mqtt/mqtt-client/microchip/same54-xpro/main.c rename to tutorials/microchip/same54-xpro/mqtt-client/main.c diff --git a/tutorials/microchip/same54-xpro/mqtt-client/mongoose.c b/tutorials/microchip/same54-xpro/mqtt-client/mongoose.c new file mode 120000 index 00000000..7a2752cb --- /dev/null +++ b/tutorials/microchip/same54-xpro/mqtt-client/mongoose.c @@ -0,0 +1 @@ +../../../../mongoose.c \ No newline at end of file diff --git a/tutorials/microchip/same54-xpro/mqtt-client/mongoose.h b/tutorials/microchip/same54-xpro/mqtt-client/mongoose.h new file mode 120000 index 00000000..daff1633 --- /dev/null +++ b/tutorials/microchip/same54-xpro/mqtt-client/mongoose.h @@ -0,0 +1 @@ +../../../../mongoose.h \ No newline at end of file diff --git a/tutorials/mqtt/mqtt-client/microchip/same54-xpro/startup.c b/tutorials/microchip/same54-xpro/mqtt-client/startup.c similarity index 100% rename from tutorials/mqtt/mqtt-client/microchip/same54-xpro/startup.c rename to tutorials/microchip/same54-xpro/mqtt-client/startup.c diff --git a/tutorials/mqtt/mqtt-client/microchip/same54-xpro/syscalls.c b/tutorials/microchip/same54-xpro/mqtt-client/syscalls.c similarity index 100% rename from tutorials/mqtt/mqtt-client/microchip/same54-xpro/syscalls.c rename to tutorials/microchip/same54-xpro/mqtt-client/syscalls.c diff --git a/tutorials/mqtt/mqtt-client-aws-iot/Makefile b/tutorials/mqtt/mqtt-client-aws-iot/Makefile index 584d2b35..d1cd845c 100644 --- a/tutorials/mqtt/mqtt-client-aws-iot/Makefile +++ b/tutorials/mqtt/mqtt-client-aws-iot/Makefile @@ -1,8 +1,10 @@ +REPO_ROOT ?= ../../.. + PROG ?= client # Program we are building DELETE = rm -rf # Command to remove files OUT ?= -o $(PROG) # Compiler argument for output file -CFLAGS = -W -Wall -Wextra -g -I. # Build options -SOURCES = main.c mongoose.c mongoose_fs.c +CFLAGS = -I$(REPO_ROOT) -W -Wall -Wextra -g -I. # Build options +SOURCES = main.c $(REPO_ROOT)/mongoose.c mongoose_fs.c CFLAGS_EXTRA ?= -DMG_TLS=MG_TLS_BUILTIN diff --git a/tutorials/mqtt/mqtt-client-aws-iot/mongoose.c b/tutorials/mqtt/mqtt-client-aws-iot/mongoose.c deleted file mode 120000 index 5e522bbc..00000000 --- a/tutorials/mqtt/mqtt-client-aws-iot/mongoose.c +++ /dev/null @@ -1 +0,0 @@ -../../../mongoose.c \ No newline at end of file diff --git a/tutorials/mqtt/mqtt-client-aws-iot/mongoose.h b/tutorials/mqtt/mqtt-client-aws-iot/mongoose.h deleted file mode 120000 index ee4ac823..00000000 --- a/tutorials/mqtt/mqtt-client-aws-iot/mongoose.h +++ /dev/null @@ -1 +0,0 @@ -../../../mongoose.h \ No newline at end of file diff --git a/tutorials/mqtt/mqtt-client-aws-iot/zephyr b/tutorials/mqtt/mqtt-client-aws-iot/zephyr deleted file mode 120000 index c1f6eb5c..00000000 --- a/tutorials/mqtt/mqtt-client-aws-iot/zephyr +++ /dev/null @@ -1 +0,0 @@ -../../zephyr/mqtt-aws-client \ No newline at end of file diff --git a/tutorials/mqtt/mqtt-client/arduino/esp32-mqtt/mongoose.c b/tutorials/mqtt/mqtt-client/arduino/esp32-mqtt/mongoose.c deleted file mode 120000 index fe5764e5..00000000 --- a/tutorials/mqtt/mqtt-client/arduino/esp32-mqtt/mongoose.c +++ /dev/null @@ -1 +0,0 @@ -../../../../../mongoose.c \ No newline at end of file diff --git a/tutorials/mqtt/mqtt-client/arduino/esp32-mqtt/mongoose.h b/tutorials/mqtt/mqtt-client/arduino/esp32-mqtt/mongoose.h deleted file mode 120000 index 4cd6a2b4..00000000 --- a/tutorials/mqtt/mqtt-client/arduino/esp32-mqtt/mongoose.h +++ /dev/null @@ -1 +0,0 @@ -../../../../../mongoose.h \ No newline at end of file diff --git a/tutorials/mqtt/mqtt-client/arduino/nano-w5500-mqtt/mongoose.c b/tutorials/mqtt/mqtt-client/arduino/nano-w5500-mqtt/mongoose.c deleted file mode 120000 index fe5764e5..00000000 --- a/tutorials/mqtt/mqtt-client/arduino/nano-w5500-mqtt/mongoose.c +++ /dev/null @@ -1 +0,0 @@ -../../../../../mongoose.c \ No newline at end of file diff --git a/tutorials/mqtt/mqtt-client/arduino/nano-w5500-mqtt/mongoose.h b/tutorials/mqtt/mqtt-client/arduino/nano-w5500-mqtt/mongoose.h deleted file mode 120000 index 4cd6a2b4..00000000 --- a/tutorials/mqtt/mqtt-client/arduino/nano-w5500-mqtt/mongoose.h +++ /dev/null @@ -1 +0,0 @@ -../../../../../mongoose.h \ No newline at end of file diff --git a/tutorials/mqtt/mqtt-client/arduino/sim800-mqtt/mongoose.c b/tutorials/mqtt/mqtt-client/arduino/sim800-mqtt/mongoose.c deleted file mode 120000 index fe5764e5..00000000 --- a/tutorials/mqtt/mqtt-client/arduino/sim800-mqtt/mongoose.c +++ /dev/null @@ -1 +0,0 @@ -../../../../../mongoose.c \ No newline at end of file diff --git a/tutorials/mqtt/mqtt-client/arduino/sim800-mqtt/mongoose.h b/tutorials/mqtt/mqtt-client/arduino/sim800-mqtt/mongoose.h deleted file mode 120000 index 4cd6a2b4..00000000 --- a/tutorials/mqtt/mqtt-client/arduino/sim800-mqtt/mongoose.h +++ /dev/null @@ -1 +0,0 @@ -../../../../../mongoose.h \ No newline at end of file diff --git a/tutorials/mqtt/mqtt-client/arduino/w5500-mqtt/mongoose.c b/tutorials/mqtt/mqtt-client/arduino/w5500-mqtt/mongoose.c deleted file mode 120000 index fe5764e5..00000000 --- a/tutorials/mqtt/mqtt-client/arduino/w5500-mqtt/mongoose.c +++ /dev/null @@ -1 +0,0 @@ -../../../../../mongoose.c \ No newline at end of file diff --git a/tutorials/mqtt/mqtt-client/arduino/w5500-mqtt/mongoose.h b/tutorials/mqtt/mqtt-client/arduino/w5500-mqtt/mongoose.h deleted file mode 120000 index 4cd6a2b4..00000000 --- a/tutorials/mqtt/mqtt-client/arduino/w5500-mqtt/mongoose.h +++ /dev/null @@ -1 +0,0 @@ -../../../../../mongoose.h \ No newline at end of file diff --git a/tutorials/mqtt/mqtt-client/microchip/same54-xpro/mongoose.c b/tutorials/mqtt/mqtt-client/microchip/same54-xpro/mongoose.c deleted file mode 120000 index fe5764e5..00000000 --- a/tutorials/mqtt/mqtt-client/microchip/same54-xpro/mongoose.c +++ /dev/null @@ -1 +0,0 @@ -../../../../../mongoose.c \ No newline at end of file diff --git a/tutorials/mqtt/mqtt-client/microchip/same54-xpro/mongoose.h b/tutorials/mqtt/mqtt-client/microchip/same54-xpro/mongoose.h deleted file mode 120000 index 4cd6a2b4..00000000 --- a/tutorials/mqtt/mqtt-client/microchip/same54-xpro/mongoose.h +++ /dev/null @@ -1 +0,0 @@ -../../../../../mongoose.h \ No newline at end of file diff --git a/tutorials/mqtt/mqtt-client/pico-rndis-device b/tutorials/mqtt/mqtt-client/pico-rndis-device deleted file mode 120000 index ef02ccbb..00000000 --- a/tutorials/mqtt/mqtt-client/pico-rndis-device +++ /dev/null @@ -1 +0,0 @@ -../../pico-sdk/pico-rndis-device \ No newline at end of file diff --git a/tutorials/mqtt/mqtt-dashboard/device/Makefile b/tutorials/mqtt/mqtt-dashboard/device/Makefile index 005a4c75..73653b1a 100644 --- a/tutorials/mqtt/mqtt-dashboard/device/Makefile +++ b/tutorials/mqtt/mqtt-dashboard/device/Makefile @@ -1,8 +1,10 @@ +REPO_ROOT ?= ../../../.. + PROG ?= ./example # Program we are building DELETE ?= rm -rf # Command to remove files OUT ?= -o $(PROG) # Compiler argument for output file -SOURCES = main.c net.c hal.c mongoose.c # Source code files -CFLAGS ?= -W -Wall -Wextra -g -I. # Build options +SOURCES = main.c net.c hal.c $(REPO_ROOT)/mongoose.c # Source code files +CFLAGS ?= -I$(REPO_ROOT) -W -Wall -Wextra -g -I. # Build options # Mongoose build options. See https://mongoose.ws/documentation/#build-options CFLAGS_MONGOOSE += -DMG_ENABLE_LINES=1 diff --git a/tutorials/mqtt/mqtt-dashboard/device/pico-rndis-device b/tutorials/mqtt/mqtt-dashboard/device/pico-rndis-device deleted file mode 120000 index 12868575..00000000 --- a/tutorials/mqtt/mqtt-dashboard/device/pico-rndis-device +++ /dev/null @@ -1 +0,0 @@ -../../../pico-sdk/pico-rndis-device \ No newline at end of file diff --git a/tutorials/mqtt/mqtt-over-ws-client/Makefile b/tutorials/mqtt/mqtt-over-ws-client/Makefile index 6ec33162..38406426 100644 --- a/tutorials/mqtt/mqtt-over-ws-client/Makefile +++ b/tutorials/mqtt/mqtt-over-ws-client/Makefile @@ -1,8 +1,10 @@ +REPO_ROOT ?= ../../.. + PROG ?= example # Program we are building DELETE = rm -rf # Command to remove files OUT ?= -o $(PROG) # Compiler argument for output file -SOURCES = main.c mongoose.c packed_fs.c # Source code files, packed_fs.c contains ca.pem, which contains CA certs for TLS -CFLAGS = -W -Wall -Wextra -g -I. # Build options +SOURCES = main.c $(REPO_ROOT)/mongoose.c packed_fs.c # Source code files, packed_fs.c contains ca.pem, which contains CA certs for TLS +CFLAGS = -I$(REPO_ROOT) -W -Wall -Wextra -g -I. # Build options # Mongoose build options. See https://mongoose.ws/documentation/#build-options CFLAGS_MONGOOSE += -DMG_ENABLE_LINES=1 diff --git a/tutorials/mqtt/mqtt-over-ws-client/mongoose.c b/tutorials/mqtt/mqtt-over-ws-client/mongoose.c deleted file mode 120000 index 5e522bbc..00000000 --- a/tutorials/mqtt/mqtt-over-ws-client/mongoose.c +++ /dev/null @@ -1 +0,0 @@ -../../../mongoose.c \ No newline at end of file diff --git a/tutorials/mqtt/mqtt-over-ws-client/mongoose.h b/tutorials/mqtt/mqtt-over-ws-client/mongoose.h deleted file mode 120000 index ee4ac823..00000000 --- a/tutorials/mqtt/mqtt-over-ws-client/mongoose.h +++ /dev/null @@ -1 +0,0 @@ -../../../mongoose.h \ No newline at end of file diff --git a/tutorials/mqtt/mqtt-server/Makefile b/tutorials/mqtt/mqtt-server/Makefile index b231dd04..56017097 100644 --- a/tutorials/mqtt/mqtt-server/Makefile +++ b/tutorials/mqtt/mqtt-server/Makefile @@ -1,8 +1,10 @@ +REPO_ROOT ?= ../../.. + PROG ?= example # Program we are building DELETE = rm -rf # Command to remove files OUT ?= -o $(PROG) # Compiler argument for output file -SOURCES = main.c mongoose.c # Source code files -CFLAGS = -W -Wall -Wextra -g -I. # Build options +SOURCES = main.c $(REPO_ROOT)/mongoose.c # Source code files +CFLAGS = -I$(REPO_ROOT) -W -Wall -Wextra -g -I. # Build options # Mongoose build options. See https://mongoose.ws/documentation/#build-options CFLAGS_MONGOOSE += -DMG_ENABLE_LINES diff --git a/tutorials/mqtt/mqtt-server/mongoose.c b/tutorials/mqtt/mqtt-server/mongoose.c deleted file mode 120000 index 5e522bbc..00000000 --- a/tutorials/mqtt/mqtt-server/mongoose.c +++ /dev/null @@ -1 +0,0 @@ -../../../mongoose.c \ No newline at end of file diff --git a/tutorials/mqtt/mqtt-server/mongoose.h b/tutorials/mqtt/mqtt-server/mongoose.h deleted file mode 120000 index ee4ac823..00000000 --- a/tutorials/mqtt/mqtt-server/mongoose.h +++ /dev/null @@ -1 +0,0 @@ -../../../mongoose.h \ No newline at end of file diff --git a/tutorials/mqtt/ota-over-mqtt/Makefile b/tutorials/mqtt/ota-over-mqtt/Makefile index b33b0975..73293d47 100644 --- a/tutorials/mqtt/ota-over-mqtt/Makefile +++ b/tutorials/mqtt/ota-over-mqtt/Makefile @@ -1,8 +1,10 @@ +REPO_ROOT ?= ../../.. + PROG ?= example # Program we are building DELETE = rm -rf # Command to remove files OUT ?= -o $(PROG) # Compiler argument for output file -SOURCES = main.c mongoose.c # Source code files, packed_fs.c contains ca.pem, which contains CA certs for TLS -CFLAGS = -W -Wall -Wextra -g -I. # Build options +SOURCES = main.c $(REPO_ROOT)/mongoose.c # Source code files, packed_fs.c contains ca.pem, which contains CA certs for TLS +CFLAGS = -I$(REPO_ROOT) -W -Wall -Wextra -g -I. # Build options # Mongoose build options. See https://mongoose.ws/documentation/#build-options CFLAGS_EXTRA ?= -DMG_TLS=MG_TLS_BUILTIN diff --git a/tutorials/mqtt/ota-over-mqtt/mongoose.c b/tutorials/mqtt/ota-over-mqtt/mongoose.c deleted file mode 120000 index 5e522bbc..00000000 --- a/tutorials/mqtt/ota-over-mqtt/mongoose.c +++ /dev/null @@ -1 +0,0 @@ -../../../mongoose.c \ No newline at end of file diff --git a/tutorials/mqtt/ota-over-mqtt/mongoose.h b/tutorials/mqtt/ota-over-mqtt/mongoose.h deleted file mode 120000 index ee4ac823..00000000 --- a/tutorials/mqtt/ota-over-mqtt/mongoose.h +++ /dev/null @@ -1 +0,0 @@ -../../../mongoose.h \ No newline at end of file diff --git a/tutorials/rp/pico-rndis-device/CMakeLists.txt b/tutorials/rp/pico-rndis-device/CMakeLists.txt new file mode 100644 index 00000000..2c8ca9a0 --- /dev/null +++ b/tutorials/rp/pico-rndis-device/CMakeLists.txt @@ -0,0 +1,29 @@ +cmake_minimum_required(VERSION 3.13) +include(pico-sdk/pico_sdk_init.cmake) + +project(firmware) +pico_sdk_init() + +add_executable(firmware + main.c + usb_descriptors.c + mongoose.c + net.c + pico-sdk/lib/tinyusb/lib/networking/rndis_reports.c) + +target_include_directories(firmware PUBLIC + . + pico-sdk/lib/tinyusb/lib/networking) + +target_link_libraries(firmware pico_stdlib pico_rand hardware_spi tinyusb_device) +pico_add_extra_outputs(firmware) # create map/bin/hex file etc. + +pico_enable_stdio_usb(firmware 0) # Route stdio +pico_enable_stdio_uart(firmware 1) # to the UART + +# Prevent extreme optimization from breaking OTA +target_compile_options(firmware PRIVATE -fno-tree-loop-distribute-patterns) + +# Mongoose build flags in mongoose_config.h + +# Example build options diff --git a/tutorials/rp/pico-rndis-device/Makefile b/tutorials/rp/pico-rndis-device/Makefile new file mode 100644 index 00000000..7f7334e2 --- /dev/null +++ b/tutorials/rp/pico-rndis-device/Makefile @@ -0,0 +1,20 @@ +RM = rm -rf +MKBUILD = test -d build || mkdir build +ifeq ($(OS),Windows_NT) + RM = cmd /C del /Q /F /S + MKBUILD = if not exist build mkdir build +endif + +all example: + true + +build build/firmware.uf2: pico-sdk main.c net.c + $(MKBUILD) + cd build && cmake -G "Unix Makefiles" .. && make + +pico-sdk: + git clone --depth 1 -b 2.1.0 https://github.com/raspberrypi/pico-sdk $@ + cd $@ && git submodule update --init + +clean: + $(RM) pico-sdk build diff --git a/tutorials/rp/pico-rndis-device/README.md b/tutorials/rp/pico-rndis-device/README.md new file mode 100644 index 00000000..3cc561b5 --- /dev/null +++ b/tutorials/rp/pico-rndis-device/README.md @@ -0,0 +1,29 @@ +# Remote MQTT Device on an RP2040 + +Your headless Raspberry Pi Pico-based hardware can also be a remote gadget when you connect it to your computer via USB + +For the USB specifics, see this related tutorial at https://mongoose.ws/tutorials/rp2040/pico-rndis-dashboard/ + +See this tutorial to control your device: https://mongoose.ws/tutorials/mqtt-dashboard/ + +For this to work, you need your computer to act as a router (gateway) and NAT for your device. + +## Linux setup + +Enable "masquerading"; the quick and simple options are: + +``` bash +sudo iptables --flush +sudo iptables --table nat --flush +sudo iptables --delete-chain +sudo iptables --table nat --delete-chain + +# Do masquerading +sudo iptables -t nat -A POSTROUTING -o yourifc -j MASQUERADE +# enable routing +sudo echo 1 > /proc/sys/net/ipv4/ip_forward +``` + +Where `yourifc` is the interface that is connected to your network + +## MacOS setup diff --git a/tutorials/rp/pico-rndis-device/hal.h b/tutorials/rp/pico-rndis-device/hal.h new file mode 100644 index 00000000..c2137986 --- /dev/null +++ b/tutorials/rp/pico-rndis-device/hal.h @@ -0,0 +1,11 @@ +// Copyright (c) 2023 Cesanta Software Limited +// All rights reserved + +#define LED PICO_DEFAULT_LED_PIN + +static inline int gpio_read(uint16_t pin) { + return gpio_get_out_level(pin); +} +static inline void gpio_write(uint16_t pin, bool val) { + gpio_put(pin, val); +} diff --git a/tutorials/rp/pico-rndis-device/main.c b/tutorials/rp/pico-rndis-device/main.c new file mode 100644 index 00000000..ac73e3cd --- /dev/null +++ b/tutorials/rp/pico-rndis-device/main.c @@ -0,0 +1,96 @@ +// Copyright (c) 2022 Cesanta Software Limited +// All rights reserved + +#include "mongoose.h" +#include "net.h" +#include "pico/stdlib.h" +#include "tusb.h" + +char *g_firmware_version = "1.0.0"; + +bool hal_gpio_read(int pin) { + return (pin >= 0 && pin <= 29) ? gpio_get_out_level((uint) pin) : false; +} + +bool hal_gpio_write(int pin, bool val) { + if (pin >= 0 && pin <= 29) { + gpio_put((uint) pin, val); + return true; + } else { + return false; + } +} + +int hal_led_pin(void) { + return PICO_DEFAULT_LED_PIN; +} + +static struct mg_tcpip_if *s_ifp; + +uint8_t tud_network_mac_address[6] = {2, 2, 0x84, 0x6A, 0x96, 0}; + +bool tud_network_recv_cb(const uint8_t *buf, uint16_t len) { + mg_tcpip_qwrite((void *) buf, len, s_ifp); + // MG_INFO(("RECV %hu", len)); + // mg_hexdump(buf, len); + tud_network_recv_renew(); + return true; +} + +void tud_network_init_cb(void) { +} + +uint16_t tud_network_xmit_cb(uint8_t *dst, void *ref, uint16_t arg) { + // MG_INFO(("SEND %hu", arg)); + memcpy(dst, ref, arg); + return arg; +} + +static size_t usb_tx(const void *buf, size_t len, struct mg_tcpip_if *ifp) { + if (!tud_ready()) return 0; + while (!tud_network_can_xmit(len)) tud_task(); + tud_network_xmit((void *) buf, len); + (void) ifp; + return len; +} + +static bool usb_poll(struct mg_tcpip_if *ifp, bool s1) { + (void) ifp; + tud_task(); + return s1 ? tud_inited() && tud_ready() && tud_connected() : false; +} + +static void fn(struct mg_connection *c, int ev, void *ev_data, void *fn_dta) { + if (ev == MG_EV_HTTP_MSG) return mg_http_reply(c, 200, "", "ok\n"); +} + +int main(void) { + gpio_init(PICO_DEFAULT_LED_PIN); + gpio_set_dir(PICO_DEFAULT_LED_PIN, GPIO_OUT); + stdio_init_all(); + + struct mg_mgr mgr; // Initialise Mongoose event manager + mg_mgr_init(&mgr); // and attach it to the interface + + struct mg_tcpip_driver driver = {.tx = usb_tx, .poll = usb_poll}; + struct mg_tcpip_if mif = {.mac = {2, 0, 1, 2, 3, 0x77}, + .ip = mg_htonl(MG_U32(192, 168, 3, 1)), + .mask = mg_htonl(MG_U32(255, 255, 255, 0)), + .enable_dhcp_server = true, + .enable_get_gateway = true, + .driver = &driver, + .recv_queue.size = 4096}; + s_ifp = &mif; + mg_tcpip_init(&mgr, &mif); + tusb_init(); + + MG_INFO(("Initialising application...")); + web_init(&mgr); + + MG_INFO(("Starting event loop")); + for (;;) { + mg_mgr_poll(&mgr, 0); + } + + return 0; +} diff --git a/tutorials/http/http-restful-server/mongoose.c b/tutorials/rp/pico-rndis-device/mongoose.c similarity index 100% rename from tutorials/http/http-restful-server/mongoose.c rename to tutorials/rp/pico-rndis-device/mongoose.c diff --git a/tutorials/http/http-restful-server/mongoose.h b/tutorials/rp/pico-rndis-device/mongoose.h similarity index 100% rename from tutorials/http/http-restful-server/mongoose.h rename to tutorials/rp/pico-rndis-device/mongoose.h diff --git a/tutorials/rp/pico-rndis-device/mongoose_config.h b/tutorials/rp/pico-rndis-device/mongoose_config.h new file mode 100644 index 00000000..29d510b4 --- /dev/null +++ b/tutorials/rp/pico-rndis-device/mongoose_config.h @@ -0,0 +1,4 @@ +#define MG_ARCH MG_ARCH_PICOSDK + +#define MG_ENABLE_TCPIP 1 +#define MG_ENABLE_TCPIP_DRIVER_INIT 0 diff --git a/tutorials/rp/pico-rndis-device/net.c b/tutorials/rp/pico-rndis-device/net.c new file mode 120000 index 00000000..5a1bf032 --- /dev/null +++ b/tutorials/rp/pico-rndis-device/net.c @@ -0,0 +1 @@ +../../mqtt/mqtt-dashboard/device/net.c \ No newline at end of file diff --git a/tutorials/rp/pico-rndis-device/net.h b/tutorials/rp/pico-rndis-device/net.h new file mode 120000 index 00000000..3e71e66d --- /dev/null +++ b/tutorials/rp/pico-rndis-device/net.h @@ -0,0 +1 @@ +../../mqtt/mqtt-dashboard/device/net.h \ No newline at end of file diff --git a/tutorials/rp/pico-rndis-device/netif/ethernet.h b/tutorials/rp/pico-rndis-device/netif/ethernet.h new file mode 100644 index 00000000..d48aeb14 --- /dev/null +++ b/tutorials/rp/pico-rndis-device/netif/ethernet.h @@ -0,0 +1,2 @@ +#pragma once +#define SIZEOF_ETH_HDR 14 diff --git a/tutorials/rp/pico-rndis-device/tusb_config.h b/tutorials/rp/pico-rndis-device/tusb_config.h new file mode 100644 index 00000000..7aef1f2f --- /dev/null +++ b/tutorials/rp/pico-rndis-device/tusb_config.h @@ -0,0 +1,9 @@ +#pragma once + +// Windows only supports RNDIS +// Mac only supports CDC-ECM +// Linux supports either RNDIS, CDC-ECM or CDC-NCM +#define CFG_TUD_ECM_RNDIS 1 +#define BOARD_DEVICE_RHPORT_NUM 0 +#define BOARD_DEVICE_RHPORT_SPEED OPT_MODE_FULL_SPEED +#define CFG_TUSB_RHPORT0_MODE (OPT_MODE_DEVICE | BOARD_DEVICE_RHPORT_SPEED) diff --git a/tutorials/rp/pico-rndis-device/usb_descriptors.c b/tutorials/rp/pico-rndis-device/usb_descriptors.c new file mode 100644 index 00000000..3c0ed3db --- /dev/null +++ b/tutorials/rp/pico-rndis-device/usb_descriptors.c @@ -0,0 +1,248 @@ +/* + * The MIT License (MIT) + * + * Copyright (c) 2019 Ha Thach (tinyusb.org) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + */ + +#include "tusb.h" + +/* A combination of interfaces must have a unique product id, since PC will save device driver after the first plug. + * Same VID/PID with different interface e.g MSC (first), then CDC (later) will possibly cause system error on PC. + * + * Auto ProductID layout's Bitmap: + * [MSB] NET | VENDOR | MIDI | HID | MSC | CDC [LSB] + */ +#define _PID_MAP(itf, n) ( (CFG_TUD_##itf) << (n) ) +#define USB_PID (0x4000 | _PID_MAP(CDC, 0) | _PID_MAP(MSC, 1) | _PID_MAP(HID, 2) | \ + _PID_MAP(MIDI, 3) | _PID_MAP(VENDOR, 4) | _PID_MAP(ECM_RNDIS, 5) | _PID_MAP(NCM, 5) ) + +// String Descriptor Index +enum +{ + STRID_LANGID = 0, + STRID_MANUFACTURER, + STRID_PRODUCT, + STRID_SERIAL, + STRID_INTERFACE, + STRID_MAC +}; + +enum +{ + ITF_NUM_CDC = 0, + ITF_NUM_CDC_DATA, + ITF_NUM_TOTAL +}; + +enum +{ +#if CFG_TUD_ECM_RNDIS + CONFIG_ID_RNDIS = 0, + CONFIG_ID_ECM = 1, +#else + CONFIG_ID_NCM = 0, +#endif + CONFIG_ID_COUNT +}; + +//--------------------------------------------------------------------+ +// Device Descriptors +//--------------------------------------------------------------------+ +tusb_desc_device_t const desc_device = +{ + .bLength = sizeof(tusb_desc_device_t), + .bDescriptorType = TUSB_DESC_DEVICE, + .bcdUSB = 0x0200, + + // Use Interface Association Descriptor (IAD) device class + .bDeviceClass = TUSB_CLASS_MISC, + .bDeviceSubClass = MISC_SUBCLASS_COMMON, + .bDeviceProtocol = MISC_PROTOCOL_IAD, + + .bMaxPacketSize0 = CFG_TUD_ENDPOINT0_SIZE, + + .idVendor = 0xCafe, + .idProduct = USB_PID, + .bcdDevice = 0x0101, + + .iManufacturer = STRID_MANUFACTURER, + .iProduct = STRID_PRODUCT, + .iSerialNumber = STRID_SERIAL, + + .bNumConfigurations = CONFIG_ID_COUNT // multiple configurations +}; + +// Invoked when received GET DEVICE DESCRIPTOR +// Application return pointer to descriptor +uint8_t const * tud_descriptor_device_cb(void) +{ + return (uint8_t const *) &desc_device; +} + +//--------------------------------------------------------------------+ +// Configuration Descriptor +//--------------------------------------------------------------------+ +#define MAIN_CONFIG_TOTAL_LEN (TUD_CONFIG_DESC_LEN + TUD_RNDIS_DESC_LEN) +#define ALT_CONFIG_TOTAL_LEN (TUD_CONFIG_DESC_LEN + TUD_CDC_ECM_DESC_LEN) +#define NCM_CONFIG_TOTAL_LEN (TUD_CONFIG_DESC_LEN + TUD_CDC_NCM_DESC_LEN) + +#if CFG_TUSB_MCU == OPT_MCU_LPC175X_6X || CFG_TUSB_MCU == OPT_MCU_LPC177X_8X || CFG_TUSB_MCU == OPT_MCU_LPC40XX + // LPC 17xx and 40xx endpoint type (bulk/interrupt/iso) are fixed by its number + // 0 control, 1 In, 2 Bulk, 3 Iso, 4 In etc ... + #define EPNUM_NET_NOTIF 0x81 + #define EPNUM_NET_OUT 0x02 + #define EPNUM_NET_IN 0x82 + +#elif CFG_TUSB_MCU == OPT_MCU_SAMG || CFG_TUSB_MCU == OPT_MCU_SAMX7X + // SAMG & SAME70 don't support a same endpoint number with different direction IN and OUT + // e.g EP1 OUT & EP1 IN cannot exist together + #define EPNUM_NET_NOTIF 0x81 + #define EPNUM_NET_OUT 0x02 + #define EPNUM_NET_IN 0x83 + +#else + #define EPNUM_NET_NOTIF 0x81 + #define EPNUM_NET_OUT 0x02 + #define EPNUM_NET_IN 0x82 +#endif + +#if CFG_TUD_ECM_RNDIS + +static uint8_t const rndis_configuration[] = +{ + // Config number (index+1), interface count, string index, total length, attribute, power in mA + TUD_CONFIG_DESCRIPTOR(CONFIG_ID_RNDIS+1, ITF_NUM_TOTAL, 0, MAIN_CONFIG_TOTAL_LEN, 0, 100), + + // Interface number, string index, EP notification address and size, EP data address (out, in) and size. + TUD_RNDIS_DESCRIPTOR(ITF_NUM_CDC, STRID_INTERFACE, EPNUM_NET_NOTIF, 8, EPNUM_NET_OUT, EPNUM_NET_IN, CFG_TUD_NET_ENDPOINT_SIZE), +}; + +static uint8_t const ecm_configuration[] = +{ + // Config number (index+1), interface count, string index, total length, attribute, power in mA + TUD_CONFIG_DESCRIPTOR(CONFIG_ID_ECM+1, ITF_NUM_TOTAL, 0, ALT_CONFIG_TOTAL_LEN, 0, 100), + + // Interface number, description string index, MAC address string index, EP notification address and size, EP data address (out, in), and size, max segment size. + TUD_CDC_ECM_DESCRIPTOR(ITF_NUM_CDC, STRID_INTERFACE, STRID_MAC, EPNUM_NET_NOTIF, 64, EPNUM_NET_OUT, EPNUM_NET_IN, CFG_TUD_NET_ENDPOINT_SIZE, CFG_TUD_NET_MTU), +}; + +#else + +static uint8_t const ncm_configuration[] = +{ + // Config number (index+1), interface count, string index, total length, attribute, power in mA + TUD_CONFIG_DESCRIPTOR(CONFIG_ID_NCM+1, ITF_NUM_TOTAL, 0, NCM_CONFIG_TOTAL_LEN, 0, 100), + + // Interface number, description string index, MAC address string index, EP notification address and size, EP data address (out, in), and size, max segment size. + TUD_CDC_NCM_DESCRIPTOR(ITF_NUM_CDC, STRID_INTERFACE, STRID_MAC, EPNUM_NET_NOTIF, 64, EPNUM_NET_OUT, EPNUM_NET_IN, CFG_TUD_NET_ENDPOINT_SIZE, CFG_TUD_NET_MTU), +}; + +#endif + +// Configuration array: RNDIS and CDC-ECM +// - Windows only works with RNDIS +// - MacOS only works with CDC-ECM +// - Linux will work on both +static uint8_t const * const configuration_arr[2] = +{ +#if CFG_TUD_ECM_RNDIS + [CONFIG_ID_RNDIS] = rndis_configuration, + [CONFIG_ID_ECM ] = ecm_configuration +#else + [CONFIG_ID_NCM ] = ncm_configuration +#endif +}; + +// Invoked when received GET CONFIGURATION DESCRIPTOR +// Application return pointer to descriptor +// Descriptor contents must exist long enough for transfer to complete +uint8_t const * tud_descriptor_configuration_cb(uint8_t index) +{ + return (index < CONFIG_ID_COUNT) ? configuration_arr[index] : NULL; +} + +//--------------------------------------------------------------------+ +// String Descriptors +//--------------------------------------------------------------------+ + +// array of pointer to string descriptors +static char const* string_desc_arr [] = +{ + [STRID_LANGID] = (const char[]) { 0x09, 0x04 }, // supported language is English (0x0409) + [STRID_MANUFACTURER] = "TinyUSB", // Manufacturer + [STRID_PRODUCT] = "TinyUSB Device", // Product + [STRID_SERIAL] = "123456", // Serial + [STRID_INTERFACE] = "TinyUSB Network Interface" // Interface Description + + // STRID_MAC index is handled separately +}; + +static uint16_t _desc_str[32]; + +// Invoked when received GET STRING DESCRIPTOR request +// Application return pointer to descriptor, whose contents must exist long enough for transfer to complete +uint16_t const* tud_descriptor_string_cb(uint8_t index, uint16_t langid) +{ + (void) langid; + + unsigned int chr_count = 0; + + if (STRID_LANGID == index) + { + memcpy(&_desc_str[1], string_desc_arr[STRID_LANGID], 2); + chr_count = 1; + } + else if (STRID_MAC == index) + { + // Convert MAC address into UTF-16 + + for (unsigned i=0; i> 4) & 0xf]; + _desc_str[1+chr_count++] = "0123456789ABCDEF"[(tud_network_mac_address[i] >> 0) & 0xf]; + } + } + else + { + // Note: the 0xEE index string is a Microsoft OS 1.0 Descriptors. + // https://docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/microsoft-defined-usb-descriptors + + if ( !(index < sizeof(string_desc_arr)/sizeof(string_desc_arr[0])) ) return NULL; + + const char* str = string_desc_arr[index]; + + // Cap at max char + chr_count = (uint8_t) strlen(str); + if ( chr_count > (TU_ARRAY_SIZE(_desc_str) - 1)) chr_count = TU_ARRAY_SIZE(_desc_str) - 1; + + // Convert ASCII string into UTF-16 + for (unsigned int i=0; i