Makefile 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. export FW_MAJOR := 1
  2. export FW_MINOR := 1
  3. PROJ = greaseweazle-firmware
  4. VER := v$(FW_MAJOR).$(FW_MINOR)
  5. PYTHON := python3
  6. export ROOT := $(CURDIR)
  7. .PHONY: FORCE
  8. .DEFAULT_GOAL := all
  9. prod-%: FORCE
  10. $(MAKE) target mcu=$* target=bootloader level=prod
  11. $(MAKE) target mcu=$* target=greaseweazle level=prod
  12. debug-%: FORCE
  13. $(MAKE) target mcu=$* target=bootloader level=debug
  14. $(MAKE) target mcu=$* target=greaseweazle level=debug
  15. all-%: FORCE prod-% debug-% ;
  16. all: FORCE all-stm32f1 all-stm32f7 all-at32f4 ;
  17. $(MAKE) target mcu=stm32f1 target=blinky level=debug
  18. clean: FORCE
  19. rm -rf out
  20. out: FORCE
  21. mkdir -p out/$(mcu)/$(level)/$(target)
  22. rsync -a --include="*/" --exclude="*" src/ out/$(mcu)/$(level)/$(target)
  23. target: FORCE out
  24. $(MAKE) -C out/$(mcu)/$(level)/$(target) -f $(ROOT)/Rules.mk target.bin target.hex target.upd $(mcu)=y $(level)=y $(target)=y
  25. dist: level := prod
  26. dist: t := $(ROOT)/out/$(PROJ)-$(VER)
  27. dist: FORCE all
  28. rm -rf out/$(PROJ)-*
  29. mkdir -p $(t)/hex/alt
  30. cd out/stm32f1/$(level)/greaseweazle; \
  31. cp -a target.hex $(t)/hex/$(PROJ)-f1-$(VER).hex; \
  32. cp -a ../bootloader/target.upd $(t)/$(PROJ)-$(VER).upd; \
  33. $(PYTHON) $(ROOT)/scripts/mk_update.py cat $(t)/$(PROJ)-$(VER).upd \
  34. target.upd
  35. cd out/stm32f1/debug/blinky; \
  36. cp -a target.hex $(t)/hex/alt/blinky-test-f1-$(VER).hex
  37. cd out/stm32f7/$(level)/greaseweazle; \
  38. cp -a target.hex $(t)/hex/$(PROJ)-f7-$(VER).hex; \
  39. $(PYTHON) $(ROOT)/scripts/mk_update.py cat $(t)/$(PROJ)-$(VER).upd \
  40. ../bootloader/target.upd target.upd
  41. cd out/at32f4/$(level)/greaseweazle; \
  42. cp -a target.hex $(t)/hex/$(PROJ)-at32f4-$(VER).hex; \
  43. $(PYTHON) $(ROOT)/scripts/mk_update.py cat $(t)/$(PROJ)-$(VER).upd \
  44. ../bootloader/target.upd target.upd
  45. cp -a COPYING $(t)/
  46. cp -a README $(t)/
  47. cp -a RELEASE_NOTES $(t)/
  48. cd out && zip -r $(PROJ)-$(VER).zip $(PROJ)-$(VER)
  49. BAUD=115200
  50. DEV=/dev/ttyUSB0
  51. SUDO=sudo
  52. STM32FLASH=stm32flash
  53. ocd: FORCE all
  54. $(PYTHON) scripts/telnet.py localhost 4444 \
  55. "reset init ; flash write_image erase `pwd`/$(target)/$(target).hex ; reset"
  56. f1_ocd: FORCE all
  57. $(PYTHON) scripts/openocd/flash.py `pwd`/$(target)/$(target).hex
  58. flash: FORCE all
  59. $(SUDO) $(STM32FLASH) -b $(BAUD) -w $(target)/$(target).hex $(DEV)
  60. start: FORCE
  61. $(SUDO) $(STM32FLASH) -b $(BAUD) -g 0 $(DEV)
  62. serial: FORCE
  63. $(SUDO) miniterm.py $(DEV) 3000000