mirror of
https://github.com/cesanta/mongoose.git
synced 2026-10-27 12:26:24 +00:00
57 lines
2.1 KiB
Makefile
57 lines
2.1 KiB
Makefile
TOP ?= ../..
|
|
ST_TARGETS = nucleo_h723zg nucleo_f756zg nucleo_h563zi
|
|
# ST_TARGETS = $(subst .ioc,,$(wildcard *.ioc))
|
|
PROJECTS = full minimal
|
|
TARGETS = desktop $(ST_TARGETS)
|
|
MX ?= /Applications/STMicroelectronics/STM32CubeMX.app/Contents/MacOs/STM32CubeMX
|
|
|
|
DIRS = $(foreach P,$(PROJECTS),$(foreach T,$(TARGETS),$(T)_$(P)))
|
|
ZIPS = $(foreach D,$(DIRS),$(D).zip)
|
|
|
|
all: $(ZIPS)
|
|
|
|
DESKTOP_DIRS = $(foreach P,$(PROJECTS),desktop_$(P))
|
|
#H723_DIRS = $(foreach P,$(PROJECTS),h723_$(P))
|
|
|
|
$(DESKTOP_DIRS): desktop_%:
|
|
mkdir -p $@ $@/resources
|
|
$(MAKE) -C $(TOP)/tutorials/device-dashboard/$* clean
|
|
cp $(TOP)/tutorials/device-dashboard/$*/*{c,html,Makefile} $@
|
|
cp $(TOP)/mongoose.{c,h} $@
|
|
cp $(TOP)/LICENSE $@
|
|
cp $(TOP)/resources/*.js $@/resources
|
|
sed -i "" "s,../../..,.," $@/Makefile
|
|
|
|
define ST_RULE
|
|
$(1): $(1).ioc # This creates MX-generated baseline project
|
|
mkdir -p $$@
|
|
cp $(1).ioc $$@
|
|
echo config load `pwd`/$$@/$(1).ioc > gen.mx
|
|
echo project generate >> gen.mx
|
|
echo exit >> gen.mx
|
|
$(MX) -q `pwd`/gen.mx
|
|
|
|
$(1)_$(2): $(1)
|
|
mkdir -p $$@
|
|
test -d $$@/$(1).ioc || cp -r $(1)/* $$@/
|
|
grep mongoose.h $$@/Core/Src/main.c || sed -i '' '/BEGIN Includes/r patch_include.c' $$@/Core/Src/main.c
|
|
grep '^int _write' $$@/Core/Src/main.c || sed -i '' '/USER CODE BEGIN 0 /r patch_write.c' $$@/Core/Src/main.c
|
|
grep 'mg_dash_init' $$@/Core/Src/main.c || sed -i '' '/USER CODE BEGIN WHILE/,/USER CODE END WHILE/{//!d;};' $$@/Core/Src/main.c
|
|
grep 'mg_dash_init' $$@/Core/Src/main.c || sed -i '' '/USER CODE BEGIN WHILE/r patch_loop.c' $$@/Core/Src/main.c
|
|
test -f $$@/STM32H723XG_FLASH.ld && (grep eth_ram $$@/STM32H723XG_FLASH.ld || sed -i '' '/_sidata =/r patch_ld.txt' $$@/STM32H723XG_FLASH.ld) || true
|
|
$(MAKE) -C $(TOP)/tutorials/device-dashboard/$(2) file_data.c
|
|
cp $(TOP)/tutorials/device-dashboard/$(2)/{file_data.c,dashboard.c} $$@/Middlewares/Third_Party/Cesanta_Mongoose/
|
|
cp $(TOP)/LICENSE $$@
|
|
endef
|
|
|
|
$(foreach T,$(ST_TARGETS), $(foreach P,$(PROJECTS), $(eval $(call ST_RULE,$(T),$(P)))))
|
|
|
|
%.zip: %
|
|
zip -qr $@ $<
|
|
|
|
upload: $(ZIPS)
|
|
scp $(ZIPS) h1:/data/downloads/
|
|
|
|
clean:
|
|
rm -rf $(DIRS) $(ST_TARGETS) $(ZIPS) gen.mx
|