Makefile 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. export FW_MAJOR := 0
  2. export FW_MINOR := 23
  3. TARGETS := all blinky clean dist windist mrproper ocd flash start serial
  4. .PHONY: $(TARGETS)
  5. ifneq ($(RULES_MK),y)
  6. export ROOT := $(CURDIR)
  7. $(TARGETS):
  8. $(MAKE) -f $(ROOT)/Rules.mk $@
  9. else
  10. PROJ = Greaseweazle
  11. VER := v$(FW_MAJOR).$(FW_MINOR)
  12. SUBDIRS += src bootloader blinky_test
  13. all: scripts/greaseweazle/version.py
  14. $(MAKE) -C src -f $(ROOT)/Rules.mk $(PROJ).elf $(PROJ).bin $(PROJ).hex
  15. $(MAKE) bootloader=y -C bootloader -f $(ROOT)/Rules.mk \
  16. Bootloader.elf Bootloader.bin Bootloader.hex
  17. srec_cat bootloader/Bootloader.hex -Intel src/$(PROJ).hex -Intel \
  18. -o $(PROJ)-$(VER).hex -Intel
  19. $(PYTHON) ./scripts/mk_update.py new $(PROJ)-$(VER).upd \
  20. bootloader/Bootloader.bin src/$(PROJ).bin $(stm32)
  21. blinky:
  22. $(MAKE) debug=y stm32=f1 -C blinky_test -f $(ROOT)/Rules.mk \
  23. Blinky.elf Blinky.bin Blinky.hex
  24. clean::
  25. rm -f *.hex *.upd scripts/greaseweazle/*.pyc
  26. rm -f scripts/greaseweazle/version.py
  27. find . -name __pycache__ | xargs rm -rf
  28. dist:
  29. rm -rf $(PROJ)-*
  30. mkdir -p $(PROJ)-$(VER)/scripts/greaseweazle/image
  31. mkdir -p $(PROJ)-$(VER)/scripts/greaseweazle/tools
  32. mkdir -p $(PROJ)-$(VER)/scripts/misc
  33. mkdir -p $(PROJ)-$(VER)/alt
  34. $(MAKE) clean
  35. $(MAKE) stm32=f1 all blinky
  36. cp -a $(PROJ)-$(VER).hex $(PROJ)-$(VER)/$(PROJ)-F1-$(VER).hex
  37. cp -a $(PROJ)-$(VER).upd $(PROJ)-$(VER)/$(PROJ)-$(VER).upd
  38. cp -a blinky_test/Blinky.hex $(PROJ)-$(VER)/alt/Blinky_Test-$(VER).hex
  39. cp -a COPYING $(PROJ)-$(VER)/
  40. cp -a README.md $(PROJ)-$(VER)/
  41. cp -a gw $(PROJ)-$(VER)/
  42. cp -a scripts/49-greaseweazle.rules $(PROJ)-$(VER)/scripts/
  43. cp -a scripts/gw.py $(PROJ)-$(VER)/scripts/
  44. cp -a scripts/greaseweazle $(PROJ)-$(VER)/scripts
  45. cp -a scripts/misc/*.py $(PROJ)-$(VER)/scripts/misc/
  46. cp -a RELEASE_NOTES $(PROJ)-$(VER)/
  47. $(MAKE) clean
  48. $(MAKE) stm32=f7 all
  49. cp -a $(PROJ)-$(VER).hex $(PROJ)-$(VER)/$(PROJ)-F7-$(VER).hex
  50. $(PYTHON) ./scripts/mk_update.py cat $(PROJ)-$(VER)/$(PROJ)-$(VER).upd \
  51. $(PROJ)-$(VER)/$(PROJ)-$(VER).upd $(PROJ)-$(VER).upd
  52. $(MAKE) clean
  53. $(ZIP) $(PROJ)-$(VER).zip $(PROJ)-$(VER)
  54. windist:
  55. rm -rf $(PROJ)-$(VER) ipf ipf.zip
  56. [ -e $(PROJ)-$(VER).zip ] || \
  57. curl -L https://github.com/keirf/Greaseweazle/releases/download/$(VER)/$(PROJ)-$(VER).zip --output $(PROJ)-$(VER).zip
  58. $(UNZIP) $(PROJ)-$(VER).zip
  59. cp -a scripts/setup.py $(PROJ)-$(VER)/scripts
  60. cd $(PROJ)-$(VER)/scripts && $(PYTHON) setup.py build
  61. cp -a $(PROJ)-$(VER)/scripts/build/exe.win*/* $(PROJ)-$(VER)/
  62. cp -a $(PROJ)-$(VER)/lib/bitarray/VCRUNTIME140.DLL $(PROJ)-$(VER)/
  63. rm -rf $(PROJ)-$(VER)/scripts $(PROJ)-$(VER)/*.py $(PROJ)-$(VER)/gw
  64. curl -L http://softpres.org/_media/files:spsdeclib_5.1_windows.zip --output ipf.zip
  65. $(UNZIP) -oipf ipf.zip
  66. cp -a ipf/capsimg_binary/CAPSImg.dll $(PROJ)-$(VER)/
  67. rm -rf ipf ipf.zip
  68. $(ZIP) $(PROJ)-$(VER)-win.zip $(PROJ)-$(VER)
  69. mrproper: clean
  70. rm -rf $(PROJ)-* ipf ipf.zip
  71. scripts/greaseweazle/version.py: Makefile
  72. echo "major = $(FW_MAJOR)" >$@
  73. echo "minor = $(FW_MINOR)" >>$@
  74. BAUD=115200
  75. DEV=/dev/ttyUSB0
  76. ocd: all
  77. $(PYTHON) scripts/telnet.py localhost 4444 \
  78. "reset init ; flash write_image erase `pwd`/$(PROJ)-$(VER).hex ; reset"
  79. flash: all
  80. sudo stm32flash -b $(BAUD) -w $(PROJ)-$(VER).hex $(DEV)
  81. start:
  82. sudo stm32flash -b $(BAUD) -g 0 $(DEV)
  83. serial:
  84. sudo miniterm.py $(DEV) 3000000
  85. endif