Makefile 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. export FW_MAJOR := 0
  2. export FW_MINOR := 15
  3. TARGETS := all blinky clean dist mrproper ocd flash start serial
  4. .PHONY: $(TARGETS)
  5. ifneq ($(RULES_MK),y)
  6. export ROOT := $(CURDIR)
  7. export stm32
  8. export debug
  9. export VERBOSE
  10. $(TARGETS):
  11. $(MAKE) -f $(ROOT)/Rules.mk $@
  12. else
  13. PROJ = Greaseweazle
  14. VER := v$(FW_MAJOR).$(FW_MINOR)
  15. SUBDIRS += src bootloader blinky_test
  16. all: scripts/greaseweazle/version.py
  17. $(MAKE) -C src -f $(ROOT)/Rules.mk $(PROJ).elf $(PROJ).bin $(PROJ).hex
  18. bootloader=y $(MAKE) -C bootloader -f $(ROOT)/Rules.mk \
  19. Bootloader.elf Bootloader.bin Bootloader.hex
  20. srec_cat bootloader/Bootloader.hex -Intel src/$(PROJ).hex -Intel \
  21. -o $(PROJ)-$(VER).hex -Intel
  22. $(PYTHON) ./scripts/mk_update.py src/$(PROJ).bin $(PROJ)-$(VER).upd $(stm32)
  23. blinky:
  24. debug=y stm32=f1 $(MAKE) -C blinky_test -f $(ROOT)/Rules.mk \
  25. Blinky.elf Blinky.bin Blinky.hex
  26. clean::
  27. rm -f *.hex *.upd scripts/greaseweazle/*.pyc
  28. rm -f scripts/greaseweazle/version.py
  29. find . -name __pycache__ | xargs rm -rf
  30. dist:
  31. rm -rf $(PROJ)-*
  32. mkdir -p $(PROJ)-$(VER)/scripts/greaseweazle/image
  33. mkdir -p $(PROJ)-$(VER)/scripts/greaseweazle/tools
  34. mkdir -p $(PROJ)-$(VER)/alt
  35. $(MAKE) clean
  36. stm32=f1 $(MAKE) all blinky
  37. cp -a $(PROJ)-$(VER).hex $(PROJ)-$(VER)/$(PROJ)-F1-$(VER).hex
  38. cp -a $(PROJ)-$(VER).upd $(PROJ)-$(VER)/$(PROJ)-$(VER).upd
  39. cp -a blinky_test/Blinky.hex $(PROJ)-$(VER)/alt/Blinky_Test-$(VER).hex
  40. cp -a COPYING $(PROJ)-$(VER)/
  41. cp -a README.md $(PROJ)-$(VER)/
  42. cp -a gw.py $(PROJ)-$(VER)/
  43. cp -a scripts/49-greaseweazle.rules $(PROJ)-$(VER)/scripts/
  44. cp -a scripts/gw.py $(PROJ)-$(VER)/scripts/
  45. cp -a scripts/greaseweazle/*.py $(PROJ)-$(VER)/scripts/greaseweazle/
  46. cp -a scripts/greaseweazle/image/*.py \
  47. $(PROJ)-$(VER)/scripts/greaseweazle/image/
  48. cp -a scripts/greaseweazle/tools/*.py \
  49. $(PROJ)-$(VER)/scripts/greaseweazle/tools/
  50. cp -a RELEASE_NOTES $(PROJ)-$(VER)/
  51. $(MAKE) clean
  52. stm32=f7 $(MAKE) all
  53. cp -a $(PROJ)-$(VER).hex $(PROJ)-$(VER)/$(PROJ)-F7-$(VER).hex
  54. cat $(PROJ)-$(VER).upd >>$(PROJ)-$(VER)/$(PROJ)-$(VER).upd
  55. $(MAKE) clean
  56. $(ZIP) $(PROJ)-$(VER).zip $(PROJ)-$(VER)
  57. mrproper: clean
  58. rm -rf $(PROJ)-*
  59. scripts/greaseweazle/version.py: Makefile
  60. echo "major = $(FW_MAJOR)" >$@
  61. echo "minor = $(FW_MINOR)" >>$@
  62. BAUD=115200
  63. DEV=/dev/ttyUSB0
  64. ocd: all
  65. $(PYTHON) scripts/telnet.py localhost 4444 \
  66. "reset init ; flash write_image erase `pwd`/$(PROJ)-$(VER).hex ; reset"
  67. flash: all
  68. sudo stm32flash -b $(BAUD) -w $(PROJ)-$(VER).hex $(DEV)
  69. start:
  70. sudo stm32flash -b $(BAUD) -g 0 $(DEV)
  71. serial:
  72. sudo miniterm.py $(DEV) 3000000
  73. endif